標籤:

如何利用labview實現在一張圖中檢測出車牌的號碼?

解決號碼識別並不難,但是要知道這個號碼在圖中哪個位置比較困擾我


!!!首先聲明一點:本人非machine vision方面專家,只不過憑藉興趣,學了點皮毛,如果有不準確的地方,歡迎指正!!!

----

針對題主的問題,其實困惑的不是在解析圖片中的數字,而是如何找到車牌的位置。

在做這件事情之前,需要統計一下車牌的形狀、顏色、字型檔(車牌中使用的漢字、字母、數字等),這個是第一步。

第二步:分析車牌的特點:不同車型的車牌大小、背景顏色、長度甚至都不同;但是,他們均位於一個相對於車子局部坐標中相對比較固定的位置。

找車牌可以通過顏色識別,不過不準確,背景顏色及一些裝飾物品顏色可能導致誤判;可以通過形狀,不過也不是非常可靠,形狀方形的物品太多。但是,如果能夠把尋找區域限定在一個區域內,能夠從圖片中尋找到合適的ROI(Region Of Interest)區域,再從ROI區域找車牌就相對比較好識別了。

現在就把問題成了一個相對好處理的問題:如何在一個圖片中為車牌找一個合適的ROI區域?在這個ROI區域內盡量包含除了車牌之外盡量少的元素。

首先我最直觀的考慮是:如何在圖片中定位到一個車?然後再從車上尋找一些標識物,來幫助確立最終的ROI。

車子有很多種,貨車、公交、越野、普通小私家車,每種車形狀,顏色,大小,都不同,你是要各種各樣的全部識別么?那就比較麻煩了我覺得。

這裡要考慮另外一個細節:你拍照的時候,是在什麼情況下拍照的?是馬路么?馬路的話,車子與背景色「灰色馬路」中對比度一般還比較鮮明,提取車子的外形也比較方面。

假設我們已經找到了車子了。

然後,車牌其實就位於車子中的某個相對位置上面:如果是車子正前方拍的照片的話,就可以左右分別找到車子邊界,然後再中心區域畫一看ROI區域,再從ROI區域中分析車牌信息。可以通過文字識別、形狀匹配之類的來做。假設題主食一個IMAQ的高手,那麼剩下來的就是濾波之類的操作,然後再識別。

---

有幾個關鍵的點:

1、拍照場景;

不同的拍照場景,處理的演算法可能不同;如果每個被拍照的車子距離攝像頭距離相對一致,那麼每個車牌的「大小」可能就比較近似,那麼識別時候就更容易;如果車子是個奇怪噴塗的車子,可能就會引入誤判;

2、光照條件與照片質量;

光照條件盡量讓車牌突出,而其他部分盡量能夠黯淡;照片的有效解析度肯定是越高越好,一般情況下,我們認為識別的尺寸精度最小在兩個像素點以內,但是高的像素質量,引入更加慢的處理速度和資源開銷;拍照的角度與拍照的失真:拍照的角度盡量保證車牌的「正對面」被完整的拍到照片中,同時枕型、筒形失真越銷越好(雖然,在非尺寸識別的情況下,失真沒有特別關鍵)。

3、識別的車子車牌種類;

不同類型的車子,車牌不一樣... 背景顏色和號碼顏色也不一樣...不同的車子位置可能也有差別,先做個統計再去設計方案吧....

---

其實,準確的來講:首先要拍的好一張優秀的照片;然後,我們再來談怎麼識別;

再者,這個真不是一個問題,而是一個還比較複雜的項目,如果想做成通用的系統的話。


劉鏟鏟做過,他不來答,肯定是他不想答……


推薦閱讀:

菜鳥如何快速學習labview操作硬體?
LabVIEW程序應該怎樣模塊化?
Python和LabVIEW計算性能對比
Matlab 與 Labview 哪個對電氣控制工作更有幫助?
如何接手別人的LabVIEW代碼/可執行程序?

TAG:LabVIEW |