用OCR方法做辨識並不會少一個字就毀了!
2022/06/24 08:17
瀏覽1,010
迴響0
推薦4
引用0
如上這種較模糊的車牌,對於人眼來說辨識不算困難,但是需要將字元目標切割出來辨識的OCR辨識方法來說就是一個極大的挑戰!其實我知道大部分的車牌辨識演算法都不敢直接以字元辨識為基礎,原因就是很難保證每個字都可以正確切割出來,如上的影像二值化圖如下:
仔細看就會知道第二字的E與倒數第二字的9,都跟下方的螺絲釘孔連成一氣,無法獨立切割出來,我們實際可以確定的字元目標資訊如下:
但是當我們知道那麼多時,就可以回頭搜尋檢視我們在字元與字元之間遺漏了甚麼資訊?可以回到二值化圖中依據車牌可能的邊界再次嘗試切割出應有的車牌字元:
有了這種補救流程,我的OCR就不會因為這些常見的問題缺字了!可以說我是用可能殘缺的字元目標組做出車牌定位,再以車牌的規格挖掘出我可能在初步切割時因為雜訊干擾而錯失的字元目標!以數學技巧的觀點這不算甚麼偉大的發明,類似二分逼近法,先用最確定的資訊取得概略位置,再逐步逼近正確的答案常用的名詞是iteration就是疊代法。
這與CNN的概念就不太一樣!他們是先盡量掃描蒐集所有特徵,如線段、轉角與對比度等等,建立「可能是車牌」的特徵區域組合,替每一個位置計算出一個加權分數,即使找到了最佳車牌位置的峰值時,他們還是沒有明確車牌邊界資訊的!但是至此花費的時間已經不比使用OCR找到可確定目標的時間少了!
所以不要誤會CNN是很聰明的搜尋演算法!其實我用OCR找到車牌的速度應該是比CNN還快很多的!如上案例1280X720大小的影像中我找到正確車牌位置邊界的時間只需大約50毫秒!除非他們使用很多GPU分散運算,用高耗電的代價才可能超越我的速度!據我所知,市面上還沒有哪種優勢商業車牌辨識系統是使用CNN的!
你可能會有興趣的文章:
限會員,要發表迴響,請先登入