发明名称 基于旋转投影的车牌倾斜矫正的方法
摘要 一种基于旋转投影的车牌倾斜校正的方法,本方法主要利用标准车牌(即无任何倾斜)在水平或竖直方向上的投影方差最大这一特性将车牌边缘图在一定的角度范围内(通常[-30~30])进行旋转,记录每次旋转过后的新图像的水平(竖直)方向投影值。通过比较和分析每次旋转角度得到的投影值的大小的方差分布,方差最大的旋转角即为车牌的倾斜角,从而可以确定一个最优的水平(竖直)方向旋转角度。避免了现有技术中的检测效果不理想、在实时性高的应用场景中也不如人意、算法可靠性不高、造成的误差较大的缺陷。
申请公布号 CN105488501A 申请公布日期 2016.04.13
申请号 CN201510843159.4 申请日期 2015.11.26
申请人 南京富士通南大软件技术有限公司 发明人 蔡志旻;娄刚;刘伟;许焱;韦树艺
分类号 G06K9/32(2006.01)I 主分类号 G06K9/32(2006.01)I
代理机构 南京钟山专利代理有限公司 32252 代理人 戴朝荣
主权项 一种基于旋转投影的车牌倾斜矫正的方法,其特征在于在初定位时找到车牌区域,将车牌初定位后得到车牌图像作为输入图像,对车牌图像做如下步骤的操作:步骤1:灰度化将颜色图转换成灰度图,把车牌图像的RGB颜色图转化灰度图公式为公式(1)所示:Gray(i,j)=R*0.299+G*0.587+B*0.114       (1)其中Gray(i,j)为目标图像在点(i,j)上的灰度值,R、G、B为图像三个分量,i为大于0的整数,j为大于0的整数;步骤2:边缘提取将车牌图像进行灰度化后,需要提取出车牌的字符纹理信息,边缘信息的完整与否关系到最终角度的计算。提取车牌图像边缘信息是基于Sobel算子的边缘检测,具体做法如下:1.做水平倾斜计算计算得到水平方向边缘检测的图像:对车牌图像灰度化后,对灰度化的车牌图像做一次平滑处理,再采用只对水平方向响应的Sobel算子提取图像边缘,其中采用的水平Sobel算子如下所示:<math><![CDATA[<mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>+</mo><mn>2</mn></mrow></mtd><mtd><mrow><mo>+</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>2</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000859019430000011.GIF" wi="315" he="159" /></maths>水平方向边缘提取计算公式如公式(2)所示:<math><![CDATA[<mrow><mi>G</mi><mi>x</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mo>+</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>+</mo><mn>2</mn></mrow></mtd><mtd><mrow><mo>+</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>2</mn></mrow></mtd><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced><mo>*</mo><mi>A</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>2</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000859019430000012.GIF" wi="894" he="159" /></maths>其中A代表平滑处理后的车牌图像,也即原始图像,Gx表示为水平方向边缘检测的图像;2.做竖直倾斜计算得到竖直方向边缘检测的图像:采用的竖直Sobel算子如下:<math><![CDATA[<mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>+</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mn>2</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>+</mo><mn>2</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>+</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced>]]></math><img file="FDA0000859019430000021.GIF" wi="281" he="159" /></maths>竖直方向边缘提取计算公式如公式(3)所示:<math><![CDATA[<mrow><mi>G</mi><mi>y</mi><mo>=</mo><mfenced open = "[" close = "]"><mtable><mtr><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>+</mo><mn>1</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mn>2</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>+</mo><mn>2</mn></mrow></mtd></mtr><mtr><mtd><mrow><mo>-</mo><mn>1</mn></mrow></mtd><mtd><mn>0</mn></mtd><mtd><mrow><mo>+</mo><mn>1</mn></mrow></mtd></mtr></mtable></mfenced><mo>*</mo><mi>A</mi><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>3</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000859019430000022.GIF" wi="628" he="159" /></maths>其中A代表平滑处理后的车牌图像,也即原始图像,Gy表示为竖直方向边缘检测的图像;3.二值化采用全局二值化方法,通过求得图像灰度平均值继而将该均值作为图像二值化的阈值,求得图像二值化的阈值T的计算公式如公式(4)所示:<math><![CDATA[<mrow><mi>T</mi><mo>=</mo><mfrac><mrow><msubsup><mi>&Sigma;</mi><mrow><mi>m</mi><mo>=</mo><mn>1</mn></mrow><mi>M</mi></msubsup><msubsup><mi>&Sigma;</mi><mrow><mi>n</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></msubsup><mi>f</mi><mrow><mo>(</mo><mi>m</mi><mo>,</mo><mi>n</mi><mo>)</mo></mrow></mrow><mrow><mi>M</mi><mo>&times;</mo><mi>N</mi></mrow></mfrac><mo>-</mo><mo>-</mo><mo>-</mo><mrow><mo>(</mo><mn>4</mn><mo>)</mo></mrow></mrow>]]></math><img file="FDA0000859019430000023.GIF" wi="793" he="142" /></maths>其M*N表示经过Sobel算子计算得到的图像的大小,M、m为大于0的整数,N、n为大于0的整数,f(m,n)表示图像中(m,n)点的灰度值;4.倾斜角计算如下:1)水平方向倾斜角计算的算法步骤如下:Step_1_1.在旋转角度[‑30,30]的区间,首先以旋转角度θ=‑30度的角度对边缘图像以图像中心为旋转中心进行旋转变换,旋转后图像高度记为m,得到该角度下的投影值,记为ProjectHor<sub>‑30</sub>[m],其中ProjectHor<sub>‑30</sub>[k],0<k<m表示在旋转角度‑30°下图像的第k行非0值数目;Step_1_2.在Step_1_1的基础上,旋转角度θ以step=5°递增并旋转原始图像,记录第i次旋转后的水平方向投影值为ProjectHor<sub>θ</sub>[m],其中θ=i*5‑30,且i<12,step代表步进值;Step_1_3.若i&lt;12,则重复Step_1_2,否则,对于每个ProjectHor<sub>θ</sub>[m],求一阶差分和<math><![CDATA[<mrow><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></msubsup><mrow><mo>(</mo><msub><mi>ProjectHor</mi><mi>&theta;</mi></msub><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>-</mo><msub><mi>ProjectHor</mi><mi>&theta;</mi></msub><mo>&lsqb;</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>&rsqb;</mo><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000859019430000031.GIF" wi="919" he="77" /></maths>并将其记录在S<sub>i</sub>中,i为整数;Step_1_4.计算S<sub>i</sub>中最大值Max(S<sub>i</sub>),根据最大值下标i可以知道当旋转角度θ=i*5‑30时投影值最大,此时所要求的真正旋转角在[(i‑1)*5‑30],(i+1)*5‑30]区间范围内;Step_1_5.在[(i‑1)*5‑30],(i+1)*5‑30]区间中旋转角度θ以step=1°递增并旋转原始图像,重复Step_1_2,Step_1_3,Step_1_4;最终求得Max(S<sub>i</sub>),此时水平方向的倾斜角α=i。2)竖直方向倾斜角计算的算法步骤如下:具体的算法步骤如下:Step_2_1.根据上述计算得到的水平方向的倾斜角并进行旋转校正车牌图像,旋转后的车牌图像作为计算竖直方向倾斜角度原始图像;Step_2_2.在旋转角度[‑30,30]的区间,首先以θ=‑30的角度对边缘图像以图像中心为旋转中心进行旋转变换,旋转后图像宽度记为n,得到该角度下的投影值,记为ProjectVer<sub>‑30</sub>[n],其中ProjectVer<sub>‑30</sub>[l],0<l<m表示在旋转角度‑30°下图像的第l列非0值数目;Step_2_3.在步骤1的基础上,旋转角度θ以step=5°递增并旋转原始图像,记录第i次旋转后的竖直方向投影值为ProjectVer<sub>θ</sub>[n],其中θ=i*5‑30,且i<12;Step_2_4.若i&lt;12,则重复Step_2_2,否则,对于每个ProjectVer<sub>θ</sub>[n],求一阶差分和<math><![CDATA[<mrow><msubsup><mi>&Sigma;</mi><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>m</mi></msubsup><mrow><mo>(</mo><msub><mi>ProjectVer</mi><mi>&theta;</mi></msub><mo>&lsqb;</mo><mi>i</mi><mo>&rsqb;</mo><mo>-</mo><msub><mi>ProjectVer</mi><mi>&theta;</mi></msub><mo>&lsqb;</mo><mi>i</mi><mo>-</mo><mn>1</mn><mo>&rsqb;</mo><mo>)</mo></mrow><mo>,</mo></mrow>]]></math><img file="FDA0000859019430000041.GIF" wi="902" he="79" /></maths>并记录在S<sub>i</sub>中;Step_2_5.计算S<sub>i</sub>中最大值Max(S<sub>i</sub>),根据最大值下标i可以知道当旋转角度θ=i*5‑30时投影值最大;此时所要求的真正旋转角在[(i‑1)*5‑30],(i+1)*5‑30]区间范围内;Step_2_6.在[(i‑1)*5‑30],(i+1)*5‑30]区间中旋转角度θ以step=1°递增并旋转原始图像,重复步骤Step_2_2,Step_2_3,Step_2_4;最终求得Max(S<sub>i</sub>),此时竖直方向的倾斜角β=i;5.车牌旋转校正根据计算得到水平或竖直方向的车牌倾斜角度,对车牌进行旋转校正,对于车牌的旋转校正,首先需要校正水平方向的倾斜,水平方向的校正只需按照水平的车牌倾斜角度的大小去旋转图像即可,对于竖直方向的校正,通过仿射变换来校正。
地址 210012 江苏省南京市雨花台区文竹路6号