深度学习笔记32 物体检测算法 R-CNN,SSD,YOLO


R-CNN:物体检测的奠基性工作

其实就是在CNN的基础上,加了一个RoI池化层,(region of interest,兴趣区域)。

给定一个锚框,将锚框均匀分割成nxm块,输出每一块的最大值,这样就能总是输出nm个值。

(当然不可能一直均匀,肯定有不均匀的时候,一块比一块多一些很正常)

这样就可以让切割好的样本组成batch(都是nm这么大),之后就可以扔到CNN中训练了。

  Fast RCNN

使用CNN对图片抽取特征;使用RoI池化层对每个锚框生成固定长度的特征。

他相对于RCNN的提升,其实就是不再对所有的RCNN做特征抽取,而是有选择地抽取(这里涉及到一个很复杂的selective search算法)

之前生成的锚框可能会有很多重叠,而重叠面积特别大的锚框很明显处理一个就可以了,因此叫做fast。

Faster R-CNN

 faster相对于fast网络来说,是用RPN(region proposal network,区域建议网络)代替了selective research算法,对于生成的大量锚框,我们做预测,如果这个锚框效果好,才把它扔到RoI池化层中。

记得回顾一下锚框的内容:https://zhuanlan.zhihu.com/p/63024247

Mask R-CNN 没听懂……短时间用不到,暂时不玩

单发多框检测(SSD,SS:signal stage、signal shout)【这个SSD和硬盘没有任何关系】

 随后,直接对这些生成的锚框抽取特征,再用多个卷积层来减半高宽。

在每一段都生成锚框,底部(图片中最上面)用来拟合小物体,顶部用来拟合大物体,对每个锚框预测类别和边缘框。

其实就是一个在分辨率上多尺度的RCNN?(个人理解)

YOLO(You only look once,你只看一次,坐着的本意就是追求快)

SSD中锚框有大量重叠,浪费了很多计算量,而YOLO的思想就是让锚框尽量不重叠(只看一次)

YOLO将图片均匀分成了SXS个锚框

 每个锚框会预测B个边缘框(因为很可能一个物体会被不同锚框分割)

YOLO在工业界的物体检测仍然被广泛采用。

确实,看了YOLO在Ted的presentation,是个个性的人,一直在考虑如何跳出  权利支持-获得技术-巩固权利  这个怪圈,可以看看:https://www.youtube.com/watch?v=XS2UWYuh5u0