结合密度图回归与检测的密集计数研究

2024-01-11 13:15赵心馨徐天一李雪威
计算机与生活 2024年1期
关键词:计数物体损失

高 洁,赵心馨,于 健,徐天一,潘 丽,杨 珺,喻 梅,李雪威+

1.天津大学 智能与计算学部,天津 300350

2.天津大学 天津市认知计算与应用重点实验室,天津 300350

3.天津大学 天津市先进网络技术与应用重点实验室,天津 300350

4.天津大学 未来技术学院,天津 300350

密集计数是视觉目标计数的一个分支,旨在通过图像或视频分析密集分布目标的数量及空间分布,用于人群、物料计数、动物计数等众多场景。目前关于密集计数的研究主要分为基于检测[1-2]以及基于密度图[3-5]两类方法。

基于检测的方法有两个分支,即传统机器学习方法和深度学习方法。传统方法依赖于结合人类先验知识设计的特征工程,可解释性好,但过程复杂,易受无关背景、阴影以及截面重叠等影响。深度学习方法依赖大量带有边框标注信息的数据建模,整体效果优于传统方法,但标注信息成本极高,且仍存在漏检率高的问题[6]。近年来局部检测思路[7]被用于该领域,通过针对特定区域的分析,检测和计数准确率有所提升,但物体的尺寸变化和形状多样限制了此类方法。如图1所示,由左至右分别展示了深度学习方法受尺度变化、拍摄角度倾斜、遮挡导致漏检的场景。整体上,目标检测技术是密集技术的基础,但把密集计数问题等价于目标检测仍存在很多问题[8-10]。

图1 小物体遮挡检测效果Fig.1 Detection effect of small object occlusion

基于密度图的方法以回归思路为基础,计算图像中物体分布的密度图,进而将密度图映射至计数结果[11]。密度图蕴含空间信息,且可根据密度大小反映数量,因此方法原理清晰,易于实现,被广泛使用。但是,由于缺乏目标精确的具体位置信息,基于密度图的方法在一些热点领域的应用受限。

本文提出结合密度图回归与检测的密集计数方法,在同一网络结构中同时实现密度图估计和目标定位。利用密度图所提供的位置信息降低对标注框的依赖,利用物体检测确定目标具体位置,二者结合可以有效提高准确率,实现优势互补。同时,该方法不局限于截面对齐的图像计数,有效地避免特殊位置的漏检情况,与人工计数条件相同,具有良好的普适性。

论文的主要贡献概括如下:

(1)提出融合密度图回归与目标检测的密集计数方法,在保持计数效果稳定的条件下,提高召回率,同时自动标注目标的位置信息。

(2)提出优化的特征金字塔结构(feature pyramid networks plus,FPN-Plus),纵向融合底层高分辨特征与顶层抽象语义特征,横向融合同尺寸的特征,丰富整体语义表达,利于密集目标检测。

(3)提出融合注意力机制的损失函数,增强网络对小目标物体的注意力,缓解阴影、遮挡等问题,提高对小目标的检测能力,从而提升整体检测效果。

1 相关工作

1.1 基于检测的计数方法

传统基于图像目标检测的计数方法依赖特征工程,即先通过融合人为先验预设计的方法提取图像全局或局部特征,再使用滑动窗口定位图像中的实例。特征工程是此类方法的重点,常用的有小波、梯度方向直方图、边缘等特征[12]。

近年来的研究集中于消除背景、遮挡、阴影等的影响。景林等人[13]提出利用物料端面的色彩特征进行计数,该方法可滤除类似天空、绿树等背景,但对于与物料颜色相近的背景滤除则不理想。王昱棠[14]根据物料堆放规律先验,即由下至上物料堆放具有逐层减少的特点,通过聚类分析对计数结果进行修正,能够避免因被其他物料包围而导致边缘不突出的物料被漏检。但根据物料堆放规律计数的方法主要适用于自然摆放的物料,对于借助外力存放的物料不具有普适性。龙德帆等人[15]结合数学形态学中的骨架提取算法,利用动态规划的方法来获得能量泛函的全局极值,从而实现了精确提取端面轮廓,但对于成像效果较差的端面处理效果不佳。文献[16-17]利用从行人全身提取的小波、梯度方向直方图、边缘等特征去检测行人,主要学习算法有支持向量机(support vector machine,SVM)[18]、Boosting[19]和随机森林(random forest,RF)[20]等。

