
任何車牌辨識軟體都會包含兩個主要部分,首先是要在全圖中找到車牌,這其實是比較簡單的部分,為何這麼說?看看上圖就知道了!不管你用任何演算法找到了這個車牌,距離告訴你正確的車牌號碼還有十萬八千里之遙!這樣任意變形的字幾乎跟手寫字的辨識一樣困難!所以從找到車牌位置之後,到辨識出正確內容的第二部分,才是車牌辨識的技術核心!要直接「看出」已經變形的字?這中間的智慧程度都被大家低估了!眼睛大腦很容易做到,寫程式辨識呢?實在太難了!
但大多數的車牌辨識系統或研究,都是假設車牌不會這樣隨興地用這麼誇張的任意角度拍攝的!這完全是鴕鳥心態,真實世界的車牌影像,不是用固定位置的攝影機拍攝過往車輛,就是人拿著手機或攝影機拍的,兩者都不可能跑到車牌的正前方取得不歪斜的角度拍攝!不然不是會被車子撞個正著嗎?
也就是說,對於合理的車牌辨識核心來說,端正不歪斜扭曲的車牌是例外,歪七扭八的車牌影像才是常態!以我的標準,如果像上面這麼視覺清晰的車牌不能辨識?那這個品牌就是次級品甚至是劣質品了!「只能勉強」適用於停車場之類的設計環境,即使如此,車停位置只要稍微超出規定範圍都會因為車牌歪掉而無法辨識的!這種車牌辨識好用嗎?能用嗎?你能接受嗎?
現在大家都迷信機器學習,認為只要資料夠多就可以辨識任何困難的目標?但是要將如此因為視角扭曲的車牌辨識出來,任何「學習」都很難做到的!空間視角的可能扭曲是多方位連續漸變的,想要在三維空間中的所有視角都能辨識,你需要多少特意拍攝的影像來「學習」或「訓練」呢?模型會複雜到跑起來多慢多耗電呢?勉強這麼作只會浪費很多錢與時間,效果還不見得好,最終讓開發產品的公司不支倒閉而已!花很多錢研發辨識率卻不高賣不出去能不破產嗎?
用ML、DL與CNN作影像辨識,現在已經被炒作到煞有介事?甚至是初學者認為的技術主流了?但是像上面這種問題,不但用ML或DL無法有效解決,連CNN技術也沒有合理的對策!所以才會有那麼多「AI」模組說可以找到複雜影像中的車牌,但是說到辨識正確率就避而不談了!因為ML、DL加上CNN其實都做不到!
那這個問題就無解了嗎?如果你只看學術論文還真的找不到夠厲害的解方!連傳統的OCR都著墨不多!我在研究車牌辨識之初就發現這個世紀級的大問題!也是我開發車牌辨識產品時的重點!最終也得到很好的成效,市面上幾乎看不到歪斜車牌辨識能力可以跟我相比的產品,碰到常態性需要辨識高度歪斜車牌的場域,我的產品都是獨占的!
最近正在研發東南亞車牌,即使我在台灣車牌歪斜辨識上已經很有成效,但是碰到雙排字的車牌呢?我的演算法架構就有很多地方無法直接套用,每個字都會有不同的水平與垂直傾斜,想找出車牌四邊直接轉正也不容易,如前兩天的文章所討論,有些車牌是會呈現弧形的!
所以幾乎是將我這部分幾何校正的流程打掉重練!當然新的方法會更全面適應更複雜的可能變化,之前我也碰過台灣車牌呈現弧形的案例,當然那時就只能認輸了!現在有機會反攻克服障礙了!如上圖與文章後的幾個案例,我可以簡單告訴大家我是怎麼作的:
首先是用OCR找到全圖中的車牌字元,接著找到整個字組底部的切線將整個車牌區轉正到至少底部是水平的!接著檢視每個字的左右傾到程度加以扶正!變成右上方的二值化校正圖,然後在此已經每個字大致都端正的小圖上做單一字元的辨識,只要找到字元縮放到標準字模加以比對就好了!認錯字的機率就微乎其微了!
其實這些變形校正的技術核心只是高中程度的幾何學!但是你學再多的ML、DL與CNN都不會找到更好更經濟有效的演算法!所以回歸傳統科學,回歸傳統影像辨識為基礎的研發才是影像辨識前景的康莊大道,ML、DL與CNN只會帶你走進毫無出路與希望的死巷!




限會員,要發表迴響,請先登入









