一 R-CNN 模型
如果要拟人化比喻,那 R-CNN 肯定是 Faster R-CNN 的祖父了。换句话说,R-CNN 是一切的开端。
R-CNN,或称 Region-based Convolutional Neural Network,其工作步骤如下:
1.借助一个可以生成约 2000 个 region proposal 的「选择性搜索」(Selective Search)算法,R-CNN 可以对输入图像进行扫描,来获取可能出现的目标。
2.在每个 region proposal 上都运行一个卷积神经网络(CNN)。
3.将每个 CNN 的输出都输入进:
a)一个支持向量机(SVM),以对上述区域进行分类。
b)一个线性回归器,以收缩目标周围的边界框,前提是这样的目标存在。
下图具体描绘了上述 3 个步骤,结构示意图:
换句话说,首先,我们给出一些建议区域,然后,从中提取出特征,之后,再根据这些特征来对这些区域进行分类。本质而言,我们将目标检测转化成了图像分类问题。R-CNN 模型虽然非常直观,但是速度很慢。
二 Fast R-CNN
直接承接 R-CNN 的是 Fast R-CNN。Fast R-CNN 在很多方面与 R-CNN 类似,但是,凭借两项主要的增强手段,其检测速度较 R-CNN 有所提高:
在推荐区域之前,先对图像执行特征提取工作,通过这种办法,后面只用对整个图像使用一个 CNN(之前的 R-CNN 网络需要在 2000 个重叠的区域上分别运行 2000 个 CNN)。将支持向量机替换成了一个 softmax 层,这种变化并没有创建新的模型,而是将神经网络进行了扩展以用于预测工作。
Fast R-CNN 模型结构示意图: