视频采集模块由摄像头、1881视频信号分离芯片以及 S12的 AD模块构成。视频信号是 AD采集的基础,下面先简要介绍视频信号的特征,然后再逐步展开。
5.1.1摄像头工作原理
摄像头分黑白和彩色两种,根据赛道特点可知,为达到寻线目的,只需提取画面的灰度信息,而不必提取其色彩信息,所以本设计中采用的是黑白摄像头。
摄像头主要由镜头、图像传感芯片和外围电路构成。图像传感芯片是其最重要的部分,但该芯片要配以合适的外围电路才能工作。将芯片和外围电路制作在一块电路板上,称为“单板”。若给单板配上镜头、外壳、引线和接头,就构成了通常所见的摄像头,如聊天用的摄像头;若只给单板配上镜头,这就是“单板摄像头”。单板摄像头日常生活中不多见,生产单板的公司通常将它们卖给其它公司,其它公司再按自己的要求包装这些单板。
单板通常有三个端子:电源端、地端和视频信号端(有的还多出一个端子,那是音频信号端)。电源接的电压要视具体的单板而定,目前一般有两种规格,6-9V或9-12V。视频信号的电压一般位于 0.5V-2V之间。
摄像头的工作原理是:按一定的分辨率,以隔行扫描的方式采集图像上的点,当扫描到某点时,就通过图像传感芯片将该点处图像的灰度转换成与灰度一一对应的电压值,然后将此电压值通过视频信号端输出。具体而言(参见图5-1),摄像头连续地扫描图像上的一行,则输出就是一段连续的电压信号,该电压信号的高低起伏反映了该行图像的灰度变化。当扫描完一行,视频信号端就输出一个低于最低视频信号电压的电平(如0.3V),并保持一段时间。这样相当于,紧接着每行图像信号之后会有一个电压“凹槽”,此“凹槽”叫做行同步脉冲,它是扫描换行的标志。然后,跳过一行后(因为摄像头是隔行扫描的),开始扫描新的一行,如此下去,直到扫描完该场的视频信号,接着会出现一段场消隐区。该区中有若干个复合消隐脉冲,其中有个远宽于(即持续时间远长于)其它的消隐脉冲,称为场同步脉冲,它是扫描换场的标志。场同步脉冲标志着新的一场的到来,不过,场消隐区恰好跨在上一场的结尾和下一场的开始部分,得等场消隐区过去,下一场的视频信号才真正到来。摄像头每秒扫描 25幅图像,每幅又分奇、偶两场,先奇场后偶场,故每秒扫描 50场图像。奇场时只扫描图像中的奇数行,偶场时则只扫描偶数行。

图5-1 摄像头视频信号
摄像头有两个重要的指标:分辨率和有效像素。分辨率实际上就是每场行同步脉冲数,这是因为行同步脉冲数越多,则对每场图像扫描的行数也越多。事实上,分辨率反映的是摄像头的纵向分辨能力。有效像素常写成两数相乘的形式,如“320x240”,其中前一个数值表示单行视频信号的精细程度,即行分辨能力;后一个数值为分辨率,因而有效像素=行分辨能力×分辨率。

5.1.2摄像头选择
因为 S12单片机的 AD转换时间在不超频的情况下最短为7us,所以如果选用一个分辨率为 320线的摄像头,则单行视频信号持续的时间约为20ms/320=62.5us,AD对单行视频信号采样的点数将不超过[62.5/7]+1=9个。
若使用分辨率为 640线的摄像头,则单行视频信号持续的时间约为20ms/640=31us,AD对单行视频信号采样的点数将不超过[31/7]+1=5个。这就是说,分辨率越高,单行视频信号持续的时间就越短,AD对单行视频信号所能采样的点数就越少。
如前所述,摄像头的分辨率越高,尽管可提高纵向分辨能力,却会减少单片机 AD采样单行信号的点数,削弱了横向分辨能力。现在市场上摄像头的分辨率通常都在 300线以上,由此推得单行视频信号的持续时间至多为20ms/300=66us左右,AD采样每行视频信号的点数至多为[66/7]+1=10个(不超频情况下),这对赛车定位来说是不够的。所以,在选择摄像头时,应当尽量选择分辨率低的摄像头,这样做会降低摄像头的纵向分辨能力(但降低后仍然远远够用),却可以增加单片机采样单行视频信号的点数,提高横向分辨能力。
在本次设计过程中,在市场上所能找到的分辨率最低的摄像头是采用1/3 Omni Vision CMOS为传感芯片的摄像头,其分辨率为 320线。另外,为了使得视野大小合适,选用了 3.6mm的镜头。以下章节中的视频采集工作就是基于此种摄像头的。
5.1.3摄像头安装
摄像头安装方式如图 5-2所示:

