APP下载

深度学习应用于遮挡目标检测算法综述

2022-06-17孙方伟李承阳谢永强李忠博杨才东

计算机与生活 2022年6期
关键词:检测器神经网络预测

孙方伟,李承阳,2,谢永强+,李忠博,杨才东,齐 锦

1.军事科学院 系统工程研究院,北京 100141

2.北京大学 信息科学技术学院,北京 100871

目标检测是一个包含目标定位和目标分类的多任务学习问题。2014年,R-CNN(regions with convolutional neural network features)将PASCAL VOC 2012数据集上的验证指标mAP(mean average precision)大幅度提升了30 个百分点,成功地将深度学习应用到目标检测领域。此后,研究者们又相继提出了一系列优秀的模型来提高目标检测的性能,并使得深度卷积神经网络在该领域成为占据主导地位的网络架构,这些网络架构按照生成建议框的方式不同可以分为两类:单阶段检测器和两阶段检测器。单阶段检测器不会单独生成一支用于产生候选区域的区域建议网络(region proposal network,RPN),所有的任务都视为一个回归问题融合在一个网络中解决,代表性的单阶段检测器有SSD(single shot multi-box detector)、YOLO(you only look once)、RetinaNet等。而两阶段检测器先利用RPN 生成候选区域(或者称为“感兴趣区域”,region of interest,RoI),然后使用卷积神经网络对每个候选区域进行分类,代表性的两阶段检测器除了R-CNN,还有SPP-Net(spatial pyramid pooling net)、Fast R-CNN、Faster R-CNN、R-FCN(region-based fully convolutional network)、Mask R-CNN等。一般情况下,单目标检测器在检测速度上具有优势,而两阶段检测器在检测准确度上具有优势。

虽然深度学习促进了目标检测的发展,但是在现实场景中,由于遮挡的存在,使得目标检测仍然是一项具有挑战性的任务。人类视觉系统可以使人类能够在物体部分信息被遮挡或者丢失的情况下,也能通过场景中存在的轮廓来延续和推断,以此来判断物体的属性。然而,基于深度学习的计算机视觉系统完成遮挡物体的有效检测还很困难。为了应对遮挡问题,目前已经有多篇论文提出了遮挡检测优化算法。在最近的文献中,Chen 等人针对行人检测中的遮挡问题进行了分析,Saleh 等人针对户外和室内场景中一般目标检测中的遮挡处理方法进行了简要概述,但是都没有涉及对基于深度学习的遮挡目标检测算法进行系统性的总结归纳。考虑到遮挡问题在实际生活场景中的普遍性以及处理该问题的重要性,本文将基于深度学习的遮挡检测优化算法分为目标结构、损失函数、非极大值抑制算法和部分语义四个改进方向,并以此展开对各遮挡检测算法进行归纳分析。另外,本文的工作只针对静止图像的目标检测,运动视频以及3D 图像等领域不在讨论范围。

1 问题与挑战

遮挡是目标检测中常见的问题,对其有效解决在行人检测、目标跟踪、人脸识别、立体成像、自动驾驶、汽车检测等方面有重要价值。

根据目标的遮挡程度,遮挡可以分为无遮挡(0%)、轻度遮挡(1%~10%)和部分遮挡(10%~35%)、严重遮挡(35%~80%)和完全遮挡(≥80%)。由于轻度遮挡和部分遮挡在数据集中占据的比例最高,相比于整体数据集能够更具代表性,通常将二者合并称为一般遮挡(1%~35%)进行研究。目前的研究将不同遮挡程度作为条件来综合评估检测器的性能;根据遮挡物体与被遮挡物体之间的关系,遮挡可以分为待检测的目标之间相互遮挡和待检测的目标被非目标物体遮挡,前一种遮挡情况由于检测器能够在训练样本中学习到所有目标物体的特征,在样本充足的情况下,优化检测的方式比较多,而后一种遮挡情况由于缺乏遮挡物体的标注信息,对非目标的处理比较困难。

处理遮挡问题的困难在于:(1)由于数据集和遮挡复杂性的影响,分类器无法学习所有的遮挡情况,Fawzi和Frossard验证了在部分遮挡下,深度卷积神经网络不具有鲁棒性;(2)遮挡干扰了特征提取,相互遮挡的两个目标可能具有非常相似的特性,导致检测器无法准确区分进行预测;(3)遮挡时由于预测框之间可能会严重重叠,因此不同目标的预测框可能被非极大值抑制(non-maximum suppression,NMS)算法看作一个目标的预测而错误地抑制,造成漏检的发生。

2 遮挡数据集

