基于RoboMaster竞技赛中机器人视觉识别定位系统的研究

2022-02-20 10:25张建兵周煜王孝平郝雯娟
实验室研究与探索 2022年11期
关键词:实时性畸变摄像头

张建兵,周煜,王孝平,郝雯娟

(南京航空航天大学金城学院机电工程与自动化学院,南京 211156)

0 引言

机器人对于运动目标识别与跟踪是计算机视觉、图像处理的一个重要组成部分,其主要目的是获取运动目标在运动过程中的相关参数,从而进行进一步处理与分析,实现对运动目标的行为理解。由大疆创新向全球发起的RoboMater 机甲大师超级对抗赛中,由步兵机器人、工程机器人、哨兵机器人、英雄机器人、空中机器人等组成的机器人战队与敌方机器人战队同场竞技,通过机器人发射弹丸,以精确击杀敌方机器人特定目标而取胜,快速移动的机器人的视觉识别与定位系统对敌方移动特定目标进行自主视觉识别、定位,实现精确打击尤为关键。

机器视觉为基础的机器人识别定位系统主要包括控制系统和摄像机相关系统,通过计算机图像采集及相关的视觉算法,结合伺服控制系统、伺服电机系统等完成机器人的视觉识别与定位[1-3]。机器人识别系统在识别敌方目标同时,还要滤除己方移动机器人目标,防止对己方机器人造成伤害。因此,需要提出特定的视觉算法,实现对敌方目标的精确识别与快速打击。目前,国内外科研人员针对视觉识别跟踪定位,提出多种理论算法,常用的有SIFT[4]、SURF[5]、ORB[6]等算法,其中SIFT、SURF 算法虽然对目标图像识别精度高,但计算耗时长,无法满足移动机器人对目标跟踪定位实时性要求[7]。ORB算法降低了图像精度,提取速度较快,可满足定位实时性要求[8]。本文通过对光流法的ORB特征匹配算法进行优化,使用循环二值化阈值滤波算法,应用在移动机器人的目标识别定位中,以提高机器人对目标识别定位的精确性与实时性的目的。

1 系统识别算法设计

1.1 识别系统平台搭建

本文采用C++结合OpenCV 进行视觉算法研究,平台搭载DJI 大疆创新的Manifold2-G 运算器,通过Ubuntu 开源操作系统,使用高性能NVIDIA Jetson TX2图像处理器进行图像处理。系统采用多线程进行编程,即把整个视觉识别功能分为produce 线程、consume线程和sense串口线程,如图1 所示的多线程系统流程图。其中:produce线程负责摄像头图像的采集、解码以及放入循环队列以不断更新与记录最新图像;Consume线程负责加载produce线程中记录的最新图像、处理并识别图像中的目标位置,并用PnP[9]角度解算记录与更新其pitch轴和yaw轴的偏转角度数据;sense串口线程负责接收下位机(STM32F427,意法半导体ST)发送过来的数据以控制视觉识别系统识别模式,在接收到下位机数据后再把打包好的视觉帧结构体传回到下位机中,完成一次完整的视觉识别系统与下位机的通信。

图1 多线程系统流程图

以步兵机器人比赛规则为例,机器人识别系统需要快速识别敌方机器人目标,如图2 所示的机器人4个麦克纳姆轮之间的装甲板处,视觉系统将敌方机器人相关信息(偏转角,发射模式等)传送至下位机STM32F427 控制器,控制步兵机器人云台发射弹丸击打敌方机器人目标达到获胜的目的。为了精确识别对方目标(装甲板),设计识别算法需要考虑到目标装甲板两侧灯条的亮度及颜色(灯条颜色用于区分敌、我双方目标机器人)、装甲板的形状及倾斜位置、多个目标装甲板共存时的最优化筛选等因素,最终筛选出最合适的装甲板作为机器人射击目标。

图2 步兵机器人识别系统机构实物

1.2 系统识别算法设计

使用OpenCV函数库处理图像针对移动机器人的目标是被定位,常用的方法为基于稀疏光流法的ORB算法[10],其用于求解空间运动物体在观察成像平面的像素运动速度,具有计算速度快、频率高的特点。其基本原理是在第1 帧图像中找到一些特征点,然后第2帧图像中找到相同的特征点,即假定在图像I1中有特征点[δx,δy]T,在I2中找到相对应的特征点,构建出光度误差和的方程ε(δ)并使其最小化,则可以得到特征点的光向量δ。即:

式中,x、y为图像空间坐标。

