第四章 控制策略及算法
4.1. 图像处理与路径识别别算法
图像处理与路径是别是整个算法的核心和重点,能否在短时间内将前方距离较远的黑线准确识别出来,对于高速度行驶状态下的控制决策给出是至关重要的。摄像头在这方面较红外有着很大的优势。
图像识别与处理步骤[1]:
1. 图像的采集:
赛道信息有普通的COMS摄像头采集回来,经过1881的视频信号分离和单片机自身的AD转换,将赛道的图像信息转化为内存当中的一个数组,考虑到图像的分辨率,AD转化速度和算法处理速度等等多方面因素,我们将这个数组定义为43 * 23.
2. 图像平滑(去噪):
用信号处理的理论来解释,我们的做法实现的是一种简单的低通滤波器(low pass filter)。在灰度连续变化的图象中,如果出现了与相邻像素的灰度相差很大的点,比如说一片暗区中突然出现了一个早点,这种情况被认为是一种噪声。灰度突变在频域中代表了一种高频分量,低通滤波器的作用就是滤掉高频分量,从而达到减少图象噪声的目的。
为了方便的叙述上面所说的“将原图中的每一点的灰度和它周围八个点的灰度相加,然后除以9,作为新图中对应点的灰度”这一操作,我们用如下的表示方法:
|
|
|
图 4 1模板表示方法 |
同时,我们根据赛道的具体信息进行虑噪:图像中黑线必然是连续的,上一行中黑线位置和本行黑线位置相差太远就认为本行信息是错误的,将其保持为上一行的信息。事实证明这种算法可以比较好的适应赛道的具体情况并产生良好的虑噪效果。
3. 畸变校正:
由于摄像头看赛道是有一定角度的,实际上是把赛道上一个梯形映射为一个矩形存储到单片机中了,畸变校正的目的就是将原来的梯形还原出来。畸变校正实际上是一种坐标系的转换。考虑到图形从上到下基本是线性的畸变,所以只要每行的点的横坐标乘以不同的系数就可以达到畸变校正的目的。如我们的设想头看到梯形的上底边80cm,下底边35cm只要将最下面的点的横坐标 乘以16,最上面点的横坐标乘以7,并由线性算出中间点的横坐标乘的系数即可将图像中的点较好的还原到原来的位置。当然,算法中没有考虑纵坐标的畸变,是有一定误差的,但是这种误差是控制算法可以接受的。
4. 图像边缘提取:
识别一个对象是从其边缘开始的,一幅图像不同部分的边缘是模式识别最重要的特征。在边沿检测中,常用的一种模板是Sobel 算子。Sobel边缘算子是一种一阶差分算子,它可以有效地消除道路图像中的大部分无用信息离散Sobel算法的定义如下:




