马上注册,玩转Robomaster!
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
雷达站,一个自2020赛季规则发布以后就引起广泛关注的新兵种
在RM比赛中到底该如何应用?定位检测?识别地面目标?
你是不是依然有种种好奇和问题呢?
那就快来参与本期圆桌,与RM的攻城狮小哥们一起讨论解惑吧~
【圆桌时间】:2020年3月18日(周三) 20:00-21:00 【圆桌主题】:新兵种讨论之雷达站 【圆桌嘉宾】:@houhongyi RM算法攻城狮 @moxiaochong RM雷达站研发设计负责人 【主持人】:@RoboMaster赛务 【圆桌流程】:20:00-20:20 主题内容对话(主持人与嘉宾) 20:20-21:00 实时问答环节 (嘉宾与论坛网友) 【相关资料】:请看下文!!包括1.基站检查思路;2.基于双目检测动态目标位置的装置内容及视频(重要内容,一定要先看哦!)
温馨提示:
在前20分钟内,为主持人嘉宾对话时间,这段时间内嘉宾是不会回答其他参与者的问题的,大家可以在后面40分钟的自由问答时间内提问。
以下为圆桌背景内容:
1.基站检测思路 机甲大师对抗赛中,单目相机悬挂于我方基地上面3m的位置,朝向己方基地和哨兵附近,可以利用该相机获取基地和哨兵附近敌我双方的机器人的颜色,ID,后期将接入裁判系统数据中的血量信息,一方面,输入到操作间,为操作手提供决策辅助,另一方面,也可以为己方哨兵提供策略。 根据上述需求分析,可以将该项目分解为以下几个子任务:
根据第一节中的任务拆分,大致可以分为四部分,第一部分是相机选型与驱动配置;第二部分是检测与识别,第三部分是跟踪和融合,第四部分是最终结果输出。 1)检测与识别包括:前景提取 颜色识别 装甲板识别 数字识别。 2)跟踪与融合包括 多目标跟踪 检测与跟踪框架融合 3)总体方案框图如下: 相机为大恒的MER-131-210U3C(同大恒139套餐),焦距6mm,视场角45度, 使用画面尺寸1024*1080。 使用该相机的实际效果: 1)画质好,由于画质好,进行运动检测时,会将噪点都识别出来,进行腐蚀操作可以去掉噪点。 2)焦距适中,经测试,在该相机下,最远可以识别11m处的装甲板,稳定识别水平距离9M内的装甲板。覆盖视野如下: 体现在RM2020地图中,则可以覆盖环形高地内,哨轨道兵附近,以及基地附近的机器人。
前景主要基于运动目标检测原理,将场地中运动着的机器人通过前景分离的方式提取出来。
颜色识别方案,主要的方法有两个: 第一种是在BGR空间处理.将BGR三通道分离,获取B和R通道像素,通过与G通道像素做差获取像素值进行处理。 第二种是将图像转到HSV空间,按照红蓝的H值的范围进行划分,从而统计得到红蓝像素点的个数。
装甲板识别方案,同第一视角装甲板识别原理相同,总体方案是在识别到的所有灯柱中,根据先验知识,设定条件,判定平行灯柱。将平行灯柱对应的区间图像扣出来。 数字识别部分,总体方案采用的是SVM进行数字识别的训练,需要注意的地方是:由于该相机安装高度和角度与第一人称视角和其他视角有所区别,经过测试,在开源的数据集中以及第一视角提取的样本的基础上训练得到的模型,识别效果很差,做出了如下改进: 1.使用该相机拍摄车辆的运动数据,使用装甲板识别功能提取图片作为训练用样本集; 2.设立负样本集合,将环境下的背景图,灯光效果,影子效果等容易误识别的图片作为负样本集合; 3,训练前,将图片归一化为25*25左右大小,图片缩小以后效果变好;训练步骤比较简单,主要是数据集的制作和处理比较麻烦以及需要技巧; 跟踪与融合基本上是通过检测与跟踪进行融合,通过检测来纠正跟踪,再通过跟踪来弥补检测的抖动与丢失。
最终基站在检测到基地附近敌我分布之后能够通过裁判系统得到所有机器人的信息,并生成威胁系数:比如首先集火血量低的车辆;识别友军集火目标辅助攻击;根据当前局势选择攻防策略;通过远距离预警补充哨兵视野;分析敌方行为动向等。
对于深度学习在基站目标检测中的应用经验与展望:
深度学习的模型对光照、颜色非常挑剔,这是由于过拟合造成的。由于数据采集使用的设备单一、光照比较固定,所以网络往往会把设备的特征学习下来,其中最敏感的颜色模型,好比说模型训练集使用sony相机拍摄,但是验证集是BMD相机拍摄,这就会使的网络预测准确度断崖下跌,甚至完全不能工作。对于机器人检测模型,由于背景比较单一,导致模型学习了背景信息,导致在分区赛数据集上训练的模型拿到复活赛上使用就会出现问题。 这些问题主要原因还是因为数据过于单一。
为了引导大家能够学习深度学习技术、将深度学习应用到比赛上来、我们也希望建设一个开源数据集平台,便于各个学校分享自己的数据集、共同丰富赛事数据集,在参赛的同时提高深度学习技术,营造RM数据生态圈。
一、 相机选型 大恒水星系列 MER-230-168U3C
二、 结构搭建 搭建材料:型材 搭建方法:两个相机水平同向安装于一根型材上 搭建特点:将型材的滑槽利用上可以方便调节两个相机的间距,即调整双目基线的长度以适应不同应用场景下不同远近目标的测量 双目相机如下图所示:
三、双目相机的同步 双目相机的同步要求两个相机捕获一帧图像的时刻相同。如果双目的两个相机无法做到同步,那么对于测量运动的目标,由于左目和右目图像不是同一时刻捕获的,在做双目匹配的时候就会引入目标运动所带来的额外误差,并且目标运动越快,额外误差越大。 很多工业相机都支持外部信号触发功能,可以利用一路信号来触发两个相机同时捕获一帧图像,从而解决双目当中两个相机的同步性的问题。 简单的原理如下图所示:
四、几个主要参数的选取 帧率:100 FPS 焦距:12mm 图像分辨率:1920 * 1200 基线:780mm
a) 关于帧率的选取:以飞镖为例。假设飞镖的飞行速度为20m/s,按100 FPS的帧率算处理一帧图像的时间为0.01s,那么由处理时间所带来的对飞镖位置估计的误差为0.2m,大约为一个飞镖身位的误差(Tips:帧率越高越好,但要考虑算法的处理时间是否允许)
b) 关于焦距和图像分辨率的选取:图像分辨率越高,双目匹配的的精度越高,由匹配误差带来的测量误差越小。此外,焦距和图像分辨率影响相机的视场角度。大恒水星MER-230-168U3C相机的像素尺寸为5.8 * 5.8μm,在12mm焦距,1920 * 1200图像分辨率下他X轴和Y轴方向上的视场角分别为:49.6°和30°。 具体计算如下图所示(研发小哥手写,请见谅):
c) 关于基线的选取:在12mm焦距,780mm双目基线长度的参数下,测量28m远的物体,一个像素的匹配误差带来的测量误差约为0.5m。具体计算方法如下: 双目测距的公式为: 中Z为深度,单位m;f为焦距,单位像素;b为双目基线长度,单位m;d为双目视差,单位像素;对于选用12mm镜头焦距的MER-230-168U3C相机,以像素为单位的焦距为: 在b=0.78m的双目基线下,Z=28m处的双目视差:假设由于双目匹配引入了1个像素的匹配误差,此时d=56.6,则Z=28.5;由此可以得到在28m远的距离处,一个像素的匹配误差会带来0.5m的测量误差。 Tips:以上参数以及相关的计算方法和数据可以作为搭建双目测量系统时的参考。
五、相机的标定 空间物体表面某点的三维几何位置与其在图像中对应点之间的相互关系是由相机成像的几何模型决定的,这些几何模型参数就是相机参数。要利用相机的成像模型恢复图像中某个点的三维位置,首先要对相机的参数进行标定。Ubuntu环境下,可以用ROS或Kalibr标定单目相机或双目相机的参数,详细见以下链接:
六、相机姿态的标定 雷达站上架设双目,利用双目恢复的目标的三维位置为相机坐标系下的位置,我们在场地原点设定世界坐标系,若要将相机坐标系下的目标位置转换到世界坐标系中,则需要标定相机在世界坐标系下的位置和姿态。一个简易的标定方法为在场地上的一个已知位置放置一个标记物,通过获取标记物在相机坐标系下的位姿反推相机位于场地坐标系下的位姿,该标记物可以为棋盘、aruco marker、april tag,其中aruco tag 标定方法参考以下链接:
七、利用双目检测飞镖并测量其三维位置的大体思路 思路框图如下图所示:
(1)、感兴趣区域的划定:对于采用1920*1200的图像分辨率,对整幅图进行处理是不现实的,那样会相当耗时。所以需要估计飞镖会出现在图像中的位置,在这个位置附近来检测飞镖,这样会大大较少处理量。 关于如何估计飞镖在图像中的大概位置:飞镖是从飞镖发射井口出来的,双目一旦架设好,发射井口在图像中的位置也就确定了,因此会在图像飞镖发射井附近开始检测飞镖。另一方面就是飞镖飞行过程中其在图像中的大概位置估计,这里就需要引入一个预测,即根据当前帧飞镖的位置、速度、加速度等信息递推预测下一帧飞镖的位置。这个预测可以在二维图像层面的预测或者是在三维空间层面的预测,如果是三维空间层面的预测,则需要引入一个三维到二维的重投影过程。
(2)、提取目标:关于飞镖的检测和提取,目前采用一个比较简单的帧间差分法。理由是相机是固定不动的,大部分背景也是固定不动的,飞镖肯定是动的。在利用帧间差分法检测出图像中动的物体之后,利用飞镖头是高亮且为红色或蓝色这些信息来排除一些其他动的物体,还有一个信息比较重要,那就是正常情况下,飞镖头离你的预测点是最近的。
(3)、双目匹配:为了能够更好地检测蓝色或红色的飞镖头,会把相机的曝光降下来,压暗环境。压暗环境带来的一个弊端就是图像的纹理变弱,对于检测出来的目标,弱纹理给双目匹配带来了困难。这里一种简单的方式,直接分别拟合左目和右目检测出来的飞镖头圆心来作为匹配点。
(4)、三维位置恢复:得到目标的匹配点后,对目标匹配点进行畸变矫正,然后计算双目视差,利用双目测距模型计算目标的深度,根据针孔相机模型恢复目标在相机坐标系下的三维位置。关于目标三维位置的恢复,还有另外一种方式,也就是目前采用的方式:把双目相机看成一个发生了运动的单目相机,该“运动”由双目相机标定时得到的从右目相机到左目相机的位姿变换描述,然后以单目相机三角测量的方式恢复目标的三维位置。具体参考高翔博士的《视觉SLAM14讲》——三角测量小节
(5)、转换到场地坐标:根据相机姿态标定得到的相机坐标系与场地坐标系之间的位姿变换关系,将目标的三维位置从相机坐标系转换到场地坐标系。
(6)、预测下一帧目标的位置:根据当前帧目标的位置、速度、加速度等信息来递推估计下一帧目标的位置,从而为下一帧检测目标提供参考,减小目标的检测范围。
Tips:由于双目匹配的精度不会很高,对于远距离的目标,其三维位置会存在比较大的波动,目前采用卡尔曼滤波对飞镖的三维位置做一个滤波估计。具体为将飞镖的三维位置、速度、加速度作为状态变量;飞镖的三维位置作为测量变量;运动方程由飞镖的运动学模型描述;观测方程为直接让双目恢复的飞镖的三维位置作为测量值。
八、扩展应用 其实整套双目系统不单单可以检测和测量飞镖,迁移一下思路,或者做一下改进,雷达站的双目也可以检测抛射英雄发射的大弹丸并恢复其在场地上的三维位置,为抛射英雄击打目标提供指导,也可以检测机器人并估计其运动速度等等。
|