文章目录
- 1 目标检测faster rcnn(RPN: 筛选出可能会有目标的框)
- 1. Anchor遍历 及RPN前向37 * 50 * 9= ==16650==个anchors
- 2. proposal生成, 利用上述预测得分可以得到更有可能包含物体的proposal(==2000==个)利用与所有标签的最大IoU>0.7 为正样本,<0.3为负样本,而将0.3到0.7之间的anchor直接抛弃,=0的过滤
- 3. RPN 默认256anchor计算loss不超过128正 坐标修正loss 原文Lreg = R(t-t*) :smooth L1
- 4. NMS筛选proposal得到ROI (train=true时==256==个)测试时==300==个ROI 后续做分类
- 5 . ROI pooling 和ROI align
- 6 送入RCNN全连接softmax 分类20+1类别,精修坐标偏移值256 个ROI相当于batchsize ** 512* 7*7 =延展ROI和全连接网后得到 256 * 4096 ,再cls256**21,Reg 256**84(21**4= 84)这里64个正样本参与计算smoothL1
- 训练 one stage 和 two stage
1 目标检测faster rcnn(RPN: 筛选出可能会有目标的框)
https://zhuanlan.zhihu.com/p/138515680
与fast rcnn不同的是用RPN代替SS,基于anchor滑窗生成前景物体候选矩形框。输入是任意尺度的图像,输出是一系列矩形候选框bounds和scores是不是物体的概率。能够检测出多尺度范围和长宽比的物体。
anchor是遍历(特征map每个点对应的多尺度多长宽比的方框k=9,对应到原图基本可以涵盖所有可能出现的物体),通过学习只需要将anchor与真实物体进行匹配,进行分类与位置微调即可。,这样的先验无疑降低了网络收敛的难度
每个特征点对应3个scale和3个长宽比的矩形,所以K = 9. 步骤如下
1. Anchor遍历 及RPN前向37 * 50 * 9= 16650个anchors
feature map 中的点对应的anchor(k=9) 预测有无物体的cls向量29= 18d,及其49=36d的bbox基于anchor中心的偏移值,共16650,并过滤掉超过图像边框的
- 假设ahchor A的 中心坐标和宽高是 (xa ,ya,wa , ha)(先验知识,遍历的时候可以得到),于此同时存在一个gt的label bbox的中心和宽高(x,y,w,h), 则可计算偏移量tx,ty,tw,th (真值对应平移 和 伸缩变换),目前因为每个anchor以上8个值都可得到,现在通过预测得到(tx*,ty*,tw*,th*)即可反求出预测的中心和宽高(x*,y*,w*,h*)
2. proposal生成, 利用上述预测得分可以得到更有可能包含物体的proposal(2000个)利用与所有标签的最大IoU>0.7 为正样本,<0.3为负样本,而将0.3到0.7之间的anchor直接抛弃,=0的过滤
3. RPN 默认256anchor计算loss不超过128正 坐标修正loss 原文Lreg = R(t-t*) :smooth L1
为什么如此设置
当预测偏移量与真值差距较大时使用2阶函数导数会太大,不利于收敛,所以采用一阶otherwise
分类的loss的label 是anchor 与 gt bbox 进行IOU匹配计算,较好的为正样本,否则为负,计算softmax
假设feature map是3750,则有3750*9=16650个anchors
4. NMS筛选proposal得到ROI (train=true时256个)测试时300个ROI 后续做分类
按物体预测得分anchor前12000个,,再用NMS去掉重复框,再选出前2000个
训练时:利用IoU选出256个(0.7,0.3)
测试时:300个
5 . ROI pooling 和ROI align
ROI pooling (量化取max pooling的步长)
因为image 经过 cnn得到feature map下采样16倍,假如image中有个anchor是332*332,则在feature map上的长度为 332/16 = 20.75,这里得取整数20,则产生一定的误差。
然后 20 * 20也要 ROI pooling 得到 7 * *7 则 最后的特征图量化 pooling 步长 = 20 / 7 = 2.857 取整 为2,max pooling之后得到 7 7向量(实际上只用到了1414的区域,其他特征浪费了)
2 ROI align 采用双线性插值获得坐标为浮点数的点的值20.75不做量化
RoI池化层使用最大池化将任何有效的RoI内的特征转换成具有H×W 例7*7的固定空间范围的小特征图,其中H和W是层的超参数,独立于任何特定的RoI
最近邻插值
6 送入RCNN全连接softmax 分类20+1类别,精修坐标偏移值256 个ROI相当于batchsize ** 512* 7*7 =延展ROI和全连接网后得到 256 * 4096 ,再cls25621,Reg 25684(21**4= 84)这里64个正样本参与计算smoothL1
End-to-End Deep Learning for Person Search
训练 one stage 和 two stage
faster rcnn训练方式有两种,一种是交替优化方法(alternating optimization),即训练两个网络,一个是rpn,一个是fast rcnn,总计两个stage,每个stage各训练一次rpn和fast rcnn。另外一种训练方式为近似联合训练(approximate joint training),也称end to end的训练方式,训练过程中只训练一个权重网络,训练速度有可观的提升,而训练精度不变。
https://blog.csdn.net/yixieling4397/article/details/81609030
https://zhuanlan.zhihu.com/p/58788775