楼主

[视觉算法] 【求助帖】机器人装甲块的视觉识别是如何实现的?「上」

[复制链接]
英雄永不言弃
2019-4-22 11:42:58 只看该作者

马上注册,玩转Robomaster!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本文作者:
东北林业大学Ares战队视觉组前队员 刘祖基
我只是进行分享与转载,感谢他

跳转到指定楼层
来自 19#

[视觉算法] 【求助帖】机器人装甲块的视觉识别是如何实现的?「上」

[复制链接]
步兵快拆小分队
2019-4-22 14:28:54 只看该作者
实际上刘同学这篇之前已经分享过  https://bbs.robomaster.com/thread-7770-1-1.html
推荐

[视觉算法] 【求助帖】机器人装甲块的视觉识别是如何实现的?「上」

[复制链接]
英雄永不言弃
 楼主| 2019-4-22 11:44:06 只看该作者
要注意的是,识别到单个固定装甲是很容易的,要在复杂的情况下锁定一个装甲就需要更多的逻辑以及策略,要考虑很多实战时候会出现得问题,比如两个装甲同时出现要击打哪一块,大装甲和小装甲同时出现要击打哪一块,当敌人扭腰得时候要怎么击打等。这些都是要考虑的问题。
推荐

[视觉算法] 【求助帖】机器人装甲块的视觉识别是如何实现的?「上」

[复制链接]
英雄永不言弃
 楼主| 2019-4-22 11:43:49 只看该作者
3. 灯柱的识别和装甲拟合
在得到一帧图像之后我们要对图像中的灯柱进行识别和提取。
首先是区分颜色。这里采用的是HSV空间的颜色识别,通过设置不同的H,S和V的值可以识别不同的颜色,具体的参数和数值请自行百度查询,值得一提的是这里的V是代表亮度,这个值的取值大小对应相应颜色的亮度,可以简单的理解为发光色和不发光色,比如蓝色的灯就是发光色,蓝色的布就是不发光色。这个也是识别发光灯柱的一个依据,但是取值仍然是一个问题,最好还是能够自适应,如果不行,就只能人工设定,找一个鲁棒性最好的值。这里的H值表示的是色度,这个取值区间可以稍微的比百度的给定区间大一些,这是由于降低曝光对物体本生颜色有影响,需要扩大阈值区间才能更完整的识别到对应的颜色。通过HSV后会得到一个二值图像,白色部分是你要识别的颜色(这里以蓝色举例),黑色部分为其他颜色被当成背景滤除。

推荐

[视觉算法] 【求助帖】机器人装甲块的视觉识别是如何实现的?「上」

[复制链接]
英雄永不言弃
 楼主| 2019-4-22 11:43:59 只看该作者
接下来就是拟合轮廓。将识别到的蓝色部分也就是二值图像的白色部分用opencv 的内置找轮廓函数将蓝色部分的轮廓提取出来,这里将较小的轮廓去除(一般较小的轮廓为噪点,不用处理),然后再用最小矩形或者最小椭圆(使用时要注意这两者的区别)将蓝色轮廓部分包围起来,这样你就能够得到包围矩形的旋转角和长度以及宽度(这里要求对最小包围矩形和最小包围椭圆深入理解),通过长宽之间的比值和差值可以判断该蓝色物体受不是灯柱,因为灯柱是长条形,有明显的长宽比和长宽差值以及一些其他的形状信息,然后就是将认为是灯柱的部分进行两两对比,通过他们之间的相对角度和长宽比以及其他性质来判断这两个灯柱是不是同一个装甲的两体灯柱,找到这样的两条灯柱就用他们的信息拟合出装甲,完成识别的任务。这其中还运用到很多形态学的操作,程序里都有体现,这里不再细说。
21#

[视觉算法] 【求助帖】机器人装甲块的视觉识别是如何实现的?「上」

[复制链接]
梯队队员DTEzh
2019-5-17 18:33:14 只看该作者
厉害了。我围观围观微观下!!
20#

[视觉算法] 【求助帖】机器人装甲块的视觉识别是如何实现的?「上」

[复制链接]
正式队员MonsterMechanil
2019-4-23 14:50:51 只看该作者
这是什么操作????
18#

[视觉算法] 【求助帖】机器人装甲块的视觉识别是如何实现的?「上」

[复制链接]
英雄永不言弃
 楼主| 2019-4-22 13:59:26 只看该作者
whl970831 发表于 2019-4-22 13:49
.....,大哥,这种水贴强啊

分享干货
17#

[视觉算法] 【求助帖】机器人装甲块的视觉识别是如何实现的?「上」

[复制链接]
工程whl970831
2019-4-22 13:49:26 只看该作者
.....,大哥,这种水贴强啊
16#

[视觉算法] 【求助帖】机器人装甲块的视觉识别是如何实现的?「上」

[复制链接]
英雄永不言弃
 楼主| 2019-4-22 11:47:56 只看该作者
技术干货|机器人装甲块的视觉识别是如何实现的?「上」 - RoboMaster的文章 - 知乎
https://zhuanlan.zhihu.com/p/55444151
15#

[视觉算法] 【求助帖】机器人装甲块的视觉识别是如何实现的?「上」

[复制链接]
英雄永不言弃
 楼主| 2019-4-22 11:47:41 只看该作者
这里最好是能够找到一种新的控制方式取代原来的方式。如果还是采用原来的方式那这一块主要就是参数的调整方面,找到一个合适的PD参数同时要注意限制输出量,考虑目标出现在图像边缘的时候偏差量很大,导致猛的甩头控制超调的情况。
14#

[视觉算法] 【求助帖】机器人装甲块的视觉识别是如何实现的?「上」

[复制链接]
英雄永不言弃
 楼主| 2019-4-22 11:47:21 只看该作者
说到控制之前的控制方式有很大的系统延时,根据我的了解,以前的控制系统采用了三个环来控制,这样很大程度上降低了系统的响应速度。哨兵采用的控制方式改为两个环控制之后响应速度有明显的提高,但是用在步兵上时虽然响应速度提高了,但是很容易出现震荡,不稳定。这里希望能够找到一个更高效的控制方式,比如用角度控制,也许还会达到更好的效果。最后要给枪口加上一个弹道补偿,用得计算出的距离和当前弹速来计算时间,算出这个时间弹道的下落高度,适当提高枪口。


13#

[视觉算法] 【求助帖】机器人装甲块的视觉识别是如何实现的?「上」

[复制链接]
英雄永不言弃
 楼主| 2019-4-22 11:47:07 只看该作者
2. 控制和击打
知道距离之后接下来就是控制和击打。首先要做的就是固定好摄像头的位置,这里的要求就是当装甲出现在摄像头中心的时候,激光点也要正好打在装甲板的正中心,激光点要与弹道协调好,即激光点和子弹击打点重合。在图像中用装甲中心点的像数值与图像中心点的像素值的差值作为控制量,传入到PD控制模块。这里的PD是指PID控制只使用P和D项。采用PD控制能够使系统有更高的响应速度。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

触屏版 | 电脑版

Copyright © 2024 RoboMasters 版权所有 备案号 粤ICP备2022092332号

快速回复 返回顶部 返回列表