基于机器视觉的真人射击游戏智能仲裁系统

2022-10-11 12:33孟一飞杨丽娟
传感器与微系统 2022年10期
关键词:位姿嵌套靶标

孟一飞, 毛 威, 孟 斌, 杨丽娟

(宁夏大学 物理与电子电气工程学院,宁夏 银川 750021)

0 引 言

真人射击游戏又称为生存游戏或野战游戏,是一种半竞技性团体对抗射击运动,游戏中玩家通过游戏枪击中对手出局模拟军事战斗。现有真人射击游戏比赛用枪主要包括实体弹丸发射枪和电子枪两类。弹丸类游戏枪能带给玩家更真实的射击体验感,但这种方式缺乏精准公平的制裁方法,输赢的评判仅依赖于玩家的诚实。电子枪利用光通信技术,通过向接收器发射红外激光信号模拟射击和人员中弹,然而其缺点是玩家只有在对准接收器射击时,才会被判定有效击中,接收器仅输出有无击中目标的逻辑量,无法获知射击距离、瞄准角等更精确的评分指标。针对以上问题,本文提出一种基于机器视觉的射击游戏仲裁系统设计。

本文所提出的仲裁系统基于AprilTag标签机器视觉检测技术[1],粘贴在玩家身上的AprilTag靶标提供参与者的身份标识和位姿数据。游戏枪瞄准镜前端装有摄像头,用于捕获靶标图案。摄像头通过扫描玩家身上的靶标得到该玩家与游戏枪的相对距离和角度差,系统利用以上信息判定得分。基于机器视觉技术的优势在于:系统能够检测瞄准射击点和AprilTag标签的相对误差,细化评估对被击目标的伤害程度。相比电子枪信号接收器,粘贴在玩家身上的标签几乎不会带来负重。

基于靶标检测方案面临的最大挑战是摄像机视野和可用分辨率的限制。游戏枪识别标签的难易取决于射击距离和目标玩家的移动速度[2]。当枪械与标签距离较远,标签在摄像机中的尺寸会非常小,对识别带来极大的障碍。当游戏枪与靶标距离较近时,即使玩家移动速度很慢,摄像机也可能只拍摄到标签的一部分,无法报告一次有效检测。这些限制决定了AprilTag标签只能在很小的距离范围内和较慢的移动速度下被检测识别,标准的AprilTag标签不适合在真人射击游戏这种长距离、高速度的检测环境中使用。

为提升标签的可检测范围和定位精度,本文提出了一种双层嵌套式标签的设计方案,具体做法是在大标签中嵌入一个小标签,使摄像机在更大动态范围内至少识别到一个标签。此外,将贝叶斯数据融合方法[3]应用于双层嵌套式标签的位姿估计中,通过融合内外两层标签的位姿测量值作为整体靶标的位姿,有效减小了靶标的定位误差。

1 相关工作

视觉基准标签是一种印有特殊图案的二维码标志,通过摄像机拍摄包含标签的图片,经算法处理后即可得到标签6个自由度的空间位姿信息[4]。相比GPS,MoCap(motion capture)等定位传感器[5],视觉基准标签因其灵活性高,成本低廉,在应用于多目标集群定位方面拥有更大的优势。使用时只需打印出标签并粘贴在待测目标上,即可获取目标的位姿信息。

AprilTag标签由Sagitov A教授在2010年国际机器人与自动化会议上提出。由于该标签在检测率、码间汉明距离、对扭曲和遮挡的鲁棒性等各个方面均优于其他标签[6],近年来,在目标跟踪、视觉定位、即时定位与地图构建(simultaneous localization and mapping,SLAM)准确性评估测试和人机交互方面得到了广泛的应用。自第一代AprilTag提出以来,标签图案和检测算法在不断被改进和优化。2016年,Wang J和Olson E提出了第2代AprilTag[7],在探测器中应用新的边界分割算法,在没有牺牲定位精度的前提下降低了假阳性率和计算时间。2019年,Krogius M等人提出了第3代AprilTag标签[8],使用圆形和环形的标签图案设计,增加了二维码的数据密度。

