车牌识别模块

来源:互联网 发布:swagger ui 搭建mac 编辑:程序博客网 时间:2024/05/14 21:44

<!-- /* Font Definitions */ @font-face{font-family:宋体;panose-1:2 1 6 0 3 1 1 1 1 1;mso-font-alt:SimSun;mso-font-charset:134;mso-generic-font-family:auto;mso-font-pitch:variable;mso-font-signature:3 135135232 16 0 262145 0;}@font-face{font-family:黑体;panose-1:2 1 6 0 3 1 1 1 1 1;mso-font-alt:SimHei;mso-font-charset:134;mso-generic-font-family:auto;mso-font-pitch:variable;mso-font-signature:1 135135232 16 0 262144 0;}@font-face{font-family:新宋体;panose-1:2 1 6 9 3 1 1 1 1 1;mso-font-charset:134;mso-generic-font-family:modern;mso-font-pitch:fixed;mso-font-signature:3 135135232 16 0 262145 0;}@font-face{font-family:隶书;panose-1:2 1 5 9 6 1 1 1 1 1;mso-font-charset:134;mso-generic-font-family:modern;mso-font-pitch:fixed;mso-font-signature:1 135135232 16 0 262144 0;}@font-face{font-family:"/@隶书";panose-1:2 1 5 9 6 1 1 1 1 1;mso-font-charset:134;mso-generic-font-family:modern;mso-font-pitch:fixed;mso-font-signature:1 135135232 16 0 262144 0;}@font-face{font-family:"/@黑体";panose-1:2 1 6 0 3 1 1 1 1 1;mso-font-charset:134;mso-generic-font-family:auto;mso-font-pitch:variable;mso-font-signature:1 135135232 16 0 262144 0;}@font-face{font-family:"/@宋体";panose-1:2 1 6 0 3 1 1 1 1 1;mso-font-charset:134;mso-generic-font-family:auto;mso-font-pitch:variable;mso-font-signature:3 135135232 16 0 262145 0;}@font-face{font-family:"/@新宋体";panose-1:2 1 6 9 3 1 1 1 1 1;mso-font-charset:134;mso-generic-font-family:modern;mso-font-pitch:fixed;mso-font-signature:3 135135232 16 0 262145 0;} /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal{mso-style-parent:"";margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;mso-pagination:none;font-size:10.5pt;mso-bidi-font-size:12.0pt;font-family:"Times New Roman";mso-fareast-font-family:宋体;mso-font-kerning:1.0pt;}h1{mso-style-name:"标题 1/,H1/,h1/,H11/,H12/,H111/,H13/,H112/,Heading 0/,Level 1 Head/,PIM 1/,Section Head/,l1/,1/,1st level/,H14/,H15/,H16/,H17/,LN/,章节/,Head1/,Heading apps/,Level 1 Topic Heading/,heading 1/,Arial 14 Fett/,Arial 14 Fett1/,Arial 14 Fett2/,Header1/,Head 1/,Head 11/,Head 12/,Head 111/,l0/,标书1";mso-style-next:正文;margin-top:0cm;margin-right:0cm;margin-bottom:12.0pt;margin-left:0cm;text-align:center;text-indent:0cm;line-height:125%;page-break-before:always;mso-pagination:lines-together;page-break-after:avoid;mso-outline-level:1;mso-list:l0 level1 lfo1;font-size:22.0pt;mso-bidi-font-size:10.0pt;font-family:"Times New Roman";mso-fareast-font-family:隶书;mso-font-kerning:1.0pt;mso-bidi-font-weight:normal;}h2{mso-style-name:"标题 2/,标题2/,Heading 2 Hidden/,Heading 2 CCBS/,heading 2/,H2/,第一章 标题 2/,h2/,sect 1/.2/,H21/,sect 1/.21/,H22/,sect 1/.22/,H211/,sect 1/.211/,H23/,sect 1/.23/,H212/,sect 1/.212/,PIM2/,Titre3/,HD2/,2nd level/,2/,Header 2/,l2/,Titre2/,Head 2/,Level 2 Head/,h2 main heading/,B Sub//Bold/,LN2/,chn/,A";mso-style-next:"正文缩进/,特点/,表正文/,正文非缩进/,段1/,ALT+Z/,四号/,缩进/,正文缩进 Char/,正文不缩进/,特点 Char/,水上软件/,上海中望标准正文(首行缩进两字)/,正文双线/,正文(首行缩进两字) Char/,正文(首行缩进两字) Char Char Char Char Char/,正文(首行缩进两字) Char Char Char/,正文(首行缩进两字) Char Char Char Char/,标题4/,正文(首行缩进两字)标题1/,标题四/,表正文1/,正文非缩进1/,标题41/,四号1/,特点1/,表正文2";margin-top:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm;text-align:justify;text-justify:inter-ideograph;text-indent:0cm;line-height:125%;mso-pagination:lines-together;mso-outline-level:2;mso-list:l0 level2 lfo1;font-size:18.0pt;mso-bidi-font-size:10.0pt;font-family:"Times New Roman";mso-fareast-font-family:隶书;mso-font-kerning:1.0pt;mso-bidi-font-weight:normal;}h3{mso-style-name:"标题 3/,Heading 3 - old/,H3/,Level 3 Head/,Heading/,h3/,3rd level/,level_3/,PIM 3/,sect1/.2/.3/,sect1/.2/.31/,sect1/.2/.32/,sect1/.2/.311/,sect1/.2/.33/,sect1/.2/.312/,Bold Head/,bh/,3/,cb/,第二层条/,BOD 0/,l3/,CT/,Level 3 Topic Heading/,Map/,prop3/,3heading/,heading 3/,Heading 31/,1/.1/.1 Heading 3";mso-style-next:"正文缩进/,特点/,表正文/,正文非缩进/,段1/,ALT+Z/,四号/,缩进/,正文缩进 Char/,正文不缩进/,特点 Char/,水上软件/,上海中望标准正文(首行缩进两字)/,正文双线/,正文(首行缩进两字) Char/,正文(首行缩进两字) Char Char Char Char Char/,正文(首行缩进两字) Char Char Char/,正文(首行缩进两字) Char Char Char Char/,标题4/,正文(首行缩进两字)标题1/,标题四/,表正文1/,正文非缩进1/,标题41/,四号1/,特点1/,表正文2";margin-top:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm;text-align:justify;text-justify:inter-ideograph;text-indent:0cm;line-height:125%;mso-pagination:lines-together;mso-outline-level:3;mso-list:l0 level3 lfo1;font-size:16.0pt;mso-bidi-font-size:10.0pt;font-family:"Times New Roman";mso-fareast-font-family:隶书;mso-font-kerning:1.0pt;text-shadow:auto;mso-bidi-font-weight:normal;}h4{mso-style-name:"标题 4/,H4/,sect 1/.2/.3/.4/,Ref Heading 1/,rh1/,sect 1/.2/.3/.41/,Ref Heading 11/,rh11/,sect 1/.2/.3/.42/,Ref Heading 12/,rh12/,sect 1/.2/.3/.411/,Ref Heading 111/,rh111/,sect 1/.2/.3/.43/,Ref Heading 13/,rh13/,sect 1/.2/.3/.412/,Ref Heading 112/,rh112/,PIM 4/,h4/,Heading 4/./,Heading sql/,4/,dash";mso-style-next:"正文缩进/,特点/,表正文/,正文非缩进/,段1/,ALT+Z/,四号/,缩进/,正文缩进 Char/,正文不缩进/,特点 Char/,水上软件/,上海中望标准正文(首行缩进两字)/,正文双线/,正文(首行缩进两字) Char/,正文(首行缩进两字) Char Char Char Char Char/,正文(首行缩进两字) Char Char Char/,正文(首行缩进两字) Char Char Char Char/,标题4/,正文(首行缩进两字)标题1/,标题四/,表正文1/,正文非缩进1/,标题41/,四号1/,特点1/,表正文2";margin-top:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm;text-align:justify;text-justify:inter-ideograph;text-indent:0cm;line-height:125%;mso-pagination:lines-together;page-break-after:avoid;mso-outline-level:4;mso-list:l0 level4 lfo1;font-size:15.0pt;mso-bidi-font-size:10.0pt;font-family:"Times New Roman";mso-fareast-font-family:隶书;mso-font-kerning:1.0pt;mso-bidi-font-weight:normal;}h5{mso-style-name:"标题 5/,口/,H5/,PIM 5/,h5/,Second Subheading/,5/,l4/,第四层条/,ds/,dd/,Level 3 - i/,CSS节内3级标记/,H51/,H52/,H53";mso-style-next:"正文缩进/,特点/,表正文/,正文非缩进/,段1/,ALT+Z/,四号/,缩进/,正文缩进 Char/,正文不缩进/,特点 Char/,水上软件/,上海中望标准正文(首行缩进两字)/,正文双线/,正文(首行缩进两字) Char/,正文(首行缩进两字) Char Char Char Char Char/,正文(首行缩进两字) Char Char Char/,正文(首行缩进两字) Char Char Char Char/,标题4/,正文(首行缩进两字)标题1/,标题四/,表正文1/,正文非缩进1/,标题41/,四号1/,特点1/,表正文2";margin-top:6.0pt;margin-right:0cm;margin-bottom:6.0pt;margin-left:0cm;text-align:justify;text-justify:inter-ideograph;text-indent:0cm;line-height:120%;mso-pagination:lines-together;page-break-after:avoid;mso-outline-level:5;mso-list:l0 level5 lfo1;font-size:14.0pt;mso-bidi-font-size:10.0pt;font-family:"Times New Roman";mso-fareast-font-family:隶书;mso-font-kerning:1.0pt;mso-bidi-font-weight:normal;}h6{mso-style-name:"标题 6/,H6/,PIM 6/,h6/,Third Subheading/,BOD 4/,L6/,Bullet /(Single Lines/)/,CSS节内4级标记/,Legal Level 1/.";mso-style-next:"正文缩进/,特点/,表正文/,正文非缩进/,段1/,ALT+Z/,四号/,缩进/,正文缩进 Char/,正文不缩进/,特点 Char/,水上软件/,上海中望标准正文(首行缩进两字)/,正文双线/,正文(首行缩进两字) Char/,正文(首行缩进两字) Char Char Char Char Char/,正文(首行缩进两字) Char Char Char/,正文(首行缩进两字) Char Char Char Char/,标题4/,正文(首行缩进两字)标题1/,标题四/,表正文1/,正文非缩进1/,标题41/,四号1/,特点1/,表正文2";margin-top:12.0pt;margin-right:0cm;margin-bottom:3.2pt;margin-left:57.6pt;text-align:justify;text-justify:inter-ideograph;text-indent:-57.6pt;line-height:133%;mso-pagination:lines-together;page-break-after:avoid;mso-outline-level:6;mso-list:l0 level6 lfo1;tab-stops:list 57.6pt;font-size:12.0pt;mso-bidi-font-size:10.0pt;font-family:Arial;mso-bidi-font-family:"Times New Roman";mso-font-kerning:1.0pt;mso-bidi-font-weight:normal;}p.MsoHeading7, li.MsoHeading7, div.MsoHeading7{mso-style-name:"标题 7/,PIM 7/,L7/,不用";mso-style-next:"正文缩进/,特点/,表正文/,正文非缩进/,段1/,ALT+Z/,四号/,缩进/,正文缩进 Char/,正文不缩进/,特点 Char/,水上软件/,上海中望标准正文(首行缩进两字)/,正文双线/,正文(首行缩进两字) Char/,正文(首行缩进两字) Char Char Char Char Char/,正文(首行缩进两字) Char Char Char/,正文(首行缩进两字) Char Char Char Char/,标题4/,正文(首行缩进两字)标题1/,标题四/,表正文1/,正文非缩进1/,标题41/,四号1/,特点1/,表正文2";margin-top:12.0pt;margin-right:0cm;margin-bottom:3.2pt;margin-left:64.8pt;text-align:justify;text-justify:inter-ideograph;text-indent:-64.8pt;line-height:133%;mso-pagination:lines-together;page-break-after:avoid;mso-outline-level:7;mso-list:l0 level7 lfo1;tab-stops:list 64.8pt;font-size:12.0pt;mso-bidi-font-size:10.0pt;font-family:"Times New Roman";mso-fareast-font-family:宋体;mso-font-kerning:1.0pt;font-weight:bold;mso-bidi-font-weight:normal;}p.MsoHeading8, li.MsoHeading8, div.MsoHeading8{mso-style-name:"标题 8/,不用8";mso-style-next:"正文缩进/,特点/,表正文/,正文非缩进/,段1/,ALT+Z/,四号/,缩进/,正文缩进 Char/,正文不缩进/,特点 Char/,水上软件/,上海中望标准正文(首行缩进两字)/,正文双线/,正文(首行缩进两字) Char/,正文(首行缩进两字) Char Char Char Char Char/,正文(首行缩进两字) Char Char Char/,正文(首行缩进两字) Char Char Char Char/,标题4/,正文(首行缩进两字)标题1/,标题四/,表正文1/,正文非缩进1/,标题41/,四号1/,特点1/,表正文2";margin-top:12.0pt;margin-right:0cm;margin-bottom:3.2pt;margin-left:72.0pt;text-align:justify;text-justify:inter-ideograph;text-indent:-72.0pt;line-height:133%;mso-pagination:lines-together;page-break-after:avoid;mso-outline-level:8;mso-list:l0 level8 lfo1;tab-stops:list 72.0pt;font-size:12.0pt;mso-bidi-font-size:10.0pt;font-family:Arial;mso-fareast-font-family:黑体;mso-bidi-font-family:"Times New Roman";mso-font-kerning:1.0pt;}p.MsoHeading9, li.MsoHeading9, div.MsoHeading9{mso-style-name:"标题 9/,Appendix/,PIM 9/,huh/,不用9/,Legal Level 1/.1/.1/.1/.";mso-style-next:"正文缩进/,特点/,表正文/,正文非缩进/,段1/,ALT+Z/,四号/,缩进/,正文缩进 Char/,正文不缩进/,特点 Char/,水上软件/,上海中望标准正文(首行缩进两字)/,正文双线/,正文(首行缩进两字) Char/,正文(首行缩进两字) Char Char Char Char Char/,正文(首行缩进两字) Char Char Char/,正文(首行缩进两字) Char Char Char Char/,标题4/,正文(首行缩进两字)标题1/,标题四/,表正文1/,正文非缩进1/,标题41/,四号1/,特点1/,表正文2";margin-top:12.0pt;margin-right:0cm;margin-bottom:3.2pt;margin-left:79.2pt;text-align:justify;text-justify:inter-ideograph;text-indent:-79.2pt;line-height:133%;mso-pagination:lines-together;page-break-after:avoid;mso-outline-level:9;mso-list:l0 level9 lfo1;tab-stops:list 79.2pt;font-size:12.0pt;mso-bidi-font-size:10.0pt;font-family:Arial;mso-fareast-font-family:黑体;mso-bidi-font-family:"Times New Roman";mso-font-kerning:1.0pt;}p.MsoToc1, li.MsoToc1, div.MsoToc1{mso-style-update:auto;mso-style-noshow:yes;mso-style-next:正文;margin-top:18.0pt;margin-right:0cm;margin-bottom:18.0pt;margin-left:0cm;mso-pagination:none;font-size:10.5pt;mso-bidi-font-size:13.0pt;font-family:"Times New Roman";mso-fareast-font-family:宋体;text-transform:uppercase;mso-font-kerning:1.0pt;font-weight:bold;text-decoration:underline;text-underline:single;}p.MsoToc2, li.MsoToc2, div.MsoToc2{mso-style-update:auto;mso-style-noshow:yes;mso-style-next:正文;margin:0cm;margin-bottom:.0001pt;mso-pagination:none;font-size:10.5pt;mso-bidi-font-size:13.0pt;font-family:"Times New Roman";mso-fareast-font-family:宋体;font-variant:small-caps;mso-font-kerning:1.0pt;font-weight:bold;}p.MsoToc3, li.MsoToc3, div.MsoToc3{mso-style-update:auto;mso-style-noshow:yes;mso-style-next:正文;margin:0cm;margin-bottom:.0001pt;mso-pagination:none;font-size:10.5pt;mso-bidi-font-size:13.0pt;font-family:"Times New Roman";mso-fareast-font-family:宋体;font-variant:small-caps;mso-font-kerning:1.0pt;}p.MsoToc4, li.MsoToc4, div.MsoToc4{mso-style-update:auto;mso-style-noshow:yes;mso-style-next:正文;margin:0cm;margin-bottom:.0001pt;mso-pagination:none;font-size:10.5pt;mso-bidi-font-size:13.0pt;font-family:"Times New Roman";mso-fareast-font-family:宋体;mso-font-kerning:1.0pt;}p.MsoNormalIndent, li.MsoNormalIndent, div.MsoNormalIndent{mso-style-name:"正文缩进/,特点/,表正文/,正文非缩进/,段1/,ALT+Z/,四号/,缩进/,正文缩进 Char/,正文不缩进/,特点 Char/,水上软件/,上海中望标准正文(首行缩进两字)/,正文双线/,正文(首行缩进两字) Char/,正文(首行缩进两字) Char Char Char Char Char/,正文(首行缩进两字) Char Char Char/,正文(首行缩进两字) Char Char Char Char/,标题4/,正文(首行缩进两字)标题1/,标题四/,表正文1/,正文非缩进1/,标题41/,四号1/,特点1/,表正文2";margin-top:2.0pt;margin-right:0cm;margin-bottom:2.0pt;margin-left:0cm;text-align:justify;text-justify:inter-ideograph;text-indent:25.0pt;line-height:120%;mso-pagination:none;font-size:12.0pt;mso-bidi-font-size:10.0pt;font-family:"Times New Roman";mso-fareast-font-family:宋体;mso-font-kerning:1.0pt;}p.MsoHeader, li.MsoHeader, div.MsoHeader{margin:0cm;margin-bottom:.0001pt;text-align:center;mso-pagination:none;tab-stops:center 207.65pt right 415.3pt;layout-grid-mode:char;border:none;mso-border-bottom-alt:solid windowtext .75pt;padding:0cm;mso-padding-alt:0cm 0cm 1.0pt 0cm;font-size:9.0pt;font-family:"Times New Roman";mso-fareast-font-family:宋体;mso-font-kerning:1.0pt;}p.MsoBodyTextIndent, li.MsoBodyTextIndent, div.MsoBodyTextIndent{mso-style-name:"正文文本缩进/,PI/,正文文字首行缩进/,bt/,body text/,正文普通文字";margin:0cm;margin-bottom:.0001pt;text-align:justify;text-justify:inter-ideograph;text-indent:22.7pt;line-height:120%;mso-pagination:none;font-size:12.0pt;mso-bidi-font-size:10.0pt;font-family:"Times New Roman";mso-fareast-font-family:宋体;mso-font-kerning:1.0pt;}a:link, span.MsoHyperlink{color:blue;text-decoration:underline;text-underline:single;}a:visited, span.MsoHyperlinkFollowed{color:purple;text-decoration:underline;text-underline:single;} /* Page Definitions */ @page{mso-page-border-surround-header:no;mso-page-border-surround-footer:no;}@page Section1{size:595.3pt 841.9pt;margin:72.0pt 90.0pt 72.0pt 90.0pt;mso-header-margin:42.55pt;mso-footer-margin:49.6pt;mso-paper-source:0;layout-grid:15.6pt;}div.Section1{page:Section1;}@page Section2{size:595.3pt 841.9pt;margin:72.0pt 90.0pt 72.0pt 90.0pt;mso-header-margin:42.55pt;mso-footer-margin:49.6pt;mso-paper-source:0;layout-grid:15.6pt;}div.Section2{page:Section2;}@page Section3{size:595.3pt 841.9pt;margin:72.0pt 90.0pt 72.0pt 90.0pt;mso-header-margin:42.55pt;mso-footer-margin:49.6pt;mso-paper-source:0;layout-grid:15.6pt;}div.Section3{page:Section3;}@page Section4{size:595.3pt 841.9pt;margin:72.0pt 90.0pt 72.0pt 90.0pt;mso-header-margin:42.55pt;mso-footer-margin:49.6pt;mso-paper-source:0;layout-grid:15.6pt;}div.Section4{page:Section4;}@page Section5{size:595.3pt 841.9pt;margin:72.0pt 90.0pt 72.0pt 90.0pt;mso-header-margin:42.55pt;mso-footer-margin:49.6pt;mso-paper-source:0;layout-grid:15.6pt;}div.Section5{page:Section5;}@page Section6{size:612.0pt 792.0pt;margin:72.0pt 90.0pt 72.0pt 90.0pt;mso-header-margin:36.0pt;mso-footer-margin:36.0pt;mso-paper-source:0;}div.Section6{page:Section6;} /* List Definitions */ @list l0{mso-list-id:359477480;mso-list-template-ids:-622982162;}@list l0:level1{mso-level-style-link:"标题 1";mso-level-suffix:space;mso-level-text:第%1章;mso-level-tab-stop:none;mso-level-number-position:left;margin-left:0cm;text-indent:0cm;}@list l0:level2{mso-level-style-link:"标题 2";mso-level-suffix:space;mso-level-text:"%1/.%2";mso-level-tab-stop:none;mso-level-number-position:left;margin-left:0cm;text-indent:0cm;}@list l0:level3{mso-level-style-link:"标题 3";mso-level-suffix:space;mso-level-text:"%1/.%2/.%3";mso-level-tab-stop:none;mso-level-number-position:left;margin-left:0cm;text-indent:0cm;}@list l0:level4{mso-level-style-link:"标题 4";mso-level-suffix:space;mso-level-text:"%1/.%2/.%3/.%4";mso-level-tab-stop:none;mso-level-number-position:left;margin-left:0cm;text-indent:0cm;}@list l0:level5{mso-level-style-link:"标题 5";mso-level-suffix:space;mso-level-text:"%1/.%2/.%3/.%4/.%5";mso-level-tab-stop:none;mso-level-number-position:left;margin-left:0cm;text-indent:0cm;}@list l0:level6{mso-level-style-link:"标题 6";mso-level-text:"%1/.%2/.%3/.%4/.%5/.%6";mso-level-tab-stop:57.6pt;mso-level-number-position:left;margin-left:57.6pt;text-indent:-57.6pt;}@list l0:level7{mso-level-style-link:"标题 7";mso-level-text:"%1/.%2/.%3/.%4/.%5/.%6/.%7";mso-level-tab-stop:64.8pt;mso-level-number-position:left;margin-left:64.8pt;text-indent:-64.8pt;}@list l0:level8{mso-level-style-link:"标题 8";mso-level-text:"%1/.%2/.%3/.%4/.%5/.%6/.%7/.%8";mso-level-tab-stop:72.0pt;mso-level-number-position:left;margin-left:72.0pt;text-indent:-72.0pt;}@list l0:level9{mso-level-style-link:"标题 9";mso-level-text:"%1/.%2/.%3/.%4/.%5/.%6/.%7/.%8/.%9";mso-level-tab-stop:79.2pt;mso-level-number-position:left;margin-left:79.2pt;text-indent:-79.2pt;}@list l1{mso-list-id:1831677663;mso-list-type:hybrid;mso-list-template-ids:1962469554 1021055324 67698713 67698715 67698703 67698713 67698715 67698703 67698713 67698715;}@list l1:level1{mso-level-text:%1、;mso-level-tab-stop:43.0pt;mso-level-number-position:left;margin-left:43.0pt;text-indent:-18.0pt;}@list l2{mso-list-id:1983080169;mso-list-type:hybrid;mso-list-template-ids:-2045585112 2053521358 -1396561836 -2117719224 67698703 67698713 67698715 67698703 67698713 67698715;}@list l2:level1{mso-level-text:%1、;mso-level-tab-stop:49.4pt;mso-level-number-position:left;margin-left:49.4pt;text-indent:-21.0pt;}@list l2:level2{mso-level-number-format:alpha-lower;mso-level-text:"/(%2/)";mso-level-tab-stop:67.4pt;mso-level-number-position:left;margin-left:67.4pt;text-indent:-18.0pt;}@list l2:level3{mso-level-text:"/(%3/)";mso-level-tab-stop:108.65pt;mso-level-number-position:left;margin-left:108.65pt;text-indent:-38.25pt;}ol{margin-bottom:0cm;}ul{margin-bottom:0cm;}-->

