2. 同济大学 嵌入式系统与服务计算教育部重点实验室,上海 201804
2. Key Laboratory of Embedded System and Service Computing of Ministry of Education, Tongji University, Shanghai 201804, China
目标检测是数字图像处理里面一个重要的方向,近年来在各个领域得到了广泛应用[1-4]。随着深度学习技术的火热发展,目标检测也从基于手工提取特征的方法转换为基于深度学习的检测技术。基于深度学习的目标检测算法,依据是否产生候选区域可以分为两类,一类是单阶段目标检测算法,这一类的代表性算法有YOLO[5]、SSD[6]、YOLOv3[7]等。另外一类就是双阶段目标检测算法,如R-CNN[8]、Fast R-CNN[9]、Faster R-CNN[10]等。
无论是单阶段检测算法还是双阶段目标检测算法,都不能直接得到令人满意的检测结果,产生的检测结果往往是冗余的。这时就需要采用NMS[11]算法根据检测框之间的IOU(intersection over union)值进行过滤,去除多余的检测框,获得最佳的检测结果。
传统的NMS算法首先需要人为设定一个阈值,根据候选框之间重合度IOU进行过滤,但是这样由于阈值设定的不合理,可能会造成检测的漏检和误检。针对NMS算法存在的问题,Bodia[12]等提出Soft-NMS,对于IOU值大于阈值的候选框,不再是直接过滤掉,而是衰减其对应的置信度值,文章中提供了两种衰减策略降低检测框置信度,在一定程度上面减少了漏检问题的出现,但是却增加了误检问题。He等[13]提出Softer-NMS,利用KL散度作为损失函数,训练模型首先利用KL损失函数学习定位置信度,然后将大于重叠度阈值的候选框根据置信度加权平均。侯志强等[14]提出双阈值NMS,算法规定两个阈值对候选框进行过滤,同时避免了重叠度过高和过低带来的性能下降,缺点是增加了额外的阈值超参数。赵文清等[15]利用分段比例惩罚因子NMS和连续比例惩罚因子NMS降低边界框置信度,多次迭代之后移除置信度低于阈值的边界框,作者通过实验证明,算法对于阈值设定的敏感度远远低于传统NMS算法。Liu等[16]针对曲线文本检测问题,提出了多边形NMS,考虑到文字图像中经常出现的曲线情况,利用多边形检测框代替矩形框进行检测,具体流程与传统NMS算法类似。Jiang等[17]指出定位置信度与分类置信度不匹配的问题,将IOU置信度加入到目标检测的流程中,作者利用预测的IOU值替换置信度作为NMS算法排名的关键依据,有助于消除分类置信度指导下的错误。Hosang等[18]同样是考虑到IOU阈值如果设定的过高,可能导致抑制不够充分,而过低又会出现多个真实检测框被过滤的情况,其设计一个卷积神经网络,组合含有不同重叠度阈值的NMS结果,通过学习的方法获取最佳输出。Liu等[19]针对行人检测中目标过于密集的问题,提出了一种自适应的非极大值抑制算法,作者通过设计一个卷积神经网络来学习密度的置信度,利用网络预测对应的阈值,但是作者引入了一个新的网络,网络训练需要耗费大量时间,并且引入网络的参数调整十分困难,实验过程中很难获得一个性能表现良好的模型。
虽然很多算法对传统NMS算法做出了改进,但是大多数仍然依赖于人为设定阈值。例如Soft-NMS,Soft-NMS算法在一定程度上缓解了NMS算法的漏检问题,但是在实验过程中发现,Soft-NMS会比传统的NMS算法产生更多的误检样本。Softer-NMS基于Soft-NMS,对预测标注方差范围内的检测框加权平均,使高定位置信度的检测框具有较高的分类置信度。但是无论上述哪种方法,应用过程中,仍然需要通过大量的实验来调整一个相对合理的阈值。
针对上述问题,本文提出一种基于F1值的非极大值抑制阈值自动选取方法。根据图像自身信息的不同,我们提出的算法在过滤检测框时自动调整对应的过滤阈值,同时考虑了漏检、误检问题,以及阈值调整带来的计算负担。
1 NMS算法及阈值对算法的影响 1.1 基本定义一幅图像经过检测之后,对图像中的每个物体,都会产生多个冗余检测框,检测算法最终的目的是使得每个物体只保留一个与真实框符合度最高的检测框,NMS算法会根据检测框之间的IOU值进行过滤,从而保留最佳的检测框。NMS算法的步骤如下:
1)图像经过检测算法之后,产生检测框集合B,所有检测框对应的置信度集合S。设定NMS算法的过滤阈值N,建立空集D用于存放最终的检测框。
2)从置信度集合S中选出最高得分m,在B中选择m对应的检测框M。
3)将M从B中取出,放入D中。
4)遍历B中所有的检测框,计算B中检测框bi与M的IOU值,如果IOU值大于阈值N,则将bi从B中剔除,将bi对应的得分si从S中剔除
5)重复步骤2)~4),直至集合B为空集。
从NMS算法的步骤中可以看出,是否过滤检测框取决于阈值N的设定,而N的值往往是人为规定的,需要通过大量实验来寻找一个较为合理的值,在实际应用的过程中,很难找到一个统一的N,使得NMS算法能够同时保证检测结果的准确率和召回率。而由于NMS算法阈值设定的不合理,可能会导致最终检测结果的漏检和误检(图1)。
Download:
|
|
NMS算法对于置信度抑制策略是:
${s_i} = \left\{ {\begin{array}{*{20}{l}} {{s_i},\;\;\;\;{U_{{\rm{IoU}}}}\left( {M,{b_i}} \right) < {N_t}}\\ {0,\;\;\;\;{U_{{\rm{IoU}}}}\left( {M,{b_i} } \right) \geqslant {N_t}} \end{array}} \right.$ | (1) |
当两个检测框距离非常近的时候,其中分数较低的框很可能因为与当前得分最高的框之间的IOU值高于阈值而被抑制,置信度直接置为0,这样就会造成漏检问题(图2)。
Download:
|
|
针对漏检问题的出现,近年来产生了很多对于NMS算法的改进。经典的Soft-NMS采用衰减函数来衰减检测框的分值,而不是直接置为0,这样即便两个检测框之间的IOU值较大,置信度较低的检测框也会得到保留,只是置信度值降低而不是直接过滤。
Soft-NMS置信度分段抑制策略:
${s_i} = \left\{ {\begin{array}{*{20}{l}} {{s_i},}&{{U_{{\rm{IoU}}}}\left( {M,{b_i}} \right) < {N_t}}\\ {{s_i} \times \left( {1 - {U_{{\rm{IoU}}}}\left( {M,{b_i}} \right)} \right),}&{{U_{{\rm{IoU}}}}\left( {M,{b_i}} \right) \geqslant {N_t}} \end{array}} \right.$ | (2) |
前文中我们提到,无论是NMS还是Soft-NMS以及Softer-NMS算法,最终都需要设定一个固定阈值进行过滤,对阈值的设定具有很大的依赖性,阈值设定得是否合理会对算法的性能产生很大的影响。表1为在相同实验条件下,NMS、Soft-NMS、Softer-NMS在不同阈值之下的检测精度(mAP, mean average precision)。从表1中可以看到,随着阈值的变化,这3种算法的mAP都会发生明显变化,且性能最优点对应的阈值并不相同,在实际应用中需要根据数据以及模型,通过大量实验进行调整。图3为在不同阈值下NMS算法针对一幅图像检测框的过滤结果,通过图3可以看到,阈值的调整会在很大程度上影响算法实际应用效果。
Download:
|
|
如上所述,传统的NMS算法存在误检和漏检问题,改进算法Soft-NMS虽然在一定程度上缓解了漏检问题,但是仍然依赖人为规定阈值,需要进行大量实验进行调整。因此,本文提出了基于F1值(式(3))的非极大值抑制阈值自动选取方法,每幅图像根据图像中物体密度选择对应的过滤阈值,图像的密度由模型检测框数目来表示。F1值为检测结果准确率和召回率的调和平均,在目标检测任务中,准确率采用检测结果中真实框所占比例来表示,而召回率采用真实框中占检测框比例表示,这样同时考虑了检测模型的准确率和召回率。
$ \mathrm{F}1=2\times \frac{{P}\times {R}}{{P}+{R}} $ | (3) |
式中:P表示检测模型的准确率;R表示检测的召回率。
当一幅图像中物体较多时,也就意味着图像中物体密度可能相对更大,物体之间重叠的可能性就越高,针对物体数目多的图像,在应用NMS算法时应该设定一个较大的阈值,这样可以解决重叠物体带来的漏检问题,避免过滤真实物体。而对物体稀疏的图像而言,产生重叠的可能性就会越小,因此阈值可以设置为一个较低的值,以此避免误检现象的出现。
首先,我们需要明确合理阈值存在的范围界限。应用NMS处理目标检测问题时,阈值通常选择在0.4~0.6,为了保证结果的合理性,避免异常值出现,我们将阈值范围限定在0.3~0.7,因为在实验过程中发现阈值设定过高或者过低都会对算法性能产生负面影响。
明确阈值范围之后,就可以构建映射关系。首先我们需要在训练数据集上面应用训练好的检测算法产生检测框集合B,记录B中检测框数目num_b,接下来在阈值范围内遍历可能的阈值,利用选定的阈值应用NMS算法得到过滤后的检测结果,然后根据样本标签与检测结果计算检测的准确率和召回率,从而计算它们的F1值。在目标检测任务中,准确率采用检测结果中真实框所占比例来表示,而召回率采用真实框中占检测框比例表示。记录使得F1值最高的NMS阈值best_t,遍历训练数据之后,就可以得到每一幅图像未经过NMS处理的检测框数目num_b,以及使得F1值最高的阈值best_t,然后利用(num_b,best_t)构建映射关系map。这里我们尝试了几种不同的映射关系,从最简单的线性回归到K均值以及朴素贝叶斯方法:
${{P}}({\rm{best}}\_{\rm{t}}|{\rm{num}}\_{\rm{b}}) = \frac{{{{P}}({\rm{best}}\_{\rm{t}}){{P}}({\rm{num}}\_{\rm{b}}|{\rm{best}}\_{\rm{t}})}}{{{{P}}({\rm{num}}\_{\rm{b}})}}$ | (4) |
作为本文的核心部分,在构建映射关系阶段,本文提出的算法流程如下:
输入 检测模型model,训练数据集data,阈值范围thresh_domain。
输出 映射关系map。
1)在数据集data上面应用model产生检测框集合B,记录B的数目num_b;
2)在thresh_domain内遍历阈值,利用阈值运行NMS算法,计算F1值,记录使得F1值最高的NMS阈值best_t;
3)得到所有图像未经过NMS处理的检测框数目num_b,以及使得F1值最高的阈值best_t;
4)利用(num_b,best_t)构建映射关系map。
有了映射关系,在测试阶段,将测试图片输入检测算法,得到未经过滤的检测框集合,根据检测框数目num_b以及映射关系map得到对应的阈值best_t,利用best_t来运行NMS算法。
通过采用F1值作为优化指标,本算法综合考虑了检测算法的召回率和准确率,使得NMS算法的阈值根据每幅图像的物体密度自动化调整,避免了对于人为设定超参数的依赖性,减少了超参数调整的时间成本,同时在一定程度上解决了检测的漏检和误检问题,在检测任务上面的性能也获得了提升。
3 实验分析实验采用的是YOLOv3模型,YOLOv3网络基于Darknet网络构建,一共有53个卷积层。由于YOLOv3是端到端的检测模型,所以并不需要像双阶段目标检测算法那样分开进行训练。我们采用作者提供的预训练权重进行训练,这样能够取得更快的收敛速度。我们提出的算法额外的存储空间仅仅为一个映射关系模型,相较于我们的检测模型,大小可以忽略。时间上面,在构建映射关系的过程中,需要的时间小于检测模型训练一轮的时间,因此额外的时间开销在可接受的范围内。
3.1 实验数据以及实验参数本实验采用的数据集是Pascal VOC 2007[20]数据集,其中包括训练集VOC 2007 trainval、测试集VOC 2007 test以及验证集VOC 2007 val三部分。原始Pascal VOC 2007数据集对于每一个边界框的标注格式是(x1, y1, x2, y2),表示边界框左上和右下点坐标值,我们首先需要将其转换为(x, y, w, h)格式,即表示中间点坐标以及边界框长宽的格式。除此之外,为了保证模型训练效果,需要将标注数据按照图片尺寸进行归一化操作。
在训练过程中设置batch_size大小为16,并应用了学习率衰减策略,学习率衰减权重设置为0.7,此外,还应用了多尺度训练技巧,每隔一定的iteration随机选取一个尺度进行训练来提高精度。除此之外我们对模型添加了数据增强,能够进一步提高模型精度。
图4为训练过程中检测衡量指标mAP值的变化情况。可以从图中看到,在训练经过40轮迭代训练之后,mAP变化值趋于稳定。
Download:
|
|
本文出发点是利用边界框数目信息反应物体密度,所以首先需要首先验证两者之间的相关性。如图5所示,横坐标表示图像中真实的物体数目,纵坐标表示模型预测后未经过NMS算法过滤之前的边界框数目,可以看到,两者之间存在一种强线性相关关系,这也就证实了本文改进算法的合理性。
Download:
|
|
构建检测框数目−最佳阈值之间的映射关系,采取了不同的模型算法,观察对比这几种不同映射函数之间的性能差异。表2为不同映射函数性能表现。
通过观察发现,大多数图像的预测框数目介于0~200,最佳阈值的范围在0.3~0.7,所以我们构建了横坐标为0~200,纵坐标范围为0.3~0.7的线性回归作为映射,同时,我们尝试了k-means分类、朴素贝叶斯分类、SVC分类等方法来构建映射,最终选择性能具有最佳表现的朴素贝叶斯分类算法。
3.4 实验效果对比为了突出本文算法在解决目标漏检与误检问题上面的表现,将本算法分别与NMS、Soft-NMS以及Softer-NMS在Pascal VOC数据集上面做了对比(图6),从图6中可以看到,本文提出的算法性能并不受阈值的影响,且mAP值高于其他算法。
Download:
|
|
在图7和图8分别表示在Pascal数据集和COCO数据集[21]上,本文提出的算法在实际应用中与NMS算法以及Soft-NMS算法之间的效果对比,我们提出的算法在实际应用过程中具有更好的检测效果。
Download:
|
|
Download:
|
|
传统的非极大值抑制算法需要大量实验调整阈值,阈值设定的不合理会导致漏检和误检,阈值调整需要耗费大量时间。基于此,本文提出了基于F1值的非极大值抑制阈值自动选取方法,减弱了检测算法对于人为设定阈值的依赖,减少了阈值调整耗费的时间。利用YOLOv3模型在Pascal VOC 2007数据集上面进行训练,通过与传统NMS、Soft-NMS以及Softer-NMS算法进行性能对比,证明了本算法在检测准确率方面的提高。本文可以采用更多的映射模型来获取最佳阈值,期望未来能够使用卷积神经网络获取更加精准的映射关系模型。
[1] | FELZENSZWALB P F, GIRSHICK R B, MCALLESTER D, et al. Object detection with discriminatively trained part-based models[J]. IEEE transactions on pattern analysis and machine intelligence, 2010, 32(9): 1627-1645. DOI:10.1109/TPAMI.2009.167 (0) |
[2] | HAN Junwei, ZHANG Dingwen, CHENG Gong, et al. Advanced deep-learning techniques for salient and category-specific object detection: a survey[J]. IEEE signal processing magazine, 2018, 35(1): 84-100. DOI:10.1109/MSP.2017.2749125 (0) |
[3] | XIE Cihang, WANG Jianyu, ZHANG Zhishuai, et al. Adversarial examples for semantic segmentation and object detection[C]//Proceedings of 2017 IEEE International Conference on Computer Vision. Venice, Italy, 2017: 1369−1378. (0) |
[4] | BORJI A, CHENG Mingming, JIANG Huaizu, et al. Salient object detection: a benchmark[J]. IEEE transactions on image processing, 2015, 24(12): 5706-5722. DOI:10.1109/TIP.2015.2487833 (0) |
[5] | 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. Las Vegas, USA, 2016: 779−788. (0) |
[6] | LIU Wei, ANGUELOV D, ERHAN D, et al. SSD: single shot MultiBox detector[C]//Proceedings of the 14th European Conference on Computer Vision. Amsterdam, the Netherlands, 2016: 21−37. (0) |
[7] | REDMON J, FARHADI A. YOLOv3: an incremental improvement[J]. arXiv preprint arXiv: 1804.02767, 2018. (0) |
[8] | GIRSHICK R, DONAHUE J, DARRELL T, et al. Rich feature hierarchies for accurate object detection and semantic segmentation[C]//Proceedings of 2014 IEEE Conference on Computer Vision and Pattern Recognition. Columbus, USA, 2014: 580−587. (0) |
[9] | GIRSHICK R. Fast R-CNN[C]//Proceedings of 2015 IEEE International Conference on Computer Vision. Santiago, USA, 2015: 1440−1448. (0) |
[10] | REN Shaoqing, HE Kaiming, 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, 2017, 39(6): 1137-1149. DOI:10.1109/TPAMI.2016.2577031 (0) |
[11] | ROSENFELD A, THURSTON M. Edge and curve detection for visual scene analysis[J]. IEEE transactions on computers, 1971, C-20(5): 562-569. DOI:10.1109/T-C.1971.223290 (0) |
[12] | BODLA N, SINGH B, CHELLAPPA R, et al. Soft-NMS—improving object detection with one line of code[C]//Proceedings of 2017 IEEE International Conference on Computer Vision. Venice, Italy, 2017: 5561−5569. (0) |
[13] | HE Yihui, ZHU Chenchen, WANG Jianren, et al. Bounding box regression with uncertainty for accurate object detection[C]//Proceedings of 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach, USA, 2019: 2888−2897. (0) |
[14] |
侯志强, 刘晓义, 余旺盛, 等. 基于双阈值-非极大值抑制的Faster R-CNN改进算法[J]. 光电工程, 2019, 46(12): 190159. HOU Zhiqiang, LIU Xiaoyi, YU Wangsheng, et al. Improved algorithm of Faster R-CNN based on double threshold-non-maximum suppression[J]. Opto-electronic engineering, 2019, 46(12): 190159. DOI:10.12086/oee.2019.190159 (0) |
[15] |
赵文清, 严海, 邵绪强. 改进的非极大值抑制算法的目标检测[J]. 中国图象图形学报, 2018, 23(11): 1676-1685. ZHAO Wenqing, YAN Hai, SHAO Xuqiang. Object detection based on improved non-maximum suppression algorithm[J]. Journal of image and graphics, 2018, 23(11): 1676-1685. DOI:10.11834/jig.180275 (0) |
[16] | LIU Yuliang, JIN Lianwen, ZHANG Shuaitao, et al. Detecting curve text in the wild: new dataset and new solution[J]. arXiv preprint arXiv: 1712.02170, 2017. (0) |
[17] | JIANG Borui, LUO Ruixuan, MAO Jiayuan, et al. Acquisition of localization confidence for accurate object detection[C]//Proceedings of the 15th European Conference on Computer Vision. Munich, Germany, 2018: 784−799. (0) |
[18] | HOSANG J, BENENSON R, SCHIELE B. A Convnet for Non-maximum Suppression[C]//Proceedings of the 38th German Conference on Pattern Recognition. Hannover, Germany, 2016: 192−204. (0) |
[19] | LIU Songtao, HUANG Di, WANG Yunhong. Adaptive NMS: refining pedestrian detection in a crowd[C]//Proceedings of 2019 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach, USA, 2019: 6459−6468. (0) |
[20] | EVERINGHAM M, VAN GOOL L, WILLIAMS C K I, et al. The PASCAL visual object classes (VOC) challenge[J]. International journal of computer vision, 2010, 88(2): 303-338. DOI:10.1007/s11263-009-0275-4 (0) |
[21] | LIN T Y, MAIRE M, BELONGIE S, et al. Microsoft COCO: common objects in context[C]//Proceedings of the 13th European Conference on Computer Vision. Zurich, Switzerland, 2014: 740−755. (0) |