《基于模板匹配的車牌號識別算法的設(shè)計(jì)與實(shí)現(xiàn)》14000字_第1頁
《基于模板匹配的車牌號識別算法的設(shè)計(jì)與實(shí)現(xiàn)》14000字_第2頁
《基于模板匹配的車牌號識別算法的設(shè)計(jì)與實(shí)現(xiàn)》14000字_第3頁
《基于模板匹配的車牌號識別算法的設(shè)計(jì)與實(shí)現(xiàn)》14000字_第4頁
《基于模板匹配的車牌號識別算法的設(shè)計(jì)與實(shí)現(xiàn)》14000字_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

III基于模板匹配的車牌號識別算法的設(shè)計(jì)與實(shí)現(xiàn)摘要隨著信息技術(shù)、網(wǎng)絡(luò)通訊技術(shù)的不斷發(fā)展,智能交通系統(tǒng)在生活中的應(yīng)用越來越廣泛。汽車車牌識別技術(shù)具有廣泛的應(yīng)用前景,這項(xiàng)技術(shù)通常應(yīng)用于小區(qū)門口、停車場收費(fèi)處、以及學(xué)校中的車速檢測設(shè)備等場景。為了實(shí)現(xiàn)車牌號識別這一目標(biāo),我們基于中國大陸藍(lán)色汽車車牌特征,提出了一套基于模板匹配的車牌號識別算法。車牌識別算法分為圖像預(yù)處理、車牌定位、字符分割和字符識別四部分,本文對上述四個(gè)步驟進(jìn)行了研究和改進(jìn)。首先,基于數(shù)學(xué)形態(tài)學(xué)利用Sobel邊緣檢測算子對圖像進(jìn)行邊緣檢測,并且提出了一種改進(jìn)差分的算法實(shí)現(xiàn)了車牌的定位從而大大提高了車牌定位的準(zhǔn)確率。其次,使用更自適應(yīng)的Otsu算法對車牌圖像進(jìn)行二值化。最后,采用閾值分割的方法對車牌字符進(jìn)行分割,并且根據(jù)模板匹配算法建立了模板庫并且采用逐個(gè)像素進(jìn)行比較的方法實(shí)現(xiàn)了對車牌字符的識別。根據(jù)上述算法在MATLAB上搭建了一個(gè)人機(jī)互動的GUI系統(tǒng)進(jìn)行測試,通過測試平臺對70張車牌圖像進(jìn)行識別。測試結(jié)果表明,本課題設(shè)計(jì)的算法在車牌定位上非常精準(zhǔn),并且可以實(shí)現(xiàn)對車牌字符進(jìn)行識別的功能。關(guān)鍵詞:車牌識別,車牌定位,模板匹配,字符識別,圖像處理目錄TOC\o"1-3"\h\u250981緒論 1226661.1研究背景和意義 1132801.2國內(nèi)外研究現(xiàn)狀 296772車牌識別系統(tǒng)分析 4171282.1測試系統(tǒng)的搭建 4222462.2主要的研究方法 4197582.3本文的內(nèi)容與結(jié)構(gòu)安排 5140803圖像的預(yù)處理 6105573.1圖像的預(yù)處理綜述 6169893.2圖像的灰度變換 6273043.3圖像的邊緣檢測 733813.4邊緣圖像的形態(tài)學(xué)處理 8122714車牌區(qū)域的定位與處理 13211334.1車牌定位算法的綜述 1332044.2白色像素點(diǎn)的統(tǒng)計(jì) 13293444.3車牌定位算法 13225194.3.1閾值比較算法 1396944.3.2差分選取算法 14132094.4車牌圖像的處理 1642304.4.1車牌圖像的灰度化 16251064.4.2Ostu算法實(shí)現(xiàn)二值化 1611254.4.3車牌圖像的形態(tài)學(xué)處理 18104255字符分割與識別 20269485.1字符的分割 20288575.2圖像的歸一化 20189525.3模板庫的建立 21200345.4模板匹配法識別字符 21132036測試結(jié)果 2316207總結(jié)與展望 2415331參考文獻(xiàn) 251緒論研究背景和意義改革開放以來,隨著國民經(jīng)濟(jì)的不斷發(fā)展,人民生活水平也在不斷提高,由于城市規(guī)模的不斷加大以及人員物資流通的日益密切,私家車數(shù)量迅速增加,交通問題也日益突出。隨著社會生產(chǎn)力的發(fā)展與科學(xué)技術(shù)的提高,基于現(xiàn)代計(jì)算機(jī)技術(shù)的智能理念已經(jīng)滲透進(jìn)社會生活的各個(gè)領(lǐng)域,由此衍生出的智能交通系統(tǒng)(IntelligentTransportationSystem,ITS)就是一個(gè)應(yīng)用場景極其廣泛、發(fā)展勢頭十分迅猛的一個(gè)領(lǐng)域。為了減輕交通壓力,提高車輛管理效率,提出了汽車車牌的識別技術(shù)。汽車車牌的識別技術(shù)是實(shí)現(xiàn)智能交通管理的關(guān)鍵技術(shù)。該算法基于特定目標(biāo)的計(jì)算機(jī)視覺系統(tǒng),是智能交通應(yīng)用中計(jì)算機(jī)視覺和模式識別技術(shù)領(lǐng)域的重要研究課題之一。該技術(shù)可廣泛應(yīng)用于公路、橋梁、隧道、城市交通車輛管理、智能社區(qū)、智能停車管理、車牌驗(yàn)證、被盜車輛跟蹤檢測、交通統(tǒng)計(jì)等領(lǐng)域,具有廣闊的應(yīng)用前景。如圖1.2所示,在鄭州大學(xué)校園內(nèi)就有相應(yīng)的測試裝置,其中也運(yùn)用了車牌識別技術(shù)。當(dāng)前,世界上所有國家都在進(jìn)行適用于本國的車牌自動識別技術(shù)的研究。在許多發(fā)達(dá)國家地區(qū)中已經(jīng)有基于傳感器基礎(chǔ)上的自動識別系統(tǒng)問世,但是部署這些系統(tǒng)的成本相對較高而且與我國實(shí)際的交通環(huán)境不同,通常無法滿足我們的城市和國內(nèi)市場的需求。雖然也有國產(chǎn)的產(chǎn)品正在使用中,但進(jìn)一步處理仍需要人工識別,因此追求高效準(zhǔn)確的車牌識別技術(shù)仍然是當(dāng)今高科技領(lǐng)域中最熱門的主題之一。一套好的車牌識別系統(tǒng)具有重要的社會,經(jīng)濟(jì)和學(xué)術(shù)意義。我國私家車的車牌號命名相對來說較為規(guī)范。一般由七位組成:第一位是省份簡稱,第二位是英文大寫字母,后五位為英文大寫字母與阿拉伯?dāng)?shù)字的排列組合如圖1.1所示。抓住這一特性可以很好地幫助我們簡化車牌識別工作。圖1.1私家車車牌號示例1.2國內(nèi)外研究現(xiàn)狀經(jīng)筆者前期閱讀和思考,初步認(rèn)為探討研究“基于模板匹配的車牌號識別算法實(shí)現(xiàn)”的路徑如下:首先是定性研究,界定此類畢業(yè)設(shè)計(jì)離不開圖像處理的研究;其次是有關(guān)字符識別的研究,進(jìn)而引出車牌的定位以及車牌識別的研究,以及字符分割與字符識別的實(shí)現(xiàn)。其中字符識別為研究重點(diǎn)。筆者以“車牌識別”為主題關(guān)鍵詞在中國知網(wǎng)進(jìn)行全文檢索,得到自1990年至2020年論文數(shù)據(jù),包括學(xué)術(shù)期刊、學(xué)位論文(碩博)、會議報(bào)紙等各類文獻(xiàn),呈現(xiàn)出數(shù)量大、研究內(nèi)容分布廣的特點(diǎn),尤其是2019年產(chǎn)出高達(dá)445篇文獻(xiàn)(如圖1.2)。圖1.2文獻(xiàn)年份與數(shù)量分析文獻(xiàn)主題內(nèi)容(如圖1.3),筆者發(fā)現(xiàn)研究集中于“字符識別”、“算法研究”相關(guān)內(nèi)容。其次是關(guān)于車牌識別以及定位,字符分割的討論??梢园l(fā)現(xiàn)有關(guān)字符識別算法的討論一直是車牌識別這一項(xiàng)目的重點(diǎn)問題。并且,在瀏覽文獻(xiàn)的時(shí)候也注意到由于實(shí)際情況中還會有例如黃色車牌、一些特種車輛的車牌,包括新興的新能源車輛的綠色車牌的相關(guān)的車牌識別方法的研究也在逐年增長。總結(jié)來說,現(xiàn)在車牌字符識別的研究在技術(shù)上已經(jīng)取得了很大的突破,但是距離實(shí)用化要求還有一定的距離,許多新方法還僅停留在理論上或者受到約束限定,車牌字符識別的研究仍然有很長的路要走。圖1.3文獻(xiàn)主題分布車牌識別過程通常需要以下(圖1.4)幾個(gè)處理過程組成:圖1.4車牌識別的處理流程由于本文研究的側(cè)重在于圖像采集之后的工作,因此研究的對象是對于拍攝好的車牌圖像。圖像處理也稱為圖像預(yù)處理,是指對原圖進(jìn)行一系列數(shù)字圖像處理操作從而為后續(xù)車牌定位做準(zhǔn)備。車牌定位是從車輛圖像中準(zhǔn)確地找到駕照的位置,車牌位置的定位是從車輛圖像中準(zhǔn)確地找到駕照的位置并且準(zhǔn)確分割了車牌區(qū)域。因此,車牌區(qū)域的確定是影響系統(tǒng)性能的重要因素之一。車牌的準(zhǔn)確定位直接影響字符分割和字符識別的準(zhǔn)確性,并直接影響車牌識別系統(tǒng)的效率。車輛圖像從自然環(huán)境中收集,車牌的成像條件和自然環(huán)境中的背景一般沒有控制,特別是光照條件和復(fù)雜的背景信息給目標(biāo)搜索帶來了很大的困難,加上拍攝不同的距離、角度,車牌區(qū)域很難區(qū)分不同的干擾。因此,車牌定位技術(shù)一直是一件難點(diǎn),是車牌識別技術(shù)中的關(guān)鍵技術(shù)[]。在字符分割的步驟中,最快的分割方法是模板匹配算法,但它在很大程度上依賴于車牌二值圖像的精度,因此我們一般采用垂直投影法或者根據(jù)像素點(diǎn)數(shù)目設(shè)置閾值來切割從而提高準(zhǔn)確度。車牌字符切割完畢后,是車牌的字符識別環(huán)節(jié),這也是決定車牌識別結(jié)果的臨門一腳?,F(xiàn)在,車牌的字符識別技術(shù)非常成熟,通常我們可以采用神經(jīng)網(wǎng)絡(luò)法或模板匹配法等算法。但是無論使用哪種算法,都會提到最經(jīng)典的模板匹配法,因此,本文所采用的思路是利用模板匹配法來實(shí)現(xiàn)車牌的字符識別。2車牌識別系統(tǒng)分析2.1測試系統(tǒng)的搭建本系統(tǒng)的開發(fā)是基于MATLAB平臺,通過查閱資料以及學(xué)習(xí)前人開發(fā)經(jīng)驗(yàn)得知,使用MATLAB平臺并基于其強(qiáng)大的圖像處理能力可以很好地對車牌識別進(jìn)行仿真。因此將開發(fā)的平臺定為MATLAB并且主要的編程語言為M語言。MATLAB內(nèi)置有可以實(shí)現(xiàn)人機(jī)互動的GUI功能,我們通過制作一個(gè)GUI頁面來進(jìn)行算法的測試如圖2.1所示。圖2.1GUI頁面該系統(tǒng)用坐標(biāo)軸來顯示圖片,用文本框輸出識別結(jié)果。由于這一系統(tǒng)中很關(guān)鍵的一步是車牌定位,我們將其單獨(dú)列出來。2.2主要的研究方法在確定了研究對象為車牌號識別之后。筆者在知網(wǎng)上查找了有關(guān)車牌識別的期刊與學(xué)位論文并下載閱讀;此外,筆者也參考了CSDN論壇上有關(guān)車牌識別前人的開發(fā)經(jīng)驗(yàn)以及在知乎上查閱了有關(guān)這一項(xiàng)目的技術(shù)討論。我在學(xué)校圖書館借閱了有關(guān)基于MATLAB圖像處理的參考書并學(xué)習(xí)圖像處理的基礎(chǔ)知識。同時(shí),為了順利在MATLAB平臺上實(shí)現(xiàn)仿真,我也開始學(xué)習(xí)M語言的編程方法。我一方面在參考書上對照案例進(jìn)行學(xué)習(xí)分析,并在自己的電腦上實(shí)現(xiàn)對應(yīng)的功能,從而鍛煉自己的編程能力。同時(shí),我也通過Bilibili彈幕視頻網(wǎng)上的學(xué)習(xí)視頻對照學(xué)習(xí)。另一方面,我在參照前人開發(fā)經(jīng)驗(yàn)閱讀代碼的同時(shí)并學(xué)習(xí)著編程技巧以及熟練語言的使用。在開發(fā)的具體過程中,我采用的方法是利用MATLAB寫測試程序嘗試的方法。我通過閱讀各種文獻(xiàn)(包括期刊,學(xué)位論文以及調(diào)動互聯(lián)網(wǎng)資源),尋找可能適合本課題的方法,對其進(jìn)行學(xué)習(xí)跟研究。并嘗試根據(jù)描述的算法來對其進(jìn)行編程仿真試驗(yàn),從而遴選出合適的方法。因?yàn)樵趯?shí)際開發(fā)過程中,針對于不同的車牌照片采用的方法不盡相同,這種具體情況具體分析的方法往往很受用。2.3本文的內(nèi)容與結(jié)構(gòu)安排本文總體分為六章,在編排的順序上按照機(jī)動車車牌識別的處理過程劃分:第一章主要講解了車牌識別技術(shù)的興起、主要的研究內(nèi)容以及國內(nèi)外發(fā)展的現(xiàn)狀,從而導(dǎo)出我們的研究社會背景與意義;第二章對研究通過課題基于模板匹配算法的車牌識別系統(tǒng)需要進(jìn)行一個(gè)整體介紹和分析,還有我在對這個(gè)課題研究的方法。第三章主要內(nèi)容介紹了對采集到的車牌圖像進(jìn)行預(yù)處理的過程,我們首先應(yīng)該對采集到的圖片進(jìn)行數(shù)字圖像的處理,這一步是為我們提取車牌區(qū)域做準(zhǔn)備。這中間運(yùn)用了Sobel算子進(jìn)行邊緣檢測以及利用數(shù)學(xué)形態(tài)學(xué)來進(jìn)行的數(shù)字圖像處理。第四章是有關(guān)如何選出汽車牌照的具體位置。這里首先介紹了利用閾值進(jìn)行判斷的算法但是發(fā)現(xiàn)了一些存在的問題,為此,我們提出了一種創(chuàng)新的算法來確定車牌的位置。通過仿真結(jié)果來看,具有顯著的提升。我們隨后對原圖進(jìn)行裁剪并進(jìn)行相關(guān)的形態(tài)學(xué)處理,為后續(xù)工作做準(zhǔn)備。第五章是介紹了對提取到的車牌進(jìn)行字符分割以及利用模板匹配算法對其進(jìn)行字符的識別。我們根據(jù)第四章閾值判斷的算法,提出利用統(tǒng)計(jì)白色像素點(diǎn)的位置對車牌進(jìn)行字符分割,并將分割好的圖像寫入文件。由于本文采用的是模板匹配的方法,首先建立了一個(gè)進(jìn)行模板匹配的樣本庫。我們讓裁剪過的字符與每個(gè)樣板進(jìn)行作差,從而找到與字符最接近的樣板,從而達(dá)到識別的目的。第六章為本系統(tǒng)的測試結(jié)果以及分析,我們挑選了70張圖片在系統(tǒng)中進(jìn)行檢測,分別統(tǒng)計(jì)了車牌可以成功定位的數(shù)量以及可以成功識別正確的車牌數(shù)量。并對這一結(jié)果進(jìn)行分析。我們發(fā)現(xiàn)該算法對采集到的圖片像素要求較高,在滿足圖片質(zhì)量較好的前提下,車牌定位的成功率非常高。第七章將對畢業(yè)論文設(shè)計(jì)中進(jìn)行一些個(gè)人因素分析,并總結(jié)課題的研究開發(fā)工作,闡述系統(tǒng)的不足和優(yōu)點(diǎn)。同時(shí)根據(jù)結(jié)果分析提出了一種現(xiàn)實(shí)生活中可行的應(yīng)用場景;參考文獻(xiàn)中列舉了本文寫作過程中所參考借鑒的文獻(xiàn)資料;致謝中表達(dá)了大學(xué)四年以來的一些感悟與感恩。3圖像的預(yù)處理3.1圖像的預(yù)處理綜述我們通過MATLAB打開的圖片是自然拍攝的彩色圖像。由于自然拍攝的彩色圖像會受到拍攝角度、周圍環(huán)境、明暗程度的影響以及存在很大多余的干擾信息(例如汽車的車身等等),并不適合直接進(jìn)行車牌號的識別工作。因此,我們在識別車牌號之前需要先對汽車車牌進(jìn)行定位。而圖像預(yù)處理的目的是為了去除冗余信息,勾勒出汽車車牌邊緣,從而為后面我們可以得到車牌的具體位置并且分割字符進(jìn)行識別做準(zhǔn)備。3.2圖像的灰度變換彩色的數(shù)字圖像是由像素點(diǎn)拼接在一起組成的,其中每個(gè)像素點(diǎn)通常都由R(紅色)、G(綠色)、B(藍(lán)色)這三種顏色根據(jù)不同的配比組成??梢园裄、G、B類比為三維空間直角坐標(biāo)系X、Y、Z三個(gè)坐標(biāo)軸一樣,而其中每一個(gè)像素點(diǎn)都落在這一個(gè)坐標(biāo)系中。我們將這種以R、G、B三種顏色作為三個(gè)坐標(biāo)軸所構(gòu)成的色彩空間稱為RGB色彩空間。每一副圖畫中包含的像素點(diǎn)都包含著其RGB信息,這會使得在我們處理圖像的過程中會有很大冗余信息,而且還會加大存儲開銷從而導(dǎo)致運(yùn)行速度較慢。為了解決上述問題,我們在打開一副彩色圖像時(shí),首先應(yīng)該將其轉(zhuǎn)換為灰度圖(GrayScaleImage)。由上述內(nèi)容我們得知,彩色圖像中有R、G、B三個(gè)色彩通道,而對于灰度圖來說它只有一個(gè)灰度通道。在灰度圖中,每一個(gè)像素點(diǎn)所包含的信息只有對應(yīng)的灰度(共有0~255共256個(gè)灰度等級,其中255對應(yīng)全白,0對應(yīng)全黑)。這樣一來便使得圖像存儲的信息大大減少了,方便后續(xù)處理。圖像的灰度變換常見的有以下幾種算法[]:平均值法:使轉(zhuǎn)化后的灰度值為原RGB的平均值,計(jì)算公式如(3.2.1)所示:Gray=Red+Green+Blue3這種算法最為簡單,也可以生成效果不錯(cuò)灰度圖,易于維護(hù)和優(yōu)化。最大值法:使轉(zhuǎn)花后的灰度值為原RGB中的最大值,計(jì)算公式如(3.2.2)所示:Gray=MAX{Red,Green,Blue}(3.2.2)這種算法也被成為分解算法,可以認(rèn)為是去飽和更簡單一種的方式。分解是基于每一個(gè)像素的,只取RGB的最大值或者最小值。由于其取的是最大值,所相對來說亮度比較亮。加權(quán)平均值法:加權(quán)平均值算法考慮到了人眼的感知,由于人眼對不同顏色的光線感知不同且人類對紅綠藍(lán)三色的感知程度依次是:Green>Red>Blue,所以我們在計(jì)算平均值的時(shí)候考慮了這個(gè)因素,對RGB三個(gè)分量在計(jì)算時(shí)賦予不同的權(quán)值,其計(jì)算公式如(3.2.3)所示:Gray=0.2898?R+0.5870?G+0.1140?B3利用這個(gè)公式進(jìn)行灰度轉(zhuǎn)換的效果較為理想。在MATLAB內(nèi)置的函數(shù)中rgb2gray()便是根據(jù)加權(quán)平均值算法原理實(shí)現(xiàn)圖像灰度轉(zhuǎn)換的,因此我們使用這一函數(shù)來將彩色的車牌圖像進(jìn)行轉(zhuǎn)換為灰度圖,得到的效果圖如圖3.2所示:圖3.2將彩色圖像轉(zhuǎn)換為灰度圖由MATLAB仿真結(jié)果來看,根據(jù)加權(quán)平均值算法來看我們可以得到滿意的灰度圖。3.3圖像的邊緣檢測通過物體對于電磁波的反射我們可以觀察到各種各樣的物體,由于電磁波的反射特性與物體本身有關(guān),因此在物體的交界處(即物體邊緣)灰度圖的灰度會有明顯的不連貫性,我們稱之為邊緣。邊緣像素是灰度圖里灰度突變的像素,邊緣檢測就是用來檢測這些邊緣像素[]。對于灰度的突變我們可以通過梯度來進(jìn)行檢測,梯度用?f來表示,其基于向量的定義式如公式(3.3.1)所示?f≡grad(f)≡利用梯度我們可以得到圖像f在位置(x,y)處最大變化率的方向。求梯度時(shí)首先要求的是一階導(dǎo)數(shù),相應(yīng)地,梯度算子對應(yīng)的是一階導(dǎo)數(shù)算子。Sobel算子是一種很常見的一階算子,Sobel算子處理像素時(shí),考察上、下、左、右相鄰像素點(diǎn)灰度的加權(quán)差,與之接近的鄰點(diǎn)的權(quán)值較大Sobel算子采用水平和垂直兩個(gè)方向卷積模板與圖像進(jìn)行卷積運(yùn)算。如圖3.3.1所示為Sobel算子模板,其中圖(a)是一副圖像的3×3區(qū)域,圖(b)和(c)所示為Sobel算子水平和垂直梯度模板[]。圖3.3.1圖像3×3區(qū)域和Sobel算子模板將點(diǎn)(x,y)處的像素點(diǎn)進(jìn)行Sobel算子運(yùn)算得到的結(jié)果記為S(x,y),選取一個(gè)閾值th,當(dāng)S(x,y)>th時(shí),判定該點(diǎn)為灰度圖的邊緣點(diǎn)。將所有滿足于該條件的點(diǎn)組成一個(gè)集合,記為{S(x,y)},則這個(gè)集合即為邊緣圖像。Sobel算子具備一階算子算法簡單,處理速度快的優(yōu)點(diǎn),同時(shí)由于使用了加權(quán)平均算法,因此對圖像中的一些噪聲具有一定的抑制能力。為了實(shí)現(xiàn)用Sobel算子來檢測邊緣,我們調(diào)用MATLAB中的函數(shù)edge(),edge()函數(shù)可以對輸入進(jìn)來的灰度圖或二值圖來進(jìn)行邊緣檢測,并輸出尺寸大小與原圖一致的二值圖,將識別到得到邊緣像素點(diǎn)記為1(即白色)其他部分記為0(即黑色)利用MATLAB來進(jìn)行Sobel算子邊緣檢測仿真的結(jié)果如圖3.3.2所示:圖3.3.2灰度圖以及進(jìn)行Sobel算子檢測后的二值圖由MATLAB仿真結(jié)果來看,利用Sobel算子邊緣檢測算法我們可以將灰度圖里顯示的物體邊緣進(jìn)行良好的提取。3.4邊緣圖像的形態(tài)學(xué)處理3.4.1形態(tài)學(xué)的相關(guān)綜述數(shù)學(xué)形態(tài)學(xué)處理(MathematicalMorphologyProcessing)簡稱為形態(tài)學(xué)處理,是數(shù)字圖像處理技術(shù)中一種很重要也是非常常見的處理手段之一。主要用于從圖像中提取對表達(dá)和描繪區(qū)域形狀有意義的圖像分量,使后續(xù)的識別工作能夠抓住目標(biāo)對象最為本質(zhì)的形狀特征[]。我們在對車牌圖像進(jìn)行提取邊緣處理后的圖像中有很多邊緣線,我們需要對這些邊緣線進(jìn)行處理。提取出有用的線條、去除無用的線條并且組成連貫的區(qū)域,從而便于我們進(jìn)行下一步的車牌具體定位工作。綜上所述,在定位車牌的具體位置之前,我們需要對其進(jìn)行形態(tài)學(xué)處理。形態(tài)學(xué)的基本思想是利用結(jié)構(gòu)元來測量或提取輸入圖像中相應(yīng)的形狀或特征,以便進(jìn)一步進(jìn)行圖像分析和目標(biāo)識別,以下的過程中均是利用這種思想來實(shí)現(xiàn)對圖像的處理。所謂結(jié)構(gòu)元,就是一個(gè)形狀和大小已知的像素點(diǎn)集,如圖3.4.1所示。通常還要為結(jié)構(gòu)元定義一個(gè)中心,我們將這個(gè)中心點(diǎn)稱為O點(diǎn)(即圖3.4.1中涂紫色的部分)。圖3.4.1結(jié)構(gòu)元的示意圖3.4.1圖像的腐蝕我們在對車牌進(jìn)行Sobel算子進(jìn)行邊緣檢測后得到的圖像如圖3.4.2所示:圖3.4.2Sobel算子邊緣檢測后的圖像由圖像我們可以看出:Sobel算子邊緣檢測不僅將車牌的輪廓提取了出來,而且還把車身上的一些例如保險(xiǎn)杠以及汽車標(biāo)志、尾燈等等其他物體的邊緣提取出來了,這些邊緣線并不是我們所期望得到的。為了將這些我們不希望有的邊緣線去掉,我們將對圖像進(jìn)行腐蝕操作。在數(shù)學(xué)形態(tài)學(xué)中,腐蝕(Erosion)的作用是將物體的邊界點(diǎn)消除掉,就像是物體被“腐蝕”了一樣。圖像腐蝕的原理圖如圖3.4.3所示:圖3.4.3腐蝕的示意圖將結(jié)構(gòu)元作用在圖像上,并且讓結(jié)構(gòu)元O點(diǎn)位置對應(yīng)像素點(diǎn)的灰度值等于結(jié)構(gòu)元值為1的像素點(diǎn)區(qū)域(即圖3.4.3中深藍(lán)色的部分)對應(yīng)圖像區(qū)域的最小值,根據(jù)上述的腐蝕原理的示意圖來看,如果結(jié)構(gòu)元素深藍(lán)色部分存在對應(yīng)原圖像中淺色部分,則設(shè)置O點(diǎn)為淺色(這個(gè)處理過程有點(diǎn)像布爾邏輯中的與運(yùn)算)。這樣一來,就好像原圖像被“腐蝕”了一樣[]。利用MATLAB中的函數(shù)imerode()可以實(shí)現(xiàn)對算子邊緣檢測后的圖像進(jìn)行腐蝕操作,其結(jié)果如圖3.4.4所示。我們可以看到,大多數(shù)無關(guān)的邊緣線都成功被腐蝕掉了,但是對于車牌區(qū)域來說影響并不是很大。盡管如此,我們依舊不能進(jìn)行車牌定位的處理,因?yàn)楝F(xiàn)在我們只得到了一些較為分散的區(qū)域。為此,我們還需要對其進(jìn)行平滑處理,使其成為一個(gè)一個(gè)貫通的區(qū)域,從而方便我們繼續(xù)鎖定車牌的具體位置。圖3.4.4進(jìn)行腐蝕后的圖像3.4.2圖像的平滑如上一節(jié)所述我們需要將進(jìn)行腐蝕后的圖像中分散的區(qū)域連在一起形成貫通的區(qū)域,為此我們需要對圖像進(jìn)行閉運(yùn)算。對一副圖像,我們先對其進(jìn)行一次膨脹處理后再對其進(jìn)行一次腐蝕處理,我們將這種處理方式稱為閉運(yùn)算(Closing)。閉運(yùn)算的基本原理如圖3.4.5所示。圖3.4.5圖像的閉運(yùn)算在上一小節(jié)中,我們提到了腐蝕,與腐蝕相對應(yīng)的處理方式是膨脹(Dilation)。恰恰相反,膨脹是結(jié)構(gòu)元O點(diǎn)位置對應(yīng)像素點(diǎn)的灰度值等于結(jié)構(gòu)元值為1的像素點(diǎn)區(qū)域的最大值。從圖圖3.4.5可以看出,對圖像進(jìn)行閉運(yùn)算可以使原本分散的區(qū)域連貫起來。對于我們上一節(jié)提到的圖像區(qū)域較為分散的問題閉運(yùn)算可使輪廓線更光滑,因?yàn)樗梢韵M窄的間斷和長細(xì)的鴻溝和小的空洞,并填補(bǔ)輪廓線中的斷裂,從而得到我們想要的貫通的區(qū)域。我們根據(jù)這一理論,在MATLAB上進(jìn)行仿真,結(jié)果如圖3.4.6所示:圖3.4.6進(jìn)行閉運(yùn)算后的圖像由仿真結(jié)果我們可以看出,對腐蝕后的圖像進(jìn)行閉運(yùn)算可以很好的得到連貫的區(qū)域,從而達(dá)到實(shí)現(xiàn)對輪廓平滑的效果。并且我們也非常欣喜的看到,在圖像的正中央白色區(qū)域,已經(jīng)有了若隱若現(xiàn)的矩形車牌的雛形。3.4.3移除小對象在進(jìn)行完圖像的閉運(yùn)算后,我們雖然可喜地看見了二值圖中矩形車牌的區(qū)域,但是這里依舊有很多我們并不期望出現(xiàn)的區(qū)域。這些期望之外的區(qū)域如同噪聲一樣會影響著我們后續(xù)的處理,因此在開始給車牌進(jìn)行定位的時(shí)候我們需要進(jìn)行一步“降噪”處理。這里我們調(diào)用了MATLAB中的bwareaopen()函數(shù),對上一步的圖像進(jìn)行移除小對象處理。這里我將參數(shù)設(shè)為2000,也就是說,聚團(tuán)灰度值小于2000的部分將會被移除出去[]。MATLAB仿真得到的結(jié)果圖如圖3.4.7所示:圖3.4.7移除小對象的效果圖在圖片的左半部分是我們在上一節(jié)得到的圖像,而右半部分是我們移除小對象之后得到的圖像。此時(shí),矩形車牌的區(qū)域已經(jīng)展現(xiàn)在我們眼前了。此時(shí),我們圖像預(yù)處理的過程也結(jié)束了,我們得到了相對來說較為容易處理的圖像,從而為車牌定位打下了良好的鋪墊。4車牌區(qū)域的定位與處理4.1車牌定位算法的綜述在上一章中,我們對圖像進(jìn)行了預(yù)處理并得到了一個(gè)有著連貫白色區(qū)域的二值圖,如圖3.4.7的圖像是較為理想的效果,我們只需確定白色區(qū)域即可。但是也會有如圖4.1.1所示的情況出現(xiàn)。圖4.1.1移除小對象后仍有連通區(qū)域在圖4.1.1中,我們可以清楚的看到在這里還有一些其他并不是目標(biāo)車牌的區(qū)域,為此我們需要精確的定位出我們的目標(biāo)區(qū)域從而對原圖進(jìn)行切割。為了達(dá)成我們的目的,我們想到統(tǒng)計(jì)二值圖中白色像素點(diǎn)的個(gè)數(shù),然后再進(jìn)行一系列的操作來選取我們目標(biāo)車牌具體的方位。4.2白色像素點(diǎn)的統(tǒng)計(jì)我們接下來要介紹兩種算法來對車牌進(jìn)行定位,但是在介紹這兩種算法之前,我們需要進(jìn)行一步統(tǒng)計(jì)像素點(diǎn)的工作,因?yàn)檫@兩種算法都是基于白色像素點(diǎn)統(tǒng)計(jì)這個(gè)工作的基礎(chǔ)上展開的。根據(jù)二值圖的知識我們得知,在二值圖中黑色是0白色是1。根據(jù)這個(gè)原理我們只需要將二值圖中值為1的像素點(diǎn)統(tǒng)計(jì)完畢就相當(dāng)于是把白色區(qū)域的像素點(diǎn)總數(shù)完成了一次統(tǒng)計(jì)。根據(jù)上述原理,我們創(chuàng)建矩陣White_y和White_x用來分別存儲白色像素點(diǎn)的值(其中White_y是Y方向的值,White_x是X方向的值)。將整幅圖像的像素點(diǎn)一一與1比較,若像素點(diǎn)值為1,則White_y(White_x)的值加1。經(jīng)過行與列兩個(gè)循環(huán)后,我們便可以統(tǒng)計(jì)出白色像素點(diǎn)的數(shù)目。我們這樣做的目的是為了接下來確定上下邊界和左右邊界的位置,White_y和White_x在這里更像是將一幅圖像在Y方向和X方向的投影。4.3車牌定位算法4.3.1閾值比較算法關(guān)于如何選取車牌具體區(qū)域這一問題,我們的中心思路是找到車牌區(qū)域的上下左右四個(gè)邊界的具體位置(分別記為Y1、Y2、X1、X2)后,利用MATLAB中選取區(qū)域的指令I(lǐng)(Y1:Y2:X1:X2)來剪裁圖像。這一小節(jié)我們采用了閾值比較的算法來確定Y1、Y2、X1、X2四個(gè)變量的坐標(biāo),閾值比較的算法是我們常見的一種算法,它的基本原理是我們設(shè)置一個(gè)閾值進(jìn)行判斷,若某行(列)中為1的元素大于等于我們設(shè)置的一個(gè)閾值,我們將其視為車牌區(qū)域。算法具體實(shí)現(xiàn)的步驟如下:我們首先找到圖像中白色像素點(diǎn)最多的一行。[maxyMaxY]=max(White_y),其中maxy為向量White_y的元素中的最大值,MaxY為該值得索引(相當(dāng)于一個(gè)地址)。我們這么做的目的是找Y1以及Y2起始的位置,一般來說,白色像素點(diǎn)最高的那一行是位于車牌區(qū)域內(nèi)的。這相當(dāng)于我們在車牌區(qū)域中找了一條線,然后分別向上下兩個(gè)方向延伸。對Y1這個(gè)變量來說,我們對其進(jìn)行一個(gè)判定,只要其滿足PY1處的白色像素點(diǎn)值大于5(我們設(shè)置的閾值)并且Y1大于1(即Y1在上邊界線下),我們讓其向上移動一行,即Y1=Y1-1(對于整幅圖像來說,最上面的邊界地址是1,最下面的是y,即圖像的寬)對Y2這個(gè)變量來說,我們對其進(jìn)行一個(gè)判定,只要其滿足Y2處的白色像素點(diǎn)值大于5并且Y2小于y(即Y2在下邊界線上),我們讓其向下移動一行,即Y2=Y2+1。通過這種方法我們可以得到車牌區(qū)域的上下邊界位置Y1和Y2,同理,我們也可以得到車牌區(qū)域的左右位置X1、X2。這里要特別注意一點(diǎn),由于車牌是矩形,每一列的像素點(diǎn)數(shù)目要小于每一行的像素點(diǎn)數(shù)目。我們不能再使用5作為閾值,而將閾值設(shè)為3。如前文所述,我們在得到Y(jié)1、Y2、X1、X2這四個(gè)邊界后,利用MATLAB中選取區(qū)域的指令I(lǐng)(Y1:Y2:X1:X2)來剪裁圖像。但是直接這樣效果并不好,我們這里簡單的做了一些微調(diào),讓這個(gè)區(qū)域稍微大了一些。在MATLAB平臺上進(jìn)行仿真,結(jié)果如圖4.3.1所示:圖4.3.1定位裁剪后的車牌圖像4.3.2差分選取算法根據(jù)4.3.1節(jié)所介紹的閾值比較算法來說,在一定程度上我們確實(shí)可以定位成功車牌的位置。但是其效果并不是很穩(wěn)定,如圖4.3.2所示,仍然會出現(xiàn)切割錯(cuò)誤的情況,從而影響后續(xù)切割。圖4.3.2定位不成功的車牌圖像我們分析其出現(xiàn)的原因,發(fā)現(xiàn)其移除小對象的時(shí)候,將車牌與干擾區(qū)域連通在了一起,如圖4.3.3所示:圖4.3.3干擾區(qū)域與車牌區(qū)域的連通我們想要的是矩形的車牌區(qū)域,但是由于右上方多出來了一塊。根據(jù)4.3.1節(jié)通過設(shè)置閾值來判斷車牌區(qū)域的算法來看,由于僅僅考慮了閾值而沒有考慮到形狀問題,我們將那一塊區(qū)域錯(cuò)誤地當(dāng)成了車牌區(qū)域,這也是這一算法的缺點(diǎn)。這節(jié)我們介紹的差分選取算法就是為了解決這一問題提出的。由于我國現(xiàn)行的車牌均為矩形,在二值化圖像中我們也是為了找矩形的空白區(qū)域。我們通過觀察圖像后發(fā)現(xiàn),對于二值圖像來說,矩形區(qū)域的邊界像素值往往會從零個(gè)或僅有幾個(gè)白色像素點(diǎn)一下子躍變很多跟白色像素點(diǎn)。這一特性在數(shù)學(xué)上由差分可以表現(xiàn)出來,在MATLAB中差分就是計(jì)算矩陣的上下相鄰行的差值。我們知道白色的矩形區(qū)域內(nèi)的像素值為1,黑色區(qū)域像素值為0。這樣一來,對于上邊界而言,其差分值為1;下邊界來看,其差分值為-1。根據(jù)這一原理我們設(shè)計(jì)算法,步驟如下:我們找到Y(jié)方向上差分的最大值,將其地址記為Y1找到差分的最小值,將其記為Y2進(jìn)行一些微調(diào)X方向位置的確認(rèn)也同理。這一算法非常簡潔明了,在MATLAB中我們對其進(jìn)行測試,效果如圖4.3.4所示:圖4.3.4差分選取法截取的車牌圖像我們可以很清楚的看見,相比較于圖4.3.2,采用了差分選取算法后得到的圖像更為準(zhǔn)確。這種方法充分考慮了我們選取區(qū)域的形狀,并將其轉(zhuǎn)換為數(shù)學(xué)中的差分算法,正好彌補(bǔ)了之前算法的缺點(diǎn)。4.4車牌圖像的處理4.4.1車牌圖像的灰度化由于在4.3節(jié)中的車牌定位處理后我們得到的圖像是彩色圖像,在這里我們依舊要進(jìn)行一次灰度化處理。在前面3.2節(jié)中我們敘述了圖像的灰度化處理,這里我們應(yīng)該明確一下為什么要進(jìn)行兩次相同的操作?以及這兩次操作可不可以合并在一起?在回答上面的問題之前,我們首先要清楚這兩次灰度化的處理目的?;叶然菫榱巳コ哂嘈畔?、減少存儲空間、提高運(yùn)行效率。我們在對彩色圖像進(jìn)行處理之前都應(yīng)該對其進(jìn)行灰度化處理,第一次灰度化處理的對象是我們捕獲到的照片,目的是為了后面進(jìn)行車牌區(qū)域的定位;第二次灰度化處理是針對于車牌的圖像,目的是為了進(jìn)行車牌字符的識別。因此,我們可以看出來為什么我們要進(jìn)行兩次的灰度化處理。由于兩次灰度化處理的目的跟對象均不同,故也不能合并在一起進(jìn)行操作。灰度化的圖像如圖4.4.1所示:圖4.4.1車牌灰度圖像4.4.2Ostu算法實(shí)現(xiàn)二值化二值化就是將灰度圖轉(zhuǎn)換為二值圖的過程,二值化的目的是一方面為了減少計(jì)算量(因?yàn)槎祱D的每個(gè)像素點(diǎn)的值為0或者1),另一方面是為了選取對象,留下來我們感興趣的部分(這個(gè)過程有點(diǎn)像濾波)。二值化是針對于灰度圖來進(jìn)行處理的,由于灰度圖中每個(gè)像素點(diǎn)的值為灰度0~255中的某個(gè)具體數(shù)值,二值化的過程就是我們設(shè)置一個(gè)閾值來判斷[]。若某點(diǎn)處的灰度值大于閾值的為0(黑)或255(白),使圖像成為二值黑白圖。其中閾值可固定,也可自適應(yīng)閾值,二值化的核心就是圍繞這個(gè)閾值展開的。常見的閾值選取方法有平均值法、直方圖法(雙峰法)、迭代最佳閾值法、自適應(yīng)二值法等等。其中比較常見的自適應(yīng)二值法是Ostu法,由于其在車牌識別這一項(xiàng)目中跟其他算法比起來具有顯著優(yōu)勢,我們選用Ostu法作為我們的二值算法[]。Ostu算法,也稱大津算法。Ostu法是一種灰度圖像自適應(yīng)閾值分割算法,是日本學(xué)者大津(Ostu)于1979年提出,又稱類間方差閾值分割法。Ostu法根據(jù)灰度圖的灰度分布特性選取一個(gè)閾值來將圖像分為前景和背景兩部分。前景是我們分割出來的部分,也就是我們想保留的部分(同樣是一種濾波的思想)。分割前景與背景的閾值是由類方差求出的,我們根據(jù)類方差的數(shù)學(xué)知識知道,構(gòu)成圖像的成分差距越大,其相應(yīng)像素點(diǎn)的灰度值的類方差也就越大。部分目標(biāo)錯(cuò)分為背景或部分背景錯(cuò)分為目標(biāo)都會導(dǎo)致兩部分差別變小。因此,使類間方差最大的分割意味著錯(cuò)誤分割的概率最小[]。Ostu算法的基本原理如下[]:Ostu算法是基于灰度圖像對應(yīng)的直方圖,假設(shè)圖像共有L個(gè)灰度級,灰度級值為i的像素點(diǎn)個(gè)數(shù)為ni,那么直方圖的分布為:

