概览

上篇文章讲到了可以用小孔成像原理得到图像中某点相对于摄像头的转角,可以用这个来对所需要转角的测量。

但是这个方法有很大的局限性,它只能得到 相对于摄像头中心的转角 。而在实际应用中摄像头肯定不会在云台的轴上,每次以相对摄像头中心的转角来指挥云台运动就会有误差。

如果摄像头是放在枪管上的,那其实这点误差没有大碍。

因为一般会用闭环控制算法来控制云台跟踪目标,这样如果目标静止不动则稳态时摄像头中心点正对目标,枪管则稍偏下,可以根据实际情况调整摄像头所瞄准的中心位置使枪管对准目标。

阅读全文 »

概览

在识别到目标后,有一个很重要的问题:我们的最终目的是瞄准、跟踪、打击,识别到目标后,
怎样利用得到的目标在图像中的像素坐标来确定在真实世界中目标的位置呢?

更清楚点说就是我识别得到的是图像中点的坐标,而我要输出告诉下位机的是它应该旋转或者移动到的目的地

直接使用像素坐标的缺陷

在RoboMaster视觉辅助瞄准中我们需要让枪管一直瞄准装甲板。由于摄像头是装在枪管上的,一种显而易见的方法是直接利用目标所在像素的坐标与图像中心坐标对比,然后利用一套控制算法移动摄像头使目标在摄像头的中心区域东北林业大学ARES战队的开源代码是这种方式 GitHub: https://github.com/moxiaochong/NEFU-ARES-Vison-Robomaster2018 )。

阅读全文 »

概览

装甲板识别是RoboMaster视觉识别中比较成熟的了,到现在有很多战队开源了他们的算法。

基本上的思路都是一样的:利用装甲板灯条发光的特性将摄像头曝光值调低屏蔽环境光干扰,二值化处理图像得到只含灯条的二值图,根据装甲板灯条的几何特征来设置约束筛选灯条灯条匹配筛选装甲板

每年都有很多战队将他们的算法开源,善于利用他人的成果可以极大地减少自己工作量。

我17年参加比赛的时候基本上是闭门造车,一开始不知道官方已经在16年开源了一套非常好的代码。

阅读全文 »

概览

RoboMaster 视觉识别是一个比较大的项目了,综合性太强。这里从程序框架的角度来粗略讲一下需要怎么做。

比较好的框架有官方开源的视觉程序、东南大学开源的视觉程序,其中东南大学开源的程序可以认为是官方开源程序的加强版。

他们的程序层次分明清晰易读非常具有扩展性,在其基础上可以很好地修改和扩展功能。

多线程

阅读全文 »

概览

这里所说的妙算是大疆的第一代妙算,核心处理器为 Tegra K1 ,很轻颜值很高,现在已经停产了。在实际应用中可以明显的感觉到妙算的性能不够。妙算主要是给 M100 设计的,对 M100 的 X3 摄像头做了优化,即可以通过 GPU 读取 X3 摄像头的数据。但对于比赛来说基本没用,而且我也从来没有成功用它读取过 X3 摄像头数据 (T_T) 。妙算的 GPU 只有在进行深度学习类的任务时才有用武之地,而在识别装甲板之类的任务时基本上是摆设,尽管有 zero copy 的特性,但是很不好用。

在这里吐槽了半天妙算,可能你会说:既然妙算这么垃圾,为啥还要用它?因为穷啊,当初买妙算的时候也是割了肉买的,还买了5个……

妙算资料链接汇总

阅读全文 »

摄像头应该是机器视觉中最重要的部分了,选择一款成像质量好稳定可靠的摄像头可以极大地减少识别算法设计的难度。

主流的摄像头分为CMOS摄像头和CCD摄像头。一般而言CCD摄像头体积大造价高精度高,而CMOS摄像头由于集成度高造价远低于CCD摄像头,同时CMOS摄像头的体积功耗等参数也相应地优于CCD摄像头。

本文主要总结CMOS摄像头的选型(因为没玩过CCD摄像头)。

卷帘曝光与全局曝光

通常我们在网上买到的摄像头都是卷帘曝光的摄像头,在日常使用时很难看出这两种摄像头的区别,但是在对速度要求高的领域这两种曝光方式的优劣就很明显了,尤其是对于廉价的摄像头卷帘曝光的果冻效应更加明显。

阅读全文 »
0%