基于合作目标的仪表盘自适应虚实配准方法

2022-11-03 12:42李浩铭付战平胡文婷王曼曼冯亚杰
电光与控制 2022年10期
关键词:视频流仪表盘坐标系

李浩铭, 付战平, 胡文婷, 王曼曼, 冯亚杰

(1.海军航空大学,a.青岛校区,山东 青岛 266000; b.岸防兵学院,山东 烟台 264000;2.永吉县第七中学,吉林 吉林 132000)

0 引言

基于图像识别的算法已经比较成熟,算法种类多、效果好且精度高,但针对视频流进行目标识别的算法比较少。本文针对双目摄像头获得的视频流进行操作,在已经进行过图像矫正并能得到深度图像的基础上,基于OpenCV和C++编程,结合合作目标对视频流中的模拟器座舱仪表盘进行了识别定位。对视频流中仪表盘上的合作目标进行跟踪定位,获得每一帧图像中的合作目标坐标,结合深度图像获取原理,还原合作目标的三维坐标,从而得到实物仪表盘相对于头盔摄像头的三维坐标,为UE4场景中虚拟仪表盘的三维坐标的校正提供数据。通过实现虚拟仪表盘与实物仪表盘的对准,进而实现虚拟座舱盖与实物座舱的准确融合,为进一步调整虚实交界处的边缘融合进行铺垫。

1 从图像识别到视频流识别

在模式识别领域,模板匹配属于比较常规的成熟算法。选择合适的数学工具,通过自适应控制、模糊逻辑、神经网络等方法的应用,建立科学的数学模型,此类技术是模式识别领域目前的重要发展方向[1]。例如,文献[2]提出了一种将传统的模板匹配算法与深度神经网络识别算法相结合的电能表示数及标签的自动识别算法,有效解决了复杂条件下小尺寸电能表的信息检测难问题以及噪声条件下的信息识别问题;文献[3]提出了一种基于模板匹配与Hough圆检测的仪表识别方法,对于指针式圆形仪表识别效果显著,定位表盘位置准确,指针识别和角度计算均有较高的精度。

1.1 经典图像识别

基于图像的模板匹配是在图像中寻找与既定模板图像最匹配或最相似部分的技术。利用预知的目标特征模板在待匹配图像中进行搜索,并结合相关函数进行目标的识别[4]。模板匹配技术得以实现的关键前提在于得到数学函数的支撑,准确确定模板在被搜索图中的坐标关系,并将其代入数学模型做相应的处理[5]。

OpenCV提供了matchTemplate函数实现模板匹配算法[6]。其中可用的方法有以下6种。

1) 平方差匹配(TM_SQDIFF)

(1)

2) 标准平方差匹配(TM_SQDIFF_NORMED)

(2)

3) 相关匹配(TM_CCORR)

(3)

4) 标准相关匹配(TM_CCORR_NORMED)

(4)

5) 相关系数匹配(TM_CCOEFF)

(5)

式中:

(6)

(7)

6) 标准相关系数匹配(TM_CCOEFF_NORMED)

(8)

TM_SQDIFF和TM_SQDIFF_NORMED利用平方差来衡量匹配效果,匹配得越好,得到的匹配值就越小,最优匹配值为0;TM_CCORR和TM_CCORR_NORMED采用模板和图像间的乘法操作获取匹配值,所以匹配值越大代表匹配程度越高,0表示最坏的匹配效果;TM_CCOEFF和TM_CCOEFF_NORMED两种方法将模板对均值的相对值与图像对均值的相关值进行比较得到匹配值,0表示没有任何相关性,最优匹配值为1,最坏匹配值为-1。

通过上述算式可见,从简单的平方差匹配到复杂的相关系数匹配,计算代价不断增大,匹配精度相对提高。为了挑选出最适合本文实验的方法,在同样条件下对6种方法进行测试,计算识别速率和精度,在算法识别速率满足最低限制(30帧/s)的条件下,会多做一些测试实验,选择出兼顾识别速度和精度的最佳方案。

1.2 视频流识别原理

基于模板匹配的视频流识别算法的基本原理为:将视频流划分成视频帧或视频图像序列,选择合适的匹配函数在视频帧中寻找与合作目标最相似的区域[7]。根据视频流识别原理,制定程序流程如图1所示。

图1 视频流识别流程图

随机取出总计30 s左右、帧率为60 帧/s的双目视频流,尽量涵盖头盔与合作目标的多角度变化,基于vs2019与OpenCV4.5进行视频流划分,得到1820幅1440×1600(单位为像素,下同)的图像。