p其中N是像素點(diǎn)總數(shù),pi設(shè)灰度值t為分割前景與背景的閾值,它將整個(gè)圖像分為了兩個(gè)區(qū)域:一類是灰度值0~t像素點(diǎn)組成的背景區(qū)域A,以及灰度值t~L-1像素點(diǎn)組成的前景區(qū)域B。其中前景和背景出現(xiàn)的的概率如公式(4.4.2)以及公式(4.4.3)所示:pApB背景(A)與前景(B)的灰度均值為:ωAωB則圖像總的灰度值為:ω0由此,我們可以得到類方差:σ2Ostu算法求出的閾值就是讓σ2MATLAB為我們提供了求Ostu閾值的函數(shù)graythresh(),對灰度圖使用這個(gè)函數(shù)進(jìn)行處理便可以得到Ostu閾值。從而配合二值化函數(shù)im2bw()使用,就成功實(shí)現(xiàn)了Ostu算法來對圖像進(jìn)行二值化。仿真結(jié)果如圖4.4.2所示:圖4.4.2Ostu算法實(shí)現(xiàn)二值化4.4.3車牌圖像的形態(tài)學(xué)處理為了便于我們下一步進(jìn)行字符的切割,我們要對其作出一些形態(tài)學(xué)處理。有關(guān)形態(tài)學(xué)處理,在前面的3.4節(jié)已經(jīng)介紹過很多了。這一小節(jié)中我們對二值化過后的車牌圖像分別進(jìn)行均值濾波以及腐蝕或膨脹。我們首先對其進(jìn)行中值濾波來消除噪點(diǎn)。圖4.4.3為均值濾波前的圖像,圖4.4.4為均值濾波后的圖像,如下所示:圖4.4.3均值濾波前圖4.4.4均值濾波后我們對濾波后的圖像進(jìn)行腐蝕或膨脹處理,這樣做的目的是使字符更加清晰。因?yàn)槲覀冊趯嚺茍D像進(jìn)行二值化以及中值濾波的時(shí)候難免會使字符有毛邊或者是缺陷,我們計(jì)算白色區(qū)域與黑色區(qū)域的比值,若小于我們設(shè)置的一個(gè)閾值,則進(jìn)行膨脹操作,否則對其進(jìn)行腐蝕。這一步相當(dāng)于是一個(gè)字符的平滑處理,其結(jié)果如圖4.4.5所示:圖4.4.5膨脹或腐蝕后在進(jìn)行了以上的形態(tài)學(xué)處理后,我們得到了一個(gè)較為容易處理的車牌區(qū)域二值圖,接下來我們要對其進(jìn)行字符的分割與識別。5字符分割與識別5.1字符的分割我們在第四章中得到了形態(tài)學(xué)處理后的車牌圖像,現(xiàn)在我們應(yīng)該想辦法對其進(jìn)行字符識別。如果我們直接進(jìn)行七位車牌號的識別的話,同時(shí)進(jìn)行運(yùn)算過多而且非常容易產(chǎn)生錯(cuò)誤,也沒有好的識別方法,為此我們采用了先將車牌號碼的每一位字符切割出來逐位進(jìn)行檢測。這樣使得識別效率與準(zhǔn)確度大大加強(qiáng)。分割車牌字符最快的方法是根據(jù)車牌的標(biāo)準(zhǔn)尺寸來切割的方法。通過從左到右掃描校正后的車牌二值圖像,使用圖5.1.1作為一個(gè)切割模板(其中H為車牌字符高度),該方法可以解決二進(jìn)制車牌字符粘貼和鉚釘問題,但是它在很大程度上依賴于車牌二進(jìn)制圖像的準(zhǔn)確性和標(biāo)準(zhǔn)化。如果車牌有輕微變形,車牌分割將會出現(xiàn)問題。圖5.1.1切割模板我們根據(jù)第四章車牌定位的經(jīng)驗(yàn),可以考慮用閾值法來切割字符:還是通過首先統(tǒng)計(jì)出每一列的車牌像素點(diǎn)數(shù)目并且設(shè)置一個(gè)閾值去判斷字符邊界。在車牌上的每個(gè)字符左右邊緣,像素點(diǎn)數(shù)目會有跳變,通過找到合適范圍內(nèi)的跳變來確定字符邊界。根據(jù)確定好的邊界就可以進(jìn)行裁剪[]。5.2圖像的歸一化我們根據(jù)上面的步驟可以將車牌的漢字以及各位的數(shù)字和字母的位置找到從而對其進(jìn)行剪切,這些剪切好的圖片是尺寸不一的。我們根據(jù)模板匹配的思想(5.4節(jié)會講到)要對其進(jìn)行歸一化處理,即讓裁剪過后的圖片大小尺寸相等(長寬比為2:1,這里選取的像素大小為40*20),然后我們利用imwrite()函數(shù)寫入裁剪后的圖片,將其存儲在與模板庫相同的問件夾下。對其依次命名為1——7來代表車牌的七位數(shù)字。裁剪后寫入的漢字、字母、數(shù)字如圖5.2.1所示:圖5.3.1裁剪過的漢字、字母以及數(shù)字5.3模板庫的建立在中國大陸,車牌號的組成共有七位字符組成。首位是代表省份的簡稱,第二位為字母代表著該省對應(yīng)的市級行政區(qū),剩下五位由數(shù)字和字母隨機(jī)排列組合構(gòu)成。由于神經(jīng)網(wǎng)絡(luò)方法需要對多個(gè)樣本進(jìn)行多次訓(xùn)練,而且中國規(guī)定的車牌字符相對整潔規(guī)范,因此本系統(tǒng)選擇了一種簡單快速的模板匹配方法。首先,對字符進(jìn)行特征提取,并創(chuàng)建模板庫。我們搭建模板庫的目的就是將所有裁剪好的漢字、字母、數(shù)字與模板庫中的模板比對,從而輸出對應(yīng)位的字符。為此我們需要建立模板庫,模板庫建立包含我國各個(gè)省份的簡稱,26個(gè)大寫英文字母以及0-9共10個(gè)數(shù)字。但是我們考慮實(shí)際情況下進(jìn)行模板匹配時(shí),由于切割中的漢字、字母、數(shù)字可能會發(fā)生變形或者扭曲或者由于車牌本身上存在污漬以及在拍攝以及車牌形態(tài)學(xué)處理存在噪點(diǎn)等等情況,我們應(yīng)該對模板庫里各個(gè)字符的模板圖片進(jìn)行一些處理。我們通常采用的方法是采用平均值法將該字符多張樣本圖片取平均值得到。模板庫如圖5.3所示:圖5.3模板庫值得一提的是,這里的圖片由于每一個(gè)像素點(diǎn)都保存為.bmp的后綴格式,這是由于.jpg是壓縮存儲圖像的,這會降低圖像的質(zhì)量。而以.bmp為后綴的格式可以很好的保存每個(gè)像素點(diǎn)的像素值,從而使比對結(jié)果更加準(zhǔn)確[]。5.4模板匹配法識別字符我們現(xiàn)在得到了像素大小完全相等切割好的字符圖像與模板庫。根據(jù)車牌的命名特征,第一位為漢字,將其與模板庫中的漢字進(jìn)行對比;第二位是大寫英文字母,將其與模板庫中的英文字母進(jìn)行對比;剩下的五位為英文字母與數(shù)字的組合,將其與模板庫中的數(shù)字與英文字母進(jìn)行對比[]。這個(gè)是我們進(jìn)行識別字符的主要思路,關(guān)鍵是找待測圖像與模板的比對方法。我們在5.2節(jié)中得到了待測車牌每一位字符切割后并且歸一化后的圖像,并將其寫入我們的文件夾中,在5.3節(jié)中我們建立模板庫,里面存儲了所有可能出現(xiàn)的字符。我們現(xiàn)在的任務(wù)就是根據(jù)待測圖片來選取其對應(yīng)的模板圖像。我們這里采用一種很簡單的比對方式:由于待測圖像與模板圖像均為二值圖,進(jìn)行線性計(jì)算特別是加減法非常方便,我們讓待測圖像每一個(gè)像素點(diǎn)與每個(gè)模板庫中的模板圖像的對應(yīng)像素點(diǎn)(其具有相同的位置信息)做差后存儲在一個(gè)40*20的矩陣之中。我們隨后統(tǒng)計(jì)該矩陣中有多少非0的像素點(diǎn),由于非0的像素點(diǎn)越多的二值圖像代表待測圖像與模板圖像的差異越大。我們將與待測圖像差異最小的模板視為對應(yīng)模板,并以字符串的形式輸出結(jié)果[]。MATLAB上仿真結(jié)果如圖5.4所示:圖5.4檢測結(jié)果可以看出我們是可以成功的識別出該車牌的車牌號碼。6測試結(jié)果本系統(tǒng)在網(wǎng)上隨機(jī)選取了70張照片,將其導(dǎo)入本測試系統(tǒng)之中,其測試結(jié)果如表6.1所示:表6.1測試結(jié)果測試項(xiàng)目測試結(jié)果(成功/失?。┏晒β蕡D片導(dǎo)入70/0100.00%車牌定位69/198.57%字符識別61/987.14%由測試結(jié)果可以看出:每個(gè)圖片都可以成功導(dǎo)入;車牌定位成功率較高,在測試的70張圖片中僅有一個(gè)圖片未能成功定位;在對車牌的字符識別這一項(xiàng)目中,有61張圖片可以成功識別出來,對于可以成功定位的69中圖片中,可以成功識別的成功率為88.41%,總的來看識別成功率較高,該方法識別車牌字符是較為可靠的,基本滿足要求。對于未能成功定位車牌位置的車牌來看,該車牌圖片由于拍攝逆光較為模糊。因此這一算法的成功實(shí)現(xiàn)是依靠于像素較高的圖片。同時(shí),在未能成功識別字符的車牌中往往是其中某些位產(chǎn)生錯(cuò)誤,如圖6.1所示:圖6.1識別錯(cuò)誤的情況我們同時(shí)發(fā)現(xiàn)在車牌的后五位中英文字母I經(jīng)常與數(shù)字1產(chǎn)生識別錯(cuò)誤,同時(shí),4與A也會偶爾發(fā)生如此錯(cuò)誤。7總結(jié)與展望本文主要介紹了基于模板匹配法來實(shí)現(xiàn)機(jī)動車的車牌識別,該系統(tǒng)通過對采集到的車牌圖像進(jìn)行預(yù)處理、車牌定位、字符切割與識別來達(dá)成車牌號碼識別這一目標(biāo)功能。相對于傳統(tǒng)的模板匹配法的車牌識別,這套算法有很多優(yōu)勢,其中提出了一種差分的車牌定位方法,這種方法使車牌定位成功率大幅度提高,在圖片情況較好的情況下,定位成功率接近100%。根據(jù)第六章測試結(jié)果來看,我們對該算法的實(shí)際應(yīng)用提出了一些想法可供考慮:由于車牌識別的錯(cuò)誤結(jié)果并非識別不出

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論