深度学习笔记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