车牌识别模块

 

    该文档论述了车牌识别模块的设计原则和设计目标,以及车牌识别模块的理论依据。进一步详细阐述了车牌识别模块的过程:1、车牌定位;2、车牌字符分割;3、车牌字符识别;4、车牌汉字识别处理。详细述说了每一个过程采用的方法,以及方法的识别过程。对于每一种方法都阐述了理论依据,以及在微机上的实现过程。

前言

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

目录

车牌识别模块技术方案    1

前言    2

1 车牌识别总体设计方案    5

1.1 设计目标与原则    5

1.1.1 设计目标    5

1.1.2 设计原则    5

1.2 总体设计    5

1.3 设计理论依据    7

2 车牌识别详细设计方案    8

2.1 车牌识别模块的过程    8

2.1.1 车牌图片识别    8

2.1.1.1 车牌图片识别流程图    8

2.1.1.2 低象素或高象素识别流程图    9

2.1.2 车牌定位    10

2.1.2.1 车牌区域粗定位    10

2.1.2.2 车牌区域精定位    11

2.1.3 车牌字符分割    11

2.1.4 车牌字符识别    12

2.1.5 车牌汉字识别处理    12

2.2 色彩空间转换    13

2.2.1 色彩空间转换公式    13

2.2.2 色彩空间值的拉伸映射表    13