图5-2 摄像头安装示意图
摄像头的安装位置应合适选取。安装位置太低,会导致视域不够广阔,影响寻线的有效范围;安装位置太高,导引线会变得过窄而无法被检测到,而且赛车系统会因重心抬高而稳定性变差。
安装位置合适的一个标准是:在此位置的拍摄范围能满足控制的需要。控制的策略简单,则所需的拍摄范围就可以小一些;反之策略复杂,需获得的赛道信息较多,则拍摄范围就应大一些。作为本设计的赛车系统,控制策略涉及到赛车入弯时能区分S弯还是普通的单向弯。如图 5-3所示(摘自韩国比赛用赛道),对于S弯和单向弯,两者前半部分均为一段相同的 30度的弧(Arc),只不过单向弯的后半部分仍沿原方向偏转,而S弯则沿相反方向偏转。为区别S弯和单向弯,拍摄范围至少要能包含Arc,因此拍摄范围的前后距离至少为50cm,左右距离至少为 2 X 13.4cm(因为弯有可能向左,也有可能向右)=26.8cm。按图 5-3中的安装参数安装,拍摄范围即可满足要求。

图 5-3 S弯-单向弯
5.1.4信号分离电路
要能有效地对视频信号进行采样,首先要处理好的问题是如何提取出摄像头信号中的行同步脉冲、消隐脉冲和场同步脉冲。这里有两种可行的方法。第一,直接通过单片机 AD进行提取。因为行同步脉冲、消隐脉冲或场同步脉冲信号的电平低于这些脉冲以外摄像头信号的电平,所以据此可设定一个信号电平阈值来判断 AD采样到的信号是否为上述三类脉冲。第二,就是给单片机配以合适的外围芯片,此芯片要能够提取出摄像头信号的行同步脉冲、消隐脉冲和场同步脉冲以供单片机作控制之用。
考虑到单片机的速度有限,而一些脉冲的间隔时间又较短,为了减轻其处理负担,采用了第二种方法进行信号提取。LM1881视频同步信号分离芯片(简称1881)可从摄像头信号中提取信号的时序信息,如行同步脉冲、场同步脉冲和奇、偶场信息等,并将它们转换成 TTL电平直接输给单片机的 I/O口作控制信号之用。1881的端口接线方式如图 5-4所示。

图 5-4 LM1881
其中,引脚 2为视频信号输入端,引脚 1为行同步信号输出端(如图 5-5中的b)。引脚 3为场同步信号输出端,当摄像头信号的场同步脉冲到来时,该端将变为低电平,一般维持230us,然后重新变回高电平(如图 5-5中的c)。引脚 7为奇-偶场同步信号输出端,当摄像头信号处于奇场时,该端为高电平,当处于偶场时,为低电平。事实上,不仅可以用场同步信号作为换场的标志,也可以用奇-偶场间的交替作为换场的标志。

图 5-5 LM1881信号时序图
由 1881及其外围电路构成的摄像头采样电路如图 5-6所示。摄像头视频信号端接1881的视频信号输入端,同时也接入S12的一路AD转换端口(选用AD0)。1881的行同步信号端(引脚1)接入外部中断引脚(IRQ),同时将 LM1881的场同步信号和奇-偶场同步信号输入到 ECT模块中(选用PT1,PT2),这样,既可以采用查询方式获取奇偶场信号跳变,又可以采用脉冲捕捉方式获取电平变化。通过这样的接线,为软件开发提供了多种选择的机会,使程序更加灵活。