随着深度神经网络在目标检测领域的应用,数据集的好坏很大程度上影响着检测器的性能和泛化能力。通用的目标检测常用数据集包括PASCAL VOC、MS-COCO、ImageNet和Open Images等。这些常用的数据集已经广泛应用到评估各种检测算法的有效性中。但是这些通用数据集几乎不具备遮挡条件,对遮挡检测算法的适用性较低,无法准确评估算法的性能。因此,针对遮挡场景还构造了特定的遮挡数据集,较为常用的有KITTI 数据集、Caltech数据集、CityPersons 数据集、VehicleOcclusion 数据集以及CrowdHuman 数据集等。

KITTI数据集是目前国际上最大的自动驾驶场景的测评数据集,由德国卡尔斯鲁厄理工学院和丰田美国技术研究院联合创建。KITTI 数据集由7 481张训练图片和7 518 张测试图片组成,包含市区、乡村和高速公路等场景采集的真实图片,有80 256 个标记对象,包括行人、汽车、自行车和特定遮挡的注释。每张图片中最多包含15 辆车和30 个行人,还有各种程度的遮挡。

Caltech 行人数据集是Dollar等人提出的一个大型行人检测数据集,其包含了25 万帧分辨率为600×480 像素的图像序列,这些图像主要拍摄于城市环境中。在Caltech 数据集中,一共对350 000 个边界框和2 300 个独立行人进行了注释,包括边界框和详细的遮挡标签之间的对应关系。

CityPersons 数据集建立在语义分割数据集Cityscapes 的基础上,是目前较为常用的行人检测数据集。该数据集中的图像场景涵盖了德国18 个不同城市的3 个不同季节和各种天气,其中包含2 975 张图片用于训练,500 张图片用于验证,以及1 525 张图片用于测试。数据集对大约35 000 个行人目标进行了边界框标注和可见部分标注。

VehicleOcclusion数据集是在VehicleSemanticPart数据集的基础上合成的遮挡数据集,是一个关于飞机、自行车、公交车、汽车、摩托车和火车六种类型车辆的数据集,包含4 549 张训练图像和4 507 张测试图像。在VehicleOcclusion 数据集中,作为目标的车辆随机被2~4 个非目标物体遮挡,并且遮挡比例受到约束。同时,VehicleOcclusion 数据集对遮挡信息进行了准确注释,如遮挡物的类别和遮挡物的数量。

CrowdHuman 数据集是旷视科技发布的用于行人检测的数据集,图片数据大多来自于网络。该数据集中包含15 000 张图片用于训练,4 370 张图片用于验证,以及5 000 张图片用于测试,每张图片中大约包含23 个人并存在各种各样的遮挡。另外,CrowdHuman 数据集对每个人类目标都分别对其头部、人体可见区域和人体全身进行边界框注释。

除了前面介绍的几种遮挡数据集,研究者们还提出了其他的遮挡数据集,例如PETS、DYCE 数据集、TUT 数据集、BigBird数据集等,但是并未被广泛使用。为了生成遮挡图像,除了在真实环境中采样,还有的工作聚焦在使用计算机合成,例如Wang 等人使用生成对抗网络(generative adversarial networks,GAN)。表1 展示了部分遮挡检测数据集的有关信息和使用场景。

3 遮挡目标检测算法

从目标检测任务来看,处理遮挡问题的一个直接方法是直接训练一个应对遮挡情况的网络模型,但这种做法是极其困难的,因为目标的遮挡情况是极其复杂的,这也就导致难以收集一个涵盖众多遮挡情况的数据集。为此,有研究者通过数据增强的方式来提高现有遮挡数据集的质量。除了进行数据增强,当前遮挡目标检测算法主要包括两种类别:一个是改进基于整体特征的检测算法,另一个是改进基于部分语义的检测算法。二者的区别在于利用的输入图像特征不同,前者对输入图像特征提取后的特征图进行整体分析,这种方式不会丢弃特征信息,可以对特征进行充分利用;而后者对神经网络的中间层特征信息进行局部聚类分析,丢弃掉不具有语义部分的信息,这种方式可以提高算法的鲁棒性,降低遮挡产生的噪声影响。图1 展示了本章所介绍算法的总体分类。

表1 遮挡目标检测数据集Table 1 Datasets of occlusion object detection

图1 算法分类Fig.1 Algorithm classification

3.1 基于数据增强的检测算法

Devries和Taylor为了防止卷积神经网络容易过拟合,导致对遮挡的适应性很差,他们提出了一种正则化技术来进行数据增强,称之为“Cutout”。Cutout类似于Dropout,都是丢弃一部分的特征来增强神经网络的鲁棒性。区别在于,Cutout是在网络的输入阶段丢弃而不是在中间层丢弃,这种方法使输入图像删除的特征可以在后续特征图中删除,而Dropout可能使得随机删除的特征仍然存在于其他维的特征图中。

