SSD论文阅读

SSD正负样本获取
SSD经过网络生成后产生大量的defualt box,需要对这些defualt box进行筛选操作以减少样本不平衡带来的影响。

1.正样本获取
先从groudtruth box出发给每个groudtruth box找到了最匹配的prior box放入候选正样本集,然后再从prior box出发为prior box集中寻找与groundtruth box满足IOU>0.5的一个IOU最大的prior box(如果有的话)放入候选正样本集,这样显然就增大了候选正样本集的数量。
2.负样本获取
经过上一步获得P个正样本,负样本就是8732-P,但是这个数字任然较大,直接进行训练,得到的结果负样本产生的loss占比过高,所以需要进行筛选。SSD
采用 hard negative mining进行处理(将ground truth与prior box匹配产生的confidence loss 进行排序),选择loss最高的前N个样本,使负样本与正样本的比例保持在3:1。

SSD数据增强
数据增强pytorch实现
ssd数据增强给有两种方法:
1.expand
expand是指对大尺寸图像进行缩小,在生成图像周围补零从而保持尺寸,大的物体通过expand可以变为小尺寸物体,可增加小尺寸物体数据样本数量。提高ssd对小物体检测能力。
2.batch_sampler
batch_sampler是对图像选取一个满足限制条件的区域(注意这个区域是随机抓取的)。限制条件就是抓取的patch和GT(Ground Truth)的IOU的值。

步骤是:先在区间[min_scale,max_sacle]内随机生成一个值,这个值作为patch的高Height,然后在[min_aspect_ratio,max_aspect_ratio]范围内生成ratio,从而得到patch的Width。到此为止patch的宽和高随机得到,然后在图像中进行一次patch,要求满足与GT的最小IOU是0.9,也就是IOU>=0.9。如果随机patch满足这个条件,那么张图会被resize到300300(在SSD300300中)送进网络训练。

二.代码阅读(pytorch)
求交集面积:
def intersect(box_a, box_b):
Args:
box_a: Multiple bounding boxes, Shape: [num_boxes,4]
box_b: Single bounding box, Shape: [4]
max_xy = np.minimum(box_a[:, 2:], box_b[2:])
min_xy = np.maximum(box_a[:, :2], box_b[:2])
inter = np.clip((max_xy - min_xy), a_min=0, a_max=np.inf)#np.clip用于处理数组,将小于a_min的元素变为a_min,大于a_max的元素变为a_max
return inter[:, 0] * inter[:, 1]

求并集面积:
def jaccard_numpy(box_a, box_b):
“”“Compute the jaccard overlap of two sets of boxes. The jaccard overlap
is simply the intersection over union of two boxes.
E.g.:
A ∩ B / A ∪ B = A ∩ B / (area(A) + area(B) - A ∩ B)
Args:
box_a: Multiple bounding boxes, Shape: [num_boxes,4]
box_b: Single bounding box, Shape: [4]
Return:
jaccard overlap: Shape: [box_a.shape[0], box_a.shape[1]]
“””
inter = intersect(box_a, box_b)
area_a = ((box_a[:, 2]-box_a[:, 0]) *
(box_a[:, 3]-box_a[:, 1])) # [A,B]
area_b = ((box_b[2]-box_b[0]) *
(box_b[3]-box_b[1])) # [A,B]
union = area_a + area_b - inter
return inter / union # [A,B]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值