9.1 黑线中心提取
由第八章图象获取模块可知,摄像头获取的视频信号送到S12处理芯片的A/D模块。A/D对行信息进行采集,每行得到40个与图像信息对应的A/D值。如果能找到黑线在每行的位置,整个场图象所有行的黑线信息综合起来就可找到赛车在当前位置赛道的特征了。
每行中得到的40个灰度信息(A/D值)反映了实际赛道上灰度的变化情况,由于比赛赛道是在白色底板上铺设黑色引导线,因此只有黑白两种色度信息,灰度干扰比较小,黑线提取较为容易。
我们结合比赛赛道的这种图像特点提出了相应的黑线提取算法:最值+边沿检测算法。
由于黑色赛道和白色底板之间的色差较大,直接反映在图像数据中就是一个黑、白色阀值。通过实验可以基本上确定该阀值的大小,现场光线的变化影响对阀值大小由一定的影响,但是该阀值基本 35~40 之间,最黑值一般为25,而最白处灰度值一般在48以上。这样我们只要找出该行数据中灰度最小值出现的位置就可基本上确定本行黑线中心,再加以边缘检测校正找出黑线中心的准确位置。
该算法的主要处理过程说明如下:

图9.1 黑线中心寻找示意图
1、首先,找出最小值所在位置,从最左边的第一个数据开始比较其与第二个数据,令较小的为最小值,再比较该最小值与下一个数据,同样令较小者为最小值,如此比较至最后一个数据,找出该行最小值所在位置(如图第四个点)。minPathminPathminPathminPathi
2、接下来由该最小值位置开始,左右搜索,找出与该点连续的且小于阀值35的黑线边界点位置st、mi(图中第三,六个点)。若minimist=,则由计算出黑线中心位置。()stmi+该黑线提取算法具有很好的抗干扰能力,能够很好的识别赛道的黑白信息,其对黑线的提取效果准确可靠。
图9.2、9.3表示的是对整个场信息的黑线提取效果,其中白色曲线代表黑线中心。

图9.2 黑线居中情况 图9.3 转弯处情况
寻找黑线中心程序流程图如下:
9.2 赛道控制信息提取
赛道黑线中心位置反映了当前赛道的重要信息,但这其中还包含了少量的干扰,包含一些全白、甚至全黑的特殊情况,甚至在某些情况下,尤其是转大弯时,容易采集到大量的界外信息。
如果将包含干扰的赛道信息作为控制信息将会影响赛车的控制效果,将会影响赛车运行的稳定性,有时会时赛车严重偏离赛道。因此,我们还需要从中提取可安全用于控制的准确信息——有效黑线中心段。
首先,因为与摄像头投影区对应的实际范围是一等腰梯形,在距摄像头越远的地方,摄像头所得图象的非线性失真越严重(如图所示)。所以在提取控制信息前要先对所得数据进行线性校正。
校正前后的效果如图9.5所示:

图9.5 未校正前视频图像

图9.6 放大线性校正后的视频图像
根据摄像头成像特点,由下列公式可将摄像头所得数据坐标近似转化为实际位置坐标:
所采集的行信息,当行数i>DOT0/2时,
![]()
经非线性处理后,我们就可从中提取有效控制信息了,即有效黑线中心段。
线性化处理流程图:
有效段提取算法:
1、从第0行开始,如果其黑线中心path[0]在有效值范围内(-30~70),将其作为有效段开始,否则放弃;
2、判断下一行黑线中心path[i]在有效值范围内(-30~70),是则有效段长度length+1,否则放弃;
3、有效段开始后,如有一行与前一行发生跳变,则该有效段结束。继续搜索寻找下个有效段;
4、所有行处理完后,将最长的有效段作为最终的控制信息。
其中的有效之范围有利于滤除全白、全黑等特殊信息。
有效段提取流程图:

图9.9 有效区域段提取示意图
对于处理芯片采集的场图像信息,有效区域段的提取从图中0处开始,此时0处行信息path[0]在有效值范围之外,故不能作为有效区起点,同理搜寻至行信息1处,此处发生跳变,在随后的path[i]处于有效值范围内,可作为有效区起点[pathhead,以下各行不发生跳变,至2处该有效区段结束,作为有效区的终点[pathtail。同理找出下一有效区段3~4处,比较两有效区段长度,长者为最终有效区段,即图中1~2处,最终head=1处line_cnt,tail=2处line_cnt。