近年来随着深度学习的迅速发展,基于深度学习的目标检测算法展现了优异的效果,两阶段的Mask RCNN(mask region-based convolutional neural network)[21],单阶段的SSD(single shot multibox detector)[22]、YOLO(you only look once)[23]、RetinaNet[24]、EfficientDet[25]和基于anchor-free 的CenterNet[26]、FCOS[27]、Transformbased[28]、Swin Transformer[29]类 等在公开数据集Pascal[30]和COCO[31]上取得较大突破,并且已运用在实际的工业场景中。

目前,基于检测的计数方法进步很大,但消除遮挡、背景等因素的干扰始终是研究热点[32-33]。

1.2 基于密度图估计的计数方法

基于密度图估计的计数方法主要通过学习密度图回归来更新网络模型参数,最终对密度图进行积分从而得到密集计数结果,密度图所提供的物体空间分布信息可用于粗定位目标。密度图本质上是一种表示目标在某一位置存在概率的方法,在前向传播过程中,通过比较真实密度图和预测的密度图之间的差异来计算损失,更新网络参数。

基于密度图[34]的计数模型首先需要通过分类网络提取物体的特征。得益于卷积神经网络(convolutional neural networks,CNN)强大的特征提取能力,此类方法的准确率也在不断提升,其中基于全卷积网络(fully convolutional networks,FCN)[35]的模型已成为密度估计的主流特征提取结构。研究者根据不同区域视角及密度的变化,设计了许多网络模型如MCNN(multi-scale convolutional neural network)[36]、switch-CNN[37]、CSRNet[38]等,均有良好性能,根据不同的尺度[39],细化密度图[40-42]。

Zhang等人提出的MCN(multi-column convolutional neural network)[43]将多列卷积神经网络应用于单张图像人群计数问题上,利用卷积神经网络建立人群密度图与人群图像之间的非线性映射,通过获取人群密度图得到人群计数结果。

Laradji 等人的工作[44]提出了一个新颖的损失函数,使模型在仅有点标注的情况下学习输出实例掩膜,这种方法由于不需要输出物体的形状,计算效率较高。

Idrees 等人提出的CL(composition loss)[45]同时实现对密集图像中的人群计数、密度图估计和定位。基于三个问题之间存在的内在联系,CL 使优化深层卷积神经网络的损失函数可分解,即计数可以在没有任何有关位置信息的前提下估计物体数量,密度图可以提供有关每个物体位置的弱信息,定位可以提供位置信息,但由于数据的标注稀疏,直接定位较难实现。

基于密度图回归的密集计数方法通常会获得比检测计数方法更好的效果,但无法精确定位目标位置。

1.3 特征金字塔网络

目标检测计数通常面临遮挡、光照不均以及物体尺度变化等问题,尤其密集计数场景通常包含较多的小目标,对特征提取网络表达语义的丰富性要求较高。特征金字塔网络(feature pyramid networks,FPN)由Lin等人提出[46],是一种用于多尺度特征提取的有效方法。引入特征金字塔结构的网络模型,通常具有更好的鲁棒性。

特征金字塔网络可以用于构建各种尺度的高级语义特征图,将相同尺寸输出的特征图视作一个等级,多个等级堆叠形成金字塔结构。网络训练时,自底向上的路径即为网络前向传播,自顶向下的路径通过从较高的金字塔等级对空间上较粗糙但具有更强语义的特征图进行上采样,从而展现出更高分辨率的特征。

2 结合密度图回归与检测的密集计数方法

