網路城邦
上一篇 回創作列表 下一篇  字體:
找到車牌只是開始!難的是幾何校正後才能辨識字元!
2025/07/28 09:00:28瀏覽629|回應0|推薦2

要從自然環境拍攝的影像中正確的辨識出車牌號碼,必須完成兩個階段,首先是從背景環境中找到車牌,其次是要在車牌的小區域影像中一一正確的辨識出每個字元是甚麼字?現在大家以為很厲害的「影像辨識」技術YOLO,也就是CNN技術,其實只能做前半段找車牌的動作,真正困難的影像辨識其實是後半段辨識字元的部分!

找到車牌的方式多半是從全圖中找到車牌特徵集中的區域,譬如車牌多半是白底黑字對比度很高,搜尋全圖中對比度高的點集中的區塊就是車牌了!這種數學很簡單,但需要矩陣掃描所以計算量會很大!執行速度就很慢了!YOLO等以CNN概念為基礎的技術就是這麼作的!所以先天就是計算量超大高耗能速度慢的低效率演算法!

但並不是非這麼做不可,像我就是用OCR的程序找到字元區塊,再找到數個整齊排列的組合就行了!速度絕對比YOLO更快好幾倍的!YOLO如果要跟我一樣快,就必須使用GPU等額外的硬體幫忙才行,當然他們的系統就會昂貴也耗電很多了!我從來就不需要這些額外支援的!所以我的軟體比較便宜,跑起來也比較省電!

接下來如果你把車牌拍成下面這個樣子,辨識字元的步驟就很簡單了!就是標準的OCR動作,灰階→二值化→切割字元→比對字模即可!當然這些不包括在CNN的技術之內,所以要辨識車牌即使你堅持用YOLO,結果也不能不用OCR技術來結案的!簡單說,CNN技術本身沒有確認字元為何的程序,但OCR則是全套的!從找目標到辨識目標的招式都有!

但是真實世界拍攝的車牌影像當然不會每張都那麼完美,歪斜變形才是常態,所以我的車牌辨識一開始就是很注重幾何變形修正技術的!就是找到車牌之後要假設它是一個矩形區塊,因為視角偏斜而變成任意四邊形,我必須找到車牌的四邊直線,重新做幾何運算投影成如上的標準矩形,再做一次OCR程序,才能得到正面視角的標準字元,也才能正確辨識是甚麼字?

在我之前的車牌辨識多數都沒做幾何修正,或是修正程序過於簡化,所以我的車牌辨識就顯得較能辨識歪斜變形的車牌,我就是這樣異軍突起在車牌辨識領域闖出名堂的!但是現在我又再度進化了!如上的9768-YK的車牌,其實車牌本身就是彎折的!加上歪斜的視角,如果你假設它是一個矩形,幾何校正的結果字元還是不正常變形的!

怎麼辦呢?其實就是更有彈性的,不要預設幾何校正之後字元就會整齊排成一排了!每個字都獨立處理就可以正確辨識每個字了!所以影像辨識如果要考慮視角的問題,就絕對無法以資料學習訓練的方式做到好,做到精確!反之,如果你能用物理的觀點解析問題,就完全不需要巨量資料與巨量的訓練學習計算!

所以車牌辨識能用機器學習(ML)?深度學習(DL)?或類神經網路(CNN)?做到好嗎?隨便說說騙你的啦!事實上也根本不必用那些技術,就可以做得更好!還非常省錢!只有錢太多的土豪笨蛋才會採用MLDLCNN等技術做車牌辨識的!

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

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