赞
踩
接上篇 【目标检测】1. 目标检测概述_目标检测包括预测目标的位置吗?-CSDN博客
CVPR201 4经典paper:《 Rich feature hierarchies for accurate object detection and semantic segmentation》,https://arxiv.org/abs/1311.2524, 这篇论文的算法思想被称为R- CNN(Regions with Convolutional Neural Network Features),该算法思想更改了物体检测的总思路,现在很多物体检测算法均基于该算法。简单来讲: R-CNN是一种基于Region Proposal的CNN网络结构。
R-CNN算法中采用和传统目标检测类似的执行过程,主要包含以下几个步骤:
1.区域提名(Region Proposal): 通过区域提名的方法从原始图片中提取2000个左右的区域候选框,一般选择Selective Search(SS);
2.区域大小归一化:将所有候选框大小缩放固定大小(eg:227*227);
3.特征提取: 通过CNN网络,对每个候选区域框提取高阶特征;
4.分类与回归:在高阶特征的基础上添加两个全连接层,再使用SVM分类器来进行识别,用线性回归来微调边框位置与大小,其中每个类别单独训练一个边框回归器。
目标检测是计算机视觉领域中的一项关键任务,它的目标是识别出图像中所有感兴趣的目标的类别和位置。目标检测算法大体上可以分为两大类:单阶段(one stage)和双阶段(two stage)。
双阶段目标检测算法,如R-CNN系列(包括Fast R-CNN, Faster R-CNN等),通常由两个主要步骤组成:
区域提议(Region Proposal): 第一阶段是生成区域提议,这些提议是可能包含目标的图像区域。在Faster R-CNN中,这个步骤由区域提议网络(Region Proposal Network, RPN)完成,它会对整个图像进行扫描,找出可能包含目标的区域。
目标检测(Detection): 第二阶段是在每个提议的区域上运行分类器来确定区域的类别,并调整区域的边界框(bounding box),以准确地框住目标。这一步骤通常涉及特征抽取、分类和边界框回归。
双阶段方法通常准确度较高,因为它们在细致的区域上进行了分类和回归,但这也导致了较慢的推理速度。
单阶段目标检测算法,如YOLO(You Only Look Once)和SSD(Single Shot Multibox Detector),旨在简化检测流程,通过单个网络直接进行目标的分类和边界框预测。
直接检测: 单阶段方法没有区域提议这个步骤,而是直接在图像的各个位置上预测目标类别和边界框。这通常通过在图像上滑动窗口,一次性预测多个区域的方法实现。
分类与回归合并: 这些算法通常使用一个单一的卷积网络同时预测边界框和类别概率,这使得推理速度非常快。
单阶段方法的优点是速度快,能够实现实时检测,但可能牺牲一些准确度,尤其是在目标尺寸变化较大的情况下。
上图展示了神经网络模型用于图像分类的过程。网络模型包含多个层次,每个层次完成不同的计算任务。这个过程可分为几个主要部分:
卷积和池化(Convolution and Pooling):
最终的卷积特征图(Final conv feature map):
全连接层(Fully-connected layers):
类别得分(Class scores):
Softmax损失(Softmax loss):
图2中重新初始化最后一个全连接层的维度,从原来的1000个类别修改为21个类别,这通常是为了适应一个新的特定任务,以满足只有20个对象类别加上背景类共21个类别的目标检测任务。重新初始化这一层意味着原来的权重将被放弃,新的权重维度将用于新的分类任务。这个过程被称为迁移学习,即利用一个在大型数据集上预训练的模型,并将其适应到一个新的相似任务上。
使用padding(真实内容填充、特殊值填充)、缩放等操作,将候选区域转换为227* 227的图像大小。
图7:不同的目标提案转换。 (A) 实际尺度相对于变换的CNN输入的原始目标提案; (B) 带上下文的最紧凑正方形; (C) 不带上下文的最紧凑正方形,使用灰色填充; (D) 变形。在每列和示例提案中,顶行对应于 p = 0 像素的上下文填充,而底行有 p = 16 像素的上下文填充。
“上下文填充”指的是在目标周围额外添加的像素区域,以便提供更多背景信息。在目标检测任务中有助于改善模型对目标物体的理解。
对于进行大小缩放的ROI区域图,使用CNN网络提取出区域图像对应的高阶特征信息(FC7层),然后使用SVM算法将其划分为两个类别:
正样本:包含当前类别的区域图像
负样本:不包含当前类别的区域图像
对于进行大小缩放的ROI区域图像,使用CNN网络提取出区域图像对应的高阶特征信息(Conv5层),使用回归器(全连接神经网络)精细修正候选框位置:对于每一个类,训练一个线性回归模型去判定这个框是否框得完美。
对于进行大小缩放的ROI区域图像,使用CNN网络提取出区域图像对应的高阶特征信息(Conv5层),使用回归器(全连接神经网络)精细修正候选框位置:对于每一个类,训练一个线性回归模型去判定这个框是否框得完美。
为了进一步的提高定位的精确率,引入Bounding Box Regression(BBR)进行定位边框的微调。
如上图所示,绿色框为实际标准的卡宴车辆框,即Ground Truth;黄色框为Selective Search算法得出的建议框,即Region Proposal。即使黄色框中物体,被分类器识别为卡宴车辆,但是由于绿色框和黄色框loU值并不大,所以最后的目标检测精度并不高。采用回归器是为了对建议框进行校正,使得校正后的Region Proposal与Ground Truth更接近,以提高最终的检测精度。
在RCNN模型训练中,主要有以下几点:
为什么在CNN softmax模型训练之外, 需要单独训练一个SVM分类器呢?
为了进一步的提高定位的精确率,引入Bounding Box Regression(BBR)进行定位边框的微调。
如上图所示,绿色框为实际标准的卡宴车辆框,即Ground Truth;黄色框为Selective Search算法得出的建议框,即Region Proposal。即使黄色框中物体,被分类器识别为卡宴车辆,但是由于绿色框和黄色框loU值并不大,所以最后的目标检测精度并不高。采用回归器是为了对建议框进行校正,使得校正后的Region Proposal与Ground Truth更接近,以提高最终的检测精度。
如下图,黄色框口P表示建议框Region Proposal,绿色窗口G表示实际框Ground Truth,红色窗口G^表示Region Proposal进行回归后的预测窗口,现在的目标是找到P到G ^的线性变换。
相较于P, G^的中心坐标和长宽都会发生变换,变换公式及步骤如下:
Region Proposal窗口表示
分别表示中心点坐标横轴值、中心点坐标纵轴值、窗口宽度、窗口高度。
Ground Truth窗表示:
Region Proposal进行回归转换后的窗口表示:
定义四种变换函数,其中中心点通过对x和y进行平移变换得到,宽度w和高度h通过进行缩放变换得到。计算公式如下所示:
结合上述转换函数,我们的目的是要求线性转换之后的边框和实际边框非常接近,那
么也就是目标转换系数为(也就是模型训练值<offset box,位置偏移量> ):
每一个 (*表示x、y、W、h)都是CNN网络的高阶特征提取值(Conv5层)的线性转换函数,即:
这里的w即需要学习的回归参数,损失函数如下:
为了提高样本框回归训练的有效性,对于每类样本中采用与Ground Truth相交loU大于0.6的Region Proposal作为样本对(P,G)进行BBR的训练。之所以选择loU大于0.6的进行回归微调,其主要原因是如果边框间隔太远,那么其转换关系可能就不是线性转换,使用线性转换的方式效果显著。对于每个类别均训练一个BBR线性转换结构。也就是RCNN中最终由N个BBR线性转换。
Bounding Box 回归后性能比较
在迁移学习中BB的性能优势
RCNN深度学习应用目标的奠基者:
RCNN缺陷:
R-CNN已经不是最先进的目标检测模型,但是它是深度学习应用目标检测的奠基者,在
RCNN中的很多缺陷问题,也在后续的目标检测网络结构中得以解决,其主要问题如下:
欢迎加入,目标检测学习群:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。