目标检测之方法论
摘要
目标检测是近些年来计算机视觉和数字图像处理的一个研究热点,它是图像处理和计算机视觉学科的重要分支,广泛应用于自动驾驶,机器人导航、智能视频监控、工业检测、航空航天等诸多领域。它的主要任务是检测已知的类别在图像中的实例,它包含物体定位和物体分类两个子任务,同时确定物体的类别和位置。传统的的目标检测算法通过区域选择,特征提取,分类三个步骤实现对物体的检测。随着深度学习技术的发展,目标检测算法采用不同的深度学习网络来提高目标检测技术的速度和准确度。它可以分为 one stage, two stage 和 multi stage 三种类别。在这里本文主要回顾了目标检测的经典算法, 主要包括R-CNN, Fast R-CNN, Faster R-CNN。并采用已知的数据对这些算法的识别速度和检测精度进行了横向比较,并总结了不同算法的特点和应用范围。
概述
另一方面,由于卷积神经网络在目标检测领域的应用,使得基于深度学习的目标检测方法在近些年来发展十分迅速。2013年,Ross Girshick等人提出了R-CNN网络,首次CNN方法引入目标检测领域,大大提高了目标检测效果,同时改变了目标检测领域的主要研究思路。2015年,
传统目标检测方法
区域选择:
特征提取:
分类:分类的目的是将图片用一种层次化的方法进行表述。在上一步中所提取的候选区域的特征将被送到分类器,分类器采用适当的算法对其进行分类,用事先确定好的类别和实例ID来描述图片。传统目标检测采用的分类器算法有:SVM,Adaboost,DPM等。
根据目标检测具体的应用场景,研究人员对以上三个步骤的具体算法做了各种各样的改进,以实现更高的准确率与更快检测速度。 在过去的20年里,研究人员在传统目标检测领域做了很多的研究,提出了一些可以看做里程碑式的经典算法,如图二所示,接下来我们将按照时间顺序介绍一些传统目标检测领域的重要算法。
Haar-like特征 + Adaboost
2001年,Viola和Jones提出了用于人脸识别的目标检测算法,这种算法大大提高了人脸检测的效率和精度。该算法主要基于三个重要步骤:Haar-like特征,Adaboost分类和Cascade级联分类器
论文采用了最简单的矩形特征作为Feature descripter, 作者创新性的提出了积分图的概念。该图像和原图像大小相同,其每个位置的值为像素点左上所有像素点之和。 采用这张积分图,使得计算任意矩形区域的特征值的运算可以通过矩形框四角的所对应的值相加减得到(见图2)
首先论文采用了哈尔矩形特征作为Feature descripter. 该特征通过计算矩形明暗区域的像素和差值来描述区域的特征。作者创新性的提出了积分图的方法来简化运算,该图像和原图像大小相同,其每个位置的值为像素点左上所有像素点之和。 采用该图可以使任意矩形区域的特征值通过积分图上矩形四个顶点的值进行运算,这大大降低了计算负担。
其次,
HoG + SVM
HOG descripter是传统目标检测领域的重要的里程碑,它在SIFT,和形状上下文的基础上,在均匀建个的单元格密集网络上使用
特征提取链: 输入图像首先被分成许多小的空间区域(616像素块,四个 88 的像素单元),通过收集像素中每个像素的梯度和边缘方向 可以计算一维面向梯度的直方图。 但是由于局部照明的差异以及前景和背景的对比度,梯度强度变化的范围非常大,因此需要对梯度的局部对比度进行归一化。 需要进行对比度归一化的步骤,以使描述符对光照,阴影和边缘变化具有鲁棒性。 然后,将规范化描述符(HOG描述符)填充到密集网格中的检测窗口中,并将由HOG描述符形成的特征向量放入线性SVM分类器中以实现二进制分类。 最后,检测窗口扫描输入图像的多尺度图像金字塔,通过非最大抑制来检测物体。在分类器的训练过程中,dalal等人采用一个两步的训练方法,使得误检率减少了5% 。
DPM + LSVM
值得一提的是,Dalal的论文所提出的HOG+SVM方法采用固定的模板来提取HOG特征,这种方法对于无法处理目标的形变问题。 2008年,P. Felzenswalb在HOG特征的基础上提出了DPM+LSVM的方法,这种方法在由HOG特征生成的金字塔上,采用一个粗略的模板来涵盖物体,和一个精细的模板来检测物体的可形变部分。 通过这种方法,作者在2007 PASCAL挑战赛的20个类别中的十个类别获得最佳结果。并且检测精度是2006 PASCAL冠军的两倍。作者也因此在2010年获得 PASCAL VOC的终身成就奖
**系统概述: **基于滑动窗口法,该目标检测系统由一个root filter和多个part models组成.
基于深度学习的目标检测方法
1998年,Yann LeCun提出了LeNet-5的网络结构,该结构可以端到端训练模型以进行文档检测。 它成为最经典的CNN结构,以后的大部分CNN模型都源自此版本。 2012年,Kriszhevsky等人在物体检测领域采用了基于CNN的方法。 在2014年,Ross Girshick等人。 提出的R-CNN,其出色的性能吸引了研究人员的注意。 从那时起,深度学习成为对象检测领域的一个热点。
与具有手工功能的传统方法相比,基于CNN的方法可以更分层和更深入地表示特征。 典型的CNN结构由具有特征图的许多层组成。 特征图中的像素(神经元)通过权重连接到先前的特征图。 可以通过具有共享权重的卷积核从上一层的局部区域中获取每一层的特征。 输入图像将在网络中重复计算,低级特征将在初始层中计算,而高级特征则可在后续层中提取。 结果上,模型的表达能力将通过CNN结构得到了指数级的提高。 特征可以以较高的语义层面来表达。
随着研究的不断深入,基于深度学习的方法发展出了两种不同的方向。 第一种是以RCNN, Fast RCNN,Faster RCNN为代表的两阶段模型(two stage frameworks),又称作基于区域模型(region based frameworks)。该方法遵循传统的目标检测流程,首先生成候选区域(region proposal),然后根据所提取的特征将这些候选区域分为不同的类别。 第二种是基于分类/回归的一步框架,它可以直接从图像的像素映射到边界框坐标和类别的概率。通过这种方法可以大大降低时间开销。其代表模型有: Yolo, SSD。
One stage Model
随着上一小节提到的RCNN,Fast R-CNN, Faster R-CNN等论文对两阶段模型的潜力的发掘,两阶段模型的检测精度不断的提高。 但同时由于两阶段模型需要先生成区域候选的步骤,其检测速度成为了限制其性能的瓶颈,并且由于其计算成本的问题,使其也难以应用到性能比较中庸的穿戴设备或移动设备中去。 为了解决这一问题,研究人员提出了一种新的统一的检测架构,其不同于two Stage modeld的架构,该统一架构的不需要生成区域预选,直接从整幅图像上预测目标的边界框坐标和类别概率。通过这种方法大大提高了检测的速度。该架构被称作One Stage Model.
R-CNN
在R-CNN出现之前,最成功的目标检测模型是DPM,其在VOC数据集上的最佳表现是mAP 34.3%左右,但是Ross Girshick在2013年提出的R-CNN方法将这个
install_url
to use ShareThis. Please set it in _config.yml
.