对于场景中的遮挡车辆检测研究*
2022-04-07秦帅昆罗素云
秦帅昆 罗素云
(上海工程技术大学机械与汽车工程学院 上海 201620)
1 引言
随着我国智能交通系统的快速发展,车辆管控也变得越来越重要。在车辆检测中,车辆遮挡问题仍然具有很大的挑战。目前的车辆检测方法通常通过训练完整车辆轮廓来检测无遮挡或轻微遮挡的车辆,但对严重遮挡的车辆检测性能很差。Lee B G等[1]通过对遮挡面积做出估计进而判断遮挡的方法。该方法虽准确判断出遮挡位置,但计算较复杂。张桂梅等[2]通过用Kona 模板与场景匹配的方法检测T 型节点,利用该节点计算出遮挡位置。Ikemura S 等[3]通过TOF 相机获取目标深度相似特征判断目标遮挡位置,但受设备限制。在实际交通场景下,以上传统的滑窗检测方法很难满足实时性的需求,为了解决这个问题,需采用高效的特征提取方法进行特征计算[4],或引入降低每个检测窗口分类计算耗时的策略[5]。一些研究者提出通过只选择那些更有可能包含目标的窗口,并通过这种方式获得显著的性能加速,以减少检测窗口的数量。
由于被严重遮挡的车身的大部分轮廓是不可见的,很可能会被其检测窗口内的背景区域误导,从而容易发生漏检。试图学习一组特定的局部遮挡的检测器,然后将它们适当的集成在一起,用于检测非遮挡车辆和部分遮挡车辆[6~7]。该方法基于以下假设:当检测器无法检测部分遮挡车辆时,未遮挡部分的检测器对车辆的检测值仍然较高。对于此方法,每部分检测器的设置至关重要。通常,部件检测器是单独学习的。但单独部件检测器单独学习时有两个缺点:1)忽略了部件之间的相关性,进而影响学习部件检测器的可靠性。2)应用所学部件检测器的计算耗时随检测器数量的增加呈线性增加。W.Ouyang 等[8]利用了单个卷积神经网络实现了部件检测器的学习和集成。但是,这种方法只使用了类标记,并且是以弱监督的方式隐式地学习部件检测器。
在此,初步学习一种概率混合分布,该分布根据目标的位置和尺度对观测场景进行建模。考虑到在一组训练图像上运行的检测器的输出,场景模型以非监督的方式学习。在运行时,学习的混合分布用于采样最相关的检测窗口。然后联合一种共享决策树部件检测器的多标记学习方法,利用部件之间的相关性,降低应用这些部件检测器的计算时间。
2 基于场景学习的方法
本文选用一种基于场景中车辆位置和比例的GMM 的场景相关的方法。GMM 是在无监督的情况下从一组检测中学习的,在非最大抑制之前,由检测器在场景的少量帧中提取。混合模型的每个组成部分都是一个概率分布,表示在图像区域内以特定尺度观察一辆车的期望。在GMM 拟合过程中,根据在支持区域(Region of Support,ROS)[9]内进行重要性加权实施检测。在运行过程中,最有可能包含车辆的窗口将从混合模型部件中取样,并由分类器进行评估。
2.1 场景模型表示
建立概率模型yi,场景中的任何目标检测由GMM定义θ如下:
式中θ由其混合部件和它们的混合概率共同定义(两者都需估计),如下:
每个部件GMM 值都有均值μk(其质心位置)和协方差Ck(图像中部件的空间范围),即:
式中:
S是占在其ROS中其他检测器yi的相关程度,和GMM 部件θ̂k的检测范围与其它检测器yi检测范围的契合概率,即:
式中:
si,k依赖w(yi),yi的相对权重按其ROS 域内的所有检测器权重归一化。
式中,Z是尺度方差的归一化因子,l(.)是一个返回尺度的函数,并且
是对部件尺度的方差,总和覆盖了所有检测器的集合,这些检测器的局部最大ROS 值为,M为集合的基数。
给出初始状态θinit,在每次迭代中一个新的配置θ通过一个目标函数来估计和评价
因子包括覆盖度(即多少部件覆盖了场景,组件扩展有多少提升)和重叠度(即部件之间的重叠度,重叠的部件将被补偿),定义如下:
这个过程重复进行,直到GMM 的组件数量等于一个固定的数量Kmin。
2.2 检测权重
支持区域ROS(yi)定义为是与给定检测yi有交集的检测集,高于或等于预定义阈值τvoc。一般τvoc设置为0.65[6]。之前,对于每个ROS,使用Hard ROS 加权集作为ROS(yi),即该区域的检测数量。这种权值集是从训练集的检测中学习而来,用于在同一场景中生成窗口建议。为每个检测yi分配一个权重w(yi),表示它在ROS 中相对于其它检测的相关性。这种Soft ROS加权计算如下:
式中,π(yi)代表检测窗口yi的相关正确性,定义为gi-τT除以ROS中的最大值。gi是分类器分数,τT为级联分类器在yi尺度下的抑制阈值。
ρ(yi)代表yi的相关性定义如下:
〚yi〛是在ROS 中分类器的等级,φ∈[0,1)用于置中sigmoid函数:
具有〚yi〛>φ·|ROS(yi)|的检测具有较低的权重,从而抑制了非信息检测窗口的贡献值。实验中,φ设置为0.5。
3 部件检测器的多标记学习
针对部件检测器学习问题,采用一种基于部件级监督的部件检测器多标记学习方法。通过boost进行学习并结合构造一组决策树[11],所有部件检测器共享这些决策树。为了利用部件之间的相关性,学习这些决策树并将它们组合起来,以捕获所有部件的总体分布,同时使用纹理特征进一步提高性能。
3.1 部件表示
将车辆的整个轮廓建模为一个矩形模板,区分不同的视角,模板分为H*W 网格。模板中的任何矩形子区域看做一个部件。这里设置H=3 和W=4。根据车辆通常被遮挡的先验知识设计了一个部件池,如图1 所示。要表示车辆上的一部分,直接的方法就是截取特征图上部分对应的区域。部件周围区域的特征可以作为其上下文信息,这样,所有的部分都有类似的表示形式。
图1 部件池
3.2 多标记方法建立
设X为由图像区域组成的实际空间。对于每个部分pk∈P,要学习一个检测器dk:X→R这样一个图像区域x∈X,当图像区域包含pk时,dk(x)>0,否则dk(x)≤0。所以,需要学习K 个部件检测器。直接的方法是单独学习K部件检测器,但这样它便忽略了各部分之间的相关性,所以提出多标记学习方法共同学习K部件检测器。
具体来说,学习函数F:X→2P预测出现在一个给定的图像区域X的一组部件。设D={(xi,li,为一组训练实例,这里xi∈X是图像区域,li∈{-1,1}表示图像区域是否包含车辆分别是两个边界框,分别指定车辆的可见部分和全部区域。要学习F,需要为每个实例xi构造一个标记向量Yi=(yik)∈{-1,1}K,1 ≤k≤K,yik代表图像区域xi是否包含部件pk。对1 ≤k≤K引入一个损失向量Ci=(cik)∈RK标记赋值,其中cik定义了由于对pk的xi的错误预测而产生的损失。li=-1 时,设置yik=-1,cik=1;li=1 时,设置yik=1,cik由共同决定。首先标准化整体轮廓边界框,如文献[12]所述:的高度和中心固定,调整宽度使宽高比为0.41。用表示标准化的全身图。然后,丢弃标准化全身之外的可见部分内的任何图像内容,以获得一个新的可见部分。设为xi上pk部分的图像域。计算和的交集(IOU)由Iik表示,以及被覆盖的比例由Oik表示。最后,cik确定如下:
第一种情况下,部件pk的大部分是可见的,因此设置了很大的cik来防止部件检测器的错误预测。第二种情况下,部件和可见部分的IOU 大于0.5,认为部件区域在实际中是可见的,错误分类取决于IOU。第三种情况下,部件严重遮挡,设置cik=0,忽略对第k个部件的训练。
图2 说明了如何标记车辆示例。DF={(xi,Yi,Ci)|1 ≤i≤N}形成学成的训练集F。用一个双参数函数H表示F:X×P→R,当H(x,pk)>0 时,pk∈F(x),否则pk∉F(x)。通过最小化下面的损失函数来学习H:
图2 车辆标记
式中,N是训练实例的数量,如果H(xi,pk)>0 ,sign(H(xi,pk))=1;否则sign(H(xi,pk))=-1。
3.3 部件检测器的遮挡处理
在特定的场景中,车辆可能会被其他物体遮挡。由于不知道哪些部位会被遮挡,因此,一种简单而有效的方法就是应用一组部件检测器。对于图像中的候选区域x,K 个部件检测器会给出K 个检 测 值,s=(s1,…,sK) ,这 里sK=H(x,pk,(1 ≤k≤K)。需要正确地集成这些检测分数,给出一个最终的分数,以表明候选区域包含车辆的概率。
学习一个权向量v=(v1,…vK)将K 个检测器分值线性组合:
b是一个偏分常量。取D={(si,yi)|1 ≤i≤N}为训练集,si表示第i 个训练例的K 个检测值,yi∈{-1,1}。通过逻辑回归学习v,具体来说,是通过求解以下优化问题来学习v:
式中,N为训练集的数量,φ(v)为正则化项。采用两种类型的正则化式,即‖ ‖v1。当使用L1 范数‖ ‖v1时,选择配备合适λ的部件检测器的子集。
4 检测结果
用于训练的图像为2514 张以及200 张检测图片。实验在Intel Core i5-3210M,2.5GHz 电脑上实现。通过四种车辆检测器:HOG、DPM、Haar和ACF进行比较。
从表1中可以看出,在检测器HOG[13]、DPM[14]、Haar[15]和ACF[16]上,使用遮挡处理的部件检测器在车辆数据集上的检测误差率比未使用遮挡处理检测器的误差率分别提高了0.22、0.09、0.02 和0.04,同时检测速度也有提升。相对于未加入遮挡处理,说明了多标记学习方法和在遮挡处理中与其他部件检测器联合学习的检测有效性。图3 是部分遮挡车辆的检测效果图。
表1 检测器与滑动窗口方法性能比较
图3 在测试数据集上的检测结果
5 结语
在本文中,提出了一种在场景下高斯混合模型和多标记学习方法联合学习的部件检测器。通过高斯混合模型对车辆检测区域进行粗略提取,并且提高算法的检测速度。AdaBoost 加速器用来学习一组决策树,所有部件检测器共享这些决策树,由此降低了应用这些部件检测器的计算时间。所学习的决策树捕获所有区域的总体分布。为进一步提高性能,还提出了一种上下文检测重建模型。实验结果表明:适当集成这些部件检测器,可以提高对遮挡车辆的检测性能。部件检测器的训练和集成分两个步骤进行。但在检测过程中,依然会出现对失去关键特征的车辆检测和部分区域错检,未来我们会对此问题进行更深入的讨论。