R-CNN
总之,R-CNN取得成功的两个关键因素:
1:在候选区域上自下而上使用大型卷积神经网络(CNNs),用以定位和分割物体。
2:当带标签的训练数据不足时,先针对辅助任务进行有监督预训练,再进行特定任务的调优,就可以产生明显的性能提升
简单来说,RCNN使用以下四步实现目标检测:
a. 在图像中确定约1000-2000个候选框
b. 对于每个候选框内图像块,使用深度网络提取特征
c. 对候选框中提取出的特征,使用分类器判别是否属于一个特定类
d. 对于属于某一特征的候选框,用回归器进一步调整其位置
经典的R-CNN存在以下几个问题: 训练分多步骤(先在分类数据集上预训练,再进行fine-tune训练,然后再针对每个类别都训练一个线性SVM分类器,最后再用regressors对bounding box进行回归,并且bounding box还需要通过selective search生成) 时间和空间开销大(在训练SVM和回归的时候需要用网络训练的特征作为输入,特征保存在磁盘上再读入的时间开销较大) 测试比较慢(每张图片的每个region proposal都要做卷积,重复操作太多) 在Fast RCNN之前提出过SPPnet来解决R-CNN中重复卷积问题,但SPPnet仍然存在与R-CNN类似的缺陷: 训练分多步骤(需要SVM分类器,额外的regressors) 空间开销大
FAST-CNN
改进的地方
- 卷积不再是重复对每一个region proposal,而是对于整张图像先提取了泛化特征,这样子减少了大量的计算量(注意到,R-CNN中对于每一个region proposal做卷积会有很多重复计算)
- ROIPooling的提出,巧妙的解决了尺度放缩的问题
- 将regressor放进网络一起训练,同时用softmax代替SVM分类器,更加简单高效
Fast R-CNN目标检测主要流程如下:
(1). 输入一张待检测图像;
(2). 提取候选区域:利用Selective Search算法在输入图像中提取出候选区域,并把这些候选区域按照空间位置关系映射到最后的卷积特征层;
(3). 区域归一化:对于卷积特征层上的每个候选区域进行RoI Pooling操作,得到固定维度的特征;
(4). 分类与回归:将提取到的特征输入全连接层,然后用Softmax进行分类,对候选区域的位置进行回归。
不足:
region proposal的提取仍然采用selective search,整个检测流程时间大多消耗在这上面(生成region proposal大约2~3s,而特征提取+分类只需要0.32s),之后的Faster RCNN的改进之一便是此点。
Faster-rcnn
faster-RCNN的关键点(区域推荐网络RPN)详解
原文地址:https://www.cnblogs.com/henuliulei/p/12112376.html
时间: 2024-11-02 18:44:21