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)
예제 #2
0
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
]