2 系统功能与设计

2.1 系统总体功能及系统框架

本文讨论一种基于AprilTag标签智能检测技术的射击游戏仲裁系统,系统中,游戏参与者身上贴有带编码信息的靶标标签,通过安装在游戏枪上的摄像头采集靶标标签,并通过单应性变换、外参评估等算法,计算游戏枪在被击发时,靶标与游戏枪的相对距离和角度差,从而判定对手的损伤程度。游戏枪上的视频处理系统通过无线通信模块将靶标位姿发送到云服务器,服务器后端对数据二次处理转换成射击得分。游戏玩家通过登录仲裁系统手机客户端访问服务器查看个人得分、总分排名、团队战局胜负等战绩信息。

基于以上功能需求,本文设计了如图1所示的系统框架结构。真人射击游戏智能仲裁系统由智能游戏枪、云服务器、手机客户端三个子系统组成。每个子系统依靠自身主控器独立运行,子系统间通过无线通信传递信息。

图1 智能仲裁系统框架结构

2.2 图像获取模块硬件设计

图像获取模块主要实现仿真枪击发监测、视频流捕捉与图像处理、串口通信及控制传输控制协议(transmission control protocol,TCP)通信功能。游戏枪采用OV7725CMOS图像传感器采集现场图像,使用CortexM7内核的STM32H743VI ARM芯片作为主控器。ATWINC1500与处理器通过串口连接,在系统中执行游戏枪与服务器的通信任务。前后端使用套接字网络接口发送和接收数据。

2.3 ECS云服务器端软件设计

智能仲裁系统云服务器实现数据储存、得分计算以及与游戏枪和手机客户端的数据交互功能。本文系统选择阿里云ECS(Elastic Compute Service)实例作为服务器方案。为实现服务器数据储存和与前端设备无线通信的功能,需要在服务器端部署Mysql数据库并配置TCP服务。数据库主要包含用户注册信息表、装备列表、靶标位姿监测表。使用PHP搭建手机客户端后端MVC框架,用以响应前端发起的请求。

2.4 基于uni-App的跨平台客户端设计

手机客户端主要用于服务器访问及数据应用操作。本文设计使用Vue.js语言基于uni-App框架开发真人射击游戏仲裁系统手机客户端,该方案在客户端跨端灵活性和开发成本方面拥有更强的优势。玩家通过登录客户端将游戏枪编号及靶标编号提交至服务器,实现玩家—游戏枪—靶标的三重绑定。系统通过绑定关系分辨玩家,并以游戏枪编号作为主键更新得分。最后由计分页面报告当前玩家最新一次射击分数。

3 嵌套式二维码检测与定位算法设计

3.1 AprilTag标签解码与定位原理

图2为AprilTag36h11家族0号标签的解码流程,具体步骤如下:

1)将原图转换为灰度图,计算梯度的幅值和方向,使用基于图的Felzenszwalb聚类算法,将梯度相同的像素聚类形成线段,如图2(a)所示。

2)为每条线段添加方向语义,寻找线段终点附近的新线段,弥合线段间的断点,并明确线段的围绕关系,判断其能否围成满足环绕规则的封闭四边形,见图2(b)。

3)如图2(c)所示,将已检测的四边形内部分成10×10的网格,遍历每个小方格内部的像素点,如果小方格所在区域二值化后的像素点超过区域内像素点总数的50 %为1,则认为整个小方格是白色,解码为1,反之解码为0。如图2(d)所示,探测器已将二维码的36个比特块载荷解码,得到该标签的码字为0xd5d628584。

图2 AprilTag36h11_0标签解码流程

