Fast R-CNN论文阅读笔记

创新点:

  1. 规避R-CNN中冗余的特征提取操作,只对整张图像全区域进行一次特征提取。
  2. 用ROI pooling层取代最后一层MAX pooling层,同时引入候选框信息,提取相应候选框特征。
  3. Fast R-CNN网络末尾采用并行的不同的全连接层,可同时输出分类结果和窗口回归结果,实现end-to-end的多任务训练(候选提取除外),也不需要额外的特征存储空间。(R-CNN中这部分特征是供SVM和Bounding-box regression进行训练的)
  4. 采用SVD对Fast R-cnn网络末尾并行的全连接层进行分解,减少计算复杂度,加快检测速度。

Fast R-CNN的网络结构:

  1. 任意size图片输入到cnn网络,经过若干卷积层和池化层,得到特征图。
  2. 在任意size图片上采用selective search算法提取约2k个候选框。
  3. 根据原始图到特征图映射关系,在特征图中找到每个候选框对应的特征框(深度和特征图一致),并在ROI池化层中将每个候选区域的特征框池化到H*W的size.(VGG16的网络是7*7)
  4. 固定H*W大小的特征框经过全连接层得到固定大小的特征向量。
  5. 第4步所得特征向量经由各自的全连接层(由SVD实现),分别得到两个输出向量:一个是softmax的得分分类,一个是Bounding-box窗口回归。
  6. 利用窗口得分分别对每一类物体进行非极大值抑制剔除重复候选框,最终得到每个类别中回归修正后的得分最高的窗口。

整个测试过程为什么可以只进行一次CNN特征提取操作? 

答:在R-CNN网络中,它首先采用Selective Search算法提取2k个候选框,并对所有候选框进行特征提取,会出现重叠区域的多次重复提取特征,这些操作非常耗时、耗空间。事实上候选区的特征图和整张图片的特征图存在一定的对应关系,因此仅需对整张图片进行一次特征提取,再找出相应候选框的特征图在该候选框中的对应区域。这样就可以避免冗余的特征提取操作,节省大量时间。

 

为什么要将每个候选框对应的特征框池化到H×W 的size?如何实现? 

答:AlexNet CNN等网络在提取特征过程中对图像的大小并无要求,只是在提取完特征进行全连接操作的时候才需要固定特征尺寸,利用这一点,Fast R-CNN可输入任意size图片,并在全连接操作前加入RoI池化层,将候选框对应特征图中的特征框池化到H×W 的size,以便满足后续操作对size的要求;

方法:将每张特征图划分为H×W个小框,然后对每个子窗口采用max pooling下采样,即每个子窗口只取一个最大值,则特征框最终池化为H×W的size【特征框各深度同理】,这将各个大小不一的特征框转化为大小统一的数据输入下一层。

 

为什么要采用SVD分解实现Fast R-CNN网络中最后的全连接层?具体如何实现?

答:在目标检测任务中,selective search算法提取的建议框比较多【约2k】,几乎有一半的前向计算时间被花费于全连接层,就Fast R-CNN而言,RoI池化层后的全连接层需要进行约2k次【每个建议框都要计算】,因此在Fast R-CNN中可以采用SVD分解加速全连接层计算;

 

文中仅采用selective search算法提取约2k个候选区域,那候选区域越多越好吗? 

答:不是。文中利用selective search算法提取1k~10k中10种数目【1k,2k…】的候选区域进行训练测试,发现随着候选区域个数的增加,mAP成先增加后缓慢下滑的趋势,这表明更多的候选区域会有损精度;

 

如何处理尺度不变性问题?即如何使24×24和1080×720的车辆同时在一个训练好的网络中都能正确识别?

答:文中提及两种方式处理:brute-force(单一尺度)和image pyramids(多尺度)。单一尺度直接在训练和测试阶段将image定死为某种scale,直接输入网络训练就好,然后期望网络自己能够学习到scale-invariance的表达;多尺度在训练阶段随机从图像金字塔【缩放图片的scale得到,相当于扩充数据集】中采样训练,测试阶段将图像缩放为金字塔中最为相似的尺寸进行测试;实验证明了深度神经网络善于直接学习尺度不变形,对目标的scale不敏感。

 

为什么不沿用R-CNN中的形式继续采用SVM进行分类? 

答:针对Fast R-CNN,文中分别进行实验并对比了采用SVM和采用softmax的mAP结果,不管AlexNet【S for small】、VGG_CNN_M_1024【M for medium】、VGG-16【L for large】中任意网络,采用softmax的mAP都比采用SVM的mAP高0.1%~0.8%,这是由于softmax在分类过程中引入了类间竞争,分类效果更好;Fast R-CNN去掉了SVM这一步,所有的特征都暂存在显存中,就不需要额外的磁盘空间。

 

训练数据越多效果越好吗?

文中分别在VOC 2007、VOC 2010、VOC 2012测试集上测试,发现训练数据越多,效果确实更好。

 

Fast R-CNN如何进行多任务训练?多任务训练有效果吗?

答:Fast R-CNN网络分类损失和回归损失如下图所示【仅针对一个RoI即一类物体说明】,黄色框表示训练数据,绿色框表示输入目标:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值