args.anchor_path = base_path + "marker_anchors.txt" # Resize the input image with `new_size`, size format: [width, height] args.new_size = [416, 416] # Whether to use the letterbox resize. args.letterbox_resize = True # The path of the class names. args.class_name_path = base_path + "data.names" # The path of the weights to restore. args.restore_path = "./data/darknet_weights/yolov3.ckpt" # The probability threshold that the proposed bounding box needs to meet args.score_thresh = 0.3 # The IoU threshold for non-maximum suppression (NMS) of similar bounding boxes; lower value cuts more args.nms_thresh = 0.45 args.anchors = parse_anchors(args.anchor_path) args.classes = read_class_names(args.class_name_path) args.num_class = len(args.classes) color_table = get_color_table(args.num_class) if not os.path.exists(base_path + "test_eval/"): os.mkdir(base_path + "test_eval/") # img_ori = cv2.imread(args.input_image) # if args.letterbox_resize: # img, resize_ratio, dw, dh = letterbox_resize(img_ori, args.new_size[0], args.new_size[1]) # else: # height_ori, width_ori = img_ori.shape[:2] # img = cv2.resize(img_ori, tuple(args.new_size)) # img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) # img = np.asarray(img, np.float32)
use_label_smooth = True # Whether to use class label smoothing strategy. use_focal_loss = True # Whether to apply focal loss on the conf loss. use_mix_up = True # Whether to use mix up data augmentation strategy. use_warm_up = True # whether to use warm up strategy to prevent from gradient exploding. warm_up_epoch = 3 # Warm up training epochs. Set to a larger value if gradient explodes. ### some constants in validation # nms nms_threshold = 0.45 # IoU threshold in nms operation score_threshold = 0.01 # threshold of the probability of the classes in nms operation, i.e. score = pred_confs * pred_probs. set lower for higher recall. nms_topk = 150 # keep at most nms_topk outputs after nms # mAP eval eval_threshold = 0.5 # the IoU threshold applied in mAP evaluation use_voc_07_metric = False # whether to use voc 2007 evaluation metric, i.e. the 11-point metric ### parse some params if os.path.exists(anchor_path) and os.stat(anchor_path).st_size > 0: anchors = parse_anchors(anchor_path) else: print("Anchors file not found or empty!") classes = read_class_names(class_name_path) class_num = len(classes) train_img_cnt = len(open(train_file, 'r').readlines()) val_img_cnt = len(open(val_file, 'r').readlines()) train_batch_num = int(math.ceil(float(train_img_cnt) / batch_size)) lr_decay_freq = int(train_batch_num * lr_decay_epoch) pw_boundaries = [ float(i) * train_batch_num + global_step for i in pw_boundaries ]