段 莉
(重慶科創(chuàng)職業(yè)學(xué)院智能制造學(xué)院,重慶永川 402160)
基于Halcon的車牌識(shí)別是指通過識(shí)別車輛車牌來認(rèn)證車輛身份的技術(shù),它是智能交通系統(tǒng)的技術(shù)基礎(chǔ),是計(jì)算機(jī)視覺、圖像處理技術(shù)與模式識(shí)別技術(shù)的融合,是智能交通系統(tǒng)中重要的研究課題?;贖alcon的車牌識(shí)別技術(shù)是集人工智能、圖像處理、數(shù)據(jù)融合、計(jì)算機(jī)視覺、模式識(shí)別等技術(shù)為一體的復(fù)雜系統(tǒng),要求識(shí)別精度高、處理時(shí)間短。
車牌識(shí)別分為車牌定位、車牌校正、車牌分割、車牌識(shí)別和軟件平臺(tái)實(shí)現(xiàn)幾部分。車牌的定位就是通過對(duì)圖像進(jìn)行處理,使得車牌區(qū)域從拍攝的整張車輛圖相中分離出來。車牌定位主要是通過邊緣限定,面積限制等方法實(shí)現(xiàn)。車牌圖像往往由于攝像機(jī)的攝像角度不同,使得拍攝的車牌圖像產(chǎn)生一些傾斜,形成梯形或平行四邊形的車牌。這就需要對(duì)車牌進(jìn)行校正。校正主要是將這些定位好的車牌區(qū)域進(jìn)行坐標(biāo)變換,變換后的車牌圖像編程規(guī)則的矩形。車牌分割就是將校正好的車牌圖相內(nèi)的每一個(gè)字符進(jìn)行單獨(dú)分割。分割主要是采用車牌區(qū)域內(nèi)的文字的寬度進(jìn)行距離上的劃定。每個(gè)字符都將按距離被劃分出來,這樣實(shí)現(xiàn)了車牌的分割。車牌的識(shí)別是將分割好的文字進(jìn)行識(shí)別。一般都是通過程序調(diào)用已有的工具包,通過類比來實(shí)現(xiàn)文字的讀取識(shí)別。最后通過C#程序搭建處車牌自動(dòng)識(shí)別的軟件平臺(tái)。
系統(tǒng)實(shí)現(xiàn)的硬件環(huán)境以個(gè)人計(jì)算機(jī)為核心,數(shù)碼相機(jī)通過USB端口直接與電腦相連。由數(shù)碼相機(jī)拍攝采集到的原始圖像為JPEG位圖格式,分辨率640×480,需要將圖像存儲(chǔ)在PC機(jī)硬盤上,作為實(shí)驗(yàn)的原始數(shù)據(jù)。
系統(tǒng)的軟件運(yùn)行環(huán)境為MicrosoftWindows10操作系統(tǒng)。通過Halcon生成的程序都是以C#編程語言為基礎(chǔ),在VisualStudio2017集成開發(fā)環(huán)境下完成的。車牌識(shí)別系統(tǒng)結(jié)構(gòu)如圖1所示:
圖1 車牌識(shí)別系統(tǒng)結(jié)構(gòu)圖
Blob是Halcon中的分析算法。Blob分析的思想是非常簡(jiǎn)單的,即在一個(gè)圖像中相關(guān)物體的像素可以通過其灰度值來識(shí)別。Blob分析的優(yōu)點(diǎn)是靈活性非常好。
Blob分析算法思想在車牌定位識(shí)別的過程中。首先通過對(duì)初始彩色圖像進(jìn)行三通道處理,得到藍(lán)通道圖像。然后對(duì)圖像進(jìn)行二值化處理,然后應(yīng)用Blob分析,通過閾值限定,得到初步的車牌區(qū)域。最后經(jīng)過閾值限定、膨脹處理及查找坐標(biāo),除去不相干區(qū)域,最后實(shí)現(xiàn)車牌的定位,得到的最終的車牌區(qū)域。
基于Halcon的車牌識(shí)別的實(shí)現(xiàn),其每一步都是通過充分利用內(nèi)部提供的大量算子實(shí)現(xiàn)的。
(1)采集圖像。圖像獲取是在所有的機(jī)器視覺的應(yīng)用中都必須要解決的一個(gè)任務(wù)。圖像獲取設(shè)備有圖像采集卡和工業(yè)相機(jī)等。Halcon提供了與大量圖像獲取設(shè)備交互的接口。在Halcon里,圖像獲取只有簡(jiǎn)單的幾行代碼,即幾個(gè)算子調(diào)用即可實(shí)現(xiàn)圖像的獲取。
(2)處理圖像。讀取的圖像需要做一定處理,圖像中的車牌為藍(lán)底白字牌照,所以選擇將RGB彩色圖像分成紅色,綠色,藍(lán)色三個(gè)通道,以便能夠單獨(dú)處理其中的明顯的藍(lán)色通道。
(3)分割圖像。分割圖像是整個(gè)車牌識(shí)別過程中非常關(guān)鍵的一步,分割質(zhì)量的好壞直接影響后續(xù)對(duì)車牌區(qū)域的處理。圖像的分割又分成以下幾步:①閾值選擇對(duì)于每一幅圖來說,閾值可以被動(dòng)態(tài)地提取。對(duì)于上步選擇出來的紅色分量通道圖片R進(jìn)行灰度處理,閾值范圍160~255。②區(qū)域相聯(lián)。車牌圖像中被分割出來的區(qū)域有后車窗部分,車牌區(qū)域等干擾區(qū)域。運(yùn)用connection算子將選擇出來的區(qū)域進(jìn)行相聯(lián),形成相連區(qū)域ConnectedRegions。③初步選擇車牌區(qū)域。對(duì)于處理后的圖像除了車牌區(qū)域外,其他的都為干擾區(qū)域。在閾值處理后的圖像中,這些區(qū)域的形狀和大小都不一樣,于是用算子select_shape通過限定面積area和列column將車牌區(qū)域選擇出來。④車牌區(qū)域膨脹。對(duì)于得到的車牌需要進(jìn)行膨脹處理,膨脹半徑一般為3或5.5。⑤車牌區(qū)域的最終選定。車牌區(qū)域膨脹后,車牌區(qū)域的信息雖然沒丟失。但是仍存在一些邊緣不整齊的凹凸。所以要對(duì)圖像進(jìn)行進(jìn)一步的處理。⑥選定車牌字符。對(duì)于上一步得到的車牌區(qū)域還需要做進(jìn)一步的處理,即將車牌內(nèi)的字符選擇出來。用算子reduce_domain把圖像和區(qū)域結(jié)合起來,把區(qū)域當(dāng)作圖像的域來使用。然后用算子threshold對(duì)車牌區(qū)域進(jìn)行分割,得到車牌字符。閾值范圍為160~255。到此,圖像分割才算結(jié)束。從最后得到的結(jié)果可以看出,處理結(jié)果比較理想。這為下一步文字訓(xùn)練以及文字識(shí)別提供了很好的準(zhǔn)備工作。
(4)訓(xùn)練OCR。訓(xùn)練分為兩個(gè)重要的步驟:首先對(duì)每個(gè)字符選擇大量的樣本并存儲(chǔ)到所謂的訓(xùn)練文件,然后將這些文件輸入到新創(chuàng)建的OCR分類器中。
(5)顯示結(jié)果。經(jīng)過訓(xùn)練,得到訓(xùn)練結(jié)果并最終顯示車牌圖像。在利用for循環(huán)時(shí),首先利用算子set_tposition指定顯示位置,然后利用算子write_string將文字寫在指定的位置上。這樣當(dāng)for循環(huán)結(jié)束后,文字也最終顯示在窗口指定位置上。
(6)創(chuàng)建和訓(xùn)練分類器對(duì)于訓(xùn)練后的文字,需要?jiǎng)?chuàng)建一個(gè)新的分類器,存儲(chǔ)訓(xùn)練結(jié)果以便以后車牌的識(shí)別。
經(jīng)過實(shí)驗(yàn)和實(shí)時(shí)的圖像效果顯示,表明車牌的識(shí)別研究基本成功。下面主要從幾個(gè)最重要的方面分析一下該車牌識(shí)別算法通用性和可靠性。
(1)車牌定位。在車牌定位中,最關(guān)鍵的是圖像二值化后車牌區(qū)域的閾值范圍以及面積的限定。對(duì)于每一張不同的車牌圖像,可能受天氣情況、攝像機(jī)與車的距離、車的顏色以及周圍環(huán)境的影響,使得閾值參數(shù)和面積參數(shù)有些不同。這只需要修改threshold和select__shape算子中的部分參數(shù)即可準(zhǔn)確實(shí)現(xiàn)車牌的準(zhǔn)確定位。
(2)車牌分割。在車牌分割過程中,要求能夠?qū)④嚺茀^(qū)域與整張圖像完全分割出來。其中要求分割出來的車牌區(qū)域既不能有多余區(qū)域,又不能丟失必需的車牌區(qū)域。在實(shí)驗(yàn)處理過程中,可以看出車牌的分割利用字符最左上角和最右下角兩個(gè)對(duì)角點(diǎn)的坐標(biāo)將ROI區(qū)域框選出來。使用的算子是gen rectangle1,它能將車牌號(hào)碼以矩形框的形式分割顯示出來。如果選擇的車牌區(qū)域不太理想,只需要修改其中的坐標(biāo)參數(shù)即可很容易地重新選定區(qū)域,使分割達(dá)到最理想效果。
(3)文字訓(xùn)練。文字訓(xùn)練過程其實(shí)是一個(gè)簡(jiǎn)單的程序循環(huán),是一個(gè)大量的重復(fù)性的豐富分類器的過程。對(duì)于每張不同的車牌圖像,只要單獨(dú)寫入要訓(xùn)練的文字內(nèi)容即可,當(dāng)所有車牌號(hào)碼包含的漢字、字母和數(shù)字訓(xùn)練完成后,便能識(shí)別所有的車牌號(hào)碼。
本文主要對(duì)汽車牌照識(shí)別系統(tǒng)中車牌定位、字符分割、訓(xùn)練與字符識(shí)別的算法進(jìn)行研究。編程實(shí)現(xiàn)了車牌的定位、字符分割、訓(xùn)練與字符識(shí)別。本文的處理都是針對(duì)車輛的灰度圖像,灰度圖像數(shù)據(jù)量比彩色圖像小,運(yùn)算比較簡(jiǎn)單,但是彩色圖像二值化后會(huì)丟失豐富的信息。對(duì)整個(gè)系統(tǒng)的軟件還需做進(jìn)一步優(yōu)化設(shè)計(jì),提高程序的模塊化、標(biāo)準(zhǔn)化水平,使軟件設(shè)計(jì)更加合理、可靠和高效。