【RM2020 圆桌】第五期 新兵种讨论之雷达站
55679
0
309
2020-03-12
雷达站,一个自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.基于双目检测动态目标位置的装置内容及视频(重要内容,一定要先看哦!)温馨提示:
在直播期间,大家可以直接移步至论坛活动版块 https://bbs.robomaster.com/forum-club-1.html,直播墙会自动实时更新内容。
在前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数据生态圈。
2.基于双目检测动态目标位置的装置
一、 相机选型
大恒水星系列 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相机,以像素为单位的焦距为:
假设由于双目匹配引入了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:由于双目匹配的精度不会很高,对于远距离的目标,其三维位置会存在比较大的波动,目前采用卡尔曼滤波对飞镖的三维位置做一个滤波估计。具体为将飞镖的三维位置、速度、加速度作为状态变量;飞镖的三维位置作为测量变量;运动方程由飞镖的运动学模型描述;观测方程为直接让双目恢复的飞镖的三维位置作为测量值。
八、扩展应用
其实整套双目系统不单单可以检测和测量飞镖,迁移一下思路,或者做一下改进,雷达站的双目也可以检测抛射英雄发射的大弹丸并恢复其在场地上的三维位置,为抛射英雄击打目标提供指导,也可以检测机器人并估计其运动速度等等。
相关视频:
本次圆桌问答汇总:
1. 为什么不直接拿YOLO,RCNN什么的直接来,而是去拿运动目标去做了呢?有什么好处吗?
深度学习对数据的多样性有要求,如果采用深度学习的方法需要大量数据才能获得比较好的鲁棒性。要不然辛苦炼丹1年,场上不好用就忧伤了。运动目标检测则更直接一些,不依赖大量数据。
深度学习对数据的多样性有要求,如果采用深度学习的方法需要大量数据才能获得比较好的鲁棒性。要不然辛苦炼丹1年,场上不好用就忧伤了。运动目标检测则更直接一些,不依赖大量数据。
2. 对镜头的焦距有要求吗
对镜头的焦距论坛帖子里已经提供了参考,目前使用12mm焦距的镜头
3. 飞镖的标识到底什么样子? 两排绿灯?
具体看机器人制作规范。
4. 雷达怎样与电脑连接呀
你说的电脑我可以理解成雷达运算端吗?连接方式随意,只要符合机器人制作规范即可
你说的电脑我可以理解成雷达运算端吗?连接方式随意,只要符合机器人制作规范即可
5. 雷达识别的数据怎么发送给其他兵种,靠现在的刷新频率不够呀,刷新频率会提升吗?
雷达识别的数据通过裁判系统发给其他兵种,建议不要去做实时控制,而是采用低频命令的方式去做控制
雷达识别的数据通过裁判系统发给其他兵种,建议不要去做实时控制,而是采用低频命令的方式去做控制
6. 两个摄像头能看到全场吗
具体看你的镜头焦距和摆放方式,看到敌方那边可能比较费劲。
具体看你的镜头焦距和摆放方式,看到敌方那边可能比较费劲。
7. 雷达站输出的数据怎么和哨兵连在一起?是官方提供渠道吗?
走裁判系统学生端口
走裁判系统学生端口
8. 雷达的摄像头如果加舵机没事吧。
具体参看最新的规则手册和机器人制作规范。没有禁止即许可。
9. 请问官方的反导系统具体是怎么实现的呢,识别到飞镖后,靠什么阻止飞镖打击基地呢
参考本期圆桌开源帖子
参考本期圆桌开源帖子
10. 雷达站被打坏了怎么办
(请参考)步兵被打坏了怎么办?
(请参考)步兵被打坏了怎么办?
11. 广角镜头对运动目标的识别有影响吗
参考FL_Who说的:“做畸变校正啊”
参考FL_Who说的:“做畸变校正啊”
12. 用官方数据集训练出来的模型在雷达站那个位置的时候会不会效果断崖式下跌
实话说,机器人检测完全没效果,不吹不雷。所以建立自己的数据集很有必要
实话说,机器人检测完全没效果,不吹不雷。所以建立自己的数据集很有必要
13. 请问你们的雷达站方案是可以同时实现:1.识别飞镖并计算其三维坐标以反导;2.根据颜色识别视野内的敌我方机器人并框出(进一步还可以实现数字/兵种识别)吗?如果可以,怎样能同时实现这两个功能(求思路)?
没有规定具体可以用几个相机,所以,2个相机做飞镖识别,剩下的做敌我识别,哇哈哈。
没有规定具体可以用几个相机,所以,2个相机做飞镖识别,剩下的做敌我识别,哇哈哈。
14. 如果考虑双目识别的延时,在实战中有什么战术应用价值吗?
给其他兵种提供参考和指导
给其他兵种提供参考和指导
15. 雷达的输出能否连接个显示屏放在操作间里
参考制作规范手册上有关雷达的输出的表述
参考制作规范手册上有关雷达的输出的表述
16. 请问雷达运算端可以直接用队员笔记本吗?
法无禁止即可
法无禁止即可
17. 雷达识别的数据通过裁判系统发个其他兵种,建议采用命令的方式去做控制。请问命令具体指什么可以再详细点吗
这个命令是你自己定义的呀亲,比如说雷达给哨兵发 “敌方还有500毫秒到达战场,切换到暴走状态”
这个命令是你自己定义的呀亲,比如说雷达给哨兵发 “敌方还有500毫秒到达战场,切换到暴走状态”
18. 雷达能否与其他兵种直接通信?
走裁判系统端口链路
走裁判系统端口链路
19. 官方开源数据集与在雷达站上装大恒6mm焦距镜头拍摄的机器人和装甲板,大小和视角差异大吗?会不会存在用官方数据集训练出来的检测模型上场因为训练集和实际使用场景差异太大导致模型不work的情况?
你去用吧,肯定不会work的
你去用吧,肯定不会work的
20. 雷达能否与其他兵种直接通信?
通过裁判系统学生串口
通过裁判系统学生串口
21. 请问在雷达站上做敌方机器人装甲板数字识别有实用意义吗?(目前官方尝试的效果如何?
雷达站可以通过数字识别唯一确认到每个车的身份,从而指导哨兵的反击策略。比如果优先避开1号车去攻击5号车。
雷达站可以通过数字识别唯一确认到每个车的身份,从而指导哨兵的反击策略。比如果优先避开1号车去攻击5号车。
22. 比赛过程中,操作手或者云台手能否控制雷达站相机的角度?
雷达站的裁判系统有上下行的学生端口,可以接受和发送命令。参考最新规则手册,法无禁止即可。
雷达站的裁判系统有上下行的学生端口,可以接受和发送命令。参考最新规则手册,法无禁止即可。
23. 雷达除了转接实战的视频(直接观察场上情况)还有上面实际用法吗?
上面所有用法都有意义呀。
上面所有用法都有意义呀。
24. 雷达站可以安装红外光发射设备吗
参考制作规范
参考制作规范
25. 雷达站摄像头的视角看到敌方半场的信息吗,在敌方半场对车做定位是否可行
感觉可能意义不大,但是有野心总是好的。
感觉可能意义不大,但是有野心总是好的。
26. 比如雷达把信息传给步兵后,步兵与操作手客户端间的信息传递频率太低,以后频率会提升吗?
有需求可以提出来,没准会被满足呢
有需求可以提出来,没准会被满足呢
27. 装个监控球机直接扫全场,可行否?
只要你能装上,符合制作规范
只要你能装上,符合制作规范
28. 所以在目前没有雷达站视角数据集的情况下。直接采图像帧差来做运动目标检测,是比训练CNN检测模型更实用有效的吧
可以这么说
可以这么说
29. 官方规则说平台2m,支架规定在1.5m内,但是之前又说传感器端不能超过3m,那支架+平台高度能超过3m吗
最新的制作规范还有这个矛盾吗?如果有请联系我们。
最新的制作规范还有这个矛盾吗?如果有请联系我们。
(请见:RoboMaster组委会官方渠道汇总及答疑规范 https://bbs.robomaster.com/thread-7094-1-1.html)
30. 通过车的摄像头把各个车的信息再反馈给雷达站显示出来,让全队共享视野可行吗
如果通过学生端口传图像,那得卡成啥样呀。
如果通过学生端口传图像,那得卡成啥样呀。
31. 规则上面说,雷达站运算器那里可以放一个键盘和鼠标,请问这个是说我们的云台手可以在比赛的时候实时操作吗
你去看看雷达运算器在哪里,我觉得云台手没那么长吧。那个是让大家场间调试用的。
你去看看雷达运算器在哪里,我觉得云台手没那么长吧。那个是让大家场间调试用的。
32. 那可以稍微改大一点运算平台的大小吗?,我淘宝选择贼久机箱感觉如果买小机箱有点亏,到时候还需要重新整一个大机箱
同问,现在的机箱就大了几厘米。。。能不能改成市面上较为常见的机箱大小
我们会考虑,但是目前尺寸限制应该不小吧。
同问,现在的机箱就大了几厘米。。。能不能改成市面上较为常见的机箱大小
我们会考虑,但是目前尺寸限制应该不小吧。
33. 请问双目匹配,“直接分别拟合左目和右目检测出来的飞镖头圆心来作为匹配点”,这样只有一个匹配点,怎么求解单应性矩阵呢?
可能你的思路不太对,得到一对匹配点后可以直接根据双目测距的原理或公式算出深度,不涉及到求解单应行矩阵
可能你的思路不太对,得到一对匹配点后可以直接根据双目测距的原理或公式算出深度,不涉及到求解单应行矩阵
34. 雷达站可以通过裁判系统获取己方机器的位置吗?不论是否实时
裁判系统?你是想要UWB的定位数据吗?我们指的都是通过图像识别定位机器人位置
裁判系统?你是想要UWB的定位数据吗?我们指的都是通过图像识别定位机器人位置
35. 如果雷达站计算的额定功率超过1000W而满载实测并不会超过可不可以上场
这个需要参考检录规范了
这个需要参考检录规范了
36. 如果做不到识别出机器人,能通过裁判系统把敌方机器人血条给操作间的云台手吗
识别不出来怎么叠血条呢?
识别不出来怎么叠血条呢?
37. 不用双目视场角的确不太够,雷达最后提供给操作间的图像要合成吗?有没有建议的处理帧率呢?
双目不是为了提高视场角的吧。雷达给的图像随意你处理。处理帧率问题参考开源帖
双目不是为了提高视场角的吧。雷达给的图像随意你处理。处理帧率问题参考开源帖
38. 用大恒相机方案,相机固定不加云台转动的话视野大概有多大呢?
参考开源内容
参考开源内容
39. 怎么跟新操作手界面的小地图,板子的运算速度够吗?
小地图?客户端的?估计你更新不了吧。
小地图?客户端的?估计你更新不了吧。
40. 请问目前官方雷达站反导方案为什么优先采用双目相机?如果用真正的雷达呢?
感觉双目能做就尝试双目,真正雷达暂时还没考虑到
感觉双目能做就尝试双目,真正雷达暂时还没考虑到
41. 圆桌帖子原话说:单目相机悬挂于己方雷达站上方3米左右的高度处,朝向己方基地和哨兵附近,可以利用该相机获取基地和哨兵附近敌我双方的机器人的颜色,ID,后期将接入裁判系统数据中的血量信息,一方面,输入到操作间,为操作手提供决策辅助,另一方面,也可以为己方哨兵提供策略。
那是否可以理解成血量信息就算不识别出机器人也能把血量信息给操作间传过去?
不好意思这里写错了,是单目相机放在我方基地上面3m的位置。血量信息是下发的,跟你的识别不识别没关系,你可以自己画在画面上。
那是否可以理解成血量信息就算不识别出机器人也能把血量信息给操作间传过去?
不好意思这里写错了,是单目相机放在我方基地上面3m的位置。血量信息是下发的,跟你的识别不识别没关系,你可以自己画在画面上。
42. 我们预算不太够用两个工业摄像头做双目视觉,帧率保证不了,帧差法也要求摄像头不动所以不能用普通机器人的云台视觉,请问有什么可行的替代方法吗
摄像头放在雷达站上就可以静止了,为什么非要动呢?
摄像头放在雷达站上就可以静止了,为什么非要动呢?
关联专栏
RoboMaster 课程沙龙
文章标签
请问这篇文章对你有用吗?
【RM2020 圆桌】第五期 新兵种讨论之雷达站