基于非线性高斯平方距离损失的目标检测

2024-02-18 13:46瑞,李
应用科学学报 2024年1期
关键词:概率分布中心点检测器

李 瑞,李 毅

四川大学计算机学院,四川 成都 610065

作为近年来计算机视觉领域的一个研究热点,目标检测是指计算机能够自动地从图像或者视频中定位和分类目标的技术。早期的目标检测算法[1-3]主要应用于人脸识别[4]和行人检测[5]等场景,算法简单直观,但是这些方法主要基于手工设计的特征提取器和分类器,需要大量的人工特征工程,并且容易受到光照、角度和尺度等因素的影响,因此检测结果不稳定。得益于卷积神经网络[6]的发展,基于深度学习的目标检测算法能够提取并学习更复杂的图像特征,在极大地提高了目标检测准确率的同时缩短了检测时间,而且凭借较强的适应性和鲁棒性,在自动驾驶、智能安防和人脸识别等复杂场景下得到了广泛应用。

目前主流的目标检测网络主要包括边界框回归和类别区分两个分支。其中,边界框回归通过回归网络来预测目标的位置和大小,它的准确性将直接影响到检测结果的质量。因此,一个设计良好的损失函数对于精确地回归边界框至关重要。

早期的目标检测主要基于L1 损失即平均绝对误差(mean absolute error,MAE)来回归边界框,近期相关科研人员基于交并比(intersection over union,IoU)发展出了一系列损失函数:IoU 损失[7]、广义交并比(generalized intersection over union,GIoU)损失[8]、距离交并比(distance intersection over union,DIoU)损失[9]、完全交并比(complete intersection over union,CIoU)损失[9]和阿尔法完全交并比(Alpha-complete intersection over union,Alpha-CIoU)损失[10]等。除了Alpha-CIoU 损失外,其他损失都是通过增加相应的惩罚项来综合考虑边界框回归的三要素(重叠性、中心点距离和长宽比)。

分析发现,基于IoU 的一系列损失虽然有效地提升了边界框的回归效果,但仍然存在一些问题:首先,作为主体部分的IoU 损失在某些情况下不能区分出两个边界框之间的相对位置关系;其次,惩罚项的引入带来了额外的问题,例如GIoU 损失的惩罚项在一个边界框包含另一个边界框的情况下会失效,DIoU 损失中的中心点距离惩罚不利于两个边界框的重叠,而CIoU 损失中的长宽比惩罚则会影响边界框回归的稳定性。

为了解决以上问题,本文首先将边界框转换为高斯概率分布,然后基于边界框回归三要素的综合考虑,提出了一个新的损失函数:非线性高斯平方距离(nonlinear-Gaussian squared distance,NL-GSD)损失,以此来提升目标检测中边界框回归的准确性和稳定性。具体来说,本文的主要工作如下:

1)通过高斯核函数将边界框映射为概率分布,并从重叠性、中心点距离和长宽比3 个方面证明该转换的有效性;

2)提出了一种新的高斯平方距离来度量两个概率分布之间的距离,设计了符合优化趋势的非线性函数并将距离度量转换为损失函数,即非线性高斯平方距离损失;

3)使用广泛应用的MS COCO 2017 数据集,在先进的目标检测器Mask R-CNN[11]、一阶全卷积(fully convolutional one-stage,FCOS)[12]、自适应特征选择(adaptive training sample selection,ATSS)[13]、样本一致性网络(sample consistency network,SCNet)[14]和YOLOv8 上进行实验,与主流的损失函数相比,有效提升了边界框回归的准确性和稳定性。

1 相关工作

1.1 目标检测网络

当前基于卷积神经网络的目标检测技术主要分成两阶段和单阶段两种框架。