Cutout和Dropout删除特征的方式是通过覆盖黑色像素或者随机噪声来去除训练图像上的像素信息。Yun 等人认为这种删除方式会导致信息丢失和训练中的效率低下。为此,他们提出了一种新的正则化方式,称为“CutMix”。CutMix 的策略是从训练图像之间剪切和粘贴遮挡块来进行图像增强并且将目标区域也按比例混合到合并图像中,这样在训练过程中可以避免无信息像素的消极影响,使训练更加有效。通过实验验证,这种正则化方式要优于Cutout。

类似的,在进行行人重识别任务中,为了应对行人遮挡情况,厍向阳等人提出了随机擦除算法,通过一个概率矩阵来覆盖原图像并对覆盖区域进行随机像素赋值。

数据增强通过在原始图像中添加噪声来模拟遮挡情形,使得神经网络能够学习到主要的特征信息,降低遮挡情况下不相关特征信息的影响,从而提高网络模型对遮挡图像的鲁棒性,防止过拟合。这种方法虽然可以在一定程度上解决遮挡问题,但是并不符合真实环境中的遮挡情况,因此,大多数的遮挡检测算法关注于遮挡检测算法本身的结构优化。

3.2 基于整体特征的检测算法

对通用目标检测算法的改进是当前研究的主流方向,虽然改进的角度有所不同,但是其都是利用特征提取后的特征图进行整体分析,使得最终的预测框尽可能地靠近目标真实的边界框。目前基于整体特征的检测算法可以分为三个方向:基于目标结构的改进,基于损失函数的改进,基于非极大值抑制算法的改进。

神经网络的核心在于获取的特征信息,当图像特征信息被干扰时,神经网络无法正确处理干扰下的特征,导致卷积神经网络的鲁棒性较差。遮挡条件下,目标特征信息缺失,使得最先进的深度网络模型应用在遮挡数据集上时,效果会比无遮挡情况显著下降。为了应对遮挡情况,根据遮挡目标的结构特征,利用先验知识和目标可见部分结构信息设计检测器来提高遮挡检测性能是一种可行的解决方案。

(1)部件检测器

Tian 等人针对遮挡行人提出了由部分检测器组成的DeepParts 模型。该模型将人体划分成六部分,并对应定义了45 个部分原型来分别训练卷积网络部件检测器,然后通过互补的部件检测器中的最高得分来推断整个行人。部件检测器作为整体的组成部分,在处理遮挡问题时可以有效利用可见部分的结构信息,但是DeepParts 是单独训练各个部件检测器,忽略了部分之间的相关性,并且部件检测器所消耗的计算资源随着定义的部件检测器数量线性增加。

为了解决单独训练部件检测器的不相关性,Zhou等人提出了多标签学习方法来联合学习部件检测器。对于每个部件检测器将该部分存在的整体图像作为训练数据;为了避免某些部件检测器因为遮挡产生的噪声分数,联合学习将20 个部件检测器中15个最高得分进行平均化处理作为最终的整体分数。这种联合学习的方式有效提高了部件检测器的检测精度,但是不能摆脱单独训练部件检测器所需要的大量计算资源。

为此,不同于单独训练部件检测器,Zhang 等人将目标的结构信息集成到一个网络中,提出了ORCNN(occlusion-aware R-CNN)网络。其在Faster RCNN 的基础上进行改进,设计了部分遮挡感知区域(part occlusion-aware region of interest,PORoI)池 化单元来代替RoI 池化层,将人体的先验结构信息和可见性预测融合到检测器的Fast R-CNN 模块中来估计每个部分的遮挡状态。PORoI 池化单元通过先验知识将行人划分成五部分,将各部分的特征信息进行融合,具体网络结构如图2 所示。由于OR-CNN 的所有网络单元都是集成在一个网络当中,能够进行端到端的预测,因此在检测速度上会优于单独训练各个部分检测器。

区域全卷积网络(R-FCN)的局部响应特性通过将目标划分成多个部件进行检测,对遮挡情况有良好的适应性,但是失去了对全局特征的判断。Zhu 等人在R-FCN 的位置敏感区域(position-sensitive RoI,PSRoI)池化的基础上增加了RoI 池化,提出了CoupleNet。该网络将PSRoI 对目标的局部响应特性和RoI 对目标的全局响应特性相结合,提升了特征信息的表达能力,如图3。而Liu 等人则在R-FCN 基础上增加了多层特征提取网络,将每一层的特征信息进行融合,在保证网络能够处理遮挡问题的同时,使尺度变化较大目标尤其是小目标的检测得到提升。

(2)头-身联合检测