本文提出一种结合密度图回归与检测的密集计数方法(detection and counting method based on density map estimation,DCDM),在基于密度图估计的密集计数网络基础上添加检测定位方法实现对密集物体的检测计数与定位。方法设计过程中,考虑到密度图保留物体位置信息较少,提出FPN-Plus 模块,纵向融合底层高分辨特征与顶层抽象语义特征,横向融合同尺寸的特征,增强特征语义。同时,为进一步提升对小尺度目标的检测效果,本文提出融合注意力机制的损失函数,实现对各个层级特征信息进行充分利用,从而加强网络对目标物体的注意力。

2.1 基于密度图估计的目标检测计数模型架构

2.1.1 特征提取网络

本文所提出方法基于C-3-Framework 密集计数框架[47],该框架是西北工业大学高君宇等人开发的开源计数算法框架,提供常见的六个主流数据库的预处理代码、处理好的数据集,以及一些主流的密集计数模型。本文在C-3-Framework 上增添检测分支(见图2 中右下角部分),根据密度图所保留物体的空间位置信息实现物体定位,整体架构如图2所示。图像中由左至右首先基于ResNet101 网络进行原始图像的特征提取,完成特征提取后对w×h末端特征图进行上采样得到密度图和目标定位信息。特征提取网络整体为全卷积模式,以保留更准确的空间信息,具体结构如表1所示。

表1 残差网络结构Table 1 ResNet structure

图2 密度图估计结合检测定位网络结构图Fig.2 Structure maps of density map estimation combined with detection of localization network

C-3-Framework 对ResNet101 网络结构进行优化,修改下采样层stride参数,使得最后一个特征图输出大小为1 024×72×48,修改后的ResNet101 所输出特征图尺寸大小不再满足通道数依次变为原来的2倍、特征图长、宽依次缩小50%的规则。此外,添加1×1 卷积核以改变通道数目,在特征图尺寸不变的情况下增加非线性映射。

特征提取网络中,由上到下各层输出特征图分别记为C1、C2、C3、C4。C4作为特征提取输出的最后一个特征图,大小为1 024×72×96,同时作为结合密度图的检测计数网络的输入数据。为适应较小目标的尺寸,本文在C-3-Framework 框架基础之上对主干网络ResNet101 继续下采样。下采样层采用kernel size=3、stride=2 的卷积层,并将这一层输出的特征图记为C5。最终得到主干网络提取出的特征为C1、C2、C3、C4、C5,尺寸分别为64×144×192、256×144×192、512×72×96、1 024×72×96、2 048×36×48,其中C1、C2和C3、C4分别为相同大小的特征图。

2.1.2 目标检测定位

为实现目标检测定位,首先输出密度图求得局部极大值所得到图像中所有物体的中心点坐标,再根据中心点坐标构建目标物体检测边框。

根据中心点坐标值,计算图像索引向量如式(3)所示,即可得到该物体中心点位置信息,从而进行物体检测框的信息转换。

考虑到索引取整计算存在误差,论文引入偏移分支修正模型输出框的宽度和高度,用分别表示第i个目标检测框宽度w和高度h与取整后索引值的偏差量,如式(4)、式(5)所示:

根据偏移分支的输出可以修正定位分支输出的目标定位信息,从而提高物体检测的准确率。添加偏移分支后,网络结构图如图3所示。

图3 添加偏移分支后网络结构图Fig.3 Network structure diagram after adding offset branches

本文采用固定核的高斯函数生成密度图,根据输出的密度图找到中心点的坐标,利用式(1)~式(3)将密度图转换为索引即可得到对应物体的宽度和高度。检测定位分支输出以每一个像素点为目标中心点所对应的宽度和高度,通过引入检测分支头进行物体定位,从而实现定位分支和密度图估计共享网络结构。密度图保留了物体的空间信息,同时无需引入基于检测框的目标检测模型,因此网络可以灵活地学习各种尺寸的目标物体,具有较好的普适性。

2.2 优化的FPN模块

本文需要根据密度图恢复物体空间位置信息,因此密度图回归任务分支需要丰富的语义信息。但是FPN 将相同尺寸的特征图视为一个层级,对同一层级特征图的信息融合不足。为了充分利用本文中特征提取网络的结构特性,本文改进FPN 中同层级特征间的关联,提出优化的FPN,称之为FPN-Plus。