两阶段目标检测算法的基本思想是先生成一系列可能包含物体的候选区域,然后对这些候选区域进行分类和边界框回归处理,以确定最终的物体检测结果,由此产生了最早的两阶段目标检测网络,即区域卷积神经网络(region-based convolutional neural network,R-CNN)[15]。快速区域卷积神经网络(fast region-based convolutional neural network,Fast R-CNN)[16]在R-CNN 的基础上加入了感兴趣区域(region of interest,ROI)池化层。更快的区域卷积神经网络(faster region-based convolutional neural network,Faster R-CNN)[17]通过使用区域预测网络(region proposal network,RPN)生成候选区域,提高了网络的检测精度和运行速度。Mask R-CNN 添加了一个用于预测目标掩码的分支来扩展Faster RCNN,实现目标的检测与分割。级联区域卷积神经网络(cascade region-based convolutional neural network,Cascade R-CNN)[18]则通过设计相应的级联检测器来改进Mask R-CNN。在Cascade R-CNN 级联结构的启发下,混合任务级联(hybrid task cascade,HTC)[19]目标检测器设计了多任务多阶段的混合级联结构,SCNet[14]设计了样本一致性网络来平衡样本在训练和推理中的IoU 分布差异,以提高目标检测和实例分割的精度。

单阶段目标检测算法直接在输入图像上进行密集的预测,同时进行物体的分类和边界框回归。经典的单阶段目标检测器包括YOLO 系列[20-22]和单次多边框检测器(single shot multibox detector,SSD)系列[23-25]。除此之外,FCOS[12]提出了一种基于全卷积的逐像素目标检测方法。文献[26] 使用点集的形式表示边界框,进而确定物体的位置。文献[27-28] 通过预测关键点(角点和中心点)的方式来定位物体。ATSS[13]则提出了自适应正负样本选择策略。

另外,自2022 年以来,YOLO 系列蓬勃发展,YOLOv5 在骨干网络和瓶颈网络中分别设计不同的跨阶段局部(cross stage partial,CSP)网络结构来加强网络的特征融合能力;YOLOv6[29]基于重参数化方法设计了更加高效的骨干网络和瓶颈网络;YOLOv7[30]通过先粗略后精细的标签分配策略来提升检测精度;YOLOv8 采用任务对齐策略来引导网络动态地关注高质量的边界框,并改进了CSP 结构来进一步提高目标检测的精度和速度。

1.2 边界框回归损失

早期的目标检测通常使用L1 损失来回归边界框,由此产生了损失函数对物体尺度较为敏感的问题,即大物体与小物体的损失值相差较大,不利于神经网络对小物体的学习。IoU 损失的提出很好地解决了尺度敏感的问题。然而,当两个边界框没有交集时IoU 损失不能为神经网络提供反向梯度传播,为此,GIoU 损失增加了一项关于两个边界框最小外接矩形的惩罚项来解决梯度消失问题;DIoU 损失则直接衡量两个边界框的中心点距离;CIoU 损失在DIoU损失的基础上加入了对边界框长宽比的考量;Alpha-CIoU 损失在CIoU 损失上应用Box-Cox变换,因此实现了损失和梯度的重新加权,有效提升了目标检测的精度。

2 边界框的高斯建模以及损失函数

图1 展示了非线性高斯平方距离损失的建立过程:首先将边界框B=(x,y,w,h) 转换为二维高斯概率分布G(µ,Σ),得到两个一维概率分布G(µx,σx) 和G(µy,σy);然后通过中心点距离dc和高斯平方距离dgs来计算两个概率分布之间的距离;最后通过设计非线性函数将高斯平方距离dgs转换为损失LNL-GSD。总的回归损失LREG为中心点距离损失LCD和非线性高斯平方距离损失LNL-GSD之和。

图1 边界框的高斯建模以及损失函数Figure 1 Gaussian modeling and loss function of the bounding box

2.1 边界框的高斯分布建模

在目标检测中,预测边界框和真实边界框分别表示为:Bp=(xp,yp,wp,hp) 和Bgt=(xgt,ygt,wgt,hgt)。其中,变量x和y表示对应边界框的中心点坐标,w和h表示对应边界框的宽度和长度。因此,两个边界框之间的相似性度量主要考虑重叠性、中心点距离和长宽比。本文依据这3 个因素将边界框建模为高斯概率分布。

2.1.1 重叠性

IoU 是目标检测算法中评价物体检测性能的一种常用指标。如图2 所示,在图2(a) 和(b)两种不同情况下,预测边界框和真实边界框之间相对位置的差距非常明显:图2(a) 的回归效果要优于图2(b),而计算得到的IoU 的值却是相等的。由于IoU 只计算了两个边界框之间的重叠区域,无法精确反映两者的距离大小,因此,GIoU 在IoU 的基础上,引入了预测边界框和真实边界框的最小外接矩形。GIoU 通过增加对非重叠区域的关注,能更好地反映两个边界框之间的重合度。