2.3 边缘提取、二值化处理    13

2.3.1 边缘提取    13

2.3.2 二值化处理    13

2.3.3 八邻域搜索算法    14

2.4 车牌字符分割    16

2.4.1 车牌字符分割流程    16

2.4.2 车牌子区域的调整    16

2.4.3 车牌字符分割    16

2.4.3.1 车牌字符初步分割    16

2.4.3.2 分水岭算法车牌字符分割    16

2.4.3.3 调整车牌字符分割    18

2.4.3.4 车牌字符规范化处理    18

2.4.3.5 车牌字符的二值化    19

2.5 车牌字符识别理论    22

2.5.1 车牌字符识别综述    22

2.5.2 BP神经网络综述    22

2.5.2.1 BP神经网络的原理    22

2.5.2.2 BP神经网络中样本采集    22

2.5.2.3 BP神经网络中样本训练    23

2.5.2.4 BP神经网络的识别处理    23

2.6 车牌字符识别实现    23

2.6.1 车牌中字符结构介绍    23

2.6.2 字符识别流程    24

2.6.3 英文与数字字符识别    25

2.6.3.1 英文与数字神经网络结构确定    25

2.6.3.2 英文与数字识别实现    25

2.6.4 汉字字符识别    26

2.6.4.1 汉字神经网络结构确定    26

