基于对抗学习与深度估计的车辆检测系统

2020-07-03 06:51:04翟春艳王国良
辽宁石油化工大学学报 2020年3期
关键词:检测器深度样本

徐 源,翟春艳,王国良

(辽宁石油化工大学信息与控制工程学院,辽宁抚顺113001)

车辆检测系统的目标是通过给定的图像场景,检测出目标车辆的平面位置与深度信息。目标车辆的平面位置可以使用目标检测网络直接实现,如Faster RCNN[1]、YOLO v3[2-3]等;目标车辆的深度信息可以通过地图重建的方法实现,在检测目标平面位置的过程中,目标检测网络需要模型对多种退化情景进行训练。然而,退化样本分布严重失衡。针对这些特殊样本,除非有意收集,否则检测器很难在训练过程中有效地利用这些样本信息。因此,通过让检测器学习到这类“罕见样本”,使检测器存储更大规模的数据在理论上是可行的,但该方案在一定程度上会大大提升检测成本,同时特殊样本在实际生活中也是很难采样的。

近年来,针对“罕见样本”难以收集的问题,国内外学者通过实验研究已经取得一定的成果,其中一种是直接生成真实图像,但该方法也需要“罕见样本”来对检测器进行训练,因此在实际应用中并不可行[4-6];另一种是生成所有带遮挡或形变的可能样本,并将这些样本用于目标检测器的训练[7-9]。已有的研究表明,选择一些难以被检测器识别的困难样本进行训练反而可以获得较好的效果。受该思路的启发,为目标检测器训练一个对抗网络,该网络可以在特征图上直接模拟出遮挡与形变的效果,并且可以自动预测出哪种样本对于检测器是难以识别的。该方法的核心是在卷积层的特征空间中产生对抗样本,而不是在像素域空间上产生。对于车辆检测的另一个问题是无法估计图像中不同车辆目标距离观察点的距离。为了使装有相机的智能车可以有效做出避障的动作,通过估计相机的位姿,重建3D地图的方法来估计目标车辆与观测点的相对距离。连续帧重建3D地图法一直以来都受到很多学者的关注,例如SfM(Structure from Motion)技术可以成功地从宽基线图像中重建3D稀疏地图与相机位姿[10-11]。集束调整可以通过解优化的方法减少重投影误差[12-13]。多视觉立体视觉方法可以通过对图像序列进行密集匹配,为每一个像素计算深度值[14]。传统的SfM法和MVS方法可以使用宽基线图像进行精确的3D几何重建,但在实际应用中,用户往往很难获得完整的视频序列,为了解决这个问题,F.Yu等[15]提出了一种启发式的估计相机轨迹的方法,该方法只需一个很短的视频片段作为输入即可达到目的,采用基于马尔可夫随机场平面扫描的方法重建密集深度图[16]。过窄的基线会影响3D重建的准确度,S.Im等[17]在文献[15]的基础上进行了改进,以追踪到的3D点作为研究对象,加入了抗果冻效应算法,并取得了较好效果,得到了较为平滑的深度图像。

通过总结已有文献可知,针对车辆检测系统,其中较为困难的是样本的取得以及确定车辆的位置和估计不同车辆间的距离。针对上述两个问题,其各自的研究都较为充分,但将两者相结合进而优化车辆检测系统的研究还鲜有报道,基于此将对抗样本生成与深度图重建相结合,通过对比单一方式下的检测效果,优化车辆检测系统。

1 系统设计

1.1 基本思路

(1)假设已使用目标检测网络,可以成功地检测到目标车辆;

(2)由于道路车辆的行驶速度较快,对相机的位姿变换进行一定程度的简化处理。

车辆检测系统的工作流程如图1所示。根据采集到的单帧图像,系统首先计算出每个车辆目标的平面位置,检测结果以矩形框的形式给出;根据检测到的车辆目标,以一小段帧速率为每秒30帧的视频为输入,估计出不同的目标车辆相对于镜头的远近。采用Faster RCNN[20-24]作为检测器网络。该网络使用一个用于图像分类的离线训练的卷积网络提取特征,并在该特征图上提取候选区域坐标图。在候选区域的基础上,该网络采用了RoI池化层提取区域特征,用于计算坐标偏移和目标类别。

图1 车辆检测系统工作流程

1.2 目标检测网络的对抗学习

作为车辆检测的第一步,首先要得到一个可以对各种恶劣条件都具有鲁棒性的检测器,以便用于在图像上标定目标的位置。通过样本主动生成技术,为目标检测器提供难以识别的样本。

目标检测器原始损失函数可记为:

