-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvoc_cls_bbox_test.py
52 lines (42 loc) · 1.71 KB
/
voc_cls_bbox_test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
from utils import *
from nbnn import *
from nbnn.voc import *
import sys, cPickle
from ConfigParser import RawConfigParser
if __name__ == '__main__':
# Get config settings
if len(sys.argv) < 5:
raise Exception("arguments expected: cfgfile batch_no class")
configfile = sys.argv[1]
tmpfile = sys.argv[2]
batch_no = int(sys.argv[3])
cls = sys.argv[4]
# Get options into dicts
VOCopts = VOC.fromConfig(configfile)
DESCRopts, NBNNopts, TESTopts = getopts(configfile, tmpfile)
# Setup logger
if batch_no == 1:
mode = 'w'
else:
mode = 'a'
log = init_log(TESTopts['log_path'], cls, mode)
log.info("TEST cfg:%s, batch_no:%d, cls:%s",configfile, batch_no,cls)
log.info('==== LOAD IMAGE PICKLE ====')
with open(TESTopts['img_pickle_path']%batch_no,'rb') as pklf:
images = cPickle.load(pklf)
log.info('==== INIT DESCRIPTOR FUNCTION ====')
descriptor_function = descriptor.DescriptorUint8(**DESCRopts)
log.info('==== INIT ESTIMATOR ====')
estimator = nbnn.NBNNEstimator(**NBNNopts)
log.info('==== LOAD IMAGE DESCRIPTORS ====')
descriptors = get_image_descriptors(images, descriptor_function, \
TESTopts['descriptor_path'])
log.info('==== GET ESTIMATES ====')
log.info('==== GET OBJECT DESCRIPTORS FROM IMAGES ====')
objects = get_objects(images)
descriptors = get_bbox_descriptors(objects, descriptors)
distances = estimator.get_estimates([cls], descriptors)
log.info('==== GET CONFIDENCE VALUES ====')
conf_vals = get_confidence_values(distances)
log.info('== SAVE CONFIDENCE VALUES ==')
save_results_to_file(TESTopts['result_path']%cls, objects, conf_vals)