4)若解码得到的码字与字典库成功匹配,接下来对标签进行位姿解析。首先利用标签4个顶点在空间和图像中的4对坐标,以及相机的内参矩阵,构建P4P(perspective—4-point)[9]方程。通过DLT(direct linear transform)方法计算出单应性变换矩阵H,对3×3的单应性矩阵H进行奇异值分解(SVD),得到如式(1)所示的投影矩阵P和外参矩阵E。外参矩阵包含了标签的旋转变换分量Rij和平移变换分量Tk,s为两组齐次坐标映射的尺度参数

(1)

通过联立式(2)方程组求解Rij和Tk元素

h00=sR00/fx,h01=sR01/fx,h02=sTx/fx,…

(2)

旋转矩阵R的第3列[R02R12R22]T通过其他两列叉乘计算[10],恢复后的旋转矩阵如式(3)所示

(3)

由式(4)将旋转矩阵R转换为标签3个自由度旋转角

(4)

标签中心与摄像机相对距离d通过式(5)计算得出

(5)

3.2 嵌套式AprilTag靶标图案设计

远距离射击时,标签检测率较低的主要原因是二维码在图像中占用的像素过少,一个简单的解决办法是使用长焦镜头,这样在远距离处仍然能够拍摄到清晰的二维码图案,以提升靶标检测率。然而长焦镜头视野范围相对狭窄,如图3所示,只有在游戏枪离目标较远时,靶标才能完整出现在摄像机视野之内,当游戏枪接近目标时,靶标在图像中的比例会不断增大,最终二维码的边缘会超出画面,无法被探测器识别。此外,远距离瞄准会导致微小的标签抖动被放大,当目标移动速度较快时,容易造成标签刚一出现在画面中就移出视野,摄像头很难捕捉到连续运动的标签。这些限制决定了游戏枪只能检测到小范围内低速运动的AprilTag标签,检测距离距离d必须满足dmin

图3 标签超出摄像机视野

为解决以上问题,本文设计了如图4所示的双层嵌套式AprilTag标签,通过将2个大小不同的AprilTag标签叠加在一起,合成一个近似分形图案的靶标。考虑到玩家射击时将靶标中心作为瞄准点,因此本文设计将两个标签的中心重合。这样设计的优点是,满足实际应用的同时避免了内外层标签坐标系的转换。由于解码过程中规定比特块的颜色是区域内超过半数像素的颜色,所以小尺寸二维码的面积要小于大尺寸二维码中心4个比特块面积和的50 %,确保不干扰外层标签解码。

图4 嵌套式AprilTag设计方案

为内外层标签分配不同的尺度因子能够补偿内外层标签因尺寸不同造成的位姿测量偏差,然而这就要求探测器能够区分内外层标签。一个有效的方法是,在设计中将编号为奇数的二维码作为大尺寸基底靶标,编号为偶数的二维码作为小尺寸嵌入靶标。探测器解码后,读取编号的奇偶,有选择性地将尺度因子代入式(1)中运算,这样保证了在仅检测到一个标签的情况下,也能获知整体靶标的定位信息。

3.3 基于贝叶斯数据融合的靶标定位算法设计

当摄像头同时捕捉到内外层标签时,来自两个标签的位姿测量数据总有一定程度的不一致性,这主要来源于噪声的影响,使用贝叶斯数据融合算法能够有效解决这一问题。贝叶斯数据融合算法是一种基于贝叶斯理论的统计算法,能够通过已知Z向量估计未知的n维向量X。概率密度函数P(Z|X)描述了Z关于X的条件概率,当状态变量X的信息与之前的观测值偏差过大,可以通过似然函数提供更准确的测量结果。X的先验信息可以封装为先验概率P(X=x)。嵌套式靶标内外层标签测量数据的融合模型如式(6)所示

p(X=x|Z=z1,z2)=

(6)

式中P(Z=z1|X=x)为外层标签观测值的概率模型,P(Z=z2|X=x)为内层标签观测值的概率模型,P(Z=z1,z2)为所有可能的测量值。使用高斯分布作为标签观测值的概率模型,外层标签和内层标签的概率模型如式(7)和式(8)所示

(7)

(8)

根据贝叶斯理论,两个标签融合测量值的最大后验估计由式(9)定义

