目标检测
训练部分
第一阶段
- 所训练模型的已知条件
- 输入图片input image ,图片是227x227x3的类型
- 人工的标注grand-truth(对目标对象位置的标注),(gx,gy,gw,gh)即目标物体的gx,gy坐标的高和宽,和类别y
- 输入图片Selective Serach处理
处理目的:得到尺寸不一的候选框Proposals,即(px,py,pw,ph)
算法
1.颜色相似度(color similarity),采用颜色直方图
2.纹理相似度(texture similarity),采用梯形直方图
3.尺寸相似度和交叠相似度
4.各种相似度平均加权
将不同的proposa拉伸到一个固定的尺寸,输入到深度学习中进行提取特征
- 要求:拉伸到固定的尺寸,需要选择合适的正样本和负样本,送入深度学习网络
- 衡量标准IOU:是产生的候选框(Proposals)与原标记框(grand-truth)的交叠率。即它们的交集与并集的比值。
- 具体方法
- a.根据proposal框与grandtruth框的IOU值
- 1)IOU>=0.5的候选框为正样本
- 2)IOU < 0.3的候选框为负样本
- 3)0.3 <= IOU < 0.5的候选框为灰色地带,这个区间的候选框被抛去
- b.一般的正样本会用到后续满足Bounding-box有效条件修正。
- c.通常负样本远远大于正样本时,一般限定正负样本比为1:3,并使用hard negative mining取代随机从IOU < 0.3的候选框中选取
第二阶段
- 从深度学习网络得到:proposal的已知条件(px,py,pw,ph) 与grandtruth的位置参数(gx,gy,gw,gh)的映射关系t_pre(dict),当前框中目标类别y_pre(dict);相应的label为t和目标类别y。
- RCNN算法train时得到label中映射关系t的过程称为编码过程。
- 编码过程(可以理解编码之后的真实值)
- t_x = (G_x - P_x) / P_w
- t_y = (G_y - P_y) / P_w
- t_w = log(G_w / P_w)
- t_h = log(G_h / P_h)
解释说明: 经过深度学习后输出为映射关系t_pre = f(wx),目标类别y_pre=g(wx)
位置目标的预测函数为 loss = (t-f(wx))2+…+(t-f(wx))2,其中t为(t_x,t_y,t_w,t_h),f(wx)为t_pre
得到求取预测框G_pre需要的映射关系t_x_pre,t_y_pre,t_w_pre,t_h_pre和目标预测y_pre
G_x_pre = t_x_pre * P_w + P_x
G_y_pre = t_y_pre * P_w + P_y
G_w_pre = P_w * exp(t_pre)
G_h_pre = t_x_pre * P_w + P_xe
注意:上些式子是一个非线性变换,P和G要离的比较近,当P和G相距过远的时候基本不会是同一个物体,P和G最大的IoU要离的比较近,否则抛弃P框
通过SVMs得到y_pre
预测部分
- 模型test的已知条件:输入图片input_imageh和训练好的模型参数w
- 输入图片Selective Serach处理,得到尺寸不一的候选框Proposals
- 将不同的proposa拉伸到一个固定的尺寸,输入到深度学习中进行提取特征
- a.proposal与G_pre的映射关系t_pre,通过解码关系得到G_pre
- b.目标预测类别y_pre