除了将目标按照结构进行全部部件检测,考虑到正常情况下,行人检测的特殊性在于被遮挡的部分通常位于人体的下半部分,而人头是最为常见的可见区域,因此头部信息提供了一个很好的线索来检索全身。但是问题的关键在于,如何将头部和身体进行可靠的联系。Chi 等人提出了JointDet 网络来进行头部和人体的联合检测,如图4。其动机在于:①单独的头部检测往往会产生大量的假阳性;②单纯的人体检测使得检测其性能大幅下降。因此,将二者联合检测既能抑制头部检测的假阳性,又能提高人体检测的性能。JointDet 先从RPN 直接得到头部建议框,然后通过统计规律得到头部和身体的比例来产生人体建议框,两种建议框通过关系组合模块(relation discriminating module,RDM)来完成最终的预测。

图2 PORoI和遮挡处理单元结构图Fig.2 Architecture of PORoI and occlusion process unit

图3 CoupleNet模型结构Fig.3 Architecture of CoupleNet

图4 JointDet网络结构Fig.4 Network structure of JointDet

JointDet采用的头部和身体联合检测策略虽然能够有效提高遮挡人群的检测性能,但是其缺点也是显而易见的:受头部和身体通过统计比例进行组合策略的影响,虽然这种策略简单易实现,但是JointDet所能适用的范围过于狭窄,只能检测正常的站立行人,如果行人发生姿态变化,就会大幅度影响JointDet的性能。

Zhang 等人采用了另一种头部和身体的组合策略,提出了双锚框网络(double anchor R-CNN,DARCNN)。为了充分利用头部检测的高召回率,DARCNN 不通过统计比例来确定头部和身体的组合关系,而是从RPN 中生成头部或者身体建议框后,再从每个建议框强制回归出另一个建议框,这样就形成了头-身组合,在对融合特征进行分类定位后通过设置的非极大值抑制算法完成最终的预测,如图5。相对于JointDet,DA-RCNN 由于头部和身体的组合过程使用回归的方式涉及到了更多的场景,因此具有更强的适应性,但是会占用更多的计算资源。另外,头-身联合检测需要数据集对目标的头部和身体分别进行标注,而现有的公共遮挡数据集大多数未对头部进行单独标注,因此需要后续的相关工作来提供更加可靠的数据集。

图5 DA-RCNN 结构图Fig.5 Network structure of DA-RCNN

(3)多目标检测

