一、R-CNN 区域卷积神经网络
对每张图选取多个区域,然后每个区域作为一个样本进入一个卷积神经网络来抽取特征,最后使用分类器来对齐分类,和一个回归器来得到准确的边框。
步骤:
- 对输入的每张图片使用一个基于规则的“选择性搜索”算法来选取多个提议区域
- 选取一个预先训练好的卷积神经网络并去掉最后一个输出层,每个区域被调整成这个网络要求的输入大小并计算输出,这个输出将作为这个区域的特点
- 使用这些区域特征来训练多个SVM来做物体识别,每个SVM是预测一个区域是否包含某个物体
- 使用这些区域特征来训练线性回归器将提议区域
可能会特别慢,一张图可以选出上千个区域,导致一张图要做上千次预测。
二、Fast R-CNN 快速的区域卷积神经网络
改进:1、R-CNN里面的大量区域是相互覆盖的,重新抽取过于浪费,因此Fast R-CNN先对输入图片抽取特征,然后选取区域。2、使用单个逻辑回归来分类。
三、Faster R-CNN 更快速的区域卷积神经网络
改进:提出了区域提议网络RPN来代替选择性搜索。
- 在输入特征上放置一个填充为1通道是256的3*3卷积。这样每个像素,连同它的周围8个像素,都被映射成一个长为256的向量。
- 以每个像素为中心,生成k个大小和长宽比都预先设计好的默认边框,通常也叫锚框。
- 对每个边框,使用其中心像素对应的256维向量作为特征,RPN训练一个2类分类器来判断这个区域是不是含有任何感兴趣的物体还是只是背景,和一个4维输出的回归器来预测一个更准确的边框。
- 对于所有的锚框,个数为nmk果输入大小是n*m,选出被判断成还有物体的,然后前他们对应的回归器预测的边框作为输入放进接下来的RoI池化层。
RPN思想非常直观。首先提议预先配置好的一些区域,然后通过神经网络来判断这些区域是不是感兴趣的,如果是,那么再预测一个更加准确的边框。这样我们能有效降低搜索任何形状的边框的代价。
四、YOLO
改进:生成的锚框不是重叠的,将图片均匀地分成S*S块,每一块当作一个锚框。每个锚框预测B个边框以及这个锚框包含哪个物体。