毕业论文
图5.21 切分出的图片
5.2.5投影法进行车牌定位
在所有汽车牌照识别定位算法中,利用投影法进行牌照区域与背景的分割,是一种非常常用的方法,也是一种非常实用的方法,其实在上面的几种定位方法的试验中在完成特征计算后,都才用了投影的方法进行切分。
5.2.5.1车牌照水平方向的定位算法
对如图5.22所示的一幅原始车牌照灰度图像f(i,j)进行分析,发现车牌在原始图像中具有下列特点:
1.车牌牌照的字符和背景的灰度对比较大,对应于车牌区域的水平灰度变化较频繁; 2.车牌一般挂在汽车的防撞器上或附近,靠近整幅图像的下部(拍摄车头),同时在图像的下部一般干扰较少。
图5.22 原始车牌照灰度图像 f(i,j)
根据特点1可以考虑使用在靠近水平方向的一阶差分运算,以突出灰度变化频率频繁的区域。其中一阶差分运算的算式为
(5.6)
式中,i=1,2,3,?,m;m为图像的高度; j=1,2,3,?,n;n为图像的宽度。
再对水平差分图像的灰度值沿水平方向累加后做投影,可得投影图(图5.23)。
水平方向累加后投影的算式为:
(5.7)
21
毕业论文
图5.23 水平差分累加投影图
对比图5.22和图5.23,可以发现图5.22的车牌位置基本对应着图5.23中的从下到上的第一个波峰。根据特点②在算法的设计上采用从图像的下部向上搜寻第一个符合一定约束条件的波峰。但是从图中也可以发现图像的毛刺非常多,不利于算法的精确定位,所以必须对投影值进行平滑处理。
在实现过程中,我们对图像像素的累加投影值采用均值法来进行平滑。其公式为:
(5.8)
平滑后的投影图如图5.24所示:
图5.24 平滑后的水平差分累加图
在平滑后的投影图中,车牌投影值区域一般有以下特点:①一般情况下,车牌区域中出现的投影波峰值为图像下部往上搜索时出项的第一个较大波峰值;②车牌投影区域大致对应于上述波峰值上、下临近的波谷之间包含的投影值区域,且这两个波谷大致对称于波峰,波峰和波谷变化率较大。
基于上述特点在平滑后的投影图中搜寻车牌区域水平方向的大致位置。本文中采用的是找最高峰值所在区域,并判为车牌区域的方法。之所以不采用找第一个较大峰值所在区域作为车牌区域,是因为这个较大的程度不好判断。并且,在实验中经过测试发现,如果采用找第一个大于最高峰峰值的0.75、0.8、0.83、0.85、0.9倍的峰值区域作为车牌区域,那么对于车窗前有一排垂直条和车身上有一行汉字等有强干扰的情况,因为最高峰远远大于其它峰,所以定位到的仍然是该区域,而不会是车牌区域。如果继续把倍数减小,或许在这种强干扰情况下可以定位到车牌区域,但是同时出现了另外的一个问题,就是车牌区域是最高峰值所在区域,同时其余峰值跟最高峰值相差不会太远的时候,就会定位到其他区域去。例如车牌下的保险杠等位置。这样又降低了车牌识别率。因此从测试结果来看,并不比找最高峰值所在区域作为车牌区域效果更好。并且这样处理的程序复杂度更大,额外的花销更多。因此本文最终确定采用找最高峰值所在区域作为车牌区域的方法。
车牌水平区域定位的流程图如下所示:
22
毕业论文
图5.25 流程图
对差分图像水平累加投影值进行平滑后,为了确定车牌的水平位置,我们首先要找到投影值的最大值。然后找到最大值左右第一个波谷,对比两个波谷的值,取值较大的那个波谷作为分割点,另一个也取最大值另一边与该值对应大小的值的第一个点作为分割点。如图5.26所示。两分割点之间的区域就是牌照区域。对灰度图相应位置进行切割,其切割图如图5.27所示。
图5.26 分割点示意图
(A)
(B)
(C)
(D)
图5.27 实验1的水平摄影切割图
如图所示,采用这样的切割方法有时候会只切割到车牌的一小部分,造成其余部分的丢失
所以我们对其进行进一步的改进,扩大车牌的切割区域。上下两个分割点均取最高峰值的波
谷点作为分割点进行分割,其分割图如图5.28所示:
(A)
(B)
(C)
(D)
23
毕业论文
图5.28 实验2的水平摄影切割图
从图中我们可以看到,虽然这样的切割方法比原来的扩大了切割范围,但还是出现只切割到车牌的中间一小部分。因此还需要对分割方法再进行进一步的改进。我们取值较小的那个波谷作为分割点,其值作为参照值,取最高峰值的另一边第一个比该值小的点作为分割点,两分割点间的区域作为车牌区域进行车牌切割。分割后的图像如图5.29所示:
(A)
(B)
(C)
(D)
图5.29 实验3的水平投影切割图
如图所示,车牌水平定位效果较前两种要好很多,可以把车牌水平切割出来。但是有时候也会出现切割没把车牌区域给完全切割出来或者车牌区域过大的情况,如图5.30,图5.31所示:
图5.30 水平投影切割后的图像
图5.31 (A)车牌区域切割过大的图像
24
毕业论文
图5.31(B)水平投影滤波前后的累加投影值
另外,汽车上如果写有字或者是有一排垂直小条,那么差分后的最高峰所在位置很可能就是该干扰的所在位置,定位时就很有可能是定位到该部位去。
本文采用的车牌水平方向定位算法如下:1.根据式(5.6)式(5.7)对车牌灰度图像进行水平方向的差分运算,并统计差分累加值;2.根据式(5.8)对图像差分累加值进行滤波;3.找出车牌水平区域的切割点,在图像上进行水平切割。
5.2.5.2牌照垂直方向的定位算法
车辆牌照垂直方向的定位算法跟车辆牌照水平方向的定位算法类似,首先对图像做垂直方向的差分运算,然后对得到的差分运算结果用均值法进行平滑。平滑后的投影图如图5.32所示:
图5.32 平滑后的垂直差分投影图
从图中可以看出,对于垂直方向的投影切割,车牌区域内的差分投影不是只有一个单峰,而是一群多峰,并且这一峰群对于车牌外区域的峰值相对要高出很多。于是我们选取最大峰值的0.6作为阈值,找出第一个和最后一个高于此阈值的峰作为车牌边缘峰。第一个边缘峰左边的波谷点作为分割点,最后一个边缘峰右边的波谷点作为分割点,对图像进行切割。对垂直方向进行投影切割的效果如图5.33所示。
图5.33(A)垂直投影切割后的图像 图5.33(B)垂直投影切割后的图像
25