FPN-Plus的核心网络结构如图4 所示,不仅利用特征提取网络不同尺度特征图的语义信息,而且还充分利用多个层级的语义信息,对于相同尺寸的层级采用逐像素相加的方式,以获得更加丰富的语义信息。在本文实验中,C1、C2具有相同尺寸,C3、C4具有相同尺寸。FPN-Plus 首先对C5执行1×1 卷积操作生成特征图P1,同时改变通道数为128。通过双线性插值对P1执行两倍上采样,并和C4相加形成横向连接输出为P2。由于P2和C3具有相同尺寸的特征图,对C3执行1×1 卷积以改变通道数,最终与P2直接相加形成P3,从而使得特征提取网络结构的多个特征图信息均被包含在最后一层的特征图中,语义信息更加完整,从而提升计数的准确性。

图4 FPN-Plus核心结构图Fig.4 FPN-Plus core structure diagram

添加FPN-plus 网络结构后,形成完整的DCDM网络结构,如图5 所示,具有相同颜色部分表示相同大小的特征图。图像输入至DCDM 网络后,先经自底向上的前向传播,通过自顶向下以及横向连接的结构生成具有丰富语义信息的特征图。然后,通过检测分支、偏移分支以及密度图估计分支共享最后一层特征图作为输入数据,参考C-3-Framework 密集计数网络框架添加检测分支形成多任务网络模型,分别输出目标位置信息、偏移信息以及密度图,实现基于密度图估计的目标检测计数算法。

图5 DCDM完整网络结构图Fig.5 Structure diagram of complete DCDM network

2.3 注意力损失函数

本文采用多任务损失函数,将目标检测定位分支、偏移分支以及密度图估计分支的损失函数与注意力损失函数相结合,同时学习多个任务以实现端到端的检测计数。损失函数如式(6)所示:

其中,Loffset、Ldet、Ldm、Latt分别表示偏移分支、定位分支、密度图估计分支以及注意力损失函数。Ldm采用密集计数方法中常用损失函数MSE(mean squared error),计算方法如式(7)所示:

其中,Ei表示的是模型预测图像i的密度图,Gi表示图像i的真实密度图,N是训练图像总数。由于定位分支和偏移分支输出以实现定位物体,损失函数均选用计算两个坐标对应的欧式距离。

损失函数Ldm对图像中的每一个像素计算其与真实值的偏差,但是由于图像中背景等无关像素点占据比例较高,即正样本数目远小于负样本数目,对每一个像素点计算与真实值之间的偏差会导致正负样本失衡的问题。除此之外,对像素点均匀计算回归密度,导致网络在训练过程中不会将注意力集中在目标物体上。

为促进模型准确率提高,本文提出注意力损失函数Latt。首先,对输入图像生成一个掩膜。掩膜的生成过程同密度图生成过程相同,但是将高斯核函数用固定值1 代替。通过此注意力实现网络注意力集中于目标物体上。

基于上述思路构造注意力损失函数,如式(8)所示:

其中,Mi表示第i张图生产的掩膜。通过式(8)可得,注意力损失函数仅对正样本进行了损失计数,通过掩膜去除负样本对损失函数的影响。在密度图估计损失函数的基础上结合注意力损失函数,得到密度估计损失函数公式如式(9)所示。注意力机制有利于提高对小目标等的检测效果,从而提升网络对目标的整体检测能力。

3 结果与分析

完成DCDM 模型构建后,本文将该模型应用于现有数据集进行实验测试,同时与其他目标检测方法进行比较分析。除此之外,本文进行充分的消融实验以验证所提出网络结构的有效性。

3.1 实验数据

本文测试数据集来自“智能盘点——钢筋数量AI 识别”人工智能比赛,拍摄于工地现场,通过手机进行采集,数据包含直径12~32 mm 等不同规格的钢筋图片。数据集由训练集和测试集组成,其中训练集一共250 张图片,测试集一共200 张图片。为使得实验结果有效,利用图像处理进行数据集扩充,部分数据集如图6所示。

图6 钢筋数据样例图Fig.6 Example diagram of rebar data

3.2 评价指标

