小目标检测技术在人们日常生活中使用较广泛[1-3],被应用于多个场景。例如,无人驾驶场景下利用检测摄像头捕获图像中较远和较小的目标,医学图像场景下检测较小尺度的病灶,工业制造场景下检测材料中微小瑕疵等。目前在计算机视觉领域,小目标并未被严格定义为分辨率或者像素点总量小于某尺度的物体,其通常根据研究对象或实际应用场景来定义。本文根据文献[4-5]对小目标的定义,将图像中尺寸小于20像素×20像素的物体定义为小目标。相较图像中常规尺度目标,小目标尺度占比更小、像素更少且外形特征不明显,因此,小目标检测成为目标检测亟待解决的难题之一。
近年来,传统Haar[6]、HOG[7]和SHIFT[8]等基于手工设计特征的目标检测算法因检测效率低、检测目标单一、鲁棒性差且速度慢逐渐被淘汰。随着人工智能技术的深入发展,基于卷积神经网络自动学习特征的目标检测算法因具有较高的检测速率和检测精度,被广泛应用于目标检测中的各个领域。现有基于卷积神经网络的目标检测算法主要包括Fast R-CNN[9]、Faster R-CNN[10]等基于候选区域的算法以及YOLO[11]、单激发探测器(Single Shot Detector,SSD)[12]等基于回归的算法。其中,SSD算法检测性能相对更好,但由于其仅依靠分辨率较高的Conv4_3(尺寸为38×38)浅层特征图进行小目标检测,而Conv4_3浅层特征图在模型中位置靠前,其特征提取能力不足,且上下文语义信息不够丰富,导致SSD算法对小目标检测效果较差。
研究人员在改进SSD算法的基础上对小目标检测性能进行研究并取得众多成果。文献[13]基于残差网络提出一种反卷积单激发探测器(Deconvolutional SSD,DSSD),将SSD的基础网络部分由VGG[14]网络替换为特征提取能力更强的ResNet[15]网络,并在金字塔网络后设置反卷积模块增加上下文信息,但这种由上到下逐层生成特征金字塔的方式计算量较大且增加多次融合操作,其在英伟达TITAN X显卡上每秒仅能检测9张图像,无法进行实时性目标检测。文献[16]提出一种多特征图融合的Rainbow单激发探测器(Rainbow SSD,RSSD),采用反复堆叠最大池化和反卷积的方法来融合不同尺度的卷积层特征图,但其计算量较大且特征图融合方向单一,检测性能较DSSD提升不明显。文献[17]设计一种功能融合单激发探测器(Function Fusion SSD,FSSD),通过双线性插值进行上采样来建立轻量级特征融合模块,提高了浅层特征图的特征提取能力,其检测精度和检测速度较DSSD和RSSD有较大提升,且检测速度接近SSD。文献[18]提出一种多尺度反卷积单激发探测器(Multi-Scale Deconvolutional SSD,MDSSD),分别对Conv3_3和Conv8_2、Conv4_3和Conv9_2、Conv7和Conv10_2的特征图进行融合操作,形成3个新特征图与原特征图共同进行预测,然而其虽然能满足实时检测的要求,但对检测精度的提升有限。文献[19]参考人类视觉的感受野设计出一种含有感受野模块的感受野单激发探测器(Receptive Field Block SSD,RFB-SSD),并借鉴GoogleNet构建多分支卷积层来提高网络的特征提取能力。
本文在SSD算法的基础上,提出一种采用改进密集网络和二次回归的小目标检测算法。以密集连接的DenseNet[20]替换VGG16作为基础网络,通过优化DenseNet结构提升特征提取能力和计算速度,利用基于区域候选的检测算法中默认框由粗到细筛选的回归思想,将目标与背景做简单区分后对其进行分类与位置回归以获取精确的默认框信息,设计特征图融合模块提取特征信息,同时采用特征图尺度变换方法进行特征图融合,并利用K-means聚类方法获取初始默认框的最佳长宽比。
1 SSD算法 1.1 网络结构SSD网络作为基于回归的目标检测算法的典型网络,其利用单个深度卷积神经网络结合6个不同尺度的特征图进行预测获得目标的类别和位置信息。SSD网络由基础网络和额外增加网络构成,其结构如图 1所示。
|
Download:
|
| 图 1 SSD网络结构 Fig. 1 Structure of SSD network | |
在SSD网络中,基础网络由VGG16网络去掉最后两个全连接(FC)层并新增两个卷积(Conv)层而形成,额外增加网络将Conv4-3特征图经过不断下采样操作形成尺度逐渐变小的特征图。
1.2 存在的问题SSD算法对常规尺寸目标检测精度较高且检测速度较快,虽然其通过特征金字塔网络可提取不同尺度的特征图进行目标检测,但对小尺寸目标检测效果较差。
1.2.1 特征提取不足对于小尺度的目标,SSD算法主要采用分辨率较高的Conv4_3浅层特征图进行检测,但Conv4_3浅层特征图在模型中位置靠前,其特征提取能力不足,且上下文语义信息不够丰富。深层特征图的语义信息较多,但其经过多次卷积、池化与下采样后其尺度很小,会丢失部分位置信息和重要的细节特征,且其默认框尺度较大,不适合小目标检测。
1.2.2 正负样本失衡SSD算法在6个不同尺度的特征图上共生成8 735个默认框,具体生成过程如图 2所示。
|
Download:
|
| 图 2 默认框生成过程 Fig. 2 Process of default boxes generating | |
在模型训练时对匹配成功的默认框进行类别判断和位置回归处理,由于待检测图像中背景占比较大,而检测目标占比较小,因此大部分默认框在匹配后会被标记为负样本,大量负样本损失占模型总损失的绝大部分,从而削弱正样本损失对总损失的影响,导致检测模型训练效率严重下降,模型优化方向也会受不同程度的干扰,造成模型参数无法更新到最佳值。
2 本文改进算法 2.1 基础网络目标检测算法通常选择在分类任务中表现较好的网络作为基础网络。基础网络是将分类网络模型去除全连接层后得到的网络,其负责提取图像特征,对目标检测算法性能影响较大。SSD算法使用VggNet作为基础网络,YOLO算法以GoogleNet作为基础网络,DSSD算法利用ResNet作为基础网络。
不同分类网络的大小不同,该差异会影响到目标检测算法速度,因此,需选择合适的分类网络提高算法的检测准确率和速度。增加分类网络层数或加宽网络结构可提升基础网络的性能,但会造成网络参数量增大进而降低检测速度。DenseNet从特征的角度出发,通过重复利用特征和设置旁路,大幅降低网络参数量并缓解了梯度消失的现象,可取得较好的检测效果,其网络结构如图 3所示。本文使用Pytorch框架对VggNet、ResNet、GoogleNet以及DenseNet 4种网络的分类性能进行对比分析,以Top-5错误率和每秒浮点运算次数(Flops)作为评价指标,分析结果如表 1所示。由表 1可知,DenseNet的Top-5错误率仅为2.25%,每秒浮点运算次数为19亿次,其具有最低分类错误率和较低的分类速度,因此本文将其作为基础网络来替换SSD算法中的VGG16网络。
|
Download:
|
| 图 3 原始DenseNet网络结构 Fig. 3 Structure of original DenseNet network | |
|
下载CSV 表 1 不同网络的分类性能 Table 1 Classification performance of different networks |
DenseNet第1个卷积核的大小为7×7,步长为2,输入图像在经过第一层卷积和池化下采样后,其特征信息还未被充分提取就已部分丢失,从而影响到后续特征提取,因此,本文对DenseNet进行改进。采用3个连续的3×3卷积核代替原始DenseNet中的7×7卷积核。3个连续的3×3卷积相较7×7卷积在同样尺度感受野下能更有效地减少网络参数量,并降低输入图像特征信息的损耗,最大程度地保留目标的相关细节信息,从而有效提取特征信息。改进DenseNet网络层参数如表 2所示。通过改进DenseNet得到尺度为19像素×19像素的特征图后,再经过下采样得到尺度分别为10像素×10像素和5像素×5像素的特征图用于下一步检测。
|
下载CSV 表 2 改进DenseNet网络层参数 Table 2 Network layer parameters of improved DenseNet |
Faster-RCNN等基于候选区域的目标检测算法需对候选区域进行预处理,虽然此类算法检测精度较高,但由于存在全连接层和大量网络参数,因此检测速度较慢,无法进行实时检测。SSD、YOLO等基于回归的目标检测算法为提高检测速度从一定程度上牺牲了检测精度,同时基于默认框、预测框和物体真实框之间的关系对网络进行训练,并对默认框进行回归处理。
类别严重不平衡是导致基于候选区域的目标检测算法精度低于基于回归的目标检测算法的主要原因。在SSD等一阶段端对端的检测算法中,原始图像经过卷积神经网络后会生成近万个默认框,但其中目标默认框数量占比很小,负样本与正样本的数量比例高达1 000∶1,造成正负样本比例严重失调。为解决类别不平衡的问题,文献[21]提出在线进行难例挖掘,利用bootstrapping技术对简单的负样本进行抑制,从而提高模型训练效率,然而该方法仅适用于批次数量较少的模型。文献[22]对交叉熵损失函数进行重新定义,通过在标准交叉熵损失函数中添加控制权重使模型在训练时更注重占比较少的困难正样本,但其并未从本质上解决类别不平衡的问题。
本文提出一种Ours-SSD算法(以下称为本文算法),其网络结构如图 4所示。利用二阶段非端对端目标检测算法中默认框由粗到细筛选的回归思想,设计串级SSD目标检测网络结构。第一部分SSD(ARM)对物体和背景进行简单二分类与粗略定位,第二部分SSD(ODM)根据第一部分的二分类结果过滤大部分简单负样本,然后进行目标类别的判断与位置回归。串级多次回归的网络结构具有更高的检测精度。本文为增加浅层特征图的语义特征和深层特征图的细节信息,在两个串级部分之间加入特征融合模块。
|
Download:
|
| 图 4 本文算法网络结构 Fig. 4 Network structure of the proposed algorithm | |
原始输入图像在经过多次卷积、池化和下采样后会得到尺寸逐步减小的特征图,为增加浅层特征图的语义特征和深层特征图的细节信息,需将不同尺度的特征图进行融合。在特征图融合之前,由低分率的底层特征图生成高分率的特征图,具体步骤为:1)在DSSD算法中使用反卷积方法先对特征图及其四周填充0,再对其进行卷积和裁剪,去除右侧最后一列和下方最后一行后即得到高分率特征图;2)在FSSD算法中使用双线性插值上采样方法,对特征图中无像素值的空位进行插值,将特征图放大到预设尺寸。然而反卷积方法和双线性插值上采样方法均会增加网络参数量,从而延长计算时间,降低算法实时性。为避免降低算法检测速度,本文提出一种特征图尺度变换方法,在不增加参数量的情况下扩大特征图尺寸,特征图尺度变换过程如图 5所示。先将输入特征图在通道维度上划分为C个通道长度为r2的特征图,然后将每个通道数为r2、尺寸为H×W的特征图转换成通道数为1、尺寸为rH×rW的特征图。
|
Download:
|
| 图 5 特征图尺度变换过程 Fig. 5 Process of scale transformation of feature map | |
SSD算法的检测精度和速度受网络中默认框数量的影响,数量较少的默认框能提高检测速度但会降低检测精度,数量较多的默认框虽能提升检测精度却会降低检测速度。此外,SSD算法默认框的长宽比是根据检测人员经验手工设置,虽然其长宽比会在模型训练过程中自动调整,但如果初始默认框的数量和长宽比更符合数据集中标注目标的特性,则能加快模型收敛并提升检测精度和速度。
本文通过对训练集中所有标注目标框的尺寸进行K-means聚类计算得到默认框最佳长宽比。在K-means聚类算法中,选择距离作为目标相似度的评价指标,若目标距离越小则相似度越大。经过K-means聚类计算可获得距离接近且独立的类簇结果,其具体步骤如下:
1)确定一个k值作为算法聚类分析后所得集合的个数。
2)随机选择训练集中k个数据点作为初始质心。
3)计算训练集中各个点与k个质心的距离,将其划分到距离最近的质心所在集合。
4)训练集中所有目标形成k个集合,重新计算各集合的质心。
5)若新计算的质心和原质心的距离小于预设标准,则算法完成。
6)若新计算的质心和原质心的距离大于预设标准,则需重复进行步骤3~步骤5。
本文为实现检测精度和检测速度的平衡,先选择先验框个数为5(k=5),保证算法检测速度所受影响较小,然后利用K-means算法对数据集中所有标注框进行聚类分析。
3 实验与结果分析 3.1 实验数据集本文实验采用PASCAL VOC2007公共数据集(以下称为VOC数据集)和自制航拍小目标数据集(以下称为AP数据集)。VOC数据集包含交通工具、动物、人物以及生活用品等20类常见目标,共21 503张图像。AP数据集含有22 761张源自不同传感器和采集平台的航拍样本图像,包含飞机、车辆、船舶以及建筑物等13类小尺度目标。AP数据集中各场景图像的背景较复杂,且目标具有更多尺度变化。采用平移、旋转和灰度变换等方法扩充数据集,以防止模型训练时出现过拟合现象。通过K-means聚类计算,选定VOC数据集默认框长宽比例分别为{1.0,0.5,2.6,0.7,1.3},航拍数据集默认框长宽比设定为{1.00,0.80,2.70,0.59,1.73}。VOC数据集的K-means聚类结果如图 6所示(彩色效果参见《计算机工程》官网HTML版)。
|
Download:
|
| 图 6 VOC数据集上K-means聚类结果 Fig. 6 K-means clustering results on VOC dataset | |
在模型训练初始化过程中,采用ImageNet数据集对本文算法中基础网络DenseNet进行预训练,具体步骤为:1)将所有图像数据转换为VOC数据集的格式;2)根据训练样本数量扩充数据集数据;3)利用随机梯度下降法优化损失函数以获取最优网络模型参数。
由于在小目标检测场景下尺度为0.2的最浅层特征图较大,无法检测出较小尺寸的目标,因此将最底层缩放比例Smin调整为0.08,并使用随机梯度下降SGD算法对参数更新如下:初始学习率为0.001,权值衰减项为0.000 5,动量项为0.9,批大小为32。此外,学习率设置为0.001,迭代次数为300。本文算法在Spyder编译器上编写,并基于Pytorch框架进行模型训练。实验环境为64位的Ubuntu16.04系统,Intel®CoreTMi5-8500@3.00 GHz 6核处理器,英伟达GTX 1080 Ti显卡,11 GB显存以及16 GB内存。
3.3 结果分析在VOC数据集和AP数据集上将本文算法与Faster-RCNN、R-FCN、SSD、RSSD、DSSD以及YOLO V3等主流目标检测算法进行对比分析。采用检测平均精度(Average Precision,AP)和平均精度均值(mean Average Precision,mAP)作为算法检测性能的评价指标。
3.3.1 VOC数据集上的实验上述算法在VOC数据集上的检测结果如表 3所示。
|
下载CSV 表 3 不同算法在VOC数据集上的检测结果 Table 3 Detection results of different algorithms on VOC dataset |
可以看出,本文算法的mAP值高于其他算法,其中,较Faster-RCNN算法提高9.1个百分点,较SSD算法提高5.1个百分点,较DSSD算法提高3.7个百分点,较YOLO V3算法提高1.7个百分点,YOLO V3算法与本文算法的检测性能最接近。当检测目标为椅子和鸟类时,YOLO V3的AP值较本文算法分别低5.5个百分点与0.6个百分点。此外,本文算法在检测盆栽等尺度较小的目标时,检测效果明显优于其他算法。
3.3.2 AP数据集上的实验不同算法在AP数据集上的检测效果和检测结果分别如图 7和表 4所示。由图 7可以看出,本文算法的检测效果优于其他目标检测算法。由表 4可见,本文算法的检测指标值均高于其他目标检测算法。当检测目标为船舶和储罐时,本文算法的AP值较YOLO V3算法分别高4.1个百分点与8.4个百分点。
|
Download:
|
| 图 7 不同算法的检测效果图 Fig. 7 Detection effect images of different algorithms | |
|
下载CSV 表 4 不同算法在AP数据集上的检测结果 Table 4 Detection results of different algorithms on AP dataset |
为更好地比较不同算法对小目标的检测效果,本文采用精度-召回率(Precision-Recall,PR)曲线评估算法的检测性能。在PR曲线中,若算法的精度和召回率均最大,则表明算法的检测性能最好。图 8为当检测目标为飞机和船舶时上述算法在不同召回率下的PR曲线。可以看出,本文算法的精度和召回率均优于其他算法。由上述分析结果可知,本文算法对小目标检测的精度和召回率更高,在不同场景下均能有效进行检测。
|
Download:
|
| 图 8 不同算法的PR曲线 Fig. 8 PR cruves of different algorithms | |
本文针对SSD算法对小目标特征提取能力不强的问题,提出一种改进的SSD小目标检测算法。将SSD算法中骨干网络由VGG16替换为密集连接的DenseNet提高检测精度,设计二次回归的网络结构解决候选区域默认框正负样本不平衡的问题,采用特征图尺度变换方法在不引入额外参数量情况下融合特征图,并通过K-means聚类分析获得默认框的个数和最佳长宽比。在PASCAL VOC2007公共数据集和自制航拍小目标数据集上的实验结果表明,该算法的检测平均精度均值较改进前SSD算法分别提升5.1个百分点和9.5个百分点,较RSSD、DSSD等目标检测算法检测精度更高,检测速度达到58 frames/s,具有良好的实时检测性能。后续将优化模型结构,进一步提高计算效率。
| [1] |
ZONG Yanfen. Research on the quality detection system and method of micro parts based on computer vision[D]. Harbin: Harbin University of Science and Technology, 2017. (in Chinese) 宗艳芬. 基于计算机视觉的微小零件质量检测系统和方法研究[D]. 哈尔滨: 哈尔滨理工大学, 2017. |
| [2] |
CHEN Yun. Medical image detection algorithm based on deep learning[D]. Beijing: Beijing University of Posts and Telecommunications, 2019. (in Chinese) 陈云. 基于深度学习的医学影像检测算法[D]. 北京: 北京邮电大学, 2019. |
| [3] |
SUN Xinde, FANG Guizhen, LI Lingling, et al. Infrared small target detection via combination of morphological filtering and MRF model[J]. Computer Engineering, 2012, 38(14): 153-156. (in Chinese) 孙新德, 方桂珍, 李玲玲, 等. 联合形态滤波和MRF模型的红外小目标检测[J]. 计算机工程, 2012, 38(14): 153-156. |
| [4] |
BELL S, ZITNICK C L, BALA K, et al. Inside-outside net: detecting objects in context with skip pooling and recurrent neural networks[C]//Proceedings of 2015 IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2015: 2874-2883.
|
| [5] |
MAENPAA T, PIETIKAINEN M. Image analysis with local binary patterns[C]//Proceedings of 2005 Scandinavian Conference on Image Analysis. Berlin, Germany: Springer, 2005: 115-118.
|
| [6] |
PANNING A, AL-HAMADI A K, NIESE R, et al. Facial expression recognition based on Haar-like feature detection[J]. Pattern Recognition and Image Analysis, 2008, 18(3): 447-452. DOI:10.1134/S1054661808030139 |
| [7] |
DALAL N, TRIGGS B. Histograms of oriented gradients for human detection[C]//Proceedings of 2005 IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2005: 886-893.
|
| [8] |
LOWE D G. Distinctive image features from scale-invariant keypoints[J]. International Journal of Computer Vision, 2004, 60(2): 91-110. DOI:10.1023/B:VISI.0000029664.99615.94 |
| [9] |
GIRSHICK R. Fast R-CNN[C]//Proceedings of 2015 IEEE International Conference on Computer Vision. Washington D.C., USA: IEEE Press, 2015: 1440-1448.
|
| [10] |
REN S, HE K, GIRSHICK R, et al. Faster R-CNN: towards real-time object detection with region proposal networks[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2015, 39(6): 91-99. |
| [11] |
REDMON J, DIVVALA S, GIRSHICK R, et al. You only look once: unified, real-time object detection[C]//Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2016: 779-788.
|
| [12] |
LIU W, ANGUELOV D, ERHAN D, et al. SSD: single shot multibox detector[C]//Proceedings of 2016 European Conference on Computer Vision. Berlin, Germany: Springer, 2016: 21-37.
|
| [13] |
FU C Y, LIU W, RANGA A, et al. DSSD: deconvolutional single shot detector[EB/OL]. [2020-01-20]. https://arxiv.org/abs/1701.06659.
|
| [14] |
SIMONYAN K, ZISSERMAN A. Very deep convolutional networks for large-scale image recognition[EB/OL]. [2020-01-20]. https://arxiv.org/abs/1409.1556.
|
| [15] |
HE Kaiming, ZHANG Xiangyu, REN Shaoqing, et al. Deep residual learning for image recognition[C]//Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2016: 770-778.
|
| [16] |
JEONG J, PARK H, KWAK N. Enhancement of SSD by concatenating feature maps for object detection[EB/OL]. [2020-01-20]. https://arxiv.org/abs/1705.09587.
|
| [17] |
LI Zuoxin, ZHOU Fuqiang. FSSD: feature fusion single shot multibox detector[EB/OL]. [2020-01-20]. https://arxiv.org/abs/1712.00960.
|
| [18] |
CUI Lisha, MA Rui, LÜ Pei, et al. MDSSD: multi-scale de-convolutional single shot detector for small objects[EB/OL]. [2020-01-20]. https://arxiv.org/abs/1805.07009.
|
| [19] |
LIU Songtao, HUANG Di, WANG Yunhong. Receptive field block net for accurate and fast object detection[C]//Proceedings of 2018 European Conference on Computer Vision, Berlin, Germany: Springer, 2018: 31-39.
|
| [20] |
HUANG G, LIU Z, MAATEN L V D, et al. Densely connected convolutional networks[C]//Proceedings of 2017 IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2017: 2261-2269.
|
| [21] |
SHRIVASTAVA A, GUPTA A, GIRSHICK R. Training region-based object detectors with online hard example mining[C]//Proceedings of 2016 IEEE Conference on Computer Vision and Pattern Recognition. Washington D.C., USA: IEEE Press, 2016: 761-769.
|
| [22] |
LIN T Y, GOYAL P, GIRSHICK R, et al. Focal loss for dense object detection[C]//Proceedings of 2017 IEEE International Conference on Computer Vision. Washington D.C., USA: IEEE Press, 2017: 2999-3007.
|
2021, Vol. 47
