深度学习之二维目标检测R-CNN家族系列算法总结(理论篇)

背景:最近在学习目标检测的知识,看了二维目标检测方面two-stage的部分算法即R-CNN家族(R-CNN、Fast R-CNN、Faster R-CNN),读了论文和一些博客,自己想写一篇博客做一个简单的总结和对比,供自己日后回忆复习,供他人参考~

1、R-CNN

一、概述:

        R-CNN可以说是利用深度学习进行目标检测的开山之作,作者Ross Girshick在2014年提出,在PASCAL VOC的目标检测竞赛中折桂,甚是经典!

R-CNN论文链接

二、算法流程:

深度学习之二维目标检测R-CNN家族系列算法总结(理论篇)_第1张图片

1、一张图像生成1K~2K个候选区域(使用Selective Search方法)(原论文中是2000个)

        利用Selective Search算法通过图像分割的方法得到一些原始区域,然后使用一些合并策略将这些区域合并,得到一个层次化的区域结构,而这些结构就包含着可能需要的物体。

2、对每个候选区域,使用深度网络提取特征

        将2000个候选区域缩放到227x227pixel,接着将候选区域输入事先训练好的AlexNet CNN网络获取4096维的特征,得到2000x4096维的特征矩阵。

3、特征送入每一类的SVM分类器,判断是否属于该类

        将2000x4096维特征与20个SVM组成的权值矩阵4096x20相乘,获得2000x20维矩阵表示每个建议框是某个目标类别的得分。分别对上述2000x20维矩阵中每一列即每一类进行非极大值抑制剔除重叠建议框,得到该列即该类中得分最高的一些建议框。

        NMS:寻找得分最高的目标,计算其他目标与该目标的IOU值,删除所有IOU值大于给定阈值的目标,重复该操作。

4、使用回归器精细修正候选框位置

        对NMS处理后剩余的建议框进一步筛选。接着分别用20个回归器对上述20个类别中剩余的建议框进行回归操作,回归器的输入仍然是第2步中CNN提取出来的2000x4096的特征矩阵,最终得到的输出是每个类别的修正后得分最高的bounding box。

三、R-CNN框架:

深度学习之二维目标检测R-CNN家族系列算法总结(理论篇)_第2张图片

【注】:参考博客如下,感谢~

文章1、文章2、文章3、文章4、文章5、文章6、文章7、文章8

2、Fast R-CNN

一、概述:

        Fast R-CNN是作者Ross Girshick继R-CNN后的又一力作,2015年提出的,使用VGG16作为网络的backbone,与R-CNN相比训练时间快了9倍,测试推理时间快了213倍,准确率从62%提升到了66%。

Fast R-CNN论文链接

二、算法流程:

深度学习之二维目标检测R-CNN家族系列算法总结(理论篇)_第3张图片

1、一张图像生成1K~2K个候选区域(使用Selective Search方法)

2、将图像输入网络得到相应的特征图,将SS算法生成的候选框投影到特征图上获得相应的特征矩阵

3、将每个特征矩阵通过ROI pooling层缩放到7x7大小的特征图,接着将特征图拉平通过一系列全连接层得到预测结果

注:总损失=分类器损失+回归器损失,其中分类器损失用的是交叉熵损失,回归器损失用的是smoothL1损失,还用到了[u>=1]这种艾弗森括号。

三、Fast R-CNN框架:

深度学习之二维目标检测R-CNN家族系列算法总结(理论篇)_第4张图片

【注】:参考博客如下,感谢~

Fast R-CNN博客

 3、Faster R-CNN

一、概述:

        Faster R-CNN是作者Ross Girshick2016年提出的,同样使用VGG16作为网络的backbone,推理速度在GPU上达到了5fps(包括候选区域生成),准确率也有进一步提升,从Fast R-CNN的2秒多处理每张图片,到现在的0.x秒,速度可谓是有较大的提升。

Faster R-CNN论文

二、算法流程:

深度学习之二维目标检测R-CNN家族系列算法总结(理论篇)_第5张图片

1、将图像输入网络得到相应的特征图

2、使用RPN结构生成候选框,将RPN生成的候选框投影到特征图上获得相应的特征矩阵

3、将每个特征矩阵通过ROI pooling层缩放到7x7大小的特征图,接着将特征图拉平通过一系列全连接层得到预测结果

注:RPN + Fast R-CNN = Faster R-CNN。

RPN网络结构: 生成anchors -> softmax分类器提取positvie anchors -> bbox reg回归positive anchors -> Proposal Layer生成proposals

三、Faster R-CNN框架:

深度学习之二维目标检测R-CNN家族系列算法总结(理论篇)_第6张图片

【注】:参考博客如下,感谢~

Faster R-CNN博客

结论:二维目标检测的R-CNN家族系列算法提出的比较早了,从今天的角度看,可能不管是准确率还是速度上都“已经过时”,但是这个家族是非常经典的Two-stage的目标检测算法,对近几年的火爆的部分三维目标检测算法有着非常大的启发意义,所以还是值得一学,值得一看哈哈~

你可能感兴趣的:(计算机视觉,深度学习,目标检测,cnn)