農林漁牧網

您現在的位置是:首頁 > 林業

滿足你的好奇心——車牌識別過程

2022-04-01由 職談人生 發表于 林業

長方形的寬和長如何區分

開車的朋友都知道,我們無論去停車場還是上下高速,只要有攝像頭和欄杆的地方,基本上都需要識別你的車牌。我們普通人無需去了解車牌的識別過程,但還是有很多網友想了解自己的車牌是如何被識別的。

滿足你的好奇心——車牌識別過程

車牌識別及收費系統

在講述車牌識別過程之前,筆者要先說一下高速路口的ETC是一套依賴RFID技術的電子識別裝置。這種識別技術,是透過射頻技術,去識別貼在汽車前擋風或者其他便於RFID讀寫端識別的位置上的電子標籤來識別和收費的。因此ETC和車牌識別系統是兩套系統,因為車牌識別系統不承擔充值和消費功能,因此ETC就應運而生。

滿足你的好奇心——車牌識別過程

ETC電子車牌、繳費系統

這其中還有另外一個原因,就是車速較高時,車牌識別系統的攝像頭排拍到的照片會模糊影響識別。而如果安裝高速攝像頭(每秒可以拍攝的圖片幀數遠遠大於24幀),這個成本會很高,不利於普及。

下面我們介紹一下車牌識別系統的工作過程,講述過程中我們儘量不使用專業術語,以求讓大家能夠更容易理解。

1、車輛識別

在拍照之前,當然是要識別車輛確實是進入了攝像頭的最佳焦距位置了,車牌識別系統才會採集車輛的影象。所以,識別車輛就是車牌識別的第一步。那麼,如何識別車輛呢?

有很多辦法,其中

紅外法是常用的辦法

。因為攝像頭和系統是被動採集資料的,所以它不知道什麼時候該拍照。當車輛進入拍攝區域,紅外射線會被車輛遮擋,這個時候攝像頭和系統聯動,就會拍下車輛的照片,以供後續車牌識別之用。當然了,這種簡單的紅外遮擋法測是否有車輛進入,人或者其他物體遮擋了紅外線,也會誘發拍照。

滿足你的好奇心——車牌識別過程

帶紅外探測的攝像頭

好在,為了檢測到底是車輛進入範圍還是其他異物進入,紅外裝置會按照車的寬度來設定,多個紅外射線被遮擋,寬度與車輛吻合,才會誘發拍照。

第二種辦法就是軟體識別,攝像頭不停地拍照,交給系統去判斷。原理很簡單,因為沒有車輛時,拍的照片是固定的。撐死了也就白天一幅圖、晚上一幅圖、下雨一幅圖、陰天一幅圖等。有了基礎的圖,就可以區分有車輛進入地圖了。

有人說這樣的容錯率也太低了,很容易出錯。是的,這的確容易出錯,所以軟體端做了進一步的技術深入:車輛輪廓識別。車輛輪廓識別與車牌識別的輪廓識別原理是一樣的,可以參考下面車牌輪廓識別部分。

2、拍照

對進入有效焦距範圍的車輛拍攝照片,這一步很容易理解。車牌識別系統的軟體端會根據車輛進入的影片來擷取圖片,或者直接拍攝圖片。獲取照片後,提供給識別系統備用。

3、圖片初級處理——灰度化、二值化

大家都知道,灰色是介於白色和黑色之間的顏色,而且這個灰色深淺不一樣,所以白色和黑色之間的灰色就有很多。這顏色一多,計算機就眼花繚亂了。所以呢,乾脆把圖片二值化。啥叫二值化呢?就是讓圖片只有黑色和白色,就是隻有兩個顏色值,顧名思義把圖片搞成黑白二色的過程就是二值化。再形象的比喻一下,就是熊貓化!在計算機RGB顏色空間內,白色就是255,黑色就是0,其他顏色就是在這0-255之間了。

滿足你的好奇心——車牌識別過程

灰度化和二值化後的車輛圖片

有人問了,紅色是搞成白色還是黑色?黃色搞成白色還是黑色?您別問了,在二值化過程中,會對圖片中每一個畫素點進行判斷,根據設定的值,例如160。大於160的全部白色,小於160的全部黑色。

