CNN全称Convolutional Neural Network,即卷积神经网络,是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。
R-CNN (Region Convolutional Neural Neta Work),首先提出了在候选区域(Region)上采用自上而下的卷积神经网络(CNN)。
R-CNN采用了迁移学习的思想,采用AlexNet CNN网络,在ILSVRC样本集上进行预训练。ILSVRC样本集上仅有类别标签,没有位置标签。 通过预训练,网络具有了初步提取图片特征(纹理、色彩等特征)的基本能力。
| 样本 | 来源 |
|---|---|
| 正样本 | 候选区域与实际位置IOU值>0.5的候选区域 |
| 负样本 | 候选区域与实际位置IOU值>0.5的候选区域 |
| 针对特定的任务,进行进一步训练,提高特征提取能力。 |
原论文实在PASCAL VOC 2007样本集上了进一步训练,PASCAL VOC 2007样本集上既有类别标签,也有位置标签。
需要注意的是,并非将图片直接送入网络进行训练,而是对每张图片选取候选区域,将候选区域与实际位置的IOU值>0.5的作为正类,IOU<0.5的作为负类,每次送入32个正样本和96个负样本。
这里说的正类负类,并不是指样本的标签,比如说对于一张皮卡车的图片选择了若干个候选区域,一个区域的IOU值>0.5,那么将这个区域的内容标签记为'皮卡', 另一张IOU值<0.5,则标签记为'背景',这样能极大提高样本数量,进而增强网络提取特征的能力。
(...)
Fast R-CNN基于R-CNN主要做出了两点改进:
- 一是在卷积层后增加了Rol Pooling Layer,这使得不同尺寸的图片输入网络后能够输出同样尺寸的特征图,在进一步输入全连接层。
- 二是提出了多任务损失函数(Muti-task loss),将边框回归和分类在网络中同时进行,而不是像R-CNN重新训练SVMs。