稀疏光流法能够估计特征点在匹配图像中大致二维位置。在对每帧图像处理后,可以加入显示函数查看处理效果,但仅通过光流法对复杂自然环境的目标进行检测不可避免存在噪点,并不能完全满足实际图像处理需求。本文的系统视觉算法程序中增加了背景减除法,以精确消除复杂环境中噪点带来的干扰。通过系统确定检测目标的背景图像,在检测识别过程中将目标的每帧动作与背景图像进行融合,寻找经过处理的差分图像,通过差分图像的二值化阈值[11-12]处理运动目标,实现无干扰图像显示。背景图像差分二值化过程如下:

式中,D、F、B分别为背景中运动目标图像、背景图像、预检测图像的位置坐标区域。在实际的背景减除法目标检测中需要精确识别B值以及位置,其计算表达式为

式中:T为背景图像的二值化阈值,将检测目标图像的灰度值假定为1,在获取图像明亮度前,设目标的前景图像为目标检测区域,获取图像明亮度后,设目标背景图像为目标检测区域。通过背景图像的二值化过程,可以获得更加精确图像匹配结果,以保证系统的精确识别与定位。

1.3 视觉目标的特征参数处理及提取

通过识别系统的光流法对目标亮度矢量因素进行信息提取与跟踪,分别计算出图像中的光流密度,如图3(a)所示;识别图像有着较为复杂的环境光影响,需要将抓取的图像进行曝光处理,滤除周围环境所带来的噪点,保证图像特征参数的有效性,如图3(b)所示。在识别算法中,还需要滤除己方颜色(蓝色)特征参数,将抓取到的RGB 图像进行通道分离,再进行红蓝通道相减,即利用颜色特征匹配方法和背景减除检测方法,进行差分图像的二值化阈值处理实现无干扰图像显示。

图3 光流法二值化过程

图片经过二值化处理后,有效的剔除掉与蓝色相近的环境光噪点,如图3(c)、(d)所示;但诸如与目标装甲板灯条的亮度相近的环境光所引起的噪点无法取出,此时便需要对像素点进行腐蚀和膨胀操作,该算法不仅进一步剔除掉图片中噪点,同样把断裂的二值化物体连接起来,如图4(a)所示。

图4 图像二值化噪点滤除

在整个图像二值化过程中,经遍历灰度图和通道相减图的所有轮廓,利用OpenCV 库中VcontourArea函数和arcLength 函数在所设置的ROI(Region of Interest)区域进行面积、周长筛选滤除。如图5 所示,通过二维点集的椭圆拟合,用椭圆将轮廓包含起来以变成旋转矩阵。经过双循环的方法遍历所有候选目标装甲板,最终筛选出唯一的最佳目标,如图5(c)所示。

图5 二维点集椭圆拟合

2 系统检测定位设计

2.1 识别信息处理与定位分析

在机器人识别定位系统中,获得有效的目标二维信息参数导入角度解析函数,对目标区域进行精确定位。因此需要充分考虑到机器人视觉瞄准的精确性和实时性,通过控制算法确保机器人云台上固定的枪管始终瞄准装甲板。

鉴于识别系统摄像头像素点与摄像头偏转的角度构成是非线性关系,即使通过控制算法进行PID调节,仍存在一定的误差,导致机器人视觉识别定位系统精确性得不到有效地提高。通过研究发现小孔成像原理可以改善上述问题[13],如图6 可知,这种成像原理可以返回目标物体相对于摄像头图像中心的偏转角度,而不是返回像素差,极大地减少了因只返回像素差带来的角度解算的控制算法冗余度。通过成像点至OF(OF为摄像头焦距)的距离就可以计算得到角度偏差,系统可以通过摄像头标定来获取摄像头的内参矩阵。本文采用Matlab的方法,对选取待测摄像头拍摄16 张的标定板图片来进行摄像头标定,由于摄像头标定共有5 个畸变参数[14-15],其中径向畸变3个,切向畸变2个,径向畸变:

图6 摄像头成像点与实际物体关系图(cm)

式中:r2=x2+y2;k1k2k3为镜像畸变系数。其中,切向畸变:

畸变系数排列:

式中,p1p2为切向畸变系数。

鉴于k3有剧烈的非线性,选择3 个径向畸变参数时,易产生畸变扭曲,所以在此可选用2 个径向畸变参数。通过Matlab进行摄像头标定后,便可以导出内参矩阵参数和畸变参数。导出的内参矩阵

而通过世界坐标和像素点的关系可知:

图片像素点对应偏转角通过反三角函数求解:

再通过世界坐标和像素点的关系,即可得到像素点对应偏转角的关系[14-15]:

