区域卷积神经网络R-CNN

区域卷积神经网络R-CNN

https://www.bilibili.com/video/BV1iJ411V7pM

1、图像分割:

图像分割就是把图像分成若干个特定的、具有独特性质的区域并提出感兴趣目标的技术和过程。它是由图像处理到图像分析的关键步骤。

(1)现有的图像分割方法主要分以下几类:
基于阈值的分割方法、
基于区域的分割方法、
基于边缘的分割方法
基于特定理论的分割方法等。

(2)按分割目的划分

  • 普通分割
    将不同分属不同物体的像素区域分开。
    如前景与后景分割开,狗的区域与猫的区域与背景分割开。
  • 语义分割
    在普通分割的基础上,分类出每一块区域的语义(即这块区域是什么物体)。
    如把画面中的所有物体都指出它们各自的类别。
  • 实例分割
    在语义分割的基础上,给每个物体编号。

2、R-CNN

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

R-CNN遵循传统目标检测的思路,同样采用提取框,对每个框提取特征、图像分类、 非极大值抑制四个步骤进行目标检测。只不过在提取特征这一步,将传统的特征(如 SIFT、HOG 特征等)换成了深度卷积网络提取的特征。R-CNN 体框架如图所示。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上面的框架图清晰的给出了R-CNN的目标检测流程:

(1) 输入测试图像

(2) 利用selective search算法在图像中提取2000个左右的region proposal。

(3) 将每个region proposal缩放(warp)成227x227的大小并输入到CNN,将CNN的fc7层的输出作为特征,得到一个特征向量。

(4) 将每个region proposal提取到的CNN特征输入到SVM进行分类,预测出候选区域中所含物体的属于每个类的概率值。每个类别训练一个SVM分类器,从特征向量中推断其属于该类别的概率大小。

(5)为了提升定位准确性,R-CNN最后又训练了一个边界框回归模型,通过边框回归模型对框的准确位置进行修正。