图5-6 摄像头采样电路图
5.1.5 摄像头初始化
由于摄像头行同步信号接到了 S12单片机的外部中断 IRQ引脚,所以当每行视频信号到来时,会产生一个中断。此时如果需要采集该行,就开始进行 AD转换。摄像头的初始化包括初始化中断和 AD模块,具体过程为:
DDRS_DDRS2=0; //奇偶场信号输入
INTCR_IRQE=1; //外部IRQ使能
INTCR_IRQEN=1; //IRQ选择为边沿触发
ATD0CTL2=0xc0; //AD上电, 快速清零, 无等待, 关闭外部触发
ATD0CTL3=0x08; //每通道转换一次, 无 FIFO
ATD0CTL4=0x81; //8位精度,2个时钟周期, ATD时钟=8MHz
ATD0CTL5=0xa0; //右对齐, 无符号,单通道,通道0
ATD0DIEN=0x00; //关闭数字输入
5.2图像处理
5.2.1目标指引线的特征位置
目标指引线是有宽度的(25mm),只要能探测的目标指引线,指引线的宽度信息对智能车定位系统并无额外的帮助。为达到寻线目的,实际上只要提取目标指引线的某些特征点,要求这些特征点合在一起能反映出指引线的形状。称这些特征点的矩阵坐标为特征位置,只要知道目标指引线的特征位置,我们就可以进一步推知目标指引线的形状和位置。提取目标指引线的矩阵坐标,就是指取一些能代表它的特征点,然后求取这些特征点的矩阵坐标。
目标指引线有两类比较重要的特征:中间点和边缘点(如二维数组矩阵中颜色信息为黑色的像素点)。我们可以取每列的中间点、或边缘点作为该列的特征点。二维数组矩阵共 17列,则共可取出 17个特征点,每个特征点的横坐标值就是其所在列的列值,而纵坐标值(行值)就是我们将通过算法求出的。若取中间点为特征点,具体做法是,我们采用二值化的方式逐列检测图像数据(详细内容见“二值化算法节),判断出每列中颜色信息为黑色的像素点,取每列中这些像素点纵坐标值大小排于最中间的那点(若有两个,则取纵坐标小的那个)为该列的特征点,记录下该特征点的纵坐标值。若取边缘点为特征点,我们逐列检测图像数据以找出每列的边缘点(上边缘或下边缘),记录下该边缘点的纵坐标值(详细内容见“边缘检测方法一”和“跟踪边缘检测方法”两节)。

图5-7 二维数组距阵
5.2.2二值化算法
算法思路是:设定一阈值(例如42),对于二位数组矩阵中每一列,从上至下比较各像素值和阈值的大小。若像素值大于等于阈值,则判定该像素对应的是白色赛道;若小于阈值,则判定对应的是目标指引线。记下第一次出现像素值小于阈值时的像素点纵坐标值(简称首次纵坐标值)和最后一次出现像素值小于阈值时的像素点纵坐标值(简称末次纵坐标值),算出两纵坐标值的平均值(称为中间值),以此平均值作为该列(横坐标)上目标指引线的纵坐标(该列中行值为此纵坐标值的点即为该列的特征点)。
程序流程图如图 5-8所示。
实测该算法的运算时间约为2580us。当拍摄图像中只有目标指引线一条黑 线时,该算法能准确提取出目标指引线(如图)。该算法的的抗干扰性不强,当出现光强有大幅度的变化时,或当拍摄图像中出现其他黑色图迹的干扰时,该算法提取的位置就会有可能与目标指引线的实际位置偏离较大。

5.2.3边缘检测算法
我们检测目标指引线的上边缘。算法思路是:设定一阈值(例如15),对于二位数组矩阵中每一列,从上至下求得相邻两像素值间的差值(上减下)。若差值大于等于阈值,则判定其下的像素点对应的是黑色指引线的上边缘,以此像点作为该列的特征点,记录下此像素点的纵坐标值(即为相应的上边缘纵坐标),
作为该列上目标指引线的纵坐标。有可能始终不会出现差值大于等于阈值的情况,则让该列上目标指引线纵坐标值保持不变(即同于分析上一场图像数据时求得的纵坐标)。
程序流程图参见图。
实测该算法的运算时间平均约为1500us。当拍摄图像中只有目标指引线一条黑线时,该算法能准确提取出目标指引线(如图5-11)。该算法抗环境光强变化干扰的能力较强。该算法能削弱或消除垂直交叉黑色指引线的干扰(如图5-12)。

因为该算法在二维数组矩阵中是由上至下来寻找目标指引线的上边缘,当黑色图迹干扰出现在目标指引线上方

(图中的黑色图迹干扰A)时,该算法无法排除其干扰,而会误将干扰图迹的上边缘当成是目标指引线的上边缘;当出现在下面

(图中的黑色图迹干扰B)时,可以排除干扰。

图 5-11 边缘检测方法一效果

