72 lines
2.0 KiB
Python
Executable File
72 lines
2.0 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"
|
|
|
|
settings.load_setting('conf_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"]
|
|
counters = {"GEM":0, "ORB":0, "LATCH":0, "BEBLID":0}
|
|
# features = ["GEM", "BEBLID"]
|
|
# counters = {"GEM":0, "BEBLID":0}
|
|
|
|
out_csv = ''
|
|
|
|
for line in Lines:
|
|
classname_q = line.replace("/media/Data/data/extension/test_set/", "").split("/")[0]
|
|
filename_q = line.replace("/media/Data/data/extension/test_set/", "").split("/")[1]
|
|
print("Query {}: {}".format(count, line.strip()))
|
|
|
|
out_line = ''
|
|
out_line = out_line + f'{classname_q},{filename_q};'
|
|
|
|
for f in features:
|
|
results = search_by_img(line.strip(), f)
|
|
if results is None:
|
|
results = ["unknown", 1.0]
|
|
classname = results[0][0].split("/")[0]
|
|
filename = results[0][0].split("/")[1]
|
|
if (classname_q == classname):
|
|
counters[f] = counters[f] + 1
|
|
print(results[0][0] + '", "conf":' + str(results[0][1]))
|
|
|
|
out_line = out_line + f'{classname},{filename},{results[0][1]};'
|
|
|
|
print(out_line)
|
|
out_csv = out_line + '\n'
|
|
count += 1
|
|
|
|
print(f'{f}: {counters}/{count}')
|
|
print(f'GEM accuracy: {counters["GEM"]}/{count}')
|
|
print(f'BEBLID accuracy: {counters["BEBLID"]}/{count}')
|
|
|
|
#open text file
|
|
out_file = open("out_csv.txt", "w")
|
|
|
|
#write string to file
|
|
out_file.write(out_csv)
|
|
|
|
#close file
|
|
out_file.close() |