2.6.4.2 汉字识别实现    26

参考文献    28

附录一  灰度值拉伸映射表    29

附录二  神经网络理论知识    41

 

第1章 车牌识别总体设计方案

1.1 设计目标与原则

1.1.1 设计目标

本模块的总体设计目标和原则是:车牌识别速度快、识别准确率高、漏识误识低。

1.1.2 设计原则

根据车牌识别在当前的发展情况,以及当前技术的发展趋势,车牌识别模块的开发将按照以下原则进行设计,具体如下:

1、   开放性和标准化:车牌识别模块采用动态链接库(DLL)的形式完成,提供标准的接口供其它模块(或其它用户)使用;同时以便于以后功能的扩充和完善。

2、   成熟性和先进性:车牌识别技术当前发展已经非常完善,在本模块的开发过程中,尽量采用现有的成熟技术,以保证模块的质量和模块的预期完成。

1.2 总体设计

如图一所示,车牌识别模块首先从接口获得RGB彩色车牌图像,在经过色彩空间的转换之后,依次对车牌图像进行:1、边缘提取、二值化操作;2、车牌字符分割;3、车牌字符识别。最后提供接口输出对车牌图像的处理情况:1、正确识别车牌,提供识别结果,以及识别可行度;2、车牌识别失败。

 

图一、系统总体模块图

      

 

 

 

 

 

 

 

1.3 设计理论依据

本模块是基于BP神经网络设计,BP神经网络具有记忆功能(模仿人类的大脑),就如人类大脑一样,可以记忆所见过的事物。BP神经网络,根据事物的特征量,将事物记忆在网络矩阵中,BP神经网络的训练过程就如人类大脑的学习过程一样,学习的事物越多,记忆的越多。神经网络也是如此,在训练中采用同一类物体的多种表现形式(即特征量不同)进行训练,就可以将该类物体的多种形式存储起来。在识别过程中,根据各类事物的特征量不同,可以进行准确识别。

该模块采用:定位->识别->再定位->再识别, 这样的反馈机制,有利于准确的定位到车牌。车牌的准确定位为车牌的识别提供了最大的可能性。这样的定位-识别机制,可以提高定位率和识别率。


第2章 车牌识别详细设计方案

2.1 车牌识别模块的过程

在本模块的设计中,对车牌识别处理的划分主要分为四个过程:

1、车牌定位;

2、车牌字符分割;

3、车牌字符识别;

4、车牌汉字识别处理

在该小节的后面部分将对车牌识别处理的四个过程进行详细描述:阐述每一个过程功能,以及功能实现的方法,并且提供给后面处理的接口和数据。

