網路城邦
上一篇 回創作列表 下一篇  字體:
這才叫做車牌辨識系統?有很難嗎?
2015/06/26 05:14:31瀏覽8418|回應0|推薦11

看過這段視訊嗎?很神奇是不是?其實分析一下他的車牌辨識技術,軟體部分並不難!

他應該是先用動態偵測的程式抓到進入視野的車子,就是影片中出現的紅色虛線圈圈。接下來依據估計的車速追蹤那輛車子,持續取得局部畫面分析,直到距離足以正確辨識車牌時就顯示辨識結果並結案!對我來說,我羨慕的是它背後一定有超高效能與超高解析度的數位攝影機,加上極高規格的電腦硬體!只要影像拍得清晰處理得快,其他的事情我都會做。

首先必須知道,任何影像辨識還是必須從單張影像著手,在一張影像中先設法讓影像清晰,就是增強對比,如果影像品質本來就很好,也許可以省略這一步。接著是「簡化影像」就是讓亮度從彩色變成單一的值,俗稱灰階,接著更進一步找出一個亮度門檻值,讓影像變成黑白兩色,俗稱二值化。此時如果運氣好,你的車牌字元與背景就變成單純的黑與白色了!

上面是我知道沒有例外的,所有影像辨識的標準程序,但是接下來就是如何在大張的影像中找到車牌的位置,這才是各家車牌辨識系統八仙過海各顯神通的主戰場,也是最困難的一部份!越大張的影像、越複雜的環境背景、車牌越是不可預期的隨機在任何位置出現,就會越難鎖定,如果連攝影機本身都是會動的,那就更加困難了!

找到車牌位置之後,如果發現它是傾斜甚至變形的!譬如從近距離斜向拍的車牌可能是任意四邊形(或梯形),不會是個標準矩形,那就更麻煩了!必須正確的判斷它變形的程度,將它「變」回標準的字元形狀,否則就玩不下去了!所以遠距離的車牌辨識,只要攝影機夠好,是不難做的。如果你以為抓到車牌之後只需要做:縮放、平移與旋轉就能校正影像那是太天真了!

上面介紹的系統是從「固定位置與角度」的攝影機,對著「車道位置固定」的高速公路拍攝,雖然車速很高,但是其實所有困難的辨識參數都是接近固定的常數。車輛位置與車牌傾角都可以預期,如果是沒有車道的大片空地,自輛自由從很多方向以不同速度移動,我想這個系統就會很狼狽,它很可能車牌偏斜個四五度就會變成無法辨識!

我不是說這個系統的設計者技術比我不好,如果讓我設計這個系統,我也不會刻意加入處理車牌傾斜變形的程式,因為不需要!程式多了只會拖慢處理時間沒有實質效益。所以最難的找車牌位置與判斷車牌大小、傾斜乃至變形在這個系統中都可以省略或高度簡化,它的程式碼不會比我做過的任何一個車牌辨識系統多!

此系統唯一比我厲害的是製作單位比我有錢,要這麼高速(高解析)的拍攝加上辨識處理,硬體當然要很強!正常電腦一張高解析度的照片從影像物件變成可以開始計算的數值陣列就需要好幾十(到上百)個毫秒,影片中的處理速度看起來至少要快上幾十倍!那是跟軟體技術好壞無關的。

這個都不難?甚麼叫做難呢?我最近多次被詢問到如何在行車紀錄器的情境中做車牌辨識?也開始研究了!這就比剛剛的高速公路辨識系統難很多倍!因為行車紀錄器畫面可以很大、車牌可能出現在影像中的任何位置,而且車子本身也是在移動的,影像背景一直在改變,要隨時處理背景雜訊,總是能鎖定複雜背景中的車牌,粉難的!而且通常畫面中會有多個車牌,最終使用者都是希望能「通通抓起來」的!

我才剛剛開始研究這個議題,是有點頭緒了!如下圖,運氣好時就會抓到一個看起來蠻小的車牌,我有做縮圖,實際的影像有1920X1080那麼大,車牌字元還是有大約18 個畫素高。這不是說我已經做好這種辨識了!目前多數照片我還是找不到正確車牌位置的,多半是誤認環境中的其他東西「比較像」車牌,像是成列的欄杆等等。我好像在教一個三歲的小娃娃,正在不厭其煩地告訴他(電腦)甚麼東西是車牌,甚麼不是!這很難,但是也很好玩!

老實說,我比較擔心的是:即使我可以研究出聰明的演算法,不用特殊電腦的話,速度夠不夠快啊?有人會願意買幾十萬的電腦來做這種事情嗎?但是轉念想想,這就讓以後的金主去擔心了!我盡量在軟體層次讓它計算快一點就是了,呵呵!

( 心情隨筆工作職場 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=yccsonar&aid=24991792