图2 IoU、GIoU 和GSD 比较Figure 2 Comparison of IoU,GIoU and GSD

虽然GIoU 在一定程度上解决了IoU 的问题,但其评估标准仍然严重依赖于IoU,如图2(c) 和(d) 所示。当两个边界框处于包含关系时,GIoU 退化为IoU,无法区分其相对位置关系。

以上问题的出现是因为IoU 和GIoU 都是依据面积和比值来评价边界框的重合度,因此无法兼顾所有像素点的位置估计。近期的研究[12]表明:边界框中每个像素点的重要性是不一样的,中心点权重最高,其他点的权重由中心点向边界逐渐递减。从另一个角度看,当图像中的某个像素点距离边界框的中心点越近时,它属于该物体的可能性越大。因此,如图3 所示,本文通过高斯核函数将边界框所包围的区域映射成概率分布,于是可以在连续的像素空间内计算每一对点之间的距离,进而更加全面地评价两个目标框之间的相对位置关系(即重叠性)。

图3 边界框的二维高斯分布建模Figure 3 Two-dimensional Gaussian distribution modeling of bounding box

以图3 所示的边界框B=(x,y,w,h) 为例,每一个像素点权重(概率)W(xi,yi|B) 的公式为

式中:(xi,yi) 为像素点的坐标;µx=x;µy=y;σx=w/2;σy=h/2。

2.1.2 中心点距离

当两个边界框不相交时IoU 损失无法提供梯度回传,因此,DIoU 损失在IoU 损失的基础上直接将两个边界框之间的中心点距离引入损失函数,有

式中:(bp,bgt) 为预测边界框和真实边界框的中心点;ρ2为计算两个中心点的欧氏距离;D为预测边界框和真实边界框的最小外接矩形的对角线长度。虽然中心点的距离度量已经成为目标检测中必要且十分有效的方法,但是DIoU 损失通过最小外接矩形的对角线长度来归一化中心点之间的距离,会给最小外接矩形提供负梯度,从而增大了最小外接矩形的大小,在一定程度上影响了两个边界框的重叠,用公式可以表示为

基于以上分析,本文采用真实边界框的宽和长来缩放中心点之间的距离,这样不会引入额外的梯度传导,公式为

2.1.3 长宽比

CIoU 损失在DIoU 损失的基础上,引入反三角函数arctan() 来评估两个边界框中长宽比的相似度,公式为

CIoU 损失全面考虑了目标检测评估中重叠性、中心点距离和长宽比。但是由于将长和宽(wp,hp) 耦合在一起进行评估,两者的梯度变化刚好相反,无法同时增大或减小,公式为

从另一个角度来说,在最初的目标检测中,基于L1 的损失将边界框(xp,yp,wp,hp) 分别进行独立地回归,忽视了四者之间的相关性,即耦合性较低。而基于IoU 的损失将边界框看作一个整体,直接衡量真实边界框和预测边界框的差距,这种方式虽然保证了预测边界框中(xp,yp,wp,hp) 的联合优化,但也对于4 个变量的关系假设过于紧密,即耦合性较高。

具体来说,基于IoU 的损失会不断增大真实边界框和预测边界框的交集,在这个过程中,(xp,yp,wp,hp) 是联合变化的。然而,预测边界框对于x方向(xp,wp) 和y方向(yp,hp)的优化应该相对独立,即如果预测边界框在x方向上与真实边界框重合度较高时,只需要在y方向上进一步优化。

基于以上分析,本文利用二维高斯核函数在x和y方向上的正交性,将边界框所形成的二维概率分布(如式(1))进一步拆分为两个一维概率分布,分别用于表示边界框中每一点在x方向和y方向上的权重大小,通过这种拆分方式,边界框在x方向和y方向上的评估和优化过程相对独立,有利于边界框的稳定回归,公式为

2.2 高斯平方距离

通过高斯核函数,本文将预测边界框和真实边界框所包围的区域分别映射成相应的两个一维概率分布,进而可以分别在两个连续的一维空间内直接计算每一组点对之间的距离。受热力图匹配计算[31]的启发,通过在实数域上对所有点对的平方距离进行积分,分别得到预测边界框Bp=(xp,yp,wp,hp) 和真实边界框Bgt=(xgt,ygt,wgt,hgt) 在x方向和y方向上的高斯平方距离的公式为

