IOU
做置信度标签,根据置信度大小,分成三类样本
正样本:IOU>0.65;
部分样本:0.4<IOU<0.65
负样本:IOU<0.3
正、部分、负样本比例为1:1:3
if positive_num > 0:
_side_len = side_len + side_len * random.uniform(-0.2, 0.2) + 1
_cx = cx + cx * random.uniform(-0.2, 0.2) + 1
_cy = cy + cy * random.uniform(-0.2, 0.2) + 1
elif part_num > 0:
_side_len = side_len + side_len * random.uniform(-1, 1) + 1
_cx = cx + cx * random.uniform(-1, 1) + 1
_cy = cy + cy * random.uniform(-1, 1) + 1
x_ = _cx - _side_len / 2
y_ = _cy - _side_len / 2
n_w = random.randint(int(min(img_w, img_h) * 0.35),
int(min(img_w, img_h) * 0.40))
n_x = random.randint(0, img_w - n_w)
n_y = random.randint(0, img_h - n_w)
new_box = [x_, y_, x_ + _side_len, y_ + _side_len]
ratio = utils.iou(new_box, np.array(boxes))[0]
n_new_box = [n_x, n_y, n_x + n_w, n_y + n_w]
n_ratio = utils.iou(n_new_box, np.array(boxes))[0]
生成的数据样本: