系统概述
智能小车系统主要由路径识别、速度采集、转向控制及车速控制等功能模块组成。路径识别功能采用CMOS摄像头,将其模拟量的视频信号进行视频解码后,经过二值化处理并转化为18×90pix的图像数据后送入MCU进行处理;转向控制采用基于模糊控制算法进行调节;而车速控制采用的是经典PID算法,通过对赛道不同形状的判断结果,设定不同的给定速度。该系统以50Hz的频率通过不断地采集实时路况信息和速度,实现对整个系统的闭环控制,如图1所示。
智能小车的图像采集与存储
图像采集模块设计
CMOS摄像头正常供电后,便可输出原始图像的信号波形,它是PAL制式的模拟信号,包含行同步、行消隐、场同步、场消隐等信号如图2所示。但该形式的信号并不能被CPU直接使用,需要加入视频解码芯片如SAA7111,它的功能是将摄像头输出的模拟信号转化为数字信号,同时产生各种同步信号,CPU利用此同步信号将图像的数字信号存储在一个外部FIFO芯片AL422中,这便构成了基本的路径检测模块,如图3所示。
图像数据存储
SAA7111是飞利浦公司一款增强型视频输入处理器芯片,常应用在嵌入式视频应用的高度集成的电路中。工作时,模拟视频图像从SAA7111的4个输入端口中的一个端口输入,经模拟处理后,一路通过缓冲器从模拟输出端输出用于监视,另一路经A/D后产生数字色度信号、亮度信号,分别进行亮度信号处理、色度信号处理。亮度信号处理的结果,一路送到色度信号处理器进行综合处理,产生Y、U、V信号,经格式化后从VPO输出,输出的信号格式有422YUV或CCIR-656(8位)等;另一路进入同步分离器,经数字PLL,产生相应的行、场同步信号HS、VS及像素时钟信号LLC和LLC2等信号,这些信号是实现视频数据采集的依据。SAA7111输出的每帧图像大小可设为720×286,其数据量相对于单片机的处理速度来说是比较大的,较为理想的图像大小是18×45,压缩后的数据量仅为原始图像的0.394%。为了使图像的数据得到有效压缩,可以采用将图像的数字信号存入FIFO中,经过一定的分频处理后便能压缩图像大小,系统所采用的FIFO芯片是AL422B。
为了实现图像数字信号的分频处理,可以分为两种实现方式,其一是软件分频,另一种是硬件分频。对于软件分频来说,系统不需要额外的分频电路,而是单片机利用解码芯片SAA7111输出的控制信号,对读时钟进行分频后再执行实际的读操作,这种方式的缺点是分频工作需要占用单片机资源,影响系统的实时性等性能;对于硬件分频来说,需要加入专门的分频处理电路,在不需要单片机控制的条件下实现图像的压缩,从而在根本上减少了单片机处理的数据量并缩短读取图像的时间。因此该系统采用了硬件分频的方式,具体信号的分频模式如图4所示,CREF代表像素时钟,分频后得到的是AL422B的写时钟WCK,HREF代表行参考信号,分频后得到的信号作为AL422B的写允许信号。
图像去噪与特征提取
图像二值化
图像二值化是数字图像处理技术中的一项基本技术,该系统中由于赛道是由黑色和白色两种颜色组成的,并且背景颜色基本也是白色的,系统的任务是识别出黑色的引跑线位置,由于其图像的干扰并不是很强,因此可以采用二值化的技术作为系统的图像预处理。经过二值化处理将原来白色的像素点用0表示,而黑色像素点用1表示。图像二值化技术的关键在于如何选取阈值通常来说,常用的方法包括有全局阈值法,局部阈值法及动态阈值法。由于赛道现场光线是比较均匀,而且赛道周围的底色基本上都是白色的,所以在该系统设计中采用全局阈值法,可达到算法简单,执行效率高的效果。
二值化阀值选取
在对赛道环境的分析中,我们可以发现黑线部分的亮度是相对比较固定的,其波动的范围非常小,小于20(亮度值最大为255),而白色底板的亮度值变化相对较大一些,但仍能保证其与黑线的亮度值有较大的梯度。因此,可以采用直方图统计法来对其阀值进行自动设定,具体方法如下。
首先存储一幅原始图像的所有数据,然后对整幅图像的第一像素点进行统计,最终把第个亮度值所对应的像素点个数统计出来,结果将出现一个双波峰形图,如图5所示。这将能较直接地比较出亮度值集中的区域,以两个波峰的中心位置所在的中点值作为该赛道的二值化阀值。该算法计算的精度较高,能够找到理想的一个阀值点,虽然它执行的时间较长,但是这只是在赛车未起跑前进行的初始化运算,对赛车起跑后的速度完全没有影响,因此该方案是可以采用的。
图像去噪
在车体运动过程中,图像经过二值化后并不会出现太大的噪声,只是在局部出现了一小部分的椒盐噪声,其典型图像如图6所示。在该系统设计中,图像处理的目的是准确地找到黑线的中心位置。由于图像中噪声的面积非常小,并且一般出现在离黑线较远的地方,处理的方法也比较多,可采用中心坐标递推法。
由于该赛道的黑线细分为每一行的坐标后,相邻两行之间的中心坐标值之差是比较小的,经实验测试得其差一般不会超过5,具有很好的递推性。因此可以利用前一行的中心坐标往下递推来求解,具体步骤如下。
(1)由于摄像头近处的黑线拍摄效果较好,不仅黑线的宽度比较大,而且基本不会出现任何噪声,用其作为递推的基准点是非常好的选择。由于这是整幅图像的基准点,因此对其准确性要求比较高,在计算第一行的中心坐标值时采用黑线连续记数法,即只有连续读取到3个或以上“1”时才算有效的黑线,并记录黑线的块数,否则将其清零,最终再查看该行黑线块数是否为1,若不为1则改用第二行图像数据作判断,如此递增直到找到唯一的黑线为止。
(2)以第一次找到的中心坐标为基准,向上一行搜索分布在其左右两侧各10个点这个区间内的黑线位置,然后同样利用重心法求出在该区间内的黑点中心坐标值,并把它作为这一行的中心坐标基准点。
(3)按照步骤(2)逐步往上一行递推,如果遇到全0的行则停止黑线的搜索。图6所示的图像经过该算法处理后得到的图像如图7所示,可见此方法能够有效地消除图像的噪声。
上一篇:把32位微控制器性能带入工业和汽车应用
下一篇:基于H8Sx/1544的汽车组合仪表设计
推荐阅读最新更新时间:2024-05-02 21:23
- Allegro MicroSystems 在 2024 年德国慕尼黑电子展上推出先进的磁性和电感式位置感测解决方案
- 左手车钥匙,右手活体检测雷达,UWB上车势在必行!
- 狂飙十年,国产CIS挤上牌桌
- 神盾短刀电池+雷神EM-i超级电混,吉利新能源甩出了两张“王炸”
- 浅谈功能安全之故障(fault),错误(error),失效(failure)
- 智能汽车2.0周期,这几大核心产业链迎来重大机会!
- 美日研发新型电池,宁德时代面临挑战?中国新能源电池产业如何应对?
- Rambus推出业界首款HBM 4控制器IP:背后有哪些技术细节?
- 村田推出高精度汽车用6轴惯性传感器
- 福特获得预充电报警专利 有助于节约成本和应对紧急情况