为了方便神经网络进行反向梯度传播,本文利用高斯积分定理,进一步得到式(11) 和(12) 的闭式解,公式为

总的高斯平方距离dgs公式为

2.3 非线性高斯平方距离损失

值得注意的是,作为一种距离度量,高斯平方距离不能直接用于衡量相似度,否则神经网络将会倾向于学习尺寸较大的边界框,从而弱化对小目标的学习。因此,与基于IoU 的损失(值域在0 到1 之间)类似,一个良好的损失函数应该是对尺度不敏感的。

通过分析发现,当两个边界框没有交集时,两者的高斯平方距离达到最大值。因此,和的最大值分别表示为,公式为

关于不同非线性函数的选择比较请参阅3.3 节的消融实验。

除此之外,本文使用smoothL1来计算两个边界框中心点之间的损失值,公式为

总的损失表示为

3 实验与结果分析

为了验证所提方法的有效性,本文利用MS COCO 2017 数据集,在两阶段目标检测器Mask R-CNN 和SCNet 以及单阶段目标检测器FCOS、ATSS 和YOLOv8 上进行实验。依照不同的网络架构和训练策略,分别使用基于IoU 的一系列损失函数(IoU 损失、GIoU 损失、DIoU 损失、CIoU 损失和Alpha-CIoU 损失)与本文所提出的NL-GSD 损失函数进行训练和测试。

除YOLOv8(遵循官网代码和网络结构)外,本文所有实验均基于MMDetection[32]检测框架,对于Mask R-CNN、FCOS、ATSS 和SCNet 这4 种不同的检测器,均采用基于ImageNet 预训练的ResNet-50 作为骨干网络,特征金字塔网络(feature pyramid network,FPN)作为特征提取网络。为了方便比较各个模型和方法,除YOLOv8 外的所有模型均在MMDetection 检测框架中采用1x 训练策略进行算法比较,总共训练12 个周期,其中初始学习率在第8 个周期后衰减到原来的1/10,在第11 个周期后衰减到原来的1/100。另外,本文使用PyTorch 作为深度学习框架,并在GeForce RTX 3090Ti GPU 上进行端到端的训练和测试。

3.1 数据集与评估标准

MS COCO 2017 数据集是在目标检测、图像分割和人体姿态估计等计算机视觉任务中广泛使用的一个图像数据集。其中,训练集包含约118 287 幅图像,验证集包含约5 000 幅图像。遵循MMDetection 检测框架的训练与测试方式,本文在训练集上进行训练并在验证集上评估模型性能。

实验结果采用平均精度均值(mean average precision,mAP)、AP50(IoU 阈值为0.50时的AP)、AP75(IoU 阈值为0.75 时的AP)、APS(像素面积小于32×32 的边界框的AP)、APM(像素面积在32×32 到96×96 之间的边界框AP)和APL(像素面积大于96×96的边界框的AP)进行评价。

3.2 实验结果分析

3.2.1 Mask R-CNN

Mask R-CNN 是经典且有效的两阶段目标检测器。本文使用动量为0.9,权重衰减为0.000 1 的随机梯度下降(stochastic gradient descent,SGD)优化器进行优化。批次大小设置为10,初始学习率为0.012 5,其中,前500 轮迭代采用0.001 的线性比率进行学习率预热,使学习率从0 逐渐增加到0.012 5。

由表1 可知,相比Mask R-CNN 的L1 损失,NL-GSD 损失在mAP、AP75、APS、APM和APL上分别提高了1.3%、2.2%、0.9%、2.7% 和1.2%。

表1 在Mask R-CNN 上不同损失函数的检测结果比较Table 1 Comparison of detection results of different loss functions on Mask R-CNN %

同时,由于Mask R-CNN 在第1 阶段检测中通过RPN 网络提取了高质量的候选区域,使得在第2 阶段的边界框回归过程中大部分预测边界框和真实边界框有重叠区域,因此,GIoU损失、DIoU 损失、CIoU 损失和Alpha-CIoU 损失存在一定程度的精度下降:GIoU 损失几乎退化为IoU 损失,且收敛存在发散问题;由于大部分预测边界框和真实边界框有重叠,DIoU损失中的中心点距离损失作用不大;CIoU 损失和Alpha-CIoU 损失对边界框的长和宽进行联合回归,使得边界框的回归产生波动,从而没有更好地收敛。