式中,LSoftmax(·)为 Softmax 损失函数;Lbbox(·)为误差函数;F(X)为原始的目标检测网络;X为某一目标提名;Fc(·)为置信分数,即某提名区域属于正样本的概率;Fl为预测的候选框坐标;C为置信分数真实值;L为候选框坐标真实值。

对抗网络可表示为A(X),其含义为给定一个特征图X,函数A(·)将产生一个新的对抗样本,该对抗样本将被检测器检测为负样本,并通过如下的损失函数训练对抗网络:

若对抗网络产生的特征图可以被检测器成功检测,那么对抗网络将产生较大的损失;若对抗样本的产生使检测器难以检测,则检测器的损失值较大而对抗网络的损失值会变小[19-20]。

1.3 产生遮挡的对抗网络

设计一个空间随机失活网络,用于在目标车辆所对应的深度特征图上模拟遮挡效果(遮挡网络)。对于一个给定的车辆目标,提取尺寸为d×d×c的特征图。根据特征图,设计的遮挡网络将预测一个尺寸为d×d的掩模版。数值经过阈值处理,只取0或1。

遮挡对抗网络的结构如图2所示。

图2 遮挡对抗网络的结构

利用一个大小为d3×d3的滑动窗口在特征图上进行滑动,每一个滑动窗口都对应原图像的某个区域,对于滑动窗口对应的区域,将其置为0,以模拟遮挡效果。对于每个被遮挡后的图像,将其放到分类器中,得到误差损失。利用损失函数最大的遮挡图像重新生成特征图,根据对应窗口,生成一个d×d的掩模版,该掩模版可以给检测器造成较高的损失。对于n个正样本区域,可得到n对训练样本

对于遮挡网络和检测网络,采用联合训练的方式优化参数。首先,遮挡网络产生一个掩模版,根据掩模版在RoI池化特征图上创造遮挡样本,再使用该样本对检测器进行训练,最后选择造成检测器损失最大的掩模版,并且运用该样本作为对抗网络的样本进行训练。

利用二元交叉熵函数来训练遮挡网络,其表达式为:

式中,Xijk为特征图第k个通道上第i行j列的值;Mij为掩模版第i行j列的值,若Mij=1,则特征图对应位置上所有通道的值都将被置为0,即Xijk=0,∀k。

1.4 产生形变的对抗网络

形变对抗网络与遮挡网络类似,即在目标特征图上产生新的对抗样本,使该样本难以被检测器正确识别。形变对抗网络的结构如图3所示。

图3 形变对抗网络的结构

从图3可以看出,形变对抗网络主要包括定位网络、网格产生器和采样器。假设特征图给定,则定位网络将计算出旋转角度、平移距离和缩放因子等形变量。这些形变量将作为网格产生器与采样器的输入,用于输出一张形变特征图。在整个形变网络的训练过程中,只需要训练定位网络的参数,定位网络由3层全连接层构成,前两层参数的初始化采用ImageNet预训练模型的fc6和fc7层,隐含层单元分别为4 096与1 024,最后一层输出旋转角度、平移距离和缩放因子三个变量;采用共同训练的方式训练检测器与形变对抗网络。形变网络的训练过程与遮挡网络类似,将RoI池化层产生的特征图进行形变处理,作为检测器的输入并输出Softmax损失。训练形变对抗网络的目标是生成“欺骗”检测器的对抗样本,与训练遮挡对抗网络不同,形变过程是可微的,可以直接将分类产生的误差通过反向传播方式传递给形变对抗网络的定位网络。

1.5 目标车辆的深度估计

当单帧图像上检测出目标车辆后,需要估计目标对相机(观察者)的相对距离。通常情况下,对于同一张图片中出现的车辆,可以根据尺寸大小估计远近,但这种方法会受到车辆自身大小的影响。为了解决这一问题,使用3D场景重建和估计相机位姿的方法计算目标车辆的距离。估计目标的深度,需要较短的视频流作为输入,视频流的帧速率为每秒30帧。假定在这段视频中目标的运动与相机位姿的变化都是微小的。通过集束调整的方法来估计相机参数,再根据这些参数调整图像的扭曲,最后进行立体匹配,达到估计目标深度的效果。相异于传统的SfM问题,本文所研究的视频序列,帧与帧之间的距离是微小的,简化了相机旋转矩阵与3D场景点参数化的计算过程,从而降低集束调整的运算代价。此外,由于相机镜头存在径向畸变,传统的SfM问题需要估计畸变参数来达到重建场景的目的,而本文将相机的内参一同作为优化变量进行估计,这样即便相机未经过精确地校准,车辆检测系统仍然能正常使用。

