def main(datasetdir, lv): start = time.time() """ 評価コードのメイン :param datasetdir データセットを格納したディレクトリへのパス """ # 初期化 print("Now evaluation...") alcon = AlconUtils(datasetdir) myalgorithm = MyAlgorithm(datasetdir) # ターゲットの読み込み fn = "target_lv" + lv + "_test_5.csv" alcon.load_annotations_target(fn) results = {} prev = None # 1ターゲットずつ認識していくループ for bb_id, target in alcon.targets.items(): img_file_id, *bb = target img_filename = os.path.join(datasetdir, "images", img_file_id + ".jpg") if prev != img_filename: # ページ全体の画像 full_img = cv2.imread(img_filename) prev = img_filename # 認識処理(ここで各自のアルゴリズムを呼び出します) result = myalgorithm.predict(full_img, bb) # boundingbox id と紐付けて保存 results[bb_id] = result # 評価 fnGround = "groundtruth_lv" + lv + "_test_5.csv" alcon.load_annotations_ground(fnGround) alcon.evaluation(results) # ファイルに結果を書き込む alcon.write_results(results) elapsed_time = time.time() - start print("elapsed_time:", elapsed_time, "[sec]")
imgs = {} results_pre = {} # 1ターゲットずつ認識していくループ print("coco") def predict_preprocess(full_img, bbox): # 対象領域を切り出す x, y, w, h = bbox target_img = full_img[y:y+h, x:x+w, :] # 画像から特徴抽出 return MyAlgorithm.feature_extraction(target_img) for bb_id, target in alcon.targets.items(): img_file_id, *bb = target print(bb_id) # ページ全体の画像 imgs[bb_id] = cv2.imread( os.path.join(datasetdir, "images", img_file_id+".jpg") ) results_pre[bb_id] = predict_preprocess(imgs[bb_id], bb) print("coco") # 評価 alcon.load_annotations_ground("groundtruth" + file_name_last) alcon.evaluation( results ) print("coco") print(len(results_pre)) #with open('test0.1', 'wb') as f: # pickle.dump(results_pre, f)