本文采用多个指标定量评估DCDM 检测计数性能,分别是F1-score、MAE(mean absolute error)以及MSE。F1-score 可由召回率和准确率计算可得,如式(10)所示:

其中,召回率表示所有样本中预测为正样本部分的比例,准确率为所有预测正样本中正确预测的正样本比例。召回率的计算涉及到TP(true positive)和FN(false negative),TP 表示被正确划分为正样本的实例个数,FN 表示被错误划分为负样本的正样本实例个数。召回率表示网络能够找到目标物体的能力,计算公式见式(11):

准确率的计算涉及到TP和FP(false positive),其中FP 表示被错误划分为正样本的实例个数,准确率计算公式见式(12):

其中,TP和FP可以通过计算真实框和预测框的交并比IoU(intersection over union)得到。当IoU>0.5时,则认为该目标检测框是正样例,否则为负样例。

MAE 和MSE 常被密集计数领域用来衡量计数的性能。MAE计算方法如式(13)所示:

其中,N表示训练样本中图像的总数目,Mi表示第i幅图像中物体的真实数目,表示模型对第i幅图像中物体的预测数目,即用真实值减去预测值后取绝对值,然后求和取平均值。MSE 称为均方误差,计算方法如式(14)所示:

3.3 实现细节描述

考虑到收集得到数据量较少,为增加训练阶段模型的鲁棒性,采用随机水平翻转和随机垂直翻转进行数据增强。在训练初期,使用ImageNet 预训练网络初始化网络权重。优化器采用Adam,其中weight decay 为1×10-4,采用动态学习率,初始学习率为1×10-5,10个epoch内损失函数值没有下降,则将学习率降低10%,最低可降低到1×10-8。

3.4 对比实验

论文将DCDM 模型与基于anchor 的目标检测模型Mask RCNN 以及基于anchor-free的目标检测模型CenterNet进行对比,实验结果如表2所示。

表2 钢筋数据集实验结果对比数据Table 2 Data comparison of experimental results of rebar dataset

对于F1-score 指标,DCDM 在测试集达到0.923,比Mask RCNN 方法提升0.082,比CenterNet 方法提升0.075。同时,Mask RCNN 和CenterNet 的召回率均在0.70 左右,而DCDM 达到0.91,从而证明DCDM模型能够在实现定位物体的同时获得较高召回率。此外,DCDM 方法的MAE 和MSE 指标远低于Mask RCNN 和CenterNet 相应指标,由此说明DCDM 方法计数准确率比通用目标检测方法准确率高。综上所述,通过实验证明,本文提出的DCDM 模型能够获得比通用检测计数方法更加准确的计数结果,并且对于复杂的遮挡和倾斜场景具有强鲁棒性。

基于3.3节所描述的参数设置,图7所示为DCDM在钢筋数据集上的训练过程中各指标的变化图。其中图7(a)为训练过程中训练集的总损失变化情况,其由密度估计损失和检测定位损失加权和所得,反映模型整体训练过程中损失函数的收敛情况,从图中可以看出经过迭代后,损失函数值已经正常收敛。图7(b)及图7(c)所示分别为训练集密度图及检测定位损失函数值变化情况,比较两者可得检测定位损失函数值收敛较快,而密度估计损失函数呈现缓慢下降趋势,说明检测定位学习的回归任务比密度估计的回归任务更加容易学习。图7(d)~图7(f)分别为训练过程中MAE、MSE 指标的变化情况以及学习率的动态变化过程,在40 到50 轮次的训练过程中指标出现异常上升情况,通过动态调节学习率使得指标稳定下降,说明动态调整学习率有助于模型收敛。

图7 DCDM训练过程中参数指标变化Fig.7 Changes of parameter value during DCDM training

图8 所示为DCDM 在钢筋数据集上的检测计数效果图。检测的结果依赖于密度图提供的中心点,第一行展示DCDM 模型输出的密度图叠加在原图上的实验结果,可以看出每个物体的中心点都对应着密度点分布,越靠近中心点像素值越高。第二行是经过后处理的检测计数结果图,根据输出结果可以看出计数准确度较高。同时在左图中对于右下角被强光照射的钢筋,DCDM 也能够实现准确检测,对于右图出现自上而下的尺寸变形,DCDM 检测结果不受其影响。但是对于中间图像,由于存在一些严重遮挡导致模型存在一定误差。