假定uij表示第i帧图像中第j个畸变特征点,f表示相机焦距,则非畸变特征点可以通过一个径向畸变函数F得到,表示为uijF(uijf)。其中,畸变函数可以表示为:

如果用第0帧图像作为参考帧,ωj表示深度的倒数,则特征点u0j的3D坐标xj可以表示为:

引入投射函数表示将xj映射到i幅图像平面的过程。

式中,ri∈R3与ti∈R3为参考图像到第i幅图像的相对旋转与平移;ri,1、ri,2、ri,3为向量ri的分量。

经过矩阵化R(·)后,得到了一个小角度的旋转矩阵形式,在无畸变图像域上,可以将映射过来的点表示为fπ(xj,ri,ti)。用投射点与无畸变坐标之间的距离作为uij的误差,从而集束调整的过程便可以表示成优化该误差的过程。对于所有非参考帧图像的特征点,完整的误差函数可表示为:

式中,n为图像的数量;m为特征点的个数;ρ(·)为Huber损失函数;K为相机内参数集合f,k1,k2;R和T分别为旋转与平移的向量;W为深度倒数的集合。

为了将不同图像帧的特征点对准,首先在参考帧图像上用Harris corner检测器检测局部特征点。由于目标的位置已经确定,因此Harris corner检测器可以在已圈定的位置进行检测,从而提高检测的准确度。在其他图像帧上,使用Kanade-Lukas-Tomashi(KLT)算法寻找对应的特征点。在集束调整开始前,将旋转与平移向量都置为0。焦距设置为图像宽度与高度中的最大值。两个畸变参数设置为0,而深度的倒数值则取0.01与1.00之间的随机值。

当计算出相机的内参和外参后,使用基于平面扫描的立体匹配算法恢复深度图。对于每个图像帧上的特征点,通过逆映射计算出它的深度,但由于在不同图像上,同一特征点可能会对应不同的深度。为了解决这个问题,需要计算出在不同图像上深度值的聚类点。首先在深度值的波动范围内划分若干个深度平面,然后估计出每张图像上对应于同一特征点聚集的深度平面,最后根据深度平面判定特征点与相机的相对距离。

定义第k张深度平面单应性矩阵Hik∈R3×3为:

式中,{ti,1,ti,2,ti,3}为向量ti的元素;(pu,pv)为以图像中心为原点的像素坐标。

通过矩阵Hik,可以将无畸变的图像通过以下运算投影回参考帧图像上。

式中,Iik为第i幅图像在第k个深度扫描面上的投影值。

通过对n张图片进行同样的操作,在参考帧的每个像素u都可以对应一个关于深度倒数候选值ωk的 密 度 分 布P(u,ωk)=[I0k(u),…,I(n-1)k(u)]。 将这个密度分布当作某个像素在不同深度平面的能量分布图。如果该像素所处的真实深度平面为ωk′,那么它在该平面k′的波动最小,或者说能量也是最集中的。运用损失函数CI来衡量像素u在候选平面ωk的能量分布:

此外,为保证区域边缘的一致性,定义水平和竖直方向的梯度损失函数为Cδu(u,ωk)和Cδv(u,ωk),表达式为:

运用一阶滤波器F=[-1 0 1]对Cδu(u,ωk)和Cδv(u,ωk)中的梯度进行计算。通过最小化C的方式,求得特征像素的深度值;综合能量分布损失CI,为目标深度定义综合性的匹配损失函数,即:

2 实验结果

2.1 数据集与实验设置

对于车辆目标检测的评估,使用经过预训练的Faster-RCNN网络当作检测器,该网络参数来源于COCO数据集中车辆检测部分。抽取COCO数据集中所有包含车辆的图像样本约4 000张,同时,人工采集了1 000张实时车辆的图像样本,由此,可得到5 000张图像样本。将这些样本划分为训练集、验证集与测试集三部分。训练集包含3 000张样本,验证集包含500张,剩下的1 500张样本作为测试模型性能的测试集。为了验证模型对遮挡与形变的鲁棒性,在5 000张图像样本中混入了500张带有遮挡或形变效果的图片样本,并将其中的70%分配给了测试集。分别测试加入遮挡对抗网络和形变对抗网络后对模型检测的提升效果。最后将两种对抗网络与Faster-RCNN结合起来训练,检验这两种对抗网络产生的对抗样本是否可以达到增强车辆检测效果的作用。考虑到pytorch设计深度模型的方便性,用pytorch进行模型的搭建与训练。经过训练后,可以得到模型的序列化文件,该文件用于保存网络模型和相关参数。将该序列化文件进行模型的移植,使其在移动端中使用。采用随机梯度下降的方式训练模型,初始学习率设置为0.001,经过6万次迭代后调整为0.000 1。在训练过程中,使用选择性搜索的方法确定候选框。