2.1.1 车牌图片识别

2.1.1.1 车牌图片识别流程图

文本框:            车牌图片识别流程图对输入的车牌图片,将分成低象素车牌图片和高象素车牌图片;分别进行识别处理(见右边图、车牌图片识别流程图)

低象素图片包含帧图片和场图片。帧图片的格式为768×576;场图片的格式为768×288。对于图片宽度少于768Pixel点都划为低象素类,还有720×576720×288等图片格式。

对于高象素图片,目前主要考虑1388×1038,以及经过1388×1038扩展的图片格式。

 

 

 

2.1.1.2 文本框:                             识别处理流程图低象素或高象素识别流程图

对于图片的识别流程(见右图),主要有:正常灰度值模式;低灰度值模式;高灰度值模式;中等灰度值模式;灰度值翻转模式;灰度值中等偏上模式;灰度值中等偏下模式。考虑到车牌图片中的车牌区域所处的灰度值范围不一样,采用多种灰度值模式进行识别处理。对于一特定车牌图片,其处理过程不一定完全要经过所有的处理过程,在某一灰度值模式下识别率达到一定程度,就会进入汉字识别处理过程,从而可以减小识别处理的时间。同时又兼顾到了不同灰度值背景下的车牌图片识别。

 

2.1.2 车牌定位

在此过程中,主要实现对有可能是车牌的区域进行提取。将提取出来的疑似车牌子区域提交给车牌字符分割过程处理。

在此过程中采用的方法主要有:色彩空间的转换、象素点的腐蚀、边缘特征的处理、八邻域搜索算法。对于色彩空间的转换、象素点的腐蚀、边缘特征的处理将在2.22.3节中详细描述。八邻域搜索算法可以参见《数字图像处理》方面的书籍;该算法搜索到疑似车牌子区域提供给后面的处理过程。

本模块对车牌定位的过程采用了粗定位和精定位两类方法相结合。所谓的粗定位就是上面描述的定位出疑似车牌子区域;精定位是铺以车牌识别,采用可行度对车牌进行准确定位。也就是说、精定位只有在车牌识别之后对每个疑似车牌子区域的可行度进行比较才可能得到。

2.1.2.1 车牌区域粗定位

文本框:               车牌区域粗定位流程图在车牌区域粗定位过程中,主要经过色彩空间转换、象素点腐蚀、边缘特征提取和八邻域搜索等处理过程,具体见右边的粗定位流程图。

所谓的色彩空间转换,就是将车牌图片的灰度值根据映射表进行转换,这样可以将不通灰度值背景下的车牌区域映射到可以处理的程度,有利于提取出车牌区域。

象素点的腐蚀采用形态学上的腐蚀算法。腐蚀的模板可以根据需要自动调节,主要采用5×1的模板。

这里的二值化处理是对全图片进行二值化处理,主要依靠经验对车牌大小的选择进行二值化处理,一般情况下帧图片格式下,识别140×25的车牌区域,可以采用0.02的比率进行二值化处理。对于车牌区域较大的车牌图片,可以提高白色象素点的比率,去获得较大区域的车牌。同理也可以提取车牌区域较小的车牌,但是当车牌区域宽度少于100Pixel时,车牌字符的分割与识别都难以进行,所以宽度少于100Pixel时将不会处理。

2.1.2.2 文本框:                车牌区域精定位流程          车牌区域精定位

车牌区域精定位是一个循环和择优的过程,依靠识别可信度择优选择最大可信度作为识别处理的车牌区域。

具体的实现是,在粗定位之后,将提供几个疑似车牌子区域作为车牌区域的候选,依次对每个疑似车牌子区域做车牌字符分割、车牌字符识别和择优选择;最后得到最大可信度的车牌区域(见右边的车牌区域精定位流程图)

对于车牌字符分割见2.1.3节的车牌字符分割;车牌字符识别见2.1.4节的车牌字符识别。

将循环过程中最到识别可信度的疑似车牌子区域作为识别的车牌子区域,并保存相应的信息在结构体中,以便后续的识别工作顺利进行。

2.1.3 车牌字符分割

在车牌字符分割过程中,简言之就是将车牌粗定位或精定位出来的车牌区域(疑似车牌子区域、精确的车牌子区域统称为车牌区域)分割成车牌中的一个个的车牌字符(包含汉字字符)区域。

在车牌字符分割过程中采用的方法有:OSTU二值化方法、分水岭算法和八领域搜索算法。

这些处理算法将在2.4节中进行详细描述。

2.1.4 车牌字符识别

在车牌字符识别过程中,主要是指字母和数字的识别处理,不包括汉字识别处理。识别的过程采用训练好的神经网络进行识别、

在车牌字符识别过程中采用的方法有:字符的二值化算法、字符特征值提取方法和BP神经网络识别算法。

这些方法的实现在2.4节中详细描述。

2.1.5 车牌汉字识别处理

车牌汉字识别处理过程就是识别车牌中的汉字字符,汉字字符因为笔画多与字母、数字在二值化之后表现出来的特征不甚明显;识别起来较为困难,所以将汉字字符从字符识别处理中提取出来,另外采用特殊的方法进行处理。这样处理有利于提高处理速度和识别精度。

在车牌汉字识别处理过程中采用的方法有:字符的二值化算法,字符特征值提取方法和BP神经网络识别算法。

这些方法的实现在2.4节中详细描述。


2.2 色彩空间转换

2.2.1 色彩空间转换公式

在车牌识别模块中色彩空间的转换公式为:

Gray = (B*9G*5R*2)/16

BRGB彩色空间中的B颜色分量;GRGB彩色空间中的G颜色分量;RRGB彩色空间中的R颜色分量。在车牌识别模块中色彩空间的转换没有采用传统的灰度值转换公式,主要是考虑到当前车牌的底色是蓝色,所以提高B颜色分量在灰度值中的比重,有利于定位到车牌。

2.2.2 色彩空间值的拉伸映射表

色彩空间的值的拉伸,主要是考虑在拍摄过程中,车牌区域所处的值是不确定的。有的车牌区域所处值在整个车牌图片中处理明亮部分(光照直射在车牌上的情形),有的处于灰暗部分(光照没有直射在车牌上的情形)。好的识别模块应能对车牌处于不同的灰度值上都能做处理;在实现中,通过色彩空间值的拉伸能分别处理各个灰度值上的车牌;有利于提高识别准确率。拉伸映射表参见附录一。

 

2.3 边缘提取、二值化处理

2.3.1 边缘提取

边缘提取采用先腐蚀后提取边缘。

腐蚀过程采用5×1的模板,基于形态学腐蚀算法进行,具体运算如下:

  Corrupt(i, j) = min(Image(i, j-2), Image(i,j-1), Image(i, j), Image(i, j+1), Image(i, j+2));

 

在特征提取中采用41×1的模板,进行累加运算,具体的模板如下:

  Templet = [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, l,

             1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,1, 1, 1, 1, 1, 1, 1, 1, l, 1];

 

2.3.2 二值化处理

在车牌识别模块中全局的车牌图像的二值化处理,主要基于前面边缘提取的运算,采用按比率进行二值化处理;在车牌识别模块中,考虑到车牌图像的大小在图像中的比率,选择比率系数为:dRatio0.02 > ((120×20) / (768×288));所以象素点阈值nCountThr dRatio × nWidth × nHeight)。

