郑欣悦,赖际舟,吕 品,袁 诚,范婉舒
(南京航空航天大学自动化学院,南京 211106)
近年来,随着深度学习技术的不断发展,计算机视觉在自动驾驶、智能机器人等领域得到了广泛应用[1]。目标识别是计算机视觉中的重要基础任务之一,通过目标识别算法能够得到感兴趣的目标物体在图像中的准确位置,从而为载体下一步的信息融合决策奠定基础,提升整体的感知与导航能力。
可见光图像的成像分辨率高,能够提供较多的纹理细节信息,且具有大规模数据集进行算法训练,因此当前的大多数目标识别算法都是针对常规光照环境下的可见光图像进行识别。然而,可见光图像容易受到环境光照影响,在弱光和黑暗环境下无法提供有效信息,不再适合作为可靠的图像信息源。与此相比,红外图像具有抗干扰能力强、不受光照影响的特点,能够在弱光和黑暗环境下工作,可作为复杂光照场景下目标识别算法的信息源[2]。
传统的目标识别算法往往采用人工特征如HOG特征[3]、SIFT特征[4]、Haar特征[5]进行图像特征提取,并采用线性分类器如支持向量机(Sup-port Vector Machine,SVM)[6]进行分类。此类方法以特定的方式对图像的多个区域逐个进行特征提取分类,因此识别速度相对较慢且泛化性能不足。近年来,基于深度学习的目标识别方法采用卷积神经网络作为自适应特征提取模块,能够达到更好的识别性能。当前的主流目标识别算法主要分为两阶段目标识别与单阶段目标识别。两阶段目标识别算法首先生成候选区域,在此基础上进行检测框的预测,具有代表性的算法有R-CNN(Region CNN)[7]、Fast R-CNN[8]和Faster R-CNN[9]等。然而,由于此类算法将目标识别任务分为了两个阶段,因此整体检测速度较慢。针对此问题,单阶段目标识别算法在原始图像上直接进行检测框的生成与回归,有效提高了目标识别算法的实时性,具有代表性的算法有SSD(Single Shot MultiBox Detector)[10]和Yolo(You Only Look Once)[11]等。此类基于深度学习的目标识别算法通常需要大量的数据进行神经网络的训练,否则往往会陷入过拟合,无法应用在实际环境中。为进一步提高目标识别算法的泛化性能,文献[12]提出了数据增强概念,在原始图像数据上进行多种几何变换与色彩变换,在数据量一定的情况下有效提升了最终算法性能。对于红外目标识别算法,算法训练数据往往难以获得,因此通过数据增强手段进行数据集的扩充是提高数据训练效果的一种有效手段。
针对图像的目标识别算法仅能够获取目标物体在二维平面图像中的位置,无法得知该物体的实际尺度。因此,若要估计物体的相对位置和绝对位置,还需通过测距手段获取其与载体的相对距离。激光雷达根据激光器发射的脉冲激光反射成像进行相对测距,精度能够达到厘米级。因此,将相机与激光雷达进行数据融合,可以获得目标物体的尺度信息,从而对其相对位置进行解算。然而,激光雷达的点云信息相对红外图像较为稀疏,无法得到稠密的深度图像。此外,由于激光雷达在垂直方向上的扫描范围有限,部分图像上会出现深度缺失。针对该问题,文献[13]采用多个激光雷达数据融合的方式,但增加了设备成本与体积。文献[14]利用激光雷达时间序列数据进行点云融合,进而进行深度估计,但其存在一定的时间延迟。
本文一方面针对红外图像训练数据较为稀缺的问题,引入部分可见光图像进行算法训练,进而迁移到红外图像领域;同时提出了基于Reinhard颜色迁移的数据增强方法,降低了可见光图像与红外图像之间的色域差异,从而提高了算法模型的迁移能力。另一方面,针对红外图像与激光雷达数据融合后深度图较为稀疏的问题,本文在单目视觉深度估计的基础上,利用激光雷达的深度数据对其进行修正,从而获取准确的稠密深度图,提高了对小目标的相对定位能力。
传统的Yolov3算法往往不考虑不同域的数据分布特点,对于训练数据仅采用较少的色域变换。因此,若使用此增强方法变换后的图像到本文所针对的红外目标识别领域,将无法为算法提供充分的有效图像信息。因此,本文在传统Yolov3算法的基础上,引入基于Reinhard颜色迁移的数据增强方法。在训练阶段,对额外的可见光数据进行特定色域变换,并送入所搭建的特征提取网络进行算法训练,从而确定待识别目标物体在图像中的位置。整体算法流程如图1所示。
图1 基于Reinhard数据增强的红外目标识别算法流程
为有效提取红外图像中待识别物体的特定特征,本文搭建如图2所示的特征提取网络。其主要由卷积层和残差块组成,并在卷积层后增加批量归一化层与激活函数层。卷积层主要是为了实现高效特征提取,增大感受野;批量归一化层用来加速与稳定训练;激活函数层用来提高网络的非线性拟合能力。
图2 红外目标识别特征提取网络结构
残差块则是在前三者的基础上增加了跨层连接部分,其结构如图3所示。对于网络输入x,与常规的神经网络模块需要去拟合H(x)=x不同,残差块只需要去拟合F(x)=H(x)-x即可,降低了网络训练的难度。本文共设置23个残差块,这样可以在保证网络特征提取能力的同时依然保持高效的梯度信息传输,使得网络能够更快收敛。
图3 残差块网络结构
对于以416×416分辨率输入网络的图像,此网络一共进行了5次下采样,输出13×13、26×26、52×52这3个尺度的特征图,实现对不同尺度目标的识别。后续经过上采样操作后进行特征融合,实现浅层特征层融合深层语义信息,进一步提高了算法多尺度目标识别的能力。
在目标识别领域,红外图像数据源较为稀缺。若仅使用已有的红外图像数据进行算法训练,通常不具备良好的迁移能力,实际环境应用效果较差。因此,本文采用Reinhard颜色迁移算法,在可见光数据上进行数据增强处理,增加训练数据的多样性,从而提高算法的实际迁移能力。
Reinhard颜色迁移算法通过计算源图像与目标图像之间的颜色特征,确定一个线性变换,使得源图像与目标图像之间在lαβ色彩空间具有相同的均值和方差。因此,针对已有的可见光图像数据,可根据红外数据对其进行色彩空间的转换,具体表述如下。
设可见光图像与红外图像的三通道对应均值为μsL、μsa、μsb、μrL、μra、μrb,对应标准偏差值为σsL、σsa、σsb、σrL、σra、σrb,定义可见光图像与红外图像三通道对应的L、a、b值分别为Ls、as、bs、L′、a′、b′。则通过
(1)
即可完成对可见光图像的色域转换,降低其与红外图像色域之间的数据分布差异,扩充训练数据集。
对于特征提取网络输出的3个不同尺度的特征图,在每个网格上设计生成3个不同宽高比的先验框。对于每个先验框,设Px、Py、Pw、Ph为先验框在对应特征图上的中心坐标和对应宽高,神经网络会输出对应的先验框偏移量tx、ty、tw、th。对于输入图片,Gx、Gy、Gw、Gh为真实框在某个特征图上的中心坐标和对应宽高,则通过
(2)
即可计算出预测的边界框与物体真实框之间的差距。具体的待优化函数表示为
(3)
通过优化此函数进行反向梯度传播,即可实现神经网络参数的优化更新。
传统方法首先对红外图像数据与激光雷达点云数据进行联合标定校准,得到对应的外参矩阵,从而将点云数据进行坐标系转换与投影。然而,通过此途径只能得到较为稀疏的深度图。因此,本文同时将红外图像数据送入单目深度估计网络,获取对此图像的深度估计。随后,对由两种方式获取的深度图进行融合,以获取精度较高的稠密深度图。对于在目标检测模块已获取的目标物体在图像中的位置,利用视觉成像进行坐标解算,实现对该物体的绝对位置计算,整体流程如图4所示。
图4 红外目标相对定位算法流程
(4)
进而可以通过相机内参矩阵获取二维深度图像。
图5 Velodyne 64线激光雷达投影深度图
然而,当激光雷达点云较为稀疏时,仅采用插值补全的方法难以获取较理想的深度图;且对于小目标而言,由于其体积较小,在成像平面上也占有较小的面积。在目标检测算法结果与雷达点云投影深度图对齐后,往往有更少的深度点投影在物体表面。相对于大物体而言,更加难以直接进行位置坐标解算。因此,本文采用Monodepth2为基本的深度估计算法,对于单张图像,该算法能够估计出其逐像素的深度值,满足实际的开发需求。通过对基于此算法获取的深度图与激光雷达点云投影深度图进行融合,得到最终的稠密深度图,为后续的物体位置解算提供基础。
设d(i,j)为深度估计算法获取到的位置(i,j)处的深度值,则融合后的深度可表示为
(5)
其中,D(i,j)表示融合后位置(i,j)处的深度值;d1(i,j)和d2(i,j)分别表示激光雷达点云转换和单目深度估计算法获取到的位置(i,j)处的深度值;c1和c2分别表示滑动窗口内存在的深度值个数;λ1和λ2用来控制融合占比。
设O-x-y-z为相机坐标系,其中O为相机光心,空间中一点P在相机坐标系下的坐标为[X,Y,Z]T,若点P对应成像平面上的点P′的坐标为[X′,Y′,Z′]T,则
(6)
其中,f为相机焦距。
设O-u-v为像素坐标系,其固定在成像平面上,O点位于图像左上角,u轴向右与x轴平行,v轴向下与y轴平行。若像素坐标在u轴上缩放了α倍,在v轴上缩放了β倍,且坐标系原点平移了[cx,cy]T,则P′点坐标与像素坐标[u,v]T的关系为
(7)
令αf=fx,βf=fy,可得
(8)
通过齐次坐标改写为矩阵形式可得
(9)
其中,K为相机内参矩阵,通过标定获得。以此则可以解算出待检测物体在空间中的绝对位置坐标(X,Y,Z),从而实现相对定位功能。
为验证本文提出算法的有效性,采用无人车在室内与室外进行物体识别与相对定位试验。试验场景如图6所示,无人车搭载了海康威视红外摄像头和Ouster32三维激光雷达。其中,红外摄像头能够提供分辨率为1280×720的红外图像,采样频率25Hz;激光雷达的扫描距离为0.25~120m,垂直扫描范围为45°,采样频率10Hz。试验过程中随机放置目标物体,并使用全站仪对目标物体和无人车进行定位,其定位精度优于1cm,从而为算法评估提供了位置基准。
图6 无人车平台与测试环境
对于目标识别试验,共设置包含手雷、弹药箱、人、水壶、对讲机、背包、枪和灭火器在内的八类目标物体。在数据采集阶段采用红外摄像头进行红外图像拍摄,并额外拍摄部分可见光图像。对于红外图像数据划分训练集与测试集,可见光数据则用于数据增强试验,以此进行算法性能分析和比较,其类别与数量如表1所示。
表1 目标识别数据集
对于某一可见光图像,随机从红外图像中采样作为目标域进行颜色迁移增强,本文列出两组可见光图像、增强图像以及红外域图像,如图7所示。从图7中可以看出,基于Reinhard颜色迁移后的图像与红外图像更加近似,理论上能够为算法训练提供更多有效数据。
(a)原始图像(Original image)
为验证本文提出的数据增强算法的有效性,共进行两组目标识别对比试验,分别为基础数据增强(Basic Augmentation)试验和额外数据增强(Extra Augmentation)试验,同时保持其他试验参数不变。基础数据增强试验采用原始Yolov3的数据增强算法,额外数据增强试验采用引入Reinhard颜色迁移后的数据增强算法。
对于目标识别算法的性能,采用平均精度均值(mean Average Precision,mAP)进行衡量,mAP为各类物体识别结果的平均准确度(Average Precision,AP),mAP越高,则识别效果越好。经算法训练测试,mAP值如表2所示。
表2 不同数据增强条件下Yolov3算法识别结果
通过表2数据可以看出,在引入基于Reinhard颜色迁移的数据增强算法后,整体算法的mAP从0.86提升到了0.91,提升5.8%。
图8中,前4个为室内场景下部分物体的识别结果,后4个为室外场景下部分物体的识别结果,其中显示的物体检测信息分别表示类别、置信度以及在惯性测量单元(Inertial Measurement Unit, IMU)坐标系下的(X,Y,Z)坐标位置。
图8 目标识别结果与点云投影可视化
图8所示为雷达点云投影后的效果图,可以看出投影后点云在图像中较为稀疏,且部分缺失。为验证深度融合算法的有效性,选取10个物体的定位结果,采用全站仪对物体的位置进行测量作为其位置参考基准。
表3 目标相对定位误差(*表示为小物体)
图9 原始算法定位失效情况
通过上述试验,可以看出:
1)对于待定位的10个物体,若仅依靠激光雷达给出的距离信息,无法对其中的较小物体进行位置坐标解算。而本文提出的基于稠密深度的目标相对定位算法则有效解决了原始算法定位失效的情况,实现了所有物体的相对定位。
2)本文算法降低了包含小目标在内的物体平均定位误差,由0.127m降低为0.110m,定位精度提高了13.4%。
本文针对黑暗和弱光环境下的目标识别与定位任务搭建了算法平台模型,引入可见光数据基于颜色迁移算法进行数据增强处理,在此基础上与激光雷达点云信息进行融合以获取物体尺度信息,从而对识别物体进行位置解算。算法分析与试验结果表明:
1) 基于Reinhard颜色迁移算法增强后的可见光数据能够有效应用于红外目标识别算法的训练过程,提升了最终的目标识别结果。
2) 基于融合后的稠密深度图获取的物体尺度进行位置解算,能够有效提升对于小目标的定位能力,降低定位误差。