因为NL-GSD 损失将边界框转换为概率分布,能在两个边界框重叠时更好地区分其相对位置关系,并且对边界框的长和宽分别回归,所以回归过程更为稳定,取得了较好的性能,与同样综合考虑了重叠性、中心点距离和长宽比3 个因素的CIoU 损失相比,NL-GSD 损失在mAP、AP75、APS、APM和APL上分别提高了0.5%、1.2%、1.4%、0.2% 和0.4%。

3.2.2 SCNet

对于两阶段目标检测器SCNet,本文设置批次大小为6,初始学习率为0.007 5,使用SGD优化器进行优化,分别使用CIoU 损失与本文所提出的NL-GSD 损失进行训练和测试。结果如表2 所示。

表2 在SCNet 上不同损失函数检测结果比较Table 2 Comparison of detection results of different loss functions on SCNet %

由表2 可知,相比SCNet 的L1 损失,NL-GSD 损失在mAP 和APL上分别提高了0.7%和2.3%。与Mask R-CNN 只采用一级检测器不同,SCNet 改进了HTC 网络的三层检测器级联架构来回归边界框,因此经过前两层检测器的逐级优化和筛选,边界框的质量得到明显提高,使得第3 层检测器中损失函数对于边界框回归的优化空间较小,所以L1 损失、CIoU损失和NL-GSD 损失都取得了较好的性能。

3.2.3 FCOS

对于单阶段目标检测器FCOS,本文设置批次大小为16,初始学习率为0.01,bias 参数的学习率设置为0.02。同时,使用SGD 优化器进行优化,并采用基于L2 范数的梯度裁剪。结果如表3 所示。

表3 在FCOS 上不同损失函数检测结果比较Table 3 Comparison of detection results of different loss functions on FCOS %

由表3 可知,与Mask R-CNN 不同,作为单阶段目标检测网络,FCOS 并没有通过预先提取可能性较大的候选区域来提升后续的边界框回归效果,因此GIoU 损失、DIoU 损失、CIoU损失和Alpha-CIoU 损失相对于IoU 损失都有稳定的精度提升。

与DIoU 损失、CIoU 损失和Alpha-CIoU 损失相比,本文提出的中心点距离损失能直接缩短两个边界框之间的距离而不影响两者进一步重叠,因此,本文所提出的NL-GSD 损失在基准的IoU 损失上取得了更大的提升,由表3 可知mAP、AP75、APM和APL分别提高了1.1%、1.3%、1.2% 和2.6%。同时,与综合衡量了边界框三要素,并进行损失和梯度重新加权的Alpha-CIoU 损失相比,本文提出的NL-GSD 损失在mAP、AP50、AP75、APM和APL上也分别提高了0.3%、0.7%、0.3%、0.5% 和1.3%。

3.2.4 YOLOv8 nano

对于单阶段目标检测器YOLOv8 nano,本文使用SGD 优化器,设置批次大小为128,训练轮数为500 轮,使用本文所提出的NL-GSD 损失进行训练和测试,所得结果如表4 所示。

表4 在YOLOv8 nano 上不同损失函数检测结果比较Table 4 Comparison of detection results of different loss functions on YOLOv8 nano %

YOLOv8 的超参数需要经过额外的优化,因此其训练效率较低,本文所提出的NL-GSD损失在未使用其超参数优化算法(因优化目标不同而需要几倍到几十倍不等的训练时间)的情况下仍取得了较好的性能,节省了大量的超参数优化时间,具有较高的训练效率,有效平衡了训练时间和检测精度,进而有利于目标检测算法的快速推广应用。

3.2.5 ATSS

为了检验所提方法在不同的样本选择策略上的性能,本文在ATSS 检测器上也进行了相应实验。设置初始学习率为0.008 75,批次大小为14,使用SGD 优化器(动量为0.9,权重衰减为0.000 1),所得结果如表5 所示。

表5 在ATSS 上不同损失函数的检测结果比较Table 5 Comparison of detection results of different loss functions on ATSS %