(9)

解出嵌套式靶标位姿的最优估计量为

(10)

式中z1为外层标签解码预测出的位姿,z2为内层标签解码预测出的位姿,σ1和σ2分别为外层标签和内层标签位姿测量值的标准差。

4 系统实现与实验结果分析

4.1 靶标检测率与定位误差分析

本文使用Unity引擎生成AprilTag靶标数据集以分析检测率和定位精度。探测器以单线程模式运行在Intel®CoreTMi9—9900X CPU 3.50GHz内核的处理器上。实验中,物理摄像机使用70 mmIMAX型传感器,感光元件尺寸为70.41 mm×52.63 mm,标签尺寸为0.1 m×0.1 m,图像分辨率为640×480,摄像机内参矩阵[11]为

(11)

在检测率测试中,摄像机开启后位于原点,AprilTag标签在镜头前以预先规定的路径和速度通过,当标签进入摄像机视野后触发捕获。靶标的移动速度为2 m/s,测试距离从0.5 m到10 m,增量为0.5 m。在每个标定距离点的测试中运行13次,最后收集标签的检测率。图5是标准AprilTag标签和嵌套式AprilTag标签在不同距离下的检测率。从图中可以看出,嵌套式标签的检测率比标准标签的检测率高很多,可检测距离范围也明显大于标准标签。

图5 标签检测率对比

图6比较了在探测器同时检测到大小两个标签的情况下,是否使用贝叶斯数据融合算法对标签定位精度的影响。实验中,设置摄像头与标签的距离在4~8.5 m之间,该距离范围内探测器能够同时检测到内外层标签。从图中可以看出,当使用贝叶斯数据融合算法时,靶标与摄像机距离测量值的相对误差大约12.7 %。当不使用贝叶斯数据融合算法时,相对误差的增加到了23.3 %。

图6 定位误差对比

4.2 系统测试

为验证智能仲裁系统在实际应用中的表现,本文设计了如图7所示的实验场景。测试过程中,佩戴AprilTag靶标的机器人在场地中沿设定好的轨迹向前移动,实验人员使用游戏枪瞄准机器人射击,仲裁系统手机客户端实时报告当前得分及靶标位姿信息。

图7 智能仲裁系统手机客户端(左)与测试场景(右)

图8为任意4次成功命中后从仲裁系统客户端获得的标签位姿数据和得分信息。坐标原点为射击点,空心圆圈是系统预测出的靶标中心坐标,圆圈附近的数值是各命中点的得分。从图中可以看出,命中点距离射击点越远得分越高,靶标中心越接近瞄准点得分越高,本文系统实现了在无需人工参与下,利用机器视觉靶标检测算法,对玩家的射击表现给出客观公正的评分。

图8 靶标位姿预测结果及效果评估

5 结 论

本文设计了一种基于机器视觉靶标检测技术的真人射击游戏仲裁系统。该系统利用游戏枪瞄准镜前端的摄像头检测玩家身上的双层嵌套式AprilTag标签,并通过标签预测对手与游戏枪的相对距离和角度差,判断命中情况。双层标签在可识别范围方面表现出了更强的优势,更满足真人射击游戏这种动态距离变化大的检测需求。使用贝叶斯数据融合算法融合大小两个标签的定位信息,提高了嵌套式靶标整体的定位精度。本文系统已在室内完成了功能测试,下一步将在更复杂的室外环境中测试系统的有效性。

猜你喜欢
位姿嵌套靶标
纳米载体可缓解农药对靶标作物的负作用
基于PLC的六自由度焊接机器人手臂设计与应用
基于位置依赖的密集融合的6D位姿估计方法
靶标评改,让习作评改有序更有效
曲柄摇杆机构的动力学仿真
论电影嵌套式结构的内涵与类型
嵌套交易如何实现逆市盈利
新杀菌剂靶标和先导化合物的探索
巧用嵌套交易实现逆市盈利
表格在网页中的灵活运用