2 测试算法性能

2.1 合作目标的设定

计算机视觉领域的目标跟踪识别主要有基于合作目标和非合作目标两种研究方案[8]。合作目标是进行跟踪识别最常用的辅助手段,具有相对成熟、稳定性高、成本低等优势,而且便于根据实验应用情况对合作目标的设计进行调节,有利于提高识别的鲁棒性。文献[9]提出一种简单、高效的二维合作目标设计方案,8个圆形斑块等距分布在目标圆的圆周上,适用于距离较长的靶标识别。文献[10]设计了与地面机器人特征统一的合作目标,主体由3个同心圆组成,不仅可以为无人机提供识别参考和定位基准,外侧的小圆也可为无人机提供与地面机器人之间的相对方向角度。

考虑到模拟飞行的应用,合作目标的设计不需要考虑远距离识别,但是要满足头盔摄像头快速移动时的实时性要求,合作目标数量设计为1即可。为了提高匹配精度,增加合作目标的可区分度和稳定性,将合作目标设计成图2样式,设置大尺寸的合作目标,可以较好地与实物模拟器上其他复杂按钮区分开,有效提高了识别精度。

图2 合作目标样式

2.2 计算识别精度

通过标点程序,对视频流划分的总计1820幅图像中合作目标的中心点二维坐标进行标定并记录。通过6种函数对视频流分别进行合作目标识别实验,记录程序运行返回的坐标序列和运行时间。

程序运行过程中,通过红色矩形框标注最匹配区域,可以目测出是否准确识别了合作目标,图3(a)和3(b)分别是实验过程中正确框出合作目标和错误框出合作目标的情况。

图3 识别合作目标过程截图

为了获取函数识别精度,得出精度最高的函数,分别用执行6种函数标注的中心点坐标与实际合作目标中心点坐标进行均方根误差计算,函数如下。

计算结果如表1所示,函数序号与1.1节中函数介绍序号相同,可见标准相关匹配函数的误差最低,识别精度最高,接下来在标准相关匹配函数的基础上对算法进行改进。

表1 6种函数识别误差

3 自适应模板匹配改进识别率

合作目标在视频流中的相对大小会随着摄像机镜头的拉近、拉远而发生变化,但是传统识别方法中的待匹配矩形窗口大小固定,特别是在获取中心点坐标时存在匹配误差。自适应窗口可以通过设置相似度阈值调节匹配窗口的半径,极大地提高识别的精度[11]。文献[12]提出一种异形自适应窗口局部立体匹配算法,通过双螺旋路径法得到形状多变的待匹配窗口,提高了复杂图像边界的贴合性和图像描述性;文献[13]提出一种基于Camshift和ORB算法的自适应跟踪注册方法,将高斯背景建模和Camshift算法融入到跟踪过程中,实现对目标尺度变化的自适应跟踪。

在上面的实验中,可以观察到在镜头拉近和拉远的情况下,红色矩形框均比实际合作目标大小要大。实验设计相似度阈值,通过循环不断缩小矩形窗口的大小,直到窗口与合作目标大小最为适应为止,结束循环并输出中心点坐标。自适应匹配改进后识别合作目标的效果如图4所示。

图4 自适应识别合作目标

同时改变相似度阈值及循环次数,考虑到窗口缩小存在最低底线,分别测试相似度阈值为5%、循环次数为6~10,相似度阈值为10%、循环次数为5~10,相似度阈值为15%、循环次数为3~6,以及相似度阈值为20%、循环次数为4~5情况下的均方根误差以及算法识别速率。由于实验结果比较复杂、庞大,且需要同时考虑误差以及识别速率,分别绘制均方根误差折线图和识别速率折线图,如图5所示。

图5 均方根误差折线图和识别速率折线图

在识别速率满足最低限制(30帧/s)的情况下,通过分析图5中2幅折线图可以看出,相似度阈值为10%、循环6次,以及相似度阈值为15%、循环4次时,误差均小于5,相对最小,根据实际实验卡顿情况,最终选择出相似度为15%、循环4次的自适应窗口进行接下来的实验。

4 校正三维坐标实现虚实融合

将合作目标设计在仪表盘正中央,得到的合作目标二维坐标即为仪表盘中心坐标,视为仪表盘像素坐标。双目视觉测量过程较为复杂,牵扯到多个坐标系的相互转换,包括像素坐标系、图像坐标系、相机坐标系和世界坐标系[14]。