图8 DCDM测试输出图Fig.8 DCDM test output graph

如图9所示将产生误差部分进行局部放大,可以看出右下角的钢筋被叠放在其上面的钢筋遮挡住了多半部分,从而造成误差。

图9 DCDM测试局部放大图Fig.9 DCDM test local enlargement

除此之外,本文对Mask RCNN 及CenterNet网络在钢筋数据集上的实验效果可视化并与DCDM 形成对比,对比效果如图10 所示,其中图10(a)~(c)列分别表示DCDM、Mask RCNN、CenterNet 测试样例输出结果,其中第二行实验结果中,Mask RCNN 和CenterNet 实验结果较为相近,召回率都不到50%,而DCDM 可以实现近98%的召回率。由此说明对于比较复杂的数据,Mask RCNN 和CenterNet 检测计数结果均远小于其真实值,DCDM检测效果较好。

图10 DCDM、Mask RCNN、CenterNet测试样例图Fig.10 Test sample diagram of DCDM,Mask RCNN and CenterNet

3.5 消融实验

如表3所示为消融实验结果,用以验证本文所提出方法中各模块的有效性。其中,基线方法选用C-3-Framework中的密度估计方法,backbone为ResNet101。

表3 钢筋数据集消融实验结果对比Table 3 Comparison of ablation experiment results of rebar dataset

如表3 所示,实验(a)作为基准,实验(c)相较于实验(b)中Recall、Precision 及F1-score 指标均有提升,说明FPN-Plus 改进结构能够提高物体的检测能力并增加召回率。同时,根据实验(d)可得在网络中加入注意力损失函数使得模型在测试集上的F1-score 指标从0.913 提升到0.923,从而表明注意力损失函数可以增加DCDM 对物体的注意力,进一步提高网络的检测计数能力。

上述各部分实验的结果说明充分利用密度图的空间信息使得基于密度图估计的检测计数网络DCDM 比通用目标检测网络具有更高的召回率以及更加准确的密集计数能力。为充分利用各层级语义信息,本文提出FPN-Plus 网络结构。此外,注意力损失函数通过将注意力集中在物体上从而减少背景对模型的影响,增强鲁棒性。但由于本文在计数网络基础上引入定位任务,形成一种多任务训练模型,计数效果相较于基于密度估计网络存在一定差距。但是定位任务的引入使得DCDM 检测计数结果可靠,同时获得比通用目标检测更好的检测计数效果。

4 结束语

密集计数可应用于估计人群密度、野生动物计数,且在安全、防空领域具有广大的应用前景。基于检测的计数方法虽然能够定位物体,但是其计数值远小于真实计数值;基于密度估计的计数方法虽然能够实现较为接近真实值的计数结果,但由于缺少物体的位置信息,其计数结果存在局部不一致的问题。

基于以上观察,本文提出基于密集计数的检测算法DCDM,同时实现检测和密度图估计任务,适用于截面非对齐条件下的密集计数。DCDM 在基于密度估计的网络结构上添加物体定位结构,利用密度图的弱空间信息以提供物体中心点信息。为使得网络模型能够应对物体的多种尺度变化,本文同时提出FPN-Plus 网络结构,充分利用DCDM 中特征提取网络的结构特性,使得输出特征图具有丰富的语义信息。此外,为使得模型将注意力集中在感兴趣的物体上,提出注意力损失函数,通过掩膜来提取正样本的损失值。通过对比实验,验证得到DCDM 模型相较于通用目标检测算法准确性较高,同时消融实验说明本文提出的各模块都是有效的。

猜你喜欢
计数物体损失
古人计数
胖胖损失了多少元
递归计数的六种方式
古代的计数方法
深刻理解物体的平衡
玉米抽穗前倒伏怎么办?怎么减少损失?
我们是怎样看到物体的
这样“计数”不恼人
一般自由碰撞的最大动能损失
损失