基于深度学习的小目标检测算法文献综述阅读
最近做了一个对于小目标检测算法的文献的阅读,在搜查文献的时候,了解了目标检测的发展过程以及其中比较典型的算法,以下根据汇报的PPT从四个方法介绍小目标检测算法文献综述,分别是:目标检测的简要介绍、小目标检测背景介绍及难点、小目标检测算法介绍、总结与展望,此篇博客也可作为汇报的讲稿。
目标检测简要介绍
目标检测过程简单的可以分为两个过程:定位和识别,定位是对于某一个目标位于哪一个位置而言,识别是指所定位的目标是什么,是一个分类问题。目标检测的发展也可以分为两个过程,其一是传统的目标检测,另一个是基于深度学习的目标检测。
传统目标检测
传统目标检测可以分为三个过程:获取检测窗口、手工设计感兴趣目标的特征、训练分类器。
1998年Papageorgiou发表一篇关于A general framework for object detection,提出Harr分类器,这是一个用于检测人脸的目标检测分类器,计算获取的每个检测窗口的像素总和,然后取它们的差值,利用差值作为特征进行目标分类,该方法的优点是速度快。2004年,David Lowe首次提出旋转尺度不变特征变换SIFT,并在 2004 年进行补充完善,SIFT 提取图像的局部特征,图像旋转、尺度缩放、亮度变化等现象不会影响特征的提取;对视角变化、仿射变换和噪声也具有很好的稳定性,并且具有高速性和可扩展性等众多优点。Navneet Dalal 和 Bill Triggs 在 CVPR 2005 提出了方向梯度直方图(Histogram of Oriented Gradient, HOG),HOG 通过统计并计算图像局部区域的梯度直方图来构成特征,图像几何和光学形变不会影响特征提取,具有很好的稳定性,使用 HOG+SVM 算法在行人检测中也取得相当好的效。
到 2010 年,由 Pedro Felzenszwalb 提出形变部件模型(Deformable Part Model, DPM),采用改进后的 HOG 特征,结合 SVM分类器和滑动窗口(Sliding Windows),对目标多视角问题和本身的形变问题分别用多组件策略和图结构部件模型策略来处理。此外,使用多示例学习自动确定样本所属类别和部件模型位置等潜变量。DPM由于其优秀的检测性能连续在2007、2008、2009 年的 Pascal VOC (Visual Object Class)中获得冠军,Felzenszwalb 也因此在2010 年被授予终身成就奖。
传统的目标检测算法的优点是检测的准确度较高,但缺点是时间复杂度比较高、窗口冗余高。传统的目标检测的算法是对全图进行华创扫描,对于要检测的目标完全没有针对性。而随着计算机科学技术和GPU等硬件设施的发展,基于深度学习的目标检测算法开始兴起。
基于深度学习的目标检测
基于深度学习的目标检测是将深度网络应用于目标检测,根据检测的原理可将目标检测算法分类两阶段法和单阶段法。
基于候选区域的目标检测
基于区域提取的检测方法首先通过选择性搜索(Selective Search)或 RPN(Region Proposal Net)等方法提取出候选区域,然后利用回归等方法对候选区域进行分类和位置 预 测 ,代 表 算 法 有 RCNN、SPP-Net、Fast RCNN、Faster RCNN和 Mask RCNN等。
2014年Girshick等提出RCNN,该算法在VOC2007的测试集上的mAP达到了48%。RCNN 算法主要包含 4 个步骤:①利用选择性搜索算法提取候选区域,将候选区域缩放至同一大小;②使用卷积神经网络提取候选区域特征;③SVM 分类器对候选区域特征分类;④利用边框回归算法进行边框预测。RCNN 算法作为第一个基于深度学习的较成熟算法,相比于传统机器学习算法有了很大进步,但其劣势也很明显:
采用 4 个分离的步骤进行检测不适于端到端训练;每次检测都需要生成 2 000 多个候选框,每个候选框都需要一次卷积操作,重叠的候选框带来大量的重复计算,极大影响了检测速度。
2014年何恺明提出金字塔池化层网络SPP-Net,传统的 CNN 网络由于连接了全连接层,因此需要对输入的图片尺寸进行裁剪或拉伸,以符合全连接层输入要求。但是在图片裁剪或拉伸过程中会扭曲图像,使目标特征有所变形。为解决这一问题,SPP-Net 在 CNN 网络中加入了空间金字塔池化层(SPP)。不管输入尺寸如何,SPP 都会将其输出固定为同一个尺寸,提高了图像的尺度不变性并降低了过拟合。采用 SPP 后,只需要对图像作一次卷积操作,通过计算原图与特征图的映射关系即可得到图像的候选区域,大幅缩减了算法的检测时间。1
2015年Ren提出FastRCNN算法,与RCNN不同的是,FastRCNN先对图片通过神经网络提取特征,再选出候选区域并将不同的输入ROI池化为相同的大小,最后,对全连接层输出进行边框回归和分类。ROI池化可以避免对候选区域进行缩放,减少了算法的运行时间,但是选择候选区域仍然比较费时。
2015年Ren等再次提出了Faster RCNN,首先提取图片特征;其次,将图片特征送入 RPN(Region Proposal Network)网络得到提取的区域;然后提取边界框特征;最后,根据候选框特征预测物体的边界框和类别。相比于 Fast RCNN 算法,该算法较重要的改进点就是采用 RPN 代替 Selective Search 提取候选区域。算法另一个极为重要的改进就是先验框的引入,此后的YOLO等单阶段的算法也采用了这个方法。
基于回归的目标检测
基于回归的目标检测算法只对图片进行一次卷积运算,其直接在第一次卷积运算中对目标进行定位和识别,这类算法比如YOLO(You only look once)、SSD、YOLOv2等。
2016年Redmon等提出了YOLO网络,YOLO 将检测看作回归问题,只作一次卷积操作,因此检测速度很快。但是 YOLO 算法由于划分尺度问题,对小目标的检测效果不太理想。若同时出现两个目标中心落在同一个网格中,算法就不能很好地检测出目标。之前看YOLO时做的笔记: YOLOv1阅读笔记-扫描版.
2016年Liu等提出了SSD(Single Shot MultiBox Director),SSD在一个网络中直接回归出目标的类别和具体位置,其次采用卷积神经网络进行预测,另外在网络结构上采用不同尺度的特征提取器,最终达到了很好的检测精度和检测速度。
2016年Redmon等在YOLO的基础上提出了YOLOv2,YOLOv2对于YOLOv1的改进体现在以下几方面:归一化、使用高分辨率图像对模型进行微调、采用了先验框、聚类提取先验尺度、约束预测边框的位置、Passthrough层检测细粒度特征、多尺度图像训练、采用Darknet-19网络。总的来说,YOLOv2就是对YOLO的改进,在检测速度和检测精度上都得到了提升。
小目标检测背景介绍及难点
目前目标检测算法算的发展是比较好了,现在YOLOv5都已经发布了,但是小目标检测的问题在目标检测领域来说时比较困难的,小目标从尺寸类型可以分为绝对尺寸和相对尺寸,绝对尺寸的小目标尺寸不大于 32*32,相对尺寸是相对于图像来说,目标尺寸不大于图像尺寸的十分之一。对于复杂场景下的小目标,尤其对卫星遥感图像来说,分辨率高视野大,目标相对尺寸较小是它的主要特点。而目前主流的目标检测算法对小目标检测的召回率低,检测精度不高,很难达到实时应用的要求。因此,对高分辨率图像的小目标检测的研究不仅是现在目标检测中的重点,更是这一领域的难点,并且在现实应用中具有十分重要的意义。
小目标检测算法介绍
就目前的小目标检测来说,可以简单分为三类:多尺度预测、反卷积与上采样、对抗网络GAN,这三类采用不同的方法对小目标的检测进行改进。
多尺度预测
在之前的基于回归的目标检测中,应用了多尺度的检测,但是最终的预测值仅有一个,多尺度预测不仅采用多个尺度对图片的特征进行提取,而且在不同的尺度上都会进行预测。其中代表性的算法包括:LIN在2017提出的FPN模型,2018年Singh提出了SNIP算法,2018年赵亚男等提出了MFDSSD算法。以下通过介绍FPN算法来介绍多尺度预测方法。
FPN(Feature Pyramid Networks for Object Detection),
FPN主要是在网络的结构方面进行改进,首先,使用Resnet、vgg等网络,构建由下向上的特征金字塔,然后通过上采样,构建自上而下的网络,接着对其进行横向连接。原来多数的目标检测只采用顶层特征做预测,但低层的特征语义信息比较少,但目标位置比较准确,高层的特征语义信息比较丰富,但目标比较粗略。其次,有一些算法虽然也采用了多尺度的特征融合,但是只对最后的融合特征进行预测,FPN对每一个融合的特征都进行了预测。
反卷积和上采样
小目标在图像中所占像素较少,而且轮廓比较粗糙。如果能提高图像特征的分辨率,使小目标的特征变大,对小目标检测是有帮助的。将反卷积和上采样应用在网络中可以提高特征图尺寸,通过与低层特征融合可提高特征的表达力,更好地预测小目标。2016年,Fu等人针对SSD方法在小目标上检测效果不好的问题,提出了DSSD模型;2015,Jonathan提出了FNC网络;2018年,范钦明提出了AFFSSD网络;这些方法都通过反卷积等方法提高了图片中低分率的语义信息。下面仅对DSSD进行粗略的介绍;
DSSD对于SSD网络的改进主要在以下两点:一、把SSD网络的基础网络由VGG换成了Resnet-101,增强了特征提取能力;二、使用反卷积层增加了大量的上下文信息。低分辨率的特征信息作为上下文你信息,通过反卷积与前面两倍分辨率信息的特征图像进行融合,最后通过一个预测模块进行预测。
把红色层做反卷积操作,使其和上一级的蓝色层的尺度相同,再把两者融合起来,得到新的红色层来做预测。
对抗网络GAN
PGAN使用感知生成式对抗网络(Perceptual GAN)提高小物体检测率,生成器将低分辨率小目标的特征转化为高分辨率大物体的特征,分辨器与生成器以竞争的方式分辨特征,在不断的迭代过程中,缩小小目标与大目标直接的差异来提高小目标检测的准确率。PGAN挖掘不同尺度物体间的结构关联,提高小物体的特征表示,使之与大物体类似。包含两个子网络,生成网络和感知分辨网络。生成网络是一个深度残差特征生成模型,通过引入低层精细粒度的特征将原始的较差的特征转换为高分变形的特征。分辨网络一方面分辨小物体生成的高分辨率特征与真实大物体特征,另一方面使用感知损失提升检测率。
总结与展望
目前小目标检测的算法基本都是在现有的深度网络上进行改进,使之能够适应小目标识别;
其次,相对于大目标检测,小目标检测的数据集较少且质量不佳;
展望就算了吧哈哈哈
源于张新于2020年发表的基于深度学习的小目标检测算法综述 ↩︎
来源:oschina
链接:https://my.oschina.net/u/4349018/blog/4695759