在阈值的选择中,首先统计经过边缘提取之后的数据,对整个车牌图片进行灰度值统计,从0开始进行阈值选择,当统计到灰度值gray时,象素点个数nCount统计大于nCountThr,则选择阈值nThr gray。然后依次处理车牌图片中的每一个象素点,大于阈值的设置为白色象素点,否则设置为黑色象素点。

2.3.3 八邻域搜索算法

图像中象素点的位置见下图

 

 

 

 

 

 

 

0

1

2

 

 

7

Ij

3

 

 

6

5

4

 

 

 

 

 

 

 

 

八邻域搜索算法的伪语言描述为(以黑色象素点)

 

 

void  func_search8()

{

   for(I=(0, nWidth-1) )

{

  for(J=(0,  nHeight-1) )

{

// 如果象素点(I, J)为黑色象素点

if( pixel(I, J) == 0 )

{

// 记录区域的位置信息

RecordArea();

 

//  将黑色象素点压入堆栈

PushStach();

 

//  如果堆栈内有没有处理的象素点

While( StackIsNotNull () )

{

    //   弹出最上面的象素点

    (M,  N)  = OutStack();

 

    //  处理(M-1, N-1

    ProcessPixel(M-1, N-1);

 

    //  处理(M,  N-1

    ProcessPixel(M, N-1);

 

    //  处理(M+1, N-1

    ProcessPixel(M+1, N-1);

 

    //  处理(M-1, N

    ProcessPixel(M-1, N);

 

    //  处理(M+1,  N

    ProcessPixel(M+1,  N);

 

    //  处理(M-1,  N +1

    ProcessPixel(M-1,  N+1);

 

    //  处理(M,  N+1

    ProcessPixel(M,  N+1);

 

    //  处理(M+1,  N+1

    ProcessPixel(M+1,  N+1);   

}  //  end  while

 

// 记录区域的位置信息

RecordArea();

}   //   end  if

}   //   end   for  J
}     //    end  for  I

}    //  end   func_Search8


 

2.4 文本框:                   车牌字符分割流程图车牌字符分割

2.4.1 车牌字符分割流程

车牌字符分割流程见右边的图。

2.4.2 车牌子区域的调整

考虑到采用边缘提取的方法获取车牌子区域的大小,有可能提取了过多的非车牌区域和剪切车牌字符的区域,在对车牌字符分割之前,需要对车牌子区域进行调整。

2.4.3 车牌字符分割

2.4.3.1  车牌字符初步分割

采用OSTU二值化方法对车牌子区域进行二值化处理。在二值化图基础之上,采用区域搜索算法对二值化车牌子区域图像进行搜索,初步查找出车牌字符的区域。车牌字符的初步分割主要是为了采用分水岭算法进行字符分割;为分水岭算法分割提供产生种子的条件。

2.4.3.2  分水岭算法车牌字符分割

分水岭概念是以对图像进行三维可视化处理为基础的:其中两个是坐标,另一个是灰度级。对于这样一种“地形学”的解释,我们考虑三类点:(a)属于局部性最小值的点;(b)当一滴水放在某点的位置上的时候,水一定回下落到一个单一的最小值点;(c)当水处在某个点的位置上时,水会等概率地流向不止这样地一个最小值点。对一个特定地区域最小值,满足条件(b)的点的集合称为这个最小值的“汇水盆地”或“分水岭”。满足条件(c)的点的集合组成地形表面的峰线,术语称做“分割线”或“分水线”。

在车牌识别模块中,只需要找出字符与字符之间的“分割线”或“分水线”,就可以将车牌中的字符一一分割开来。

2.4.3.2.1 分水岭算法中种子的产生

分水岭算法中种子的选择好坏直接影响到分割的效果,在车牌识别模块中种子的产生依据车牌字符初步分割的结果产生种子。

2.4.3.2.2 分水岭算法实现

M1M2…, MR为表示图像g(x, y)的局部最小值点的坐标的集合。令C(Mi)为一个点的坐标的集合,这些点位于与局部最小值Mi(回想无论那一个汇水盆地内的点都组成一个连通分量)相联系的汇水盆地内。符号minmax代表g(x, y)的最小值和最大值。最后,令T[n]表示坐标(s, t)的集合,其中g(s, t) < n,即:

   T[n] = { (s, t) | g(s, t) < n }                                   (1)

在几何上,T[n]g(x, y)中的点的坐标集合,集合中的点均位于平面g(x, y)=n的下方。

随着水位以整数量从n = min + 1 n = max + 1不断增加,图像中的地形会被水漫过。在水位漫过地形的过程中的每一阶段,算法都需要知道处在水位之下的点的数目。从概念上来说,假设T[n]中的坐标处在g(x,y)=n平面之下,并被“标记”为黑色,所有其它的坐标被标记为白色。然后,当我们在水位以任意增量n增加的时候,从上向下观察xy平面,会看到一幅二值图像。在图像中黑色点对应于低于平面g(x, y)=n的点。这种解释对于理解下面的讨论很有帮助。

Cn(Mi)表示汇水盆地中点的坐标的集合。这个盆地与在第n阶段被淹没的最小值有关。Cn(Mi)也可以被看做由下式给出的二值图像:

         Cn(Mi) = C(Mi) && T[n]                             (2)

换句话说,如果(x, y)属于C(Mi),且(x, y)属于T[n],则在位置(x, y)Cn(Mi) = 1。否则Cn(Mi) = 0。对于这个结果几何上的解释是很简单的。我们只需在水溢出的第n个阶段使用“与(AND)”算子将T[n]中的二值图像分离出来即可。T[n]是与局部最小值Mi相联系的集合.

接下来,令C[n]表示在第n个阶段汇水盆地被水淹没的部分的合集:

               C[n] = {所有Cn(Mi)的合集}                    (3)

然后令C[max+1]为所有汇水盆地的合集

                   C[max+1] = {所有C(Mi)的合集}                (4)

可以看出处于Cn(Mi)T[n]中的元素在算法执行期间是不会被替换的,而且这两个集合中的元素的数目与n保持同步增长。因此,C[n-1]是集合C[n]的子集。根据式(3)(4)C[n]T[n]的子集,所以,C[n-1]T[n]的子集。从这个结论得出重要的结果:C[n-1]中的每个连通分量都恰好是T[n]的一个连通分量。

找寻分水线的算法开始时设定C[min+1]=T[min+1].然后算法进入递归调用,假设在第n步时,已经构造了C[n-1]。根据C[n-1]求得C[n]的过程如下:令Q代表T[n]中连通分量的集合。然后,对于每个连通分量q属于Q[n],有下列3种可能性:

(a)   qC[n-1]的交集为空;

(b)  qC[n-1]的交集包含C[n-1]中的一个连通分量;

(c)   qC[n-1]的交集包含C[n-1]多于一个的连通分量。

根据C[n-1]构造C[n]取决于这3个条件。当遇到一个新的最小值时符合条件(a),则将q并入C[n-1]构成C[n]。当q位于某些局部最小值构成的汇水盆地中时,符合条件(b),将q合并入C[n-1]构成C[n]。当遇到全部或部分分离两个或更多汇水盆地的山脊线的时候,符合条件(c)。进一步的注水会导致不同盆地的水聚合在一起,从而使水位趋于一致。因此,必须在q内建立一座水坝(如果涉及多个盆地就要建立多座水坝)以阻止盆地内的水溢出。当用3×31的结构元素膨胀qC[n-1]的交集并且需要将这种膨胀限制在q内时,一条一个象素宽的水坝就构造出来了。

2.4.3.3  调整车牌字符分割