由表5 可知,除了Alpha-CIoU 损失外,其他损失对于IoU 损失都有较大提升,这是因为Alpha-CIoU 损失对回归损失加大了权重,从而加剧了回归损失和分类损失之间的不平衡性。但是其他损失不受此影响,因此当采用更好的样本选择策略时,本文所提出的NL-GSD 损失在mAP、AP50和AP75上与基准IoU 损失相比,分别提高了2.3%、2.3%和2.1%,与CIoU损失相比,分别提高了0.5%、0.7%和0.9%。

图4 展示了在ATSS 目标检测器上,3 种不同损失所得到的边界框回归结果。可以看出,与IoU 损失和CIoU 损失相比,本文方法回归的边界框与目标物体的重叠性更大,同时,边界框的4 条边对物体的包围更加紧密。

图4 IoU 损失、CIoU 损失和NL-GSD 损失定性比较Figure 4 Qualitative comparison of IoU loss,CIoU loss and NL-GSD loss

3.3 消融实验

为了验证在2.3 节中所设计的非线性函数的有效性,本文基于ATSS 目标检测器设计相应的消融实验,训练和测试条件如3.2.5 节所述。

为了简化表示,使用d表示两个边界框在x或者y方向上的高斯平方距离,m表示该高斯平方距离的最大值,以下方式仅代表不同的非线性函数设计方式,总的回归损失仍然依照式(20) 进行,可以通过4 种方式对高斯平方距离进行归一化:

方式1直接使用最大值归一化,即;

方式2先用最大值归一化,再用对数函数平滑,即;

方式3先用最大值归一化,再用sqrt 函数平滑,即;

方式4先用对数函数进行平滑,再用最大值归一化,即。

表6 为以上4 种归一化方式在ATSS 目标检测器上的检测结果,通过对比发现:本文基于方式4 设计的归一化方式相比于其他方式性能更好。

表6 在ATSS 上不同归一化方式的检测结果比较Table 6 Comparison of detection results of different normalization methods on ATSS %

图5 展示了使用以上4 种方式对高斯平方距离归一化后得到的损失函数的变化曲线:其中图5(a) 模拟了当预测边界框和真实边界框的长宽相同,但中心点之间的距离逐渐增大时各类损失函数的变化曲线;图5(b) 模拟了当预测边界框和真实边界框中心点重合,但预测边界框长度和宽度同时增大时各类损失函数的变化曲线。结合图5(a) 和5(b) 可知,虽然不同的损失函数其形式不同,但对于神经网络向极值点方向优化来说,良好的损失函数的变化趋势和值域应该是趋于一致的。因此,本文基于方式4 所设计的归一化方式能够将高斯平方距离的值域归一化为0~1,以IoU 损失为参考(如图5 黄色曲线所示),本文设计的归一化方式得到的损失较为平滑(如图5 深红色曲线所示),既不与IoU 损失保持完全相同,又能在总体上保持良好的变化趋势,因而检测效果优于其他归一化方式。

图5 不同损失函数对比Figure 5 Comparison of various loss functions

4 结语

本文针对目标检测中的边界框回归,详细分析了基于IoU 的系列损失函数的优缺点。为了使边界框之间的相对位置关系更容易区分,将边界框转换为高斯概率分布。然后,通过引入高斯平方距离和非线性函数设计相应的损失函数。最后,在公认的数据集和多种目标检测器上的实验结果表明,本文方法可以有效提高目标检测中边界框回归的稳定性和准确性。另外,由于本文在设计损失函数时只关注于边界框的几何因素,并未区分样本的质量高低,今后还需要研究如何评估样本的质量,进一步研究侧重高质量样本的损失函数。也将在诸如行人和动物等特定数据集上继续研究和应用损失函数,为目标检测的研究和应用推广提供一定的参考。

猜你喜欢
概率分布中心点检测器
离散型概率分布的ORB图像特征点误匹配剔除算法
Scratch 3.9更新了什么?
如何设置造型中心点?
车道微波车辆检测器的应用
关于概率分布函数定义的辨析
基于概率分布的PPP项目风险承担支出测算
一种雾霾检测器的研究与设计
汉字艺术结构解析(二)中心点处笔画应紧奏
寻找视觉中心点
一体化火焰检测器常见故障分析