4、圖片降噪

什麼叫降噪呢,就好比是你在說話,旁邊一電鋸一直在吱吱呀呀地響。這時候,你跟鄰居說話,就要注意區分電鋸噪音還是鄰居說的話了。

滿足你的好奇心——車牌識別過程

二值化圖片降噪

同樣的道理,圖片二值化後,照片裡可能紅橙黃綠藍靛紫七色俱全啊,這你一二值化,顏色深淺不一樣的自然就會出現黑白斑斑點點的。所以,我們就要根據這些斑點的顏色偏差以及數量來決定是不是給它們反色一下。也就是白變黑,黑變白。

5、圖形檢索,定位車牌

圖片處理到這一步,重點來了——車牌檢索。動腦筋的朋友可能已經意識到了,車牌是規則的長方形,我們只要找二值化後圖片裡的長方形就好了。問題來了,你找長方形,問題是有些車輛的撒熱窗就是長方形。愛動腦筋的小夥伴已經注意到了,車牌的長寬比與車身其他位置的形狀長寬比不同。

掌握了上面的基本常識,那麼我們距離找到車牌就更近了。計算機掃描整個二值化的圖片,由左到右,由上到下,把顏色從黑到白或者由白到黑的畫素全部記錄下來。然後根據這些畫素來計算哪個區域是長方形,並且符合車牌的比例。

滿足你的好奇心——車牌識別過程

從原圖擷取車牌

如何判斷是不是車牌呢?很簡單,對該區域再來一波掃描。因為是二值化圖片,如果有車牌號,那就一定會有黑白變化,尤其是縱向方向。這樣我們就縮小了範圍,就能夠很快找到車牌。

6、車牌字元切割

在上一步中,我們成功找到了車牌,並把它從原圖(不是二值化的圖)截取出來了。對擷取的車牌圖片進行上一步的灰度化、二值化、降噪處理,尤其是邊緣降噪。如果降噪後,干擾的噪聲還是比較大,可以採取腐蝕、膨脹演算法來模糊噪聲。

如果降噪後的車牌圖片有傾斜現象,就需要對圖片做錯切變換(就是傾斜角度調整)。我們知道,有些車牌是上下結構的,這很容易透過對二值化的圖片做畫素掃描來檢測上下兩部分是否中間不粘連,如果不粘連,那就是上下結構車牌。如果不是上下結構,那就是單行結構的新車牌。

滿足你的好奇心——車牌識別過程

二值化後的車牌(省別模糊處理了)

接下來,我們根據掃描到的二值化的車牌根據每一個字元的寬度做縱向的切割。這很容易理解,因為車牌影象已二值化,所以車牌字元要麼是白色字黑底,要麼黑色字白底,很容易得到字元的高度和寬度。切割就是以此為依據,把車牌所有字元都切割成單個字元。

車牌字元切割後,調整為與車牌字元模板庫大小近似且寬度小於模板庫字元圖的圖片。

7、準備好車牌字元模板庫

車牌字元模板庫可以事先用PS或者其他軟體AI、CorlDraw等製作好,網路上有車牌字型下載。

滿足你的好奇心——車牌識別過程

也可以透過不斷拍照車輛車牌獲取,這個過程就是機器學習的過程。目的就是獲得車牌省別、軍、警、學、使領館等的漢字,26個英文大寫字母,和0-9的10個數字。

8、車牌文字識別

接下來,將被切割的圖片存入一個數組A內,將模板庫的圖片存入一個數組B。將兩列陣列逐個比對,找出相似度最高的模板圖片,並把它們記錄在一個新的陣列C內。當然,我們有意的過濾了車牌中的圓點。

滿足你的好奇心——車牌識別過程

切割後的圖片

最後,我們把獲得的陣列C做遍歷,以最終獲得車牌。筆者為了隱私考慮,故意模糊了切割後圖片的文字和數字。得到的切割圖片,就可以拿到車牌字元庫做比對篩選了。根據篩選結果,就把你的車牌識別出來了。

如果您覺得這篇文章對您有用,請讚賞本篇文章!小編將更加努力為大家呈現更有價值的文章!