在水坝构造出来之后,采用8领域连接搜索算法对车牌子区域进行搜索,最后分割出车牌字符区域。根据现有车牌字符的特征(字符宽度、高度,以及字符之间的间隔)调整车牌字符的大小和位置信息。

2.4.3.4 车牌字符规范化处理

对于分割出来的车牌字符,在大小上是不统一的,不利于识别处理。因此在识别之前,必须将车牌字符统一转换为一定的格式。车牌字符规范化的算法为:

 

int Stretch_Linear(Graphics::TBitmap *aDest, Graphics::TBitmap * aSrc)

{

     int sw = aSrc->Width - 1, sh =aSrc->Height - 1, dw = aDest->Width - 1, dh = aDest->Height - 1;

    int B, N, x, y;

    int nPixelSize = GetPixelSize(aDest->PixelFormat );

    BYTE * pLinePrev, *pLineNext;

    BYTE * pDest;

    BYTE * pA, *pB, *pC, *pD;

    for ( int i = 0; i <= dh; ++i )

    {

        pDest = ( BYTE *)aDest->ScanLine[i];

        y = i * sh / dh;

        N = dh - i * sh % dh;

        pLinePrev = ( BYTE *)aSrc->ScanLine[y++];

        pLineNext = ( N == dh ) ? pLinePrev : (BYTE * )aSrc->ScanLine[y];

        for ( int j = 0; j <= dw; ++j )

        {

            x = j * sw / dw * nPixelSize;

            B = dw - j * sw % dw;

            pA = pLinePrev + x;

            pB = pA + nPixelSize;

            pC = pLineNext + x;

            pD = pC + nPixelSize;

            if ( B == dw )

           {

             pB = pA;

               pD = pC;

            }

            for ( int k = 0; k < nPixelSize;++k )

               *pDest++ = ( BYTE )( int )(

                    ( B * N * ( *pA++ - *pB -*pC + *pD ) + dw * N * *pB++

                    + dh * B * *pC++ + ( dw *dh - dh * B - dw * N ) * *pD++

                    + dw * dh / 2 ) / ( dw * dh)  );

        }

    }

    return 0;

}

2.4.3.5  车牌字符的二值化

车牌字符二值化方法:1OSTU二值化方法;2、基于类间分布的二值化方法。

OSTU二值化方法原理是:图片中的象素点可以分为两类,一类为背景象素点,另一类为目标象素点。这两类象素点的不同表现在灰度值的大小不同。二值化采用的阈值,基于该阈值分割出来的背景和目标之间的质量矩最大。下面采用公式描述:

Pbuf[k] {<0=<k<256 }                       --  灰度值统计矩阵

Sum  Sum(k * Pbuf[k]) {<0=<k<256 }       --  质量矩

N    Sum(k) { 0=<k<256}                  --  质量

N1   Sum(k) { 0=<k<nThresh}              --  目标类的质量

N2   (N – N1)                            --  背景类的质量

M1   Sum(k *Pbuf[k]) / N1 {0=<k<nThresh } --  目标类的均质量矩

M2   (Sum – k*Pbuf[k]) / N2  { 0=<k<nThresh } --  背景类的均质量矩

SB    N1 * N2 * (M1 – M2) * (M1 – M2)   --  类间均质量矩

OSTU二值化算法的阈值选择是采用类间均质量矩为最大值的灰度值。

基于类间分布的二值化方法原理:在光照均匀、无噪声和无干扰的理想情况下,牌照图像中灰度变化平缓,可以假定字符灰度为M1,背景灰度为M2,且0=<M1<M2<256。假定该牌照图像中字符像素点所占比例为dRatio1,背景像素点所占比例为dRatio2, 则0.0<dRatio1dRatio2<1.0,且(dRatio1 + dRatio2)=1.0

该牌照灰度图像均值为

          M  dRatio1 * M1    dRatio2 * M2   ( M1 < M < M2 )

方差计算如下

           C dRatio1*(M1 - M)*(M1 - M) + dRatio2*(M2– M)*(M2 - M)

因此可以求出目标类和背景类的灰度值为:

       M1 M sqrt(dRatio2/dRatio1)*C

    M1 M sqrt(dRatio2/dRatio1)*C 

       M2 M sqrt(dRatio1/dRatio2)*C

    M2 M sqrt(dRatio1/dRatio2)*C 

所以可以选取粗阈值

T1  M sqrt(dRatio1/dRatio2)*C

T2  M sqrt(dRatio2/dRatio1)*C

对于背景象素点所占的比率dRatio2和目标象素点所占的比率dRatio1,可以通过统计规律获得。根据车牌统计规律,车牌中字符在区域中所占的比率为0.30.4

背景类和目标类之间的的类间方差、类内方差分别为:

  dSquare1  N1* C1 + N2* C2

  dSquare2  N1* N2 *(M1 - M)

其中C1C2为背景类和目标类的类内方差。

模式分类理论中,不同类别之间可分性度量有三个标准:散布矩阵、散度和Battacharyya距离。类间方差与类内方差的比值对应于散布矩阵,反映了各类模式在模式空间的分布情况。类间方差越大,类内方差越小,则说明分类结果类与类之间距离大,每类自身各像素性质相似度越大,即模式分类结果越好。

在基于类间分布的二值化方法中,首先选择粗阈值 T1,然后采用对粗阈值进行微调,最后得到最终的二值化阈值。

可以采用最大类间方差判别准则函数dSquare1/dSquare2,对粗阈值T1进行微调。

算法实现如下:

(1)、首先假定为白底黑字牌照,则以T1为阈值对牌照图像二值化处理;

(2)、对以T1为阈值的二值化图像进行纹理分析,判定并分析字符笔划边缘同时计算黑点所占比例关系,以此确定二值化图像效果及(1) 中的假定(为白底黑字牌照)是否正确,(若为黑底白字牌照,以T1为阈值的二值化图像鲜有笔划边缘,并且黑点比例远小于dRatio1)若假定正确,转(4);

(3)、说明(1) 假定错误,应为黑底白字牌照,则以T2为阈值对牌照图像二值化;

(4)、以T1T2为初始阈值T0,在(T0-10)=<k=<(T0+10)范围内分别计算判别准则函数S(k) =dSquare1/dSquare2,取判别准则函数S(k)为最大值的k,为最终的牌照图像二值化阈值。


 

2.5  车牌字符识别理论

2.5.1  车牌字符识别综述

现有的字符识别方法有:基于模板匹配的字符识别,基于BP神经网络的字符识别。考虑到现有识别方法的优劣性,选择基于BP神经网络的字符识别。

2.5.2  BP神经网络综述

参见附录二,神经网络理论知识。

2.5.2.1  BP神经网络的原理

神经网络具有联想记忆和分类的功能。

所谓联想记忆是指:设给定m个样本xi i=1,…m。当输入为xi时,要求输出为yi(yi可以等于xi,这就是记忆的功能)。现在,当输入为xi+delta时,其中delta是噪声,希望其输出仍为yi,这就是联想的功能,即当输入与xi有一些误差时,网络仍然能够“认得”是yi,故称之为联想。

设有一样本集K,它分成m个互不相交的类:R1R2Rm。若约定当xi属于Ri时令其输出y的第i个分量为1,其余分量为0,用式子表示为:

        yi(x)  =  1 x属于Ri时,否则为0

若给定的网络能完成上述的功能,则称对应的网络具有分类的能力。

因为神经网络有联想记忆和分类的能力,在车牌字符识别中可以采用神经网络对车牌字符进行识别。采用神经网络对车牌字符进行识别的过程如下:

