陳征 汪琳霞
摘 要:在提倡發(fā)展智能交通系統(tǒng)的背景下,提出了使用共享車位的方法來(lái)解決停車過(guò)程中遇到的問(wèn)題,這樣就有了共享車位鎖的誕生,然而現(xiàn)在的共享車位鎖的性能和智能程度不是很高,所以本設(shè)計(jì)研究的目的就是要通過(guò)將基于OpenCV的車牌識(shí)別技術(shù)應(yīng)用到共享車位鎖上來(lái)提高車位鎖的性能和智能程度。本設(shè)計(jì)使用Linux內(nèi)核的嵌入式處理器作為采集和處理終端,利用適用Linux系統(tǒng)的V4L2框架來(lái)驅(qū)動(dòng)攝像頭采集圖像,利用OpenCV開源庫(kù)來(lái)做圖像處理,利用字符模板匹配法來(lái)識(shí)別字符,利用識(shí)別返回的結(jié)果控制反饋模塊進(jìn)行反饋。經(jīng)測(cè)試表明:識(shí)別車牌時(shí)可以較好的識(shí)別出字母和數(shù)字,漢字的識(shí)別還要優(yōu)化,主要是字符模板匹配法的識(shí)別算法還要優(yōu)化,數(shù)據(jù)采集和圖像處理較穩(wěn)定。
關(guān)鍵詞:智能交通 共享車位 車牌識(shí)別
Application of License Plate Recognition Based on OpenCV in Parking Lock
Chen Zheng,Wang Linxia
Abstract:In the context of advocating the development of intelligent transportation systems, a method of using shared parking spaces was proposed to solve the problems encountered in the parking process, which led to the birth of shared parking locks, but the performance and intelligence of current shared parking locks is not very high. The purpose of this design research is to improve the performance and intelligence of parking locks by applying open CV-based license plate recognition technology to shared parking locks. This design makes full use of the embedded processor of the Linux kernel as the collection and processing terminal, which means the V4L2 framework of the Linux system to drive the camera to collect images, the open CV open source library for image processing, the character template matching method to identify characters, and the result of the control feedback module for feedback are adopted to. Tests show that letters and numbers can be better recognized when recognizing license plates. And the recognition of Chinese characters needs to be optimized, the recognition algorithm of the character template matching method should be optimized, and the data collection and image processing are more stable.
Key words:intelligent transportation, shared parking spaces, license plate recognition
1 研究背景簡(jiǎn)介
國(guó)內(nèi)外的現(xiàn)狀和發(fā)展趨勢(shì):
隨著經(jīng)濟(jì)的不斷發(fā)展,交通運(yùn)輸?shù)男枨蟛粩嘣黾樱斐闪巳蚱嚳偭吭诙虝r(shí)間內(nèi)呈指數(shù)上升的形勢(shì),導(dǎo)致世界各國(guó)都受到交通擁堵的困擾。在這種情況下,智能交通系統(tǒng)ITS(Intelligent Transportation Systems)應(yīng)運(yùn)而生。同時(shí)在國(guó)內(nèi)外資源的利用方面,提出了共享經(jīng)濟(jì)的理念。共享車位鎖就是在共享經(jīng)濟(jì)的理念下針對(duì)改善停車狀況而產(chǎn)生的產(chǎn)品,這一產(chǎn)品在國(guó)內(nèi)還是處在研究發(fā)展階段,大多數(shù)的共享車位鎖是通過(guò)識(shí)別二維碼或者掃描車位鎖上的二維碼來(lái)實(shí)現(xiàn)開鎖的,對(duì)于將車牌識(shí)別技術(shù)應(yīng)用于共享車位鎖上來(lái)實(shí)現(xiàn)更加智能地控制車位鎖的研究還目前還沒(méi)有。
目前,中國(guó)智慧停車行業(yè)整體格局相對(duì)分散,主要以智能停車設(shè)備商、智能停車解決方案提供商、互聯(lián)網(wǎng)停車企業(yè)為主,在經(jīng)過(guò)筆者的調(diào)研以后,發(fā)現(xiàn)很多的商場(chǎng)、醫(yī)院等公共區(qū)域的停車位非常緊張,這給人們出行帶來(lái)極大的不便,人們?cè)诔鲂械臅r(shí)候會(huì)因?yàn)橥\囯y的問(wèn)題選擇公共交通甚至不出行,這樣的現(xiàn)狀會(huì)在以后變得越發(fā)突出。
2 研究意義
本課題通過(guò)對(duì)車位停車的充分調(diào)研,在車位共享方面使用互聯(lián)網(wǎng)相關(guān)技術(shù)解決以下問(wèn)題:(1)公共停車位緊缺而私人停車位大量空閑兩個(gè)現(xiàn)象并存的問(wèn)題;(2)改善違章停車問(wèn)題;(3)地下車庫(kù)掃碼停車遇到的網(wǎng)絡(luò)信號(hào)差、無(wú)法掃碼等問(wèn)題?,F(xiàn)在的車位鎖的性能和智能程度不是很高,所以本設(shè)計(jì)研究的意義就是通過(guò)將車牌識(shí)別技術(shù)應(yīng)用到車位鎖上來(lái)提高車位鎖的性能和智能程度。
3 車牌識(shí)別在車位鎖上的應(yīng)用現(xiàn)狀和發(fā)展
目前,將車牌識(shí)別應(yīng)用在車位鎖上的非常少,常見(jiàn)的都是在小區(qū)或者商場(chǎng)的停車場(chǎng)門口設(shè)置一個(gè)欄桿,識(shí)別到正確車牌后,欄桿升起,放車輛通行。還有一種就是掃碼的車位鎖,這種智能車位鎖是開放式停車場(chǎng)場(chǎng)地車輛收費(fèi)的專用設(shè)備,它可與道閘控制系統(tǒng)等配套使用,也可單獨(dú)使用實(shí)現(xiàn)臨時(shí)停車無(wú)人值守自助掃碼繳費(fèi)、預(yù)約車位停車等功能。
4 軟硬件及框架設(shè)計(jì)
4.1 軟件平臺(tái)開發(fā)環(huán)境選取
軟件平臺(tái)選擇Linux平臺(tái),效果穩(wěn)定后后移植到ARM平臺(tái)上,通過(guò)OpenCV和ARM交叉編譯的OpenCV庫(kù)來(lái)保證移植后的穩(wěn)定性。
4.2 硬件需求
本設(shè)計(jì)選擇了一塊搭載了Cortex-A53內(nèi)核的處理器。圖像采集模塊選擇性能較好的USB高清攝像頭。模擬的升降車位鎖模塊反應(yīng)靈敏的繼電器。
4.3 框架設(shè)計(jì)
本系統(tǒng)主要是由三個(gè)模塊組成,分別是圖像采集模塊、圖像識(shí)別和處理模塊、結(jié)果模擬與反饋模塊。其中圖像采集模塊是采集圖像并保存圖像為特定格式的圖片作為下一個(gè)模塊的輸入,然后是圖像識(shí)別和處理模塊,處理圖像并返回識(shí)別結(jié)果或錯(cuò)誤,最后是結(jié)果的反饋,當(dāng)識(shí)別出車牌后,識(shí)別的結(jié)果要與事先存在開發(fā)板里的車牌數(shù)據(jù)匹配從而得到車牌識(shí)別的結(jié)果。
5 圖像識(shí)別與處理程序設(shè)計(jì)
本設(shè)計(jì)的圖像識(shí)別與處理程序設(shè)計(jì),主要有六個(gè)步驟,其中第一個(gè)步驟是圖像的預(yù)處理,預(yù)處理包含兩步,分別是載入圖像和灰度化處理,處理完之后要進(jìn)行第二個(gè)步驟,是將灰度化的圖像二值化處理,然后第三步,進(jìn)行邊緣檢測(cè)。第四步是將字符分割出來(lái)得到單個(gè)字符的圖片,第五步是將得到的單個(gè)字符圖片和字符模板匹配識(shí)別出字符,第六步返回結(jié)果。
6 圖像預(yù)處理
6.1 圖像載入
圖像的預(yù)處理,一般包含圖像的載入和圖像的灰度化處理。
在OpenCV中,有可以給廣大開發(fā)者直接調(diào)用的接口,用來(lái)載入圖像,但是在即使知道是很簡(jiǎn)單的接口調(diào)用,也需要了解其中的原理,首先,要了解圖像的本質(zhì)是什么,圖像是由一個(gè)一個(gè)的像素點(diǎn)組成的,對(duì)圖像的操作,也是基于像素點(diǎn)的基礎(chǔ)上來(lái)操作的,所以還要了解像素點(diǎn)的特點(diǎn),像素點(diǎn)一般都至少有三個(gè)分量,叫做RGB分量。在載入圖像的時(shí)候,要將該圖像的每一個(gè)像素點(diǎn)的分量的值保存起來(lái)。
6.2 灰度化處理
圖像的灰度化處理可以在圖像載入之后立即處理,對(duì)于一些圖片識(shí)別來(lái)說(shuō),使用灰度圖來(lái)識(shí)別會(huì)比用彩色圖來(lái)的容易,識(shí)別效果也更為準(zhǔn)確,這也是為什么要將圖片灰度化處理的一部分原因,在進(jìn)行灰度化的處理的時(shí)候,本設(shè)計(jì)用OpenCV里的接口imread來(lái)處理,通過(guò)給imread函數(shù)的第二個(gè)參數(shù)給CV_LOAD_IMAGE_GRAYSCALE值來(lái)將載入的圖像直接灰度化,這樣就可以獲得一張灰度化后的圖片,一樣可以用mat類定義的對(duì)象保存起來(lái),方便后續(xù)對(duì)灰度圖的處理。
在圖像預(yù)處理之后,就要對(duì)灰度化后的圖像進(jìn)行二值化處理,二值化指的是將圖像的灰度值變成0或者255,也就是要把圖像變成黑和白兩種顏色,這樣就可以顯現(xiàn)出很強(qiáng)的對(duì)比,沒(méi)有中間過(guò)渡的顏色,這樣的話有一些特征就容易被凸顯出來(lái),當(dāng)然,在某些極端情況下,也會(huì)導(dǎo)致特征的丟失,本設(shè)計(jì)識(shí)別的車牌是需要提取一些特征的,所以需要用到二值化,讓車牌的特征信息更加的明顯。
6.3 二值化
6.3.1 OTSU二值化
OTSU二值化方法,這是一種自動(dòng)計(jì)算閾值的二值化算法,由于發(fā)明的人叫Nobuyuki Otsu,所以被命名為OTSU二值化,這種方法是通過(guò)統(tǒng)計(jì)學(xué)的方法來(lái)計(jì)算閾值,步驟如下:
(1)初始化統(tǒng)計(jì)的參數(shù),灰度級(jí)的確立。(2)統(tǒng)計(jì)灰度級(jí)中每個(gè)像素在整幅圖中的個(gè)數(shù)。(3)計(jì)算每個(gè)灰度級(jí)占圖形中的概率分布。(4)遍歷灰度級(jí)[0,255],計(jì)算出最大類間方差下的閾值。(5)分別計(jì)算各類的平均灰度。(6)依次找到最大類間方差下的閾值。
6.3.2 threshold二值化
threshold二值化方法,這是不同于OTSU二值化用統(tǒng)計(jì)學(xué)的方法,它只是通過(guò)不同的5種閾值初始化來(lái)找到想要的閾值,在本設(shè)計(jì)中初始化閾值參數(shù)的時(shí)候,將閾值參數(shù)初始化為130左右,初始化閾值的二值化處理類型選擇了二進(jìn)制閾值,對(duì)應(yīng)的值為0,還有其他四種類型,分別為:反二進(jìn)制閾值,對(duì)應(yīng)的值為1;截?cái)嚅撝担瑢?duì)應(yīng)的值為2;0閾值,對(duì)應(yīng)的值為3;反0閾值,對(duì)應(yīng)的值為4;調(diào)用threshold方法為threshold( srcGray, desImage, thres, maxVal, threshTpye);thres參數(shù)是指閾值參數(shù)初始化的值,本設(shè)計(jì)測(cè)試多次之后,給thres的值是130,maxVal一般是設(shè)置成255,threshType是二值化處理類型的參數(shù),給的0,意思是二進(jìn)制閾值。
6.4 邊緣檢測(cè)
邊緣檢測(cè)主要是檢測(cè)車牌的邊緣,常見(jiàn)的邊緣檢測(cè)方法有差分邊緣檢測(cè),拉普拉斯邊緣檢測(cè)等。
本設(shè)計(jì)中檢測(cè)出來(lái)的車牌要符合預(yù)設(shè)的寬高比,這樣后面進(jìn)行字符分割的時(shí)候才能準(zhǔn)確一些,同時(shí)邊緣檢測(cè)后提取出來(lái)的車牌也要越清晰越好,所以使用差分邊緣檢測(cè)和拉普拉斯邊緣檢測(cè)會(huì)比較好。
差分邊緣檢測(cè)主要是要計(jì)算兩種邊緣,分別是水平邊緣和垂直邊緣,這樣疊加出來(lái)的邊緣才會(huì)更加清晰,而拉普拉斯邊緣檢測(cè)則類似于銳化的原理,對(duì)于邊界點(diǎn)更加敏感,主要目的是突出圖像的細(xì)節(jié)或者增強(qiáng)模糊圖形的細(xì)節(jié),可實(shí)現(xiàn)灰度反差增強(qiáng),同時(shí)使圖像更加清晰,對(duì)于圖像中灰度變化劇烈的區(qū)域,拉普拉斯邊緣檢測(cè)法可以使他們變得更加對(duì)比強(qiáng)烈,而OpenCV中已經(jīng)把拉普拉斯邊緣檢測(cè)的接口做好了,可以直接調(diào)用Laplacian()函數(shù)來(lái)突出圖像的邊緣。
6.5 字符分割
在做字符分割之前,要確定好很多的初始數(shù)值或數(shù)值區(qū)間,以確保分割出來(lái)的字符是想要的效果,比如一個(gè)字符它的長(zhǎng)度大概占多少個(gè)像素點(diǎn),寬大概要占多少像素點(diǎn),這些都是要考慮的。主要要考慮到的有:
在將要確定的值都用宏定義確定之后,就可以開始做字符分割的步驟了,首先需要進(jìn)行寬高比例檢測(cè),再進(jìn)行面積比例檢測(cè),最后才是分割字符。
6.6 識(shí)別結(jié)果返回
在分割出每一個(gè)字符之后,本設(shè)計(jì)的識(shí)別方法是把該字符和車牌的字符模板特征值來(lái)匹配識(shí)別,然后返回結(jié)果。比如0字符的字符模板特征值是{16,19,10,12,10,10,15,18,110,3,2,2,3,3,3},而相對(duì)應(yīng)的漢字也有對(duì)應(yīng)的字符模板特征值,如字符“湘”對(duì)應(yīng)的字符模板特征值是{19,27,20,34,19,36,24,37,216,4,4,7,13,28,3},匹配之后返回識(shí)別結(jié)果。
7 結(jié)語(yǔ)
在這里要感謝一下我的導(dǎo)師汪琳霞老師督促我完成這個(gè)研究,對(duì)我?guī)椭级?,雖然目前這個(gè)研究還不夠完善,但是只要我們一步一個(gè)腳印的走下去就可以得到我們想要的結(jié)果,共勉!
基金項(xiàng)目:湖南省大學(xué)生研究性學(xué)習(xí)和創(chuàng)新性實(shí)驗(yàn)計(jì)劃項(xiàng)目《車牌識(shí)別技術(shù)在共享車位鎖上的應(yīng)用研究與實(shí)現(xiàn)》項(xiàng)目編號(hào):2018XJXZ113。
參考文獻(xiàn):
[1]曾瑞韜.基于RFID智能停車位管理系統(tǒng)開發(fā)[D].南京:東南大學(xué),2016.
[2]李彬.嵌入式車牌識(shí)別系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].西安:西安工業(yè)大學(xué),2013.
[3]莊鑫博.BP神經(jīng)網(wǎng)絡(luò)_OpenCV_QT_車牌識(shí)別[D].成都:成都信息工程學(xué)院,2014.