Extension_image_recognition/TestFeatures.py

57 lines
1.5 KiB
Python
Executable File

import json
from Searcher import Searcher
import WebAppSettings as settings
def search_by_img(img_file, lf_impl, rescorer=False):
if lf_impl is not "GEM":
rescorer = True
results = searcher.search_by_img(img_file, settings.k, rescorer, lf_impl)
return results
if __name__ == '__main__':
#testset= "/media/Data/data/extension/test_set/listfiles.txt"
testset= "/media/Data/data/extension/merged_train_test/test/listfiles.txt"
settings.load_setting('conf_train_test.json')
global searcher
searcher = Searcher()
# Using readlines()
file1 = open(testset, 'r')
Lines = file1.readlines()
count = 0
# Strips the newline character
#features = ["GEM", "ORB", "LATCH", "BEBLID"]
features = ["GEM", "BEBLID"]
counters = {"GEM":0, "ORB":0, "LATCH":0, "BEBLID":0}
count_orb = 0
count_latch = 0
count_beblid = 0
for line in Lines:
classname_q = line.replace("/media/Data/data/extension/merged_train_test/test/", "").split("/")[0]
print("Query {}: {}".format(count, line.strip()))
for f in features:
results = search_by_img(line.strip(), f)
if results is None or results[0][1] < 0.3:
results = ["unknown", 1.0]
classname = results[0][0].split("/")[0]
if (classname_q == classname):
counters[f] = counters[f] + 1
print(results[0][0] + '", "conf":' + str(results[0][1]))
count += 1
for f in features:
print(f'{f}: {counters}/{count}')