对于目标深度的估计,使用实际拍摄的100个短视频进行测试,直接给出深度估计的主观效果,并将其与当前几种流行的方法进行对比测试。实验模型由C++语言编写,并调用了处理矩阵和非线性优化问题的函数库Eigen和Ceres。

2.2 车辆检测的实验结果

利用平均精确度(AP)来度量车辆检测的实验效果,AP是目标检测领域中经常用于评估模型好坏的指标,由准确率与召回率两个指标共同决定。准确率可以衡量模型的预测的精准度,而召回率主要用于衡量模型对正样本的检测程度。一般情况下,召回率越高,则相应的准确率会降低,而平均精确度则是精确率相对与不同召回率情况下的期望。

采用Faster-RCNN模型作为基本对照组。为了描述简单,将Faster-RCNN与遮挡对抗网络的组合简写为Faster+O,与形变对抗网络的组合简写为Faster+D,三者的共同组合简写为Faster+O+D。此外,为了检测系统对不同尺度目标的敏感度,分别给出不同尺度车辆目标的实验结果。目标尺度表示车辆目标在图像中的占比,由覆盖车辆的最小矩形框与整幅图像的比值来确定,本文取0.35。为了验证对抗样本生成网络对检测效果的影响,分别使用100%、70%与50%的样本数对网络进行训练,并验证检测效果,所有的实验结果汇总于表1—3。

表1 不同模型对车辆检测的平均精确度(100%样本数)

表2 不同模型对车辆检测的平均精确度(70%样本数)

表3 不同模型对车辆检测的平均精确度(50%样本数)

由表1可知,增加对抗网络可以显著地提升车辆检测的平均精确度;Faster+O+D的结果表明,结合两种对抗网络,可以使模型的性能达到最好。对于高尺度的目标(即目标画面占比0.35的目标),Faster-RCNN与添加对抗网络的检测模型均取得了较好的效果。而对于低尺度目标(即目标画面占比小于0.15的目标),Faster-RCNN的效果下降比较明显;添加了形变对抗网络的检测器可以有效地对图像中的小目标进行检测。而表2与表3是在减少训练样本情况下得到的结果,在样本不足时,缺少对抗网络的模型性能退化比较严重,而具备对抗网络的模型尽管也存在一定程度的性能下降,但明显比前者有所改善。

为了更直观地展示增加对抗网络后对车辆检测器的改善效果,对带有对抗网络的车辆检测与无对抗训练的车辆检测效果进行对比,结果如图4所示。

图4 带有对抗网络的车辆检测与无对抗训练的车辆检测效果对比

不同模型检测到的目标分别用不同颜色的矩形框标注,图4中绿框表示Faster+O+D的检测结果,红框表示Faster-RCNN的检测结果。通过主观效果的对比可知,经过对抗学习的车辆检测系统可以很好地捕捉不完整轮廓的车辆目标。

2.3 深度估计的实验效果

为观察深度估计的实验效果,将结果用灰度图的形式展示。选区的图片中均带有遮挡与形变的车辆样本,以文献[15]的实验作为对照组进行对比分析,深度估计效果如图5所示。图5中,亮度越大的区域表示距离相机镜头的距离越近。从图5可以看出,目标检测与深度估计相结合的方法由于加入了检测器提供的边信息,可以更准确地预测目标相对镜头的远近。

3 结 论

提出了一种目标检测与深度估计相结合的精准检测方法,经过对照实验得到如下结论:

(1)为了提高目标检测精度,为检测器设计了一个对抗网络,用于生成检测器难以识别的样本。对抗样本的生成解决了检测器在训练过程中遇到的因遮挡、形变样本不足而无法拟合的问题。

(2)根据目标检测的结果,设计一种动态检测车辆目标距离的模型,该模型可以在没有图像深度标签的情况下工作,根据相机在视频帧中的位置变化估计结果重建图像的3D坐标稀疏视图。

(3)由于在进行深度估计之前已经掌握了目标的位置,因此可以大大减少软件运行时间,使得该系统可以灵活地移植到各种嵌入式移动设备中。

图5 深度估计效果

猜你喜欢
检测器深度样本
用样本估计总体复习点拨
深度理解一元一次方程
深度观察
深度观察
深度观察
推动医改的“直销样本”
车道微波车辆检测器的应用
随机微分方程的样本Lyapunov二次型估计
一种雾霾检测器的研究与设计
工业设计(2016年11期)2016-04-16 02:49:43
村企共赢的样本