2.1细节说明

  • Selective Search:一种产生候选区的方法,没有用到深度学习,需要在 CPU 上训练,比较耗时,简称 SS。
  • Region proposal:直译为成区域建议(有些别扭),就是生成候选区的过程,类似于比赛前的海选,其中的 region 是矩形区。方法有 Selective Search,论文中产生 2000 个候选区,下面简称这部分产生的区域为候选区。
  • Bounding box:直译为边界框,就是最后输出定位的那个矩形框。严格来说,分为人工标注的 ground truth 和 predicted 两种类型。有时候简称为 BB。
  • Region of interest(ROI:感兴趣的区域,有时候论文把 region proposal 产生的区域叫 ROI。
  • Non maximum suppression(NMS):非极大值抑制,简称为 NMS 算法,其思想是搜素局部最大值,抑制极大值,在目标检测的目的是输出最合适的边界框。
  • Fully connected layer:全连接层,我下面简写为 FC 层
  • Feature map:卷积层的输出,可翻译为特征图。
(1)训练集

经典的目标检测算法在区域中提取人工设定的特征(Haar,HOG)。本文则需要训练深度网络进行特征提取。可供使用的有两个数据库:
一个较大的识别库(ImageNet ILSVC 2012):标定每张图片中物体的类别。一千万图像,1000类。
一个较小的检测库(PASCAL VOC 2007):标定每张图片中,物体的类别和位置。一万图像,20类。
本文使用识别库进行预训练,而后用检测库调优参数。最后在检测库上评测。

(2)selective research

步骤一:
将图像A分成不同的子区域R1,R2…Rn
A = R 1 ∪ R 2 ∪ R 3.... ∪ R n A=R1\cup R2\cup R3....\cup Rn A=R1R2R3....Rn
根据交叠、尺寸、纹理、颜色(最终的相似度是这四个值取不同的权重相加)计算相邻子区域的相似度S12,S23,S34…再相加得到S
S = S 12 ∪ S 23 ∪ S 34 . . . . S=S_{12}\cup S_{23}\cup S_{34}.... S=S12S23S34....

步骤二:
找出相似度最大的子区域如R1,R2,将 R1,R2区域合并成Rn+1,并加入到A中
A = R 1 ∪ R 2 ∪ R 3.... ∪ R n ∪ R n + 1 A=R1\cup R2\cup R3....\cup Rn\cup Rn+1 A=R1R2R3....RnRn+1
并将S中所有和S1和S2相关的相似度都删除

步骤三:
将合并后的分割区域作为一个整体,跳到步骤1,直到 S = ∅ S=\varnothing S=,
此时 A = R 1 ∪ R 2 ∪ R 3.... ∪ R n ∪ R n + 1.... ∪ R n + m A=R1\cup R2\cup R3....\cup Rn\cup Rn+1....\cup Rn+m A=R1R2R3....RnRn+1....Rn+m

通过不停的迭代,候选区域列表中的区域越来越大。可以说,我们通过自底向下的方法创建了越来越大的候选区域Region proposal。表示效果如下:

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

(3)分类标签

因为训练过程是监督学习过程,所以需要给Region proposals标上标签。
groundtruth

在这里插入图片描述

根据提取的Region proposals和groundtruth之间的的IOU来确定Region proposals的标签:

在这里插入图片描述

(4)SVM分类

在此模型中用神经网络提取特征,用SVM分类器进行分类。SVM二分类器只能判断region proposal是否属于某个类别,所以模型分类类别有几种,就有几个SVM二分类器。之所以选用SVM作为分类器,是因为region proposal一般都和groundtruth相差比较大,实验表明选用SVM分类器可以一定程度提高分类准确度。
在这里插入图片描述
由于直接用Region proposals来训练网络,所以最后得到的bounding box都不会很准确,所以要训练bounding box回归模型。并通过非极大值抑制技术来得到最终的物体的精确位置。

(5)训练bounding box回归模型

对每一类目标,使用一个边界框回归模型进行精修。正则项λ=10000, 输入为深度网络pool5层的4096维特征,输出为xy方向的缩放和平移。

Region proposal的位置:
P = ( P x , P y , P w , P h ) P=(P_{x},P_{y},P_{w},P_{h}) P=(Px,Py,Pw,Ph)
groundtruth的位置:
G = ( G x , G y , G w , G h ) G=(G_{x},G_{y},G_{w},G_{h}) G=(Gx,Gy,Gw,Gh)
x,y代表中心点,w,h代表宽和高

在这里插入图片描述
在边界框回归中,我们利用了线性回归在RCNN论文代表这AlexNet第5个池化层得到的特征即将送入全连接层的输入特征的线型函数。在这里,我们将特征记作 ϕ5(P)

bounding box的训练目标就是建立P->G的映射,输入为P,输出为预测的G,我们将映射拆成四个部分

在这里插入图片描述

在这里插入图片描述
转化成最优化问题,使得使预测的G和实际的G相差最小,tx,ty,tw,th对应以上四个映射,测试的时候,这个映射关系就可以调整Region proposals的位置,来提升bounding box的精确度。

在这里插入图片描述
最后通过回归模型,同一物体能得到许多bounding box的位置,我们对bounding box进行打分(置信度:网络对预测结果正确的信心),通过非极大值抑制技术去除冗余的bounding box,最后选出分数最高的bounding box。

在这里插入图片描述

在这里插入图片描述

3、R-CNN框架存在着的问题:

(1) 训练分为多个阶段,步骤繁琐: 微调网络+训练SVM+训练边框回归器

(2) 训练耗时,占用磁盘空间大:5000张图像产生几百G的特征文件

(3) 速度慢: 使用GPU, VGG16模型处理一张图像需要47s。

针对速度慢的这个问题,SPP-NET给出了很好的解决方案。见下篇博客。

### 回答1: 区域卷积神经网络Region-based Convolutional Neural Network,R-CNN)是一种用于目标检测的深度学习模型。它由Ross Girshick等人于2014年提出,是目标检测领域的一个重要里程碑。 R-CNN的基本思想是先使用选择性搜索(Selective Search)等算法对输入图像进行区域提取,然后对每个提取出的区域进行卷积神经网络CNN)特征提取,最后使用支持向量机(SVM)进行目标分类和边界框回归。整个R-CNN模型可以分为三个部分:区域提取、CNN特征提取和目标分类与边界框回归。 具体来说,R-CNN首先对输入图像进行选择性搜索,得到一些可能包含目标的区域。然后,对每个区域进行裁剪和缩放,将其转换为固定大小的图像块,并输入到预训练的CNN模型中进行特征提取。在这里,R-CNN使用了AlexNet等经典的CNN模型来提取特征。最后,使用SVM对每个区域进行分类和边界框回归,得到目标检测结果。 R-CNN虽然在目标检测领域取得了很好的效果,但其存在一些问题,例如计算量大、训练时间长等。后续的研究者对R-CNN进行了改进,提出了Fast R-CNN、Faster R-CNN和Mask R-CNN等模型,进一步推动了目标检测领域的发展。 ### 回答2: 区域卷积神经网络(R-CNN)是一种用于物体检测和识别的神经网络模型。R-CNN模型在传统的卷积神经网络的基础上增加了区域建议网络(Region Proposal Network, RPN)和区域分类器(Region Classifier)两个关键组件。 首先,RPN组件负责生成一系列可能包含物体的候选区域。它通过在输入图像上滑动一个大小固定的窗口,并对每个窗口提取特征。然后,RPN利用这些特征来评估窗口是否可能包含物体。这个评估过程可以通过二分类器来完成,即判断每个窗口内是否有物体。同时,RPN还会为每个窗口生成可能包含物体的候选边界框(bounding box)。 接下来,区域分类器组件负责对每个候选区域进行物体分类和边界框的精确定位。首先,每个候选区域都会被改变成固定的大小,并通过卷积操作提取特征。然后,这些特征会被输入到一个全连接的分类器中,用于判断候选区域内的物体类别。同时,另一个全连接的回归器用于对边界框进行微调,从而更精确地定位物体。 整个R-CNN模型的训练过程是从已标注的图像数据中获取正负样本,其中正样本是与真实边界框有高IoU(Intersection over Union)的候选区域,负样本则是与真实边界框有低IoU的候选区域。这些样本以及经过卷积操作提取的特征将被用于训练分类器和回归器的参数。 相比于传统的物体检测方法,R-CNN模型能够更准确地定位和识别物体。它通过引入RPN和区域分类器的方式,不仅能够生成候选区域,还能对每个候选区域进行分类和精确定位。这种端到端的训练方式使得R-CNN模型具有更高的准确性和鲁棒性,因而在许多计算机视觉任务中取得了很好的效果。 ### 回答3: 区域卷积神经网络(R-CNN)是一种用于目标检测和图像识别的深度学习算法。传统的卷积神经网络CNN)将所有图像的区域都视为相等的,并忽略了目标在图像中的具体位置。而R-CNN通过引入区域建议网络(Region Proposal Network,RPN)来解决这个问题。 R-CNN的工作流程包括三个主要步骤:候选框生成、特征提取和目标识别。首先,R-CNN使用选择性搜索算法从图像中生成一些可能包含目标的候选框。然后,对于每个候选框,R-CNN采用卷积神经网络来提取其特征表示。这些特征被输入到一个支持向量机(SVM)分类器中,以判断该候选框是否包含目标。最后,采用边界框回归算法来微调候选框的位置,以更准确地框出目标的位置。 相比于传统的目标检测方法,R-CNN具有以下优势。首先,R-CNN利用了CNN在大规模图像数据集上预训练的能力,可以提取更丰富和有意义的特征表示。其次,R-CNN引入了RPN来生成候选框,避免了对图像中所有可能位置的滑动窗口进行处理的复杂计算,大大提高了计算效率。此外,R-CNN还引入了SVM分类器和边界框回归算法,进一步提高了目标检测的准确性。 R-CNN在目标检测任务中取得了很好的效果,并为后续的目标检测算法奠定了基础,如Fast R-CNN和Faster R-CNN。尽管R-CNN在性能上有所提升,但其训练和推理过程仍然较为复杂和耗时。因此,后续的研究提出了一系列优化方案,以提高目标检测算法的速度和精度,如YOLO和SSD等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值