(1)                采集样本,神经网络具有记忆功能,在进行车牌字符时之前大量采集车牌中出现的各类字符,记忆各类车牌字符;

(2)                训练样本,将采集到的车牌字符样本根据类别进行分类,根据神经网络的分类能力就能够对车牌字符进行分类处理,以期达到车牌字符识别;

(3)                识别车牌字符,将分割好的车牌字符作为神经网络的输入分量,与训练好的神经网络进行运算,最后输出识别结果。

2.5.2.2  BP神经网络中样本采集

对于车牌字符的采集,要求能够采集到车牌中所有字符的样本,以及车牌中每个字符在各种条件下的样本(白天与晚上,晴天与雨天,光照强与光照弱,字符有腐蚀和字符没有腐蚀)

2.5.2.3  BP神经网络中样本训练

对于样本的训练采用所有的样本集中进行训练,训练算法可以参见神经网络的相关书籍。

 

2.5.2.4  BP神经网络的识别处理

神经网络的识别过程就是对待识别字符的特征值的运算处理过程,在该过程中将特征值提供给神经网络矩阵,对输出的向量进行比较,如果采用01.0作为可行度的范围的话,就是输出向量中的分量离1.0最近的可行度最高,采用对应分量的字符作为识别出的字符。对于待处理对象不是字符集中的任一个字符,对其特征值处理之后,各个分量的值离1.0都比较远,采用阈值可以做出拒识判断。这样就可以识别出车牌中的各个字符,并能做出拒识处理。

2.6  车牌字符识别实现

2.6.1 车牌中字符结构介绍

在车牌字符的识别中,考虑到汉字与英文、数字字符的识别难度上不同,将汉字与英文、数字字符的识别分别进行处理。汉字字符具有一定的特殊性,汉字字符主要有各个省份的简称,以及地方警察、军队和国务院用到的部分汉字。以及在汉字的识别过程中,考虑到地方区域性,地方省份的简称出现率不尽相同,这样也就降低了汉字的识别难度。可以优先识别为缺省汉字。

考虑到车牌号码的组成部分。首先介绍一下各种车牌的组成结构。

定义:   ――  代表汉字

         ―― 代表英文字母

         @ ――  代表英文或数字

         ―― 代表数字

普通黄色车牌的组成结构:◎¥@@@##

普通蓝色车牌的组成结构:◎¥@@@##

黑色车牌的组成结构:    ◎¥@@@##

地方警察车牌的组成结构(白色):◎¥@@##警

地方武警车牌的组成结构:WJ##-#####

地方消防车牌的组成结构:WJ##-消####

边防武警车牌的组成结构:WJ##-边####

金融系统车牌的组成结构:WJ##-金####

海关系统车牌的组成结构:WJ##-海####

部队车牌的组成结构(白色):◎¥#####

2.6.2 字符识别流程

文本框:             车牌字符识别流程图在本方案中,是采用基于神经网络定位的识别系统。定位与识别没有严格界限,两者是相辅相成的。定位的好坏影响识别的准确率,识别的效果好坏又反过来影响定位的准确性。这样处理可以借助识别的信息反馈到定位,可以增进定位的精度;从而提高识别准确率。关于定位与识别的流程图在,车牌区域精定位小节中已经说明。

字符的识别流程见右图(车牌字符识别流程图)。在识别过程中,因为蓝色、黄色、白色和黑色车牌的组成结构不一样,因此分开进行识别处理。在采用神经网络进行识别之前,首先根据车牌颜色的特性,获得车牌颜色的信息,根据车牌颜色分别进行处理。

 

 

2.6.3 英文与数字字符识别

2.6.3.1 英文与数字神经网络结构确定

在英文和数字字符识别中,为了提高识别准确率,对英文字母和数字分别采用不同的神经网络结构,对字符进行识别;也即是英文采用英文神经网络识别,数字采用数字神经网络识别。网络结构根据各类字符的特征向量和识别输出决定,同时各网络结构将依据实际的情况决定。

对于字母和数字字符,因为都已经经过规范化处理,都规范化为40×20Pixel的网格,所以选择网络的输入层大小就依据特征的选取。字符的特征值是统计4×4的网格,同时加上横向和纵向投影的最大,总共有52各特征值。对于输出层的大小,依据识别的个数,英文神经网络的输出层为25,数字神经网络的输出层为10。隐含层大小的选择要以实际经验为准。

2.6.3.2 文本框:               英文数字识别流程图英文与数字识别实现

在车牌字符分割开来之后,在这些字符中有的是英文、数字字符,有的是汉字字符,还包含有垃圾字符。因此如何从这些字符中提取出有效的英文、数字字符,将成为识别的关键;简言之,就是如何确定英文、数字字符的位置。因此在这个过程中,采用可信度来做判断,将可信度最大的一系列字符作为车牌的有效字符。

以普通黄色或蓝色车牌字符识别为例,其余颜色车牌的英文和数字与它相仿。车牌英文与数字字符的识别流程见右图(英文数字识别流程图)

2.6.4 汉字字符识别

2.6.4.1 汉字神经网络结构确定

在车牌中出现的汉字有:

(1)各省份的简称(31)

藏,川,鄂,甘,赣,贵,桂,黑,沪,吉,冀,津,晋,京,辽,鲁,蒙,闽,宁,青,琼,陕,苏,皖,湘,新,渝,豫,粤,云,浙。

(2)港、澳、台车牌(3)

港、澳、台。

(3)各军区简称(9)

北、成,广、济,兰,南,沈,海,空。

(4)国务院部门简称(4)

辰,甲,未,寅。

(5)武警车牌(4)

警,消,金,边。

(6)学、试车牌(2)

学,试。

汉字因为笔画较多,特征值依靠统计特征难以表征出每个汉字,因此对于汉字的特征提取采用四边围特征。同时因为汉字的特殊性,汉字的识别只是在除汉字之外的字符识别成功之后,才对汉字进行处理。在英文和数字等车牌字符成功识别之后,因为车牌字符具有固定的排列顺序,因此可以准确的提取出汉字字符。提取出汉字字符之后,要对汉字字符进行规范化,汉字字符的规范化大小采用与英文、数字不一样的点阵;英文、数字规范化之后成为40×20Pixel的点阵,汉字规范化之后成为40×28Pixel的点阵。

汉字字符的点阵大小和提取汉字字符特征值的方法确定之后,汉字神经网络的输入层大小就已经确定,即汉字神经网络输入大小为120。输出层的大小依据要识别的汉字多少决定。在本节前面已经介绍车牌中出现的汉字,由此可知输出层的大小为53。汉字神经网络的隐含层大小依据实际应用情况决定。

2.6.4.2 汉字识别实现

汉字字符的识别主要是依据英文和数字字符的识别,只有在准确的识别出英文和数字字符之后,汉字识别才有可能进行。因为汉字的特殊性,汉字处于车牌字符中的最前面,在准确识别出车牌英文和数字、以及颜色之后,汉字的提取就变的容易了。在提取出汉字之后,对汉字做规范化处理,并提取出汉字的特征,采用汉字神经网络,就可以实现识别。

 汉字的识别流程见下图(汉字识别流程图)

参考文献

 

[1]张引      《基于空间分布的最大类间方差牌照图像二值化算法》

[2]冈萨雷斯  《数字图像处理》

[3]张铃      《人工神经网络理论及应用》

 

 

 

注:版权所有,盗版必究!



 

原创粉丝点击