num_class = args.num_class if len(args.class_names) > 0: if os.path.isfile(args.class_names): # try to open it to read class names with open(args.class_names, 'r') as f: class_names = [l.strip() for l in f.readlines()] else: class_names = [c.strip() for c in args.class_names.split(',')] assert len(class_names) == num_class for name in class_names: assert len(name) > 0 else: class_names = None network = None if args.deploy_net else args.network evaluate_net(network, args.rec_path, num_class, (args.mean_r, args.mean_g, args.mean_b), args.data_shape, args.prefix, args.epoch, ctx, batch_size=args.batch_size, path_imglist=args.list_path, nms_thresh=args.nms_thresh, force_nms=args.force_nms, ovp_thresh=args.overlap_thresh, use_difficult=args.use_difficult, class_names=class_names, voc07_metric=args.use_voc07_metric)
ctx = mx.cpu() else: ctx = [mx.gpu(int(i)) for i in args.gpu_id.split(',')] # parse # classes and class_names if applicable num_class = args.num_class if len(args.class_names) > 0: if os.path.isfile(args.class_names): # try to open it to read class names with open(args.class_names, 'r') as f: class_names = [l.strip() for l in f.readlines()] else: class_names = [c.strip() for c in args.class_names.split(',')] assert len(class_names) == num_class for name in class_names: assert len(name) > 0 else: class_names = None network = None if args.deploy_net else args.network if args.prefix.endswith('_'): prefix = args.prefix + args.network else: prefix = args.prefix evaluate_net(network, args.rec_path, num_class, (args.mean_r, args.mean_g, args.mean_b), args.data_shape, prefix, args.epoch, ctx, batch_size=args.batch_size, path_imglist=args.list_path, nms_thresh=args.nms_thresh, force_nms=args.force_nms, ovp_thresh=args.overlap_thresh, use_difficult=args.use_difficult, class_names=class_names, voc07_metric=args.use_voc07_metric)
parser.add_argument('--gpus', dest='gpu_id', help='GPU devices to evaluate with', default='0', type=str) parser.add_argument('--cpu', dest='cpu', help='use cpu to evaluate', action='store_true') parser.add_argument('--data-shape', dest='data_shape', type=int, default=300, help='set image shape') parser.add_argument('--mean-r', dest='mean_r', type=float, default=123, help='red mean value') parser.add_argument('--mean-g', dest='mean_g', type=float, default=117, help='green mean value') parser.add_argument('--mean-b', dest='mean_b', type=float, default=104, help='blue mean value') parser.add_argument('--nms', dest='nms_thresh', type=float, default=0.45, help='non-maximum suppression threshold') parser.add_argument('--force', dest='force_nms', type=bool, default=False, help='force non-maximum suppression on different class') args = parser.parse_args() return args if __name__ == '__main__': args = parse_args() if args.cpu: ctx = mx.cpu() else: ctx = [mx.gpu(int(i)) for i in args.gpu_id.split(',')] evaluate_net(args.network, args.dataset, args.devkit_path, (args.mean_r, args.mean_g, args.mean_b), args.data_shape, args.prefix, args.epoch, ctx, year=args.year, sets=args.eval_set, batch_size=args.batch_size, nms_thresh=args.nms_thresh, force_nms=args.force_nms)
network1 = None if args.deploy_net else args.network1 if args.prefix1.endswith('_'): prefix1 = args.prefix1 + args.network1 else: prefix1 = args.prefix1 evaluate_net(network, args.rec_path, num_class, (args.mean_r, args.mean_g, args.mean_b), args.data_shape, prefix, args.epoch, ctx, batch_size=args.batch_size, path_imglist=args.list_path, nms_thresh=args.nms_thresh, force_nms=args.force_nms, ovp_thresh=args.overlap_thresh, use_difficult=args.use_difficult, class_names=class_names, voc07_metric=args.use_voc07_metric, use_second_network=use_sub_network, net1=network1, path_imgrec1=args.rec_path1, epoch1=args.epoch1, model_prefix1=args.prefix1, data_shape1=args.data_shape1) else: # single network evaluate_net(network, args.rec_path, num_class, (args.mean_r, args.mean_g, args.mean_b),