双目视觉无人机图像测量系统设计与实现*
2020-12-02王浩同刘智平刘白林王鹏瑞
王浩同,刘智平,石 俊,刘白林,王鹏瑞
(西安工业大学 计算机科学与工程学院,西安 710021)
随着人工智能技术不断发展,以及大量的移动终端不断兴起,使得民用无人机的发展进程开始逐步走向小型化,并逐步向着大众化方向迈进。近年来,随着民用无人机的应用越来越便捷,越来越广泛化,无人机安全监管问题越来越严峻,各种无人机“黑飞”事件越来越引起民众的顾虑和担忧,对此,城市低空安全问题迫在眉睫,安保巡逻无人机技术的发展对维护城市低空安全,区域监控,城市反恐方面越来越重要。同时,随着廉价小型无人机逐步运用于军事侦查,安保巡逻无人机以其具有高空大视角的优势,可以消除人力巡检盲区,快速捕获可疑非合作目标,在边境巡检,边境侦查方面的作用无可替代。在人工智能技术逐步兴起的大背景下,计算机视觉领域开始进入发展巅峰期,使得机器从图像中获取“感知信息”,进而达到多维数据的“感知”,开始模拟人眼感知,采用多目相机传感器实现计算机与周围环境的交互。在双目立体视觉测量技术尚未完全成熟的前期,一部分研究团队采用单目视觉系统结合测距传感器辅助的方法间接实现对目标的空间定位与测量,由于标定难度受限,测量精度不高,没有得到广泛应用。目前随着双目立体视觉技术的日益成熟,其已经开始广泛用于日常工作和生活。例如谷歌研发的无人驾驶汽车可以测量车辆之间的间距,识别道路交通标识,并应对更加复杂的道路状况,实现对无人驾驶汽车的自主安全控制,同时在工业检测,以及虚拟现实等领域双目立体视觉技术得到广泛应用。
近年来,随着计算机视觉技术和数字图像处理技术的飞速发展[1],双目立体视觉技术随之发展成熟。但国内对于双目计算机视觉技术仍处于起步阶段,需要广大研究人员共同努力,为其在我国工业,生活领域发展做出显著贡献。文献[2]研究了对所建立的风洞模型的测量技术,早期由于相机硬件平台存在设计缺陷,导致相机标定以及测量过程中累积误差,对最终结果产生一定的影响。文献[3]提出一种利用两台不同视角下的相机对空间中目标物体上的三个目标特征点进行亚像素级的特征匹配,从而通过计算可以得到三个目标点的空间信息,根据空间位置信息得到模型的俯仰角等姿态角信息,进而完成对目标模型姿态测量。文献[4]针对深空航天器在轨服务,提出了一种基于双目视觉的自主姿态估计方法。该方法以Markley变量描述目标的姿态运动,并利用双目相机对目标表面的特征点进行观测,利用特征点的运动规律与目标姿态运动的相关性,通过容积卡尔曼滤波算法实现了对非合作目标角速度与自旋轴方向的估计。浙江大学是国内最早研发乒乓球机器人的团队,该团队研发的第三代乒乓球机器人搭载实时视觉系统,能够识别和跟踪高速运动的物体,并对运动轨迹进行跟踪与预测。文献[5]利用双目视觉对羽毛球轨迹进行测量,对体育竞技对抗机器人技术研究做出了突出贡献。相比较于国内,国外计算机立体视觉技术的发展更为成熟,近几年开始应用双目视觉与机器人的结合,在国防工业领域有不少突破。近年来,最具突出贡献的是美国麻省理工学院的实验室团队和斯坦福大学计算机视觉实验室团队。2004 年召开的CVPR会议上,文献[6]基于SIFT改进算法,利用主成分分析法处理SIFT 中用到的梯度直方图,从而降低描述子的维度,以此提高改进后SIFT算法的计算速度。2015年,一种低成本的三维信息获取以及目标跟踪的程序由文献[7]提出,将移动机器人与双目立体视觉相结合,检测并提取环境场景中目标物体的特征点,最终还通过调用OpenGL库建立仿真模拟环境,从而直观显示经过计算得到的三维模型。
综上所述,考虑到安保巡逻空中机器人的研发主要依靠图像系统实现非合作目标的判别和决策,同时,双目立体视觉技术具有让计算机获得周围环境信息的能力,实现计算机与周围环境的交互,文中拟通过双目视觉对目标检测与识别、目标定位与测量等进行研究,无人机通过双目视觉平台获取目标图像序列,判别目标是否为非合作目标,对非合作目标进行定位与测量,以期在定位测量精度以及实时性方面取得突破,为后续先进空中机器人的研发做好技术铺垫。
1 非合作目标检测与识别算法研究
基于图像处理中最常用的运动目标检测方法,即背景差分法的基础上,提出三帧差法,分离出前景目标和复杂背景,获取目标前景图像轮廓[8-11],进而利用目标轮廓根据几何不变矩原理提取特征值完成轮廓特征匹配识别,并判别目标是否为非合作目标。
1.1 基于三帧差法的目标检测算法
三帧差法的算法关键在于帧差法,基于像素元素进行时间差分,采用阈值化处理方式提取出图像中发生移动的区域。取视频流第k-2,k-1,k帧进行三帧差分,得到差分图F(x,y)。三帧差法原理公式为
(1)
(2)
F(x,y)=F1(x,y)∩F2(x,y)。
(3)
式中:T为图像差分二值化时所需设定的阈值;fk(x,y)为第k帧在图像坐标系下(x,y)坐标处像素值;F1(x,y)和F2(x,y)分别为第k,k-1帧图像差分二值化结果和第k-2,k-1帧图像差分二值化结果。F(x,y)为图像差分二值化后再进行与运算的结果。图1为三帧差法过程原理。
图1 三帧差法过程原理图Fig.1 Schematic diagram of the three-frame difference method
在三帧差法过程中,在亮度变化确定的条件下,利用人工经验选择法确定阈值分割大小参数,通过对像素判断和图像分析的先验知识,选择阈值所在区间,通过实验测试对比,从而确定最优阈值。本文通过此方法设置分割阈值大小为25,如果采集三帧图像对应像素值变化小于25,则认为此处为背景像素。如果对应像素值变化大于25,则认为此处为目标物体移动导致,将这些像素区域标记为前景像素,从而跟踪前景图像目标。
由于后续处理需要利用边缘特征信息,需要保证边缘走向不被改变或改变程度不能过大,保留边缘特征点,对此在滤波算法的选择上,除均值滤波外,高斯滤波以及中值滤波都可以有效保护图像区域边缘信息,同时不改变原始图像边缘走向。
1.2 基于几何不变矩模板匹配算法
几何不变矩由二阶和三阶中心矩的线性组合以及产生的中心矩组成,其在图像经过旋转,缩放,平移后仍能够保持矩的不变性。本系统根据几何矩的不变性,计算目标轮廓中心点到轮廓边缘点的欧氏距离,将得到的欧式距离值作为特征匹配的依据。
几何不变矩模板匹配算法中以A和B为输入参数,其中A为样本轮廓模板,B为实际检测到的目标轮廓,则
(4)
(5)
计算欧式距离
(6)
当I(A,B)<1,则目标轮廓与样本轮廓相似度最高,为任务要求目标。
几何不变矩轮廓特征匹配需要采集目标样本,由于目标姿态多变,因此需要采集不同视角下目标样本如图2所示。
图2 目标样本模板Fig.2 Target sample templates
将得到的目标样本模板,进行二值化后,同样进行中值滤波,形态学膨胀腐蚀处理,获取样本模板轮廓,如图3所示。
由图3看出,目标姿态多以目标样本模板2和目标样本模板4为主进行匹配,由于相机与目标的相对位置不固定,需通过不同位置采集到不同的视角作为模板匹配样本,本文在模板匹配算法设计存在冗余,使得系统具有一定的鲁棒性。
图3 样本模板轮廓提取Fig.3 Extraction of the contour of the sample templates
2 非合作目标空间测量模型建立
利用双目测量系统模拟人眼感知实现目标空间三维坐标的测量,主要利用双目视觉成像原理,根据透视投影模型通过三角几何原理建立双目视觉测量数学模型[12-14]。利用相机标定好的内外参数,建立线性方程组,利用最小二乘法求解,获得目标空间三维坐标。
图4为非平行光轴双目视觉测量模型。
图4 非平行光轴双目视觉测量模型Fig.4 Non-parallel optical axis binocular vision measurement model
图4中P(Xw,Yw,Zw)为空间目标点,P1为空间目标点在左相机的图像坐标系下的投影,P2为空间目标点在右相机的图像坐标系下的投影。
分别建立左右相机坐标系,其中Oc1为左相机的相机坐标系中心,Oc2为右相机的相机坐标系中心,Xc1,Xc2分别为左右相机在相机坐标系下X轴分量.Yc1,Yc2分别为左右相机在相机坐标系下Y轴分量。Zc1,Zc2分别为左右相机在相机坐标系下Z轴分量。
根据投影模型对应比例关系推导得出
(7)
(8)
(9)
式中,令
(10)
(11)
(12)
则AX=N。
(13)
根据式(13)利用最小二乘法求解线性方程获得最优解,即空间下目标P(Xw,Yw,Zw)在左眼相机坐标系下三维坐标。
针对本系统测量任务需求,根据双目视觉测量数学模型提出具体的双目测量系统测量原理方案,为建立双目测量数学模型,对双目相机进行立体标定,获取相机内外参数,并通过左右相机分别获取同一时间戳下的图像序列,经过目标检测与模板匹配算法,分别获取图像坐标系下目标二维坐标,经过双目测量数学模型,采用最小二乘法计算,得到目标基于相机坐标系下空间中三维坐标。
3 实验结果及分析
本文实验涉及大量计算,实验设备采用4 核 Intel(R)Core(TM)i5-6500 CPU,NVIDIA GeForce GT 730 GPU和8 G 64位运行内存主机设备,采用分辨率为2 560×720 pixel,帧率至少30 fps,感知深度最远20 m的ZED双目相机。运行环境为主机端Visual Studio 2017和Opencv3.4.1计算机视觉库,并基于C++11标准编译完成。实验测试所有户外实景视频流均由双目相机采集。
3.1 目标检测
本文基于视频流文件输入进行试验,分别创建左右窗口以显示同一时间戳下检测图像,如图5所示,并同一时间戳显示检测到的目标前景图像如图6所示。
图5 目标检测Fig.5 Target detection
图6 前景图像Fig.6 Foreground images
实验环境存在强光照,采集到的图像左上角存在曝光现象,对差分图像进行中值滤波后基本消除光点噪声干扰。实验经过三帧差法得到差分图像,成功将前景目标与复杂背景分离;经过膨胀以及腐蚀的形态学处理,去除目标轮廓不连续区域,填充空洞区域,保证目标轮廓连通完整。
3.2 目标模板匹配
根据几何不变矩轮廓特征匹配,目标与样本模板相似度输出显示见表1。
表1 目标与样本模板相似度Tab.1 Similarity between the targets and the sample templates
实验采用视频流文件进行测试,共进行1 963次匹配,从整个过程中随机采集部分匹配结果进行分析,如果匹配相似度为-1,则为匹配失败。匹配相似度小于1时,即可认为目标与样本模板匹配成功,从而实现是否为“低慢小”非合作目标的判别。
根据图7所示,由于多样本模板匹配会增加算法时间复杂度,利用基于C++11标准的多线程技术改进模板匹配算法,模板匹配所消耗的时间小于原模板匹配所消耗时间。经过对比分析可得,利用多线程技术的改进使得系统运行效率整体提升15%左右。
图7 改进前后模板匹配时间对比Fig.7 The template matching time comparison
3.3 测量误差分析
为保证系统测量精度的要求,进行目标空间三维坐标测量误差分析,为此建立静态目标误差标定实验,将目标实际空间位置与测量结果进行对比分析[15]。采用与无人机图像测量系统相同的测量设备,测量方案,以及测量算法,保证双目相机立体标定参数一致。
根据实验测试结果,为方便计算误差,将测量值求均值作为误差分析中目标计算坐标值。并分别对X轴,Y轴,Z轴计算绝对误差和相对误差。
X轴误差分析见表2。
表2 X轴测量误差统计Tab.2 Statistics of X axis measurement errors
X轴上测量值与实际值之间误差大小,如图8所示。
图8 X轴上测量值与实际值之间误差大小Fig.8 The error between the measured values and the actual values on the X axis
根据图8所示,在A1至F6标定点通过实际测量和双目测量得到X轴测量结果,B2点和F6点处测量误差较大,绝对误差大于0.5 m,剩余标定点处,实际测量与双目测量结果相近,误差均小于0.5 m,在误差允许范围内。
Y轴误差分析见表3。
表3 Y轴测量误差统计Tab.3 Statistics of Y axis measurement errors
Y轴上测量值与实际值之间误差大小,如图9所示。
图9 Y轴上测量值与实际值之间误差大小Fig.9 The error between the measured values and the actual values on the Y axis
根据图9所示,在A1至F6标定点通过实际测量和双目测量得到Y轴测量结果,C3点和E5点处测量误差较小,绝对误差小于0.1 m,剩余标定点处,实际测量与双目测量结果误差均稳定在0.1 m左右,在误差允许范围内。
Z轴误差分析见表4。
表4 Z轴测量误差统计Tab.4 Statistics of Z axis measurement errors
Z轴上测量值与实际值之间误差大小,如图10所示。
图10 Z轴上测量值与实际值之间误差大小Fig.10 The error between the measured values and the actual values on the Z axis
根据图10所示,在A1至F6标定点通过实际测量和双目测量得到Z轴测量结果,A1点处测量误差最小,绝对误差小于0.1 m,剩余标定点处,E5和F6处测量结果误差相对较大,但误差始终保持在0.5 m左右,在误差允许范围内。
4 结 论
本文研究了无人机图像测量系统中对非合作“低慢小”目标的检测与测量技术并进行相关实验测试。基于OpenCV计算机视觉库实现目标检测跟踪识别,利用三帧差法测试目标检测效率,并利用几何不变矩原理实现轮廓特征匹配算法,完成目标识别功能。基于所建立的双目视觉测量数学模型,利用最小二乘法求解目标三维坐标,根据双目测量系统的测量结果,建立误差标定实验,给出实验误差,为后续系统改进提供数据支持。
本文实验对目标检测过程中对模板匹配算法,采用多线程编程技术优化算法,解决图像处理延迟的问题,提高系统整体运行效率15%左右。建立双目测量误差实验,根据实验测试结果,X轴测量绝对误差均值稳定在0.212 660~0.456 954 m之间,Y轴测量绝对误差均值稳定在0.005 366~0.098 598 m之间,Z轴测量绝对误差均值稳定在0.032 45~0.251 83 m之间。
为适应系统实时性以及系统数据处理能力,本文目标检测与识别模块所采用的的算法为低复杂度传统图像处理算法,识别物体只能通过采集目标样本来完成匹配检测,难以适应不同类型多目标的检测识别,后续研究工作可以引入轻量型深度卷积神经网络模型,提高目标检测实时性和准确率。