展会信息港展会大全

与非网专题: 第二届全国智能车大赛华北赛区获奖论文
来源:互联网   发布日期:2011-10-01 12:50:00   浏览:6036次  

导读:摄像头的信号经过lm1881视频分离芯片分离出行信号和帧信号,行信号可以指示单片机对图像进行AD 采集,帧信号代表一个图像采集完毕。...

10.1 摄像头行数据的处理

摄像头的信号经过lm1881视频分离芯片分离出行信号和帧信号,行信号可以指示单片机对图像进行AD 采集,帧信号代表一个图像采集完毕。这样就可以对摄像头的数据进行采集了。本参赛作品将AD采集的数据存放在一个二维数组data_save1[][]中,数组的行代表图像中的行。由于DG128片内AD采集频率的影响,每一行采集的点数受到了限制,本作品在系统时钟倍频到24Mhz,AD每次采集时间为2.3us的情况下,每一行图像的采集能达到34个点。这虽然远远小于摄像头本身的分辨频率,但在不使用2.8mm广角镜头的前提下,仍能分辨出黑线,因此我们将数组列数设为34。同时,我们每6个摄像头行信号采集一次,一共有312个行信号,则一共可采集312/6=52行,去掉首尾几行,我们选择采集46行,因此数组的行数为46。最终,我们设定的数组大小为:data_save1[46][34]。

行处理当完成对一行数据的采集后,我们就可以对该行的数据进行处理了,即提取黑线的算法。在提取黑线上我们采用边沿提取法。


上图表示的是图像中一行的数据,小圆点表示采集的点。边沿提取法,即通过程序检测到上述图形的上升沿和下降沿,然后通过上升沿和下降沿的位置求出黑线的位置。其算法的大致流程为:通过i控制循环语句不断检测上升沿或下降沿,当第i个点的AD值与第i+2个点的AD值之差大于设定值时,表明出现了下降沿,这时读取i的值。一旦出现了下降沿,就开始不断地判断第i+2个点的AD值与第i个点的AD值之差是否大于设定值,如果大于则表明检测到了上升沿,这时也读取i的值。通过两次i的值,我们便能够求得黑线对应的点是第几个点,进而求出黑线与小车轴线的相对位置。

在光线比较好的情况下,简单的运用上诉的算法即可求得比较准确的相对位置,此时也不需要对阈值进行动态调整。当受到太阳光或其他比较强烈的光线影响是,就需要设置动态阈值。下面就来介绍我们动态阈值的设定。

下图即为光线不理想时图像的一种情况。


光线不好的情况下,采集的图像通常都会出现如上图凸起的情形,这时,黑线提取算法的出错几率会大大增加。未了避免这种情况发生,我们可以根据图像的变化趋势将阈值的附加上一个修正值。如图,左边的阈值加上一个数值,右边的阈值则减去一个数值。修正值的计算可以大致采用如下式子算出:

Regulate_value=2*[(ADi -ADi-1)/2+(ADi -ADi-2 )/3+(ADi -ADi-3 )/6]

10.2 摄像头帧数据的处理

经过黑线提取算法我们得到每一行的黑线的位置,并存在一个一维数组里,通过这个数组我们就可以粗糙地控制小车转向了。但因为摄像头可能会将黑线以外的其他物体误认为是黑线,直接使用这个数组不能满足稳定性的要求,还需要对数组的数据进行进一步的处理,即这里所说的帧数据的处理。

 

 

                        上一章:测速模块                                  下一章 总结

赞助本站

人工智能实验室
AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港