通过上述定位设计极大地简化了装甲板角度解算分析的流程,在实际操作过程中,由于存在摄像头与枪管不在同一轴线的因素,以及弹丸在高速运行中重力对其影响因素,导致虽然云台摄像头以及枪管对准了装甲板,仍出现实际发射弹丸并未打中的情况。因此机器人视觉识别定位系统的实时精确性还需要进一步的提升。

图7 图像标定

2.2 PnP(Perspective-n-Point)角度解算的设计

由于小孔成像方案的局限性,导致系统无法获取目标装甲板角度解算的深度信息,机器人枪管因无法变换坐标,远距离射击装目标精度低。而在PnP 算法[9,16]中可以通过solvePnP函数得到目标物体的旋转向量和平移向量,在平移向量中获取目标物体的三维坐标。如图8 所示,PnP利用世界坐标系下空间3D点的坐标和图像坐标系下对应2D 坐标之间的几何关系求解相机位姿关系,对目标装甲板角度进行解算得出装甲板所在方位的偏转角度,以及装甲板与摄像头的距离;根据摄像头内参矩阵和畸变参数关系和装甲板尺寸信息,最终得到装甲板在世界坐标系下的坐标。

图8 世界坐标系和OpenCV坐标系关系图

在使用PnP 算法解算出装甲板的偏转角度以及深度信息后,获得的深度信息来对弹道进行相应补偿,可以很好地解决上文提到过的摄像头与枪管不在同轴线导致击不中敌方装目标甲板的问题。

3 实验结果与分析

所有实验搭载DJI 大疆创新的Manifold2-G 运算平台,通过Ubuntu开源操作系统,采用NVIDIA Jetson TX2 图像处理器进行图像处理。系统经过算法优化后,处理器对串口通信模块初始化配置,选择合适的传输速度,识别定位系统将帧顺序、发射模式、Pitch 轴偏转角度、Yaw轴偏转角度、目标轨道速度等数据发送给下位机,下位机传回给Manifold2 的帧结构体中有控制模式、射速、所处轨道标号、被击打目标等参数。

3.1 系统精确性结果分析

本文将机器人识别定位系统与待测目标装甲板在静态和动态的两种环境下进行准确度分析测试,通过视觉识别程序在Qt Creator 终端,输出每帧的机器人定位系统的识别状态。在系统识别准确度结果中,共截取2 333 帧识别效果图,如图9 可知:①帧数在Frames∈[0,1 250)时,识别定位系统机器人和被识别目标机器人均处于静止状态,其识别的准确率达到100%;②帧数在Frames∈[1 250,1 785)时,识别定位系统机器人处于静止状态,而被识别目标机器人则是处于运动的状态,识别准确率达到99.6%~99.9%之间;③帧数在Frames∈[1 785,2 333)时,识别定位系统机器人和别目标机器人均处于运动状态,其准确率快速下降,但识别准确率也达到97.5%以上。由此表明,双方机器人处于运动状态时,系统识别定位精确性得到有效提高,可到97.5%,而处于静止状态时精确性则更高。

图9 系统准确性结果

3.2 系统实时性结果分析

本文在提高系统识别定位的精确性同时,还对系统实时性情况做进一步分析测试,实验共截取2 000帧识别效果图进行分析,如图10 所示。实验结果表明,系统对识别的图形的运算处理时间主要分布在3~10 ms之间;在2 000 帧的图片中,大于10 ms的帧数仅有27帧,占比1.35%。系统的实时性达到预期目标。

图10 系统实时性数据过程分析

4 结语

通过对识别目标的视觉元素、颜色特征及目标形态利用光流法及差分图像二值化阈值滤波算法,对目标信息得到精确获取。通过PnP 目标解算方法对特征信息定位的准确性了优化。在提高视觉系统的实时性中,采用搭建多线程任务并发执行框架来提高算法速度以及CPU利用率,将有效数据通过串口通信的方式发送给STM32 控制系统,有效改善了系统对图像特征点提取速度和提取质量。实验表明:通过优化算法,提高了系统的定位实施性和匹配精度,使移动机器人比赛中对敌方机器人的特定目标识别的效率及定位的准确性取得了有效的提升。

猜你喜欢
实时性畸变摄像头
浙江首试公路非现场执法新型摄像头
摄像头连接器可提供360°视角图像
几何特性对薄壁箱梁畸变效应的影响
在Lightroom中校正镜头与透视畸变
航空电子AFDX与AVB传输实时性抗干扰对比
计算机控制系统实时性的提高策略
波纹钢腹板连续刚构桥扭转与畸变的试验研究
奔驰360°摄像头系统介绍
一种车载Profibus总线系统的实时性分析
三级风扇进气压力畸变特性分析