图 5-12 赛道模版
5.2.4跟踪边缘检测算法
跟踪边缘检测算法跟上一节介绍的边缘方法一样,也是寻找出目标指引线的上边缘,仍然用上边缘的位置代表目标指引线的位置。但跟踪边缘检测从二维数组矩阵每列中寻找上边缘的方法与上一节中介绍的不同。
因为目标指引线是连续的,所以相邻两列的上边缘点比较接近。跟踪边缘检测正是利用了这一特性,其主要思路是:当已寻找出某列的上边缘,若在该位置附近寻找下一列的上边缘,则只用花较少的步骤就可以找到(如图中所示,对比图中的搜寻方式)。
这种方法的特点就是始终跟踪在每列上边缘的附近,去寻找下一列的上边缘,所以就称这种方法为“跟踪”边缘检测算法。

图 5-13 边缘检测方法一搜寻上边缘的方式

图 5-14 跟踪边缘检测算法搜寻上边缘的方式
该算法的程序流程图如图所示。
实测该算法的运算时间平均为450us。该算法能准确提取出目标指引线,而且具有较强的抗干扰性。该算法同边缘检测方法一样具有较强的抗光强变化的能力,而且该算法能更有效地削弱甚至消除垂直交叉黑色指引线的干扰,该算法还能排除画面内干扰图迹的影响,始终跟踪住目标指引线(如图)。

图对应的实际拍摄画面见图,从图可看出,该算法已经排除了垂直交叉指引线、黑色图迹A、B的干扰,正确提取出目标指引线。

图 5-16 跟踪边缘检测效果
三种目标指引线提取算法的特性总结如表 5-1所示。
表 5-1 三种目标指引线提取算法的特性比较

* 普通情况即指,环境光强为普通室内日光灯照射下的光强,而且拍摄画面内只有目标指引线一条黑色指引线。
5.2.5用摄像头识别坡道
由于摄像头采集同样符合近大远小的原则,所以想通过判断坡道引起的距离变化来识别出不同角度。对不同距离的黑线的不同角度进行识别,观察摄像头采集到的黑线宽度变化。如下表所示:
结论:
同一距离不同角度黑线宽度有一定区别,可以在一定程度上判断坡道和直道,只是现阶段采集精度下区别不是特别明显,不太容易准确判别,所以需要提高采样精度。
5.2.6双摄像头的研究
由于今年新的电路板有 2个视频输入口,所以尝试采用双摄像头来丰富视频采集的多样性。电路板上的 J2,J3是视频输入端口,默认情况下是选择J2。J1可作为信号输出端,在电视机上实时观察摄像头的情况。
使用 PM0进行摄像头的选择,选择过程如下。
DDRM_DDRM0=1; // PM0口方向
PTM_PTM0 // 视频信号选择
PTM_PTM0=1; // J3口信号
PTM_PTM0=0; // J2口信号
摄像头切换需要10ms,纯1隔1切换每秒可以切换 100次;1隔1切换等待一场完整信号(采到 1个场信号到下一个场信号来临)可以采集 33场每秒 。
1s/100=10ms 1s/(10+20)=33ms
等于 30ms一个周期时,可以稳定交替采集 2个信号。
理论上计算也是如此,从一个信号切换到另一信号时,处于一场信号中的位置是不一定的,如果刚巧一场开始,则等待20ms,刚巧一场结束,则等待0ms,按统计平均正好是 10ms.
5.2.7摄像头镜头畸变
通过去年和今年两种安装高度的对比,可以看出对图像采集的影响。2车摄像头的安装高度分别是27cm,37cm;使最近可视距离均为 13cm处,则最远处分别可达 75cm和67cm。
摄像头在视频采集时,边缘会产生一定的畸变,从图上可以看出,在图像的最上方和最下方直线会有一定的弯曲,在 35cm处图像畸变程度最小。通过不同高度的对比,可以看出安装高度对畸变的影响远小于距离对畸变的影响,2种安装高度在相同距离的畸变基本一致,都是 2头弯,中间直。所以在识别起始线和交叉线时尽量使用中间采集,当然可以适当移近(因为近处的线较宽)。摄像头的高度对采集区域的宽度有一定影响,安装高度越高采集区域越宽,适当调高可以增大视野范围。

图 5-17
对于沿黑线方向,从图 5-17可以看出,是近处可视范围窄,远处可视范围宽(上图黑线和旁边的阴影实际上和黑线是平行的),所以直线不在中间位置时,分析计算时应当也要注意区别。
5.2.8超频试验
由于今年核心电路板和驱动电路板分离,加上板子散热情况较好,所以尝试对其进行超频试验。结果如下:
结论:44MHz可以稳定采集,46MHz有图像,但有一定错位,48MHz没有信号.
此外,AD不能单独进行超频,ATDclock=BusClock×(PRS + 1)×0.5,但改动ATDCTL4没有反应,即PRS置0和1采集到的点数是一样的。


