赞
踩
注:参加智能车比赛所使用的外设无非就是两家,某飞和某丘。由于我们的实验室一直选择某飞的产品多一些,所以在后续的讲解使用的外设大多以某飞的为主。
从18届智能车比赛开始,使用的摄像头就不允许携带MCU,使用祖传摄像头的同学请注意查阅资料,将MCU拆下。使用其他通讯方式进行摄像头基本参数的配置(在使用层面没有区别,商家提供的库会自动识别,自动选择初始化方式)。另外使用沁恒CH32系列作为主控的同学,在拆下MCU后,还需要再对摄像头进行一个硬件修改,在某两个引脚焊上一个零欧电阻,请各位自行咨询客服后查阅资料。
本人使用的是某飞的130度无畸变摄像头,其他摄像头只是视野范围的变化,基本都差不太多,以下讲解进针对我所使用的摄像头,
- #define MT9V03X_W (188) // 图像宽度 范围 [1-752]
- #define MT9V03X_H (120) // 图像高度 范围 [1-480]
- #define MT9V03X_IMAGE_SIZE (MT9V03X_W * MT9V03X_H)// 整体图像大小不能超过 65535
修改图像大小是可以明显感受到图像变化,摄像头每一帧采集的图像大小应该是固定的,当你修改图像的长和宽宏定义时,他会在图像中截取你所设置的大小(当然是有限制的),理论上你设置的图像长和宽越大,相对于相同摄像头,相同镜头,会直接让你看到更多东西。
图像设置的大,有好处,同样也会带来问题。
一般的例程都是默认188*120的图像,这个图像视野其实比较大,我也阅读过一些国赛代码,他们也没有将图像开的很大,基本都在180*100左右。
除此之外,我在调试时也发现图像开的太大的一个问题。图像会出现“暗角”。
当图像开的过大,现场光线不均匀时,在屏幕的四个角处,会图像变暗。
这会严重影响我的元素判断。
调曝光会使情况好一点,但是为了增强角落的一点光,导致整体亮度变大并不值得。所以我没有选择开比较大的图像,我选择的180*70。
图像大小,还需要和摄像头高度,角度,位置等综合选择出一个最适合的参数。
具体选择方式,下面有讲解。
如果现场光线均匀,稳定,那么选择自动曝光就好。
调整曝光时间的事情是十七届国赛时候比较火热。据说主办方南信工的场地使用的蓝膜是比较浅色的,再加上体育馆的灯光偏暖,造成好多车手打开摄像头屏幕一片白,人都蒙了。
某飞提示,不是阈值的问题,摄像头收到的灰度数据就是有问题,需要调整曝光,来获取清晰的灰度图。有高质量的灰度图,才能有比较好的效果。
曝光时间越长,画面整体就会偏亮一点,曝光时间短,画面会整体偏暗,这个要和现场环境,蓝膜颜色,场地灯光和摄像头的实际图像来综合确定。
如果是上帝之光,那还是老老实实用抹布吧,曝光不是万能的,只能解决整体偏亮/偏暗。
修改曝光可以直接改宏定义,也可以在初始化后使用这个函数:
- mt9v03x_init();
- mt9v03x_set_exposure_time(512);//括号内参数自行根据情况修改
另外:
默认帧率是50帧。
理论上帧率越高越好,但是四轮车控制的是舵机,舵机默认50Hz的频率,那么控制周期就是20ms。摄像头帧率拉的再高,舵机无法及时反应,那么就毫无意义。据技术报告说,频率过高会导致摄像头亮度不均,影响图像处理,所以没必要开太大,50帧默认就好,或者稍微高一点点,不建议超过100帧。
我曾开过100帧,跑起来和50帧没有区别。
由于图像是剪裁过的,摄像头安装位置也不会严格在车辆中间,这样就会导致摄像头看到的图像有可能是歪的,所以需要图像调整,包括左右,上下偏移,摄像头机械左右,上下调整。
调整结果是车模正放在长直道中,看到的图像是正的,屏幕的左边边界和右边边界关于中线对称
左下方黑色数量==右下方黑色数量
左上方黑色数量==右上方黑色数量
算出的赛道中线尽量贴合理论中线
在长直道,车模放正,图像是正的,中线贴着理论中线,三者越正越好。
如果不正,那么就调整图像偏移,摄像头左右角度等,尽可能做到正的,图像越正,后续的控制工作越轻松。
总钻风摄像头显然不会像手机一样,自动对焦。他需要将顶部一颗螺丝拧松,然后用手转动摄像头,看屏幕上的图像,最好是灰度图。等到图像最清晰时将固定螺丝拧紧即可。
注意:当你调整了摄像头的位置,比如俯仰角度,摄像头在车前或者车后,都需要重新调焦,保证摄像头效果最好。
比赛组别不一样,有可能会对摄像头进行限高。15,16,18届有些组别会限制摄像头高度10cm,或者15厘米,如果限高那么就没有办法,按照规则去设置,一般来说摄像头高度设置稍微高一点可以有比较好的视野,我的摄像头大概23厘米。本人有幸曾和某学校的多位国一大佬交流,他们摄像头高度统一的33cm,也许这是他们多次实验得到的结果。
我的摄像头视野是近处15cm,远端大概205cm,具体测试方法如下如所示。
屏幕显示灰度图像,放抹布,或者黑色物体在赛道上,让他们位于屏幕是的最上方,最下方,用卷尺测量距离。
这个距离值我是根据b站up __苏格拉没有底___ 的分享参考的。
(我的代码也有比较多思路参考的这位大佬,大佬给了我不少启发)
我的图像大小是188(列) *70(行),图像最上面是0,最下面也就是最近处是69。
处理图像前首先图像质量要保证,这里的质量标准是图像的视野范围和图像清晰度,视野范围决定后边处理图像的难易程度,如果视野好,斜入三叉都可以当作正入来处理;图像清晰度决定二值化效果。所以优先选择无畸变镜头,无畸变可以通过图像矫正处理,但是图像清晰度不能保证。个人认为目前就智能车店家里卖的130°无畸变镜头二值化效果是最好的,但是130°看到的视野范围很小,如果看的很近就会有很多丢边现象,17届不限高度可以采用架高和镜座后移的方式使看到的最近视野据离车更近,但是如果以后镜头高度限制10cm这个镜头就不推荐了,视野的范围决定处理图像的难易程度,太大太小都会增加图像处理的难度,个人推荐最佳图像标准:图像最下面一行距离车2.5cm到10cm范围都可,最远端距离车2m距离左右最佳,图像宽度标准是直道上左右能看到。25块的140°镜头是最近几年用的最多的镜头,但是和130°无畸变画质一对比发现确实差很多,这里的画质体现在图像清晰度和最终二值化图像的效果,但140的视野范围确实是比130°的好很多,因为我没用过150°及以上的,故不做评价。我使用的是在某宝无意间搜到的140°无畸变镜头,不属于智能车店家,有点略贵(200rm以内)。
by:__苏格拉没有底___
对于智能车而言,能够拿到一套优秀的图像,将会对元素处理有非常大的帮助,具体什么是优秀的图像,个人想法如下。
对于摄像头我也调了很久,摄像头就是得歪着看,图像才会好一点,很离谱,对强迫症来说看起来很难受。
个人不建议出现以下情况
直道情况下图像下半部分丢线严重
直道丢线严重,弯道丢线更加严重,个人认为,这样会非常影响控制。
这里提供一些参考图像。
注:他们在获取到图像后可能进行了逆透视等处理,但获取到的原始图像是非常重要的根据,只有原图像正,处理后的图像才有较高的控制价值。
北京科技大学
武汉大学
大家基本不会让图像底部丢太多线,也基本本着图正,车正的原则。
当摄像头调整完毕,就不要再动它了!!!
当摄像头调整完毕,就不要再动它了!!!
当摄像头调整完毕,就不要再动它了!!!
当摄像头调整完毕,就不要再动它了!!!
当摄像头调整完毕,就不要再动它了!!!
请拿胶枪把摄像头固定座给糊死,不要让他动!!!
请拿胶枪把摄像头固定座给糊死,不要让他动!!!
请拿胶枪把摄像头固定座给糊死,不要让他动!!!
无论是摄像头底座位置,还是摄像头角度,都要定死,绝对不能动了!!
因为后续的图像识别,都是基于一套图像角度。一但摄像头角度变了,图像,控制都需要超级长时间去适配,非常麻烦!!!!
我就是在比赛前两天,想换个新的摄像头,结果摄像头安装的位置和原来有区别,之前的控制,图像参数全都作废了,通宵调了一夜,也只能调到原来的七八成。
环岛参数也作废,被迫降速入环,直接导致了比赛场上入环重新做的处理,严重影响了比赛,所以,当摄像头图像确定的时候,请不要再动摄像头了!!!!
希望能够帮助到一些人。
本人菜鸡一只,各位大佬发现问题欢迎留言指出
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。