在自适应匹配实验基础上,为实现UE4场景中虚拟仪表盘与真实仪表盘的匹配融合,设计方案如图6所示,将每一帧获取的真实仪表盘坐标实时赋值给UE4场景中的虚拟仪表盘。

图6 仪表盘虚实坐标匹配方案

4.1 从像素坐标系到相机坐标系

双目摄像机与人眼视物原理相似,可以通过目标物在左右相机成像时存在的视差与目标物到相机的距离存在的反比例关系,得到目标物的深度信息[15]。文献[16]基于双目测距原理,提出了一种水下引导光源检测和测距的方案,不仅优化了实时性,水下对接精度也得到了满足;文献[17]提出了一种改进ORB算法的双目视觉测距方法,有效降低了误匹配率,提高了测量精度;文献[18]基于双目视觉测距原理建立了双目测距软、硬件架构。

假设仪表盘为点A,其坐标转换示意图见图7。

图7 坐标系转换图

点A在相机坐标系下的坐标为(X,Y,Z),在图像坐标系下的坐标为(x,y),在像素坐标系下的坐标为(u,v),图像坐标系原点在像素坐标系下的坐标为(u0,v0),f为固定的焦距,p,q分别代表图像坐标系中x′,y′轴每毫米存在的像素数。得到如下算式

u=px+u0

(9)

v=qy+v0

(10)

(11)

(12)

整理得到

(13)

(14)

利用HTC VIVE Pro Eye进行实验,其SDK中写好的深度模块,将RGB(RED,GREEN,BLUE)图像转换为RGB-D(DEPTH)图像,其中,DEPTH存储目标点的景深信息。由此可以更精准地获取到仪表盘的第三维坐标,得到仪表盘在相机坐标系的坐标,也为快速进行目标检测、识别并与跟踪算法相结合做铺垫[19]。

4.2 从本地坐标系到世界坐标系

UE4场景中坐标系是左手坐标系,以相机为原点的仪表盘坐标在UE4场景中属于本地坐标,赋值运算时需要获取到仪表盘在世界坐标系下的坐标。根据UE4场景中坐标轴的变化,将仪表盘的相机坐标转换为本地坐标。坐标轴转化如图8所示。

图8 坐标轴转化图

如图8所示,两个坐标系的原点都是相机,通过

(X1,Y1,Z1)=(Z,X,Y)

(15)

得到仪表盘本地坐标。

列出部分坐标转换过程数值,如表2所示。

表2 坐标转换数值

UE4提供了蓝图函数Transform Location,可以将本地坐标系的点转换为世界坐标系下的点。坐标转化蓝图如图9所示,将获取的摄像机在世界坐标系下的三维坐标、三维旋转角度以及仪表盘的本地坐标输入到函数中,输出的三维坐标即仪表盘在世界坐标系下的坐标,赋值给虚拟仪表盘,即可有效实现虚拟仪表盘和真实仪表盘的实时对准。

图9 坐标转化蓝图

5 实验结果与结论

实验随机取出总计30 s左右帧率为60帧/s的双目视频流,涵盖了头盔与合作目标的多角度变化,通过搭建基于vs2019与OpenCV4.5的识别定位环境,得到1820幅1440×1600的图像。

通过标定软件获取每一幅图像中合作目标的坐标,与通过经典模板匹配6种算法得到的坐标进行误差计算,得出1.1节方法4(标准相关匹配)误差最小。通过增加自适应识别匹配功能对方法4进行改进,改进后误差有效减小,但相对处理时间增幅较大,有待进一步改进。通过多个坐标系的坐标转换,并通过UE4蓝图编程,实现了仪表盘的虚实配准。得到相关虚实配准参数,如表3所示。

表3 虚实配准参数

目前为提高识别率,合作目标选取得比较明显,直接识别仪表盘的识别率不高,后期实际应用中可以考虑开通实物座舱的仪表盘显示,将仪表盘的显示画面中特征比较明显的不变化因素作为合作目标,会更好地提高实验虚实融合显示效果。

猜你喜欢
视频流仪表盘坐标系
独立坐标系椭球变换与坐标换算
仪表堂堂
极坐标系中的奇妙曲线
Dashboard的10个实现原则
三角函数的坐标系模型
求坐标系内三角形的面积
铁路货场智能大门集装箱全景图像采集方法研究
基于视频流的图像识别技术发展与应用
大学生电动方程式赛车仪表盘的设计与实现
基于手机APP、GIS、OLAP的移动运营商网格集中管理中心系统的设计与实现