除了通过目标结构对目标进行分解检测,Chu 等人考虑到在遮挡条件下目标相互重叠,如果一个建议框对应于任何一个对象,那它很可能会与所有其他目标重叠。针对一个建议框预测一个目标的局限性,他们在FPN和RoI-Align为网络框架的基础上,增加了EMD(earth mover's distance)Loss、Set NMS和Refinement Module 模块,提出了一个建议框预测多个目标的网络模型CrowdDet,如图6。图中EMD Loss 是一个包含分类损失和定位损失的多任务损失,使建议框的多个预测对应最优的目标;Set NMS是针对多实例预测方法提出的一种避免不同建议框之间重复预测的非极大值抑制优化方法;Refinement Module 是为了降低多目标预测的每个建议框都预测一组实例而产生误报的风险,将预测框与特征信息相结合,进行第二轮预测来优化最终的预测结果。通过实验验证,只有将多实例预测和Set-NMS 结合使用,才能显著提高拥挤场景中的人群检测精度。CrowdDet 打破了一对一的传统检测模式,提供了一种新的检测思路,但是如何为每个建议框设置一个合理的检测数量并没有合理解决,后续的工作应该使得该算法能够自适应地确定检测数量:在密集遮挡场景中应该实行一对多的检测策略,而在正常场景中应该遵循一对一的传统检测策略。

图6 多目标预测总体结构Fig.6 Architecture of multi-target prediction

在CrowdDet 的基础上,Shao 等人为了进一步提高检测精度,提出了一种基于ResNet 的多尺度特征金字塔网络(multi-scale feature pyramid network,MFPN)。受FPN 通过不同特征层进行特征融合来提高目标检测精度的启发,MFPN 对各尺度特征层进行池化固定大小后,采用两层自底向上和自顶向下的双特征金字塔网络(double feature pyramid network,DFRN)作为最终的特征层输出,以增强遮挡目标的特征信息。同时,MFPN 还对EMD Loss 进行适当的优化,提出了最小斥力损失(repulsion loss of minimum,RLM)来考虑不同建议框之间的关系。通过实验验证,MFPN 能够提高遮挡目标的检测精度。这也表明,在目标特征信息缺失的情况下,通过特征信息融合来增强目标的特征信息能够有效提高目标的检测概率,但是其仍然没有克服自适应性不足的缺陷。

利用目标的结构信息将目标划分,并利用可见部分进行检测可以有效降低遮挡物的影响,但是部件检测器的计算复杂度较高,头-身联合检测的适用性较低且对数据集要求较高,多目标预测的预测数量自适应性不足都限制了基于目标结构进行遮挡检测的发展,如何更加有效利用可见部分来解决上述问题进行目标整体的推断仍然需要进一步研究。

深度神经网络模型从训练数据中获取最优参数是一个不断学习的过程,这一过程以损失函数为指标。损失函数可以直观地表示神经网络性能的优劣,即训练后的神经网络模型与训练数据在多大程度上不拟合,或者说神经网络的预测结果与实际结果在多大程度上不一致。通过合理地调整损失函数的算法结构,能够提高深度神经网络的性能。除了常见的均方误差损失函数、交叉熵误差损失函数、L1 损失函数、L2 损失函数等,为了提高检测器的检测性能,又相继提出了IoU Loss、Focal Loss、GIoU Loss、DIoU Loss、EIoU Loss等一系列损失函数。

Wang 等人通过实验验证了当前损失函数构造的目标检测器在检测遮挡人群存在局限性,因此提出了一种针对遮挡人群的边界框回归损失函数,称为Repulsion Loss。该损失由两个动机驱动:目标对建议框的吸引力和周围目标对建议的排斥力。斥力因素阻止了建议框向周围目标物体的转移,从而导致了更好的遮挡人群定位。Repulsion Loss 也是首次提出从损失函数的角度来解决遮挡问题,使网络在自动学习的过程中不断提升定位性能,为后续的遮挡检测算法提供了新的解决方案。

Zhang 等人在提出的OR-CNN 网络中,在Faster R-CNN 的区域建议网络和Fast R-CNN 模块使用了新的损失函数Aggregation Loss,它是一个包含分类损失和定位损失的多任务损失来推动建议框接近相应的目标真实边界框,同时最小化与同一对象相关的建议框之间的区域距离,以此来强制建议框靠近并且定位到相应的目标对象。通过实验验证,Aggregation Loss在相同检测框架下要比Repulsion Loss有效。

大多数损失函数通过位置回归来计算损失值,但是在后处理中却使用交并比(intersection over union,IoU)来抑制预测框的选择,忽略了二者之间的联系,低IoU 的预测框应该具有更高的损失值才能保证最终的预测结果更加接近目标边界框,为此Rezatofighi等人提出了GIoU(generalized intersection over union)来解决这个问题。为了使GIoU 提高对遮挡物体的检测性能,阳珊等人将Repulsion Loss 和GIoU Loss相结合,提出了Rep-GIoU Loss。新损失函数结合了二者的优势,在增加回归参数与IoU 间相关性的同时阻止建议框向周围目标的偏移,提高了对遮挡目标的检测性能,但是随着建议框生成网络的完善,高置信度的预测框极少会发生IoU 偏移,因此该算法的作用并不太明显。

除了直接从IoU的角度修改损失函数,Luo等人将NMS 算法也参与到网络模型的训练中,提出了NMS Loss。NMS Loss 考虑了假阳性和假阴性(IoU过高易产生假阴性,IoU 过低易产生假阳性)对目标检测结果的影响,对假阳性没有被抑制而假阴性被NMS 错误地删除进行惩罚,使得相同目标的预测离得很近,以及不同目标的预测离得很远。但是NMS Loss 只适用于单类目标的检测,其在一般检测中的使用仍需要进一步的研究。

损失函数作为检测结果的评价指标,是检测器必不可少的组成成分,损失值能够直观地体现出检测器性能,通过改进损失函数来改善检测器在遮挡环境下的性能是代价最小且最具解释性的方式之一,但是大多数损失函数的设计并没有考虑遮挡条件的复杂性,从损失函数角度来单独应对遮挡环境的研究还比较少。表2 对几种损失函数的结构进行了说明。

为了删除网络生成的冗余预测框,大多数检测器都会使用NMS 算法进行处理,其工作原理是:(1)将所有预测框按照置信度得分降序排列,选中置信度最高的预测框;(2)遍历其余的预测框,如果和当前最高得分预测框之间的IoU 大于设定的阈值,就将该预测框删除;(3)从未处理的预测框选出置信度得分最高的预测框,重复以上操作,直到所有的预测框都被处理过。

在非遮挡或者目标分布稀疏的情况下,NMS 确实可以有效地删除冗余的预测框,保证每个目标都有唯一的最佳建议框与其对应,但是在遮挡条件下,由于目标相互重叠,可能会导致不同目标的最佳建议框之间大面积重叠,导致NMS 错误抑制,进而导致漏检的发生。漏检是因为传统的NMS 抑制方式过于暴力——与置信度得分高的预测框重叠面积大于阈值直接删除,因而传统的NMS 也被称为Greedy-NMS。

针对Greedy-NMS 的缺陷,2017 年,Bodla 等人提出了Soft-NMS,其采用一种衰减的算法检测所有的预测框,对重叠度高的其他预测框的得分进行衰减,重叠度越高,预测框的得分衰减得越多,因为它们有更高的假阳性可能;同样的,因为保留了预测框而不是直接删除,在后续处理过程中,重叠度高的预测框还是有重新被“捞起”的机会,具体的算法结构如图7。Soft-NMS 采用一种柔和的方式来进行目标预测框的抑制,虽然能够降低漏检的发生,但是也会造成计算成本的增加。

Hosang 等人提出了通过神经网络进行学习来适应数据分布的NMS 算法。经过分析,一个检测器如果对每个目标只输出一个高分检测,那么必须满足对同一目标的多个检测应该联合处理,这样检测器就能够知道有重复检测,并且只有一个检测应该得到高分。为了达到这个目标,有两个关键点是必需的:(1)设计损失函数来惩罚多次检测,从而告诉检测器对每个目标只进行一次预测;(2)邻近预测框进行联合检测,使得检测器获取信息来判断一个目标是否被多次检测。在这一思路下,Hosang 等人设计出了“pure NMS network”,也被称为Learning-NMS,将重新设计的网络模型称为GossipNet。在遮挡条件下,Learning-NMS 优于传统的NMS 方法。但是由于Learning-NMS 作为一个神经子网络,必须要有足够大的数据集来支撑其进行训练,通过数据增强技术以及迁移学习或许会有益于GossipNet的使用。

表2 损失函数结构Table 2 Architecture of loss function

图7 NMS 算法的结构Fig.7 Architecture of NMS

虽然Soft-NMS 并没有像NMS 一样直接丢弃与最高置信度建议框重叠度过高的建议框,而是通过衰减函数来降低其置信度,在一定程度上缓解了遮挡导致的边界框重叠问题,但是由于Soft-NMS 仍然将所有高度重叠的建议框视为假阳性,存在一定的局限性。

Liu 等人针对拥挤行人检测这一特殊场景,提出了Adaptive-NMS 对Soft-NMS 进行了优化,使得人群密集的地方,NMS 阈值较大;在人群稀疏的地方,NMS 较小。为了判断人群的密集程度,作者设计了一个子网络,可以根据每个实例的密度预测阈值,如图7。通过在CityPersons 和CrowdHuman 数据集上进行实验,取得了较好的效果,证明了该方法的有效性;而与GossipNet类似,该网络同样依赖于一个样本充足的数据集进行训练,而且更多的参数增加了模型复杂度。

前面所提到的NMS 算法只按照建议框的分类置信度由高到低来执行抑制操作,然而有的时候,精确的建议框可能与类别置信度的分数并没有必然的相关性,这也就导致,得分高但是定位精确度差的建议框会抑制得分低但是定位精确的建议框。He 等人针对建议框定位置信度与类别置信度并无强相关提出了Softer-NMS。首先通过损失函数KL Loss 来学习对每个目标的建议框预测定位方差,然后在Soft-NMS 过程中,通过KL Loss网络学习到的方差对建议框进行加权平均来优化建议框的选择。

Huang 等人通过对比现有非极大值抑制算法发现,尽管各种算法通过不同手段降低了遮挡条件下阈值的影响,但是所有算法都是根据目标整体来进行处理,这种方式在遮挡条件下是不合理的,因为遮挡条件下遮挡部分会严重影响非极大抑制算法的使用。为此,他们提出了RNMS(representative region NMS),利用目标可见部分作为判断条件来进行预测框的非极大值抑制。通过CrowdHuman和CityPersons数据集上的实验验证,RNMS 要优于已有非极大值抑制算法,而该算法也对如何能够更精准地预测目标可见部分提出了要求。

非极大值抑制算法作为深度神经网络进行目标检测重要的后处理手段,其可靠性是影响检测精度的重要因素,通过改进非极大值抑制算法使得每个目标都有与之对应的预测框进行匹配,将有效改善遮挡情况下由于目标建议框之间相互交叠导致的漏检。根据阈值的设定方式不同,NMS 算法可以分为可学习型和超参数型,根据目标遮挡程度进行学习来自适应调整阈值的NMS 算法是未来研究的热点方向。

卷积神经网络在卷积运算的基础上,通过将空间和通道方向的信息进行局部融合来进行特征提取,除了通过目标结构利用可见部分来检测、改进损失函数和改进非极大值抑制算法提高遮挡检测的性能,还有的研究针对网络通道进行了研究。Hu等人认为不同的通道代表了目标不同部位的特征响应,其在目标识别过程中发挥的作用是不同的,因此提出了挤压激励网络(squeeze and excitation networks,SENet)专注于通道关系。SENet 使用全局池化层和全连接层设计注意力网络来为不同通道分配不同的权重,如图8。

图8 SENet总体结构Fig.8 Overall architecture of SENet

Zhang 等人进一步研究了通道与目标部位间的响应关系,将通道注意力运用到遮挡目标的检测中,对SENet 中的注意力引导网络进行了重新设计,使其更加符合遮挡检测场景,并将其运用到了行人重识别任务中。除此之外,相关的研究还有Pang等人和Xie 等人也对注意力网络进行了单独的设计。根据实验证明,针对通道的注意力网络可以在一定程度上提升遮挡目标的检测效果。

3.3 基于部分语义的检测算法

部分语义是指具有语义意义并能被描述的物体的一部分,即目标的部件。不同于先验知识直接将输入图像进行划分,部分语义检测聚焦于从深度网络特征层中获取目标的部分信息特征,进而有效处理遮挡问题。通过部分语义的检测,一个目标可以用它的部件和部件之间的空间结构来表示,当检测到目标的个别部分的位置,就可以通过这些已知的部分去推断遮挡的未知部分。

Wang 等人首先发现,在训练的深度神经网络的中间层,对以通道数为维度方向的特征向量进行聚类,能够反映出目标的部分语义信息,作者称之为“视觉概念”,并利用视觉概念完成了对目标部件的检测。基于此,Wang 等人提出了一种投票机制将部分语义信息用于处理遮挡检测,其利用部分语义之间的空间约束信息来进行检测。为了有利于训练鲁棒性的模型,在模型训练上使用非遮挡图像,但在遮挡图像上进行测试。在遮挡导致某些视觉特征丢失的情况下,这种投票机制能够通过检测到的部分语义信息来进行目标的有效检测,而且由于部分语义并不依赖于神经网络的所有输出特征,具有一定的鲁棒性。但是,这种投票机制是人工设计的,没有做到以端到端的方式进行优化。

随后,Zhang 等人提出了一种深度投票机制,称为DeepVoting 网络。DeepVoting 将文献[34]所 示的鲁棒性结合到深度网络中,是一种鲁棒的、可解释的深度网络,其在VGG16网络的基础上在中间层之后增加了两层:第一层为“视觉概念层”,该层利用上一层输出的特征信息来提取局部视觉特征,进而检测部分语义信息;第二层为“投票层”,该层利用上一层提取的部分语义信息和语义信息之间的空间约束关系来消除遮挡对检测的影响,如图9。通过在VehicleOcclusion 数据集上测试发现,在非遮挡情况下DeepVoting 网络的性能与Faster R-CNN 相当,但在遮挡情况下,DeepVoting 网络显示出了更好的检测性能,且测试速度提高了2.5 倍。

图9 DeepVoting 整体框架Fig.9 Overall framework of DeepVoting

Kortylewski等人发现,虽然部分语义检测对部分遮挡具有鲁棒性,但是分类能力较差。为了更好地发挥深度学习的分类优势,其将深度卷积神经网络的分类能力和部分语义的组合能力相结合,提出了组合卷积神经网络(composition convolutional neural networks,CompositionalNets)进行部分遮挡目标的检测。通过在非遮挡图像上的训练,将目标的部分语义特征提取到字典中进行保存,并学习每个类部件的空间关系。在测试时,深度卷积神经网络如果预测目标的置信度没有达到设定的阈值,就进行部分语义检测,将提取的特征用于检测目标的部件,通过部件信息来进行目标的分类和定位。

Xiao 等人为了进一步提高遮挡下目标检测器的鲁棒性和分类性能,将原型学习、部分匹配和注意力机制结合到深度神经网络中,提出了TDAPNet,如图10。首先将深度神经网络提取的特征进行原型学习;随后使用部分匹配来比较原型与目标部分语义,从而去除不相关的特征向量,以此来扩展原型学习;最后,使用自上而下的局部注意力来调节遮挡引起的不规则激活,以减少遮挡的干扰。相比于CompositionalNets,TDAPNet具有更少的参数,计算更简单,在遮挡水平较低的情况下具有更优的性能。

图10 TDAPNet结构图Fig.10 Overall architecture of TDAPNet

但是Kortylewski 等人通过实验表明,在真实遮挡的图像上,TDAPNet 的性能不佳。为此,在组合卷积神经网络的基础上进行优化,将深度卷积神经网络和组合模型集成到一个统一的模型中,并使用一个端到端训练的可微组合层代替深度卷积神经网络的全连接分类层。该网络利用组合层的生成特性,能够对部分遮挡目标进行鲁棒性的分类和定位。随后,Kortylewski等人又对组合模型进一步优化,使其能够将图像分解为目标和上下文,然后利用目标部件和上下文信息定位遮挡物,并基于非遮挡部分识别物体。通过实验验证,改进的组合卷积网络对遮挡目标分类具有很强的鲁棒性。

根据Wang 等人的研究,由于组合网络并没有明确地将目标和上下文进行分离,在强遮挡的情况下,会放大上下文的影响并对最终的检测结果产生负面影响。为了克服这个问题,作者在训练过程中通过边界框标注对上下文进行分割,并且引入了基于部分语义的投票方案对目标边界框的角落进行投票,使得模型能够可靠地估计严重遮挡情况下遮挡目标的边界框。

部分语义检测从网络特征层中以通道作为维度获取目标信息,提供了目标检测的新思路,但是如何快速有效地获取部分语义信息来训练检测器仍然是一个挑战,而且如何来提高部分语义检测器相对于整体特征检测器的分类性能也需进一步的研究。

4 算法对比

根据利用的特征信息分析角度不同,以卷积神经网络为基础衍生出了部分语义检测,部分语义检测为目标检测尤其是遮挡目标检测带来了新的研究思路,但是鉴于卷积神经网络强大的分类能力,基于整体特征的目标检测算法仍然是目前的主流研究方向。此外,越来越多的研究不再局限于某一方面的改进,而在于多方面的复合,例如多目标检测提出了全新的网络架构兼顾了损失函数和非极大值抑制的改进;文献[77]中的组合网络将整体特征和部分语义相结合。

表3 对不同类型的改进算法的优势以及局限性进行了分析。表4 对算法的性能进行了列举,其中采用的性能对比标准为AP(average precision)和MR(miss rate)。从表中可以看出,不同类别下的检测算法由于对训练数据集、测试数据集以及网络结构的要求不尽相同,无法进行十分严谨的对比实验;而在同一类别下的检测算法也同样受制于数据集的限制,无法进行更加深入的比较。在后续的研究过程中需要整合一个满足各种算法要求的数据集来进行评测。

表3 不同类型改进方案的比较Table 3 Comparison of different types of programmes

表4 遮挡检测算法的性能Table 4 Performance of occlusion detection algorithms

表4(续)

5 总结和展望

自深度学习,尤其是区域卷积神经网络应用到目标检测领域以来,目标检测的精度以及速度都取得了长足的进步。虽然在一般目标和特定目标的分类检测方面已经有了大量的研究并取得了丰硕的成果,但是对于遮挡目标的检测仍然是一个挑战性的问题。本文对深度学习在遮挡条件下的目标检测进行了总结,并按照每个改进方法的优化理念,将其划分成了不同的类别进行归纳,并对比了算法的性能。

虽然目前的方法基于不同技术在遮挡目标检测方面取得了进步,但是考虑到遮挡问题的复杂性,遮挡检测仍然存在一些关键问题需要解决,未来的工作可聚焦于以下几个方面:

(1)通用遮挡检测模型的训练。当前的检测模型大多是针对特定场景或者特定目标进行训练,通用的目标遮挡检测研究还较少,但是通用目标的检测是真实环境中不可避免的,因此需要投入大量的研究。

(2)学习方式的改善。由于遮挡情况的复杂性,在训练数据有限的情况下,检测器难以学习到无法穷尽的各种遮挡情况。因此,如何利用现有的数据,通过无监督或者半监督方式来改善这个问题,应该是一个非常值得探索的方向。

(3)遮挡数据集的扩展与选择。当前的遮挡数据集大多来自于合成图片,而且来自于现实场景中的遮挡图片较少且场景较为单一。在后续工作中,应该收集更大规模的注释遮挡数据集,GAN 网络和图片增强技术将有利于数据集的扩充。除此之外,遮挡检测的数据集众多且评估遮挡检测算法的标准各不相同,从而使得对各种算法的性能比较变得困难。在后期工作中,应该规范数据集以及评价标准的使用。

(4)目标特征的有效利用。目标检测器的工作原理是根据深度神经网络获取的目标特征信息来进行目标的识别定位,遮挡目标由于遮挡影响了目标的特征提取导致检测器无法正确判断。通过更加有效地利用目标可见部分来获取特征信息将会有利于目标检测任务,例如部分检测器、特征融合、部分语义检测等。

除了前面提到的几个方向,随着Dosovitskiy 等人将自然语言处理中的Transformer 算法用于图片分类任务并取得了优异的结果,其在计算机视觉领域引起了大量的关注。Transformer 通过对输入图像切片化的处理来聚焦于局部信息特征并通过局部信息之间的注意力机制来获取图像各部分之间的联系。若将其应用于遮挡目标的检测,或许会更好地关注于目标可见部分的特征信息而忽略掉遮挡部分对检测的影响,以此对遮挡检测问题进行有效的解决。

猜你喜欢

检测器神经网络预测
无可预测
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
基于递归模糊神经网络的风电平滑控制策略
选修2—2期中考试预测卷(A卷)
参数可调的联合子空间目标检测方法 *
基于交通诱导的高速公路交通检测器布设方案研究
神经网络抑制无线通信干扰探究
基于神经网络的中小学生情感分析
基于均匀性判定规则的统计MIMO雷达多通道融合检测技术