from im_utils import * import sys import os if not len(sys.argv) == 2: print('Usage: {} <Video File>'.format(sys.argv[0])) exit(1) video = sys.argv[1] if not os.path.exists(video): print('Error! File {} does not exists'.format(video)) exit(1) print('Loading Object Detector...') detector = ObjectDetector('ssd/saved_model') detector.loadModel() #detector.getBoundingBoxes(cv2.imread('amur_small/002019.jpg')) #detector.getBoundingBoxes(cv2.imread('amur_small/002019.jpg')) print('Loading Identifiers...') tigers_identifier = SvmIdentifier('amur-alexnet-relu6-linear-pca.model', detector) jaguars_identifier = SvmIdentifier('jaguar-alexnet-fc7-linear-pca.model', detector) elephants_identifier = SvmIdentifier('elp-alexnet-fc7-linear-pca.model', detector) tigers_identifier.loadModel() jaguars_identifier.loadModel() elephants_identifier.loadModel()
minId, maxId = min([x[1] for x in id_map]), max([x[1] for x in id_map]) idNum = None if len(args) > 4: idNum = int(args[4]) rev_map = {} for x in id_map: if not x[1] in rev_map: rev_map[x[1]] = [] rev_map[x[1]].append(x[0]) print('Loading Object Detector') det = ObjectDetector(objdetmodel) det.SCORE_THRESHOLD = 0.7 det.loadModel() # Warming up det.getBoundingBoxes(readImageFromFile(os.path.join(folder, rev_map[0][0]))) det.getBoundingBoxes(readImageFromFile(os.path.join(folder, rev_map[0][0]))) print('Loading Object Identifier') idn = SvmIdentifier(modelPath, det) idn.loadModel() if not idNum is None and not idn.isPresent(idNum): print( 'Provided Id {} is not present in trained model, will choose random Id' ) idNum = None
folder = 'amur/detection_train/trainval' images = ['{}/{}'.format(folder, x) for x in os.listdir(folder)] imagelist = np.random.choice(images, n, replace=False) print('Measuring performance over {} images...'.format(len(images))) config = args[1] weights = args[2] #model = YoloObjectDetector(config, weights, '../darknet/darknet/custom_data/detector.data') #model.loadModel() model = ObjectDetector(config) model.loadModel() print('Warming up...') #model.getBoundingBoxes(images[0]) #model.getBoundingBoxes(images[1]) model.getBoundingBoxes(cv2.imread(images[0])) model.getBoundingBoxes(cv2.imread(images[1])) [cv2.imread(x) for x in imagelist] print('Starting...') times = [] for im in imagelist: #model.getBoundingBoxes(im) img = cv2.imread(im) st = time.time() model.getBoundingBoxes(img)