前言

由于基于深度学习的方法较传统方法相比,准确率有了较明显的提升,故只学习基于深度学习方法的目标检测。

RCNN系列算法将从论文着手,结合其他资料,学习R-CNN、 Fast R-CNN、Faster R-CNN。

R-CNN的全称是Region-CNN,是第一个成功将深度学习应用到目标检测上的算法。R-CNN基于卷积神经网络(CNN),线性回归,和支持向量机(SVM)等算法,实现目标检测技术。[ref] R-CNN_百度百科 (baidu.com)[/ref]

论文与源码

原论文:1311.2524.pdf (arxiv.org)

代码:rbgirshick/rcnn: R-CNN: Regions with Convolutional Neural Network Features (github.com)

img

R-CNN论文

R-CNN下载

摘要

img

摘要

摘要首先开门见山地指出与之前传统方法相比,R-CNN一下子将平均精度提高了30%(至53.3%),可见其有效性。

指出了本文的两个要点:① 高容量卷积神经网络自底向上,以便定位和分割对象;② 当标记的训练数据稀少时,用于辅助任务的监督预训练,接着是域特定的微调,产生显著的性能提升。

RCNN名字由来:Regions with CNN features。

结论

img

结论

结论部分内容描述内容与摘要基本一致。在这里作者提到了“计算机视觉“和”深度学习”两种工具结合使用,这一方法在现在看起来应该是十分常见的了,但是在2014年,这一结论确实有着对应的时代意义。

介绍

img

介绍

在介绍部分,作者给出了本篇论文提出的时代背景:最近几年(2010年左右)在目标检测领域,传统算法达到了瓶颈。传统的特征提取方法如SIFT和HOG只能提取表层特征,而卷积神经网络可以提取到更多的信息。

正是在这几年,人们重新发现了深度学习方法在图像处理领域,尤其是在图像分类任务优异的表现,作者便想要弥合图像分类与目标检测之间的性能鸿沟。作者提出了两个待研究问题:用深度网络定位对象和用少量标注的检测数据训练高容量的模型。

定位问题

  • 方法一:将定位问题描述为一个回归问题。Szegedy等人在实践中证明该方法性能不佳。

  • 方法二:建立一个滑动窗口探测器。与CNNs思路一致。

存在问题:输入图像中具有非常大的感受野(195×195像素)和步幅(32×32像素),滑动窗口范式中的精确定位成为一个开放的技术挑战

img

介绍

本文解决思路:“使用区域的识别”。使用CNN从每个建议中提取一个固定长度的特征向量,然后用特定类别的线性SVM对每个区域进行分类。使用一种简单的技术(仿射图像翘曲)来计算每个区域提案的固定大小的CNN输入,而不管区域的形状如何。 由于将区域建议与CNNS结合在一起,我们将该方法命名为R-CNN:具有CNN特征的区域。系统设计概述见下图。

img

目标检测系统概述

带标记数据稀缺问题

  • 常规解决方案:使用无监督的预训练,然后是有监督的微调。
  • 本文提出方案:大辅助数据集上进行有监督的预训练(ILSVRC),然后在小数据集上进行特定领域的微调(PASCAL)。

img

介绍

R-CNN目标检测算法细节

img

算法细节介绍

目标检测系统包含三个模块:① 生成与类别无关的区域建议;② 从每个区域获得固定长度特征向量的卷积神经网络;③ 一组特定类的SVM。

模型设计

区域提案

R-CNN选择selective search算法实现。

特征抽取

从每个区域抽取4096维特征,特征是通过将减去均值的227×227 RGB图像向前传播通过五个卷积层和两个完全连接层来计算的。

论文中提到,227×227是直接通过缩放变形实现的。

img

扭曲训练区域的随机采样

测试时间检测

论文使用SS算法提取了大约2000个区域建议。

图像的所有点积都被批处理成单个矩阵-矩阵积。特征矩阵通常为2000×4096,SVM权重矩阵为4096×N,其中N为类别数。

R-CNN可以扩展到数千个对象类,而不需要求助于近似技术。

训练

  • 有监督的预训练
  • 特定领域微调
  • 对象类别分类器

存在问题

img

R-CNN存在问题

1.1Faster RCNN理论合集_哔哩哔哩_bilibili