Faster R-CNN小结
1. 从Fast R-CNN到Fast R-CNN
由图可见,Faster-RCNN引入了RPN网络(region proposal network)来代替selective-search,
这使得整个网络实现了端到端,即在统一的架构处理所有问题。这也是比Fast更快的原因,避免了selective-search的过程,而全替换为CNN网络。
2. 细节
很多相似的步骤在上一节Fast R-CNN叙述过,这节主要了解一下它的RPN的步骤和在后面它做分类与回归是怎么回归边框的。
下面是整个流程图。
2.1 Backbone
也就是经过Backbone得到Feature Map的网络,其中Backbone有很多可以选择,比如Resnet,VGG等等,这里图中给的是VGG16。
输出是1 * 256 * 38 * 50的大小
2.2 FPN
它的目的就是为了生成region proposal,
首先,它通过3 * 3卷积,这里这个3 * 3卷积相当于是一个承接上面步骤的一个操作,可有可无,
其次,分两条支路,上面一条做分类,下面一条做回归。
先说上面这条,它先通过1 * 1卷积,改变特征的通道数变为 1 * 18 * 38 * 50,为什么这里是18,可理解为2 * 9 ,把每个特征点映射回映射回原图的感受野的中心点当成一个基准点,然后围绕这个基准点选取k个不同scale、aspect ratio的anchor。论文中3个scale(三种面积),3个aspect ratio( {1:1,1:2,2:1} ),在这一步它产生anchor,每个特征像素点要产生9种不同的anchor,然后每个anchor分类为0或者1,故为2,所以将生成2 * 9 * 38 * 50 = 17100 anchors。然后经过reshape,这里因为要方便softmax做回归,所及将它reshape成2通道的(38 * 9) * 50,可以理解为它本来是横着放的形状,通过reshape,将它竖着放,便于分类。然后第二个reshape再单纯地将它变回去1 * 18 * 38 * 50。
再说下面这条回归,它也是先通过1 * 1卷积,改变特征的通道数变为 1 * 36 * 38 * 50,这里为什么是36呢, 可理解为4 * 9, 9是9个anchor,4则是4个targets,分别对应proposal的中点坐标和它的宽高即(x,y,w,h)。但这里它回归的并不是(x,y,w,h),而是它的偏移量Δx和Δy,为什么呢,因为不均衡,假如回归x和y的话,有一个大物体,预测与目标之间相距30pixel, 而小物体可能只差5 pixel,因此损失会比较偏向于大物体。
具体回归方法:
解释一下,粉色圈起来的是网络生成的偏移量,即predict box 对anchor的偏移,灰色的是我们自己算的偏移量,即ground truth 对anchor的偏移,称为Encode,而学习目标自然就是让前者接近后者的值。蓝色的圈则是我们想要的称为Decode。
2.3 ROI Pooling &分类与回归
与上一节Fast R-CNN相似,就不赘述了。
3. 总结
对比Fast R-CNN,Faster现在增加的RPN网络可以与其他3个阶段共用同一个特征提取结果了,省掉了selective-search的时间。
参考目录:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具