
相信視力正常(1.0)的讀者,要用眼睛辨識上面的車牌應該毫無困難!應該屬於視力測驗中還算有把握看對的範圍,但事實上這個車牌字元高只有10個畫素!把它們放大來觀察才會發現根本是一堆馬賽克?從原圖大小我們可以直接唸出車牌號碼,放大之後反而要稍微想一想了,人腦中的辨識軟體真的好神奇!
還記得2013年的夏天,我第一次獲得大量車牌資料可以認真做車牌辨識時,就發現這個神奇的人腦與電腦智慧的差距!當時看的是路口監視器拍的320X240影像,業主當然知道車牌拍得越大就越好辨識,所以問我:要拍到多大我的軟體才能辨識?我就發現如果影像不失焦,真的只需要10畫素左右就可以「用眼睛」正確辨識車牌了!
但是以我當時的技術,我的軟體面對字元沒大到15畫素以上根本就沒有辨識率可言!所以回應業主說最好有20畫素高,之後很多年我對客戶的類似詢問也都是如此回答的!字元最好有20畫素高,15以下就沒保證了!但是後來因為想把道路情境的車牌辨識做得更好,鑽研提高小車牌辨識率的努力從未停止!目前我的辨識技術極限大概就是如圖的10畫素車牌了!
這段挑戰人腦的研發過程中我學到了甚麼呢?我是不是窺探到了人腦為何如此聰明的一些奧秘?我覺得是有的!我發現人的腦袋辨識較大的字元目標時主要是靠形狀!我們的腦袋中當然有個類似字模的影像資料庫,看到有點像這些字模的目標就會在腦中做影像處理,縮放旋轉平移到字模的尺度加以比對!這和典型的OCR辨識程序是一樣的。
但是很顯然的,碰到非常小的字時,我們的腦袋並不會像辨識軟體一樣每個字都硬是放大成馬賽克去比對字模!如圖各位也看得到,按照字模比對的角度來說,A字中間應該是有個洞的,L字的筆劃也不會忽粗忽細有些地方幾乎斷掉的。換言之,光靠放大字體比對字模的準確度與可靠度是很低的!
那人眼人腦是如何讓辨識小字時還是幾乎不會錯呢?絕對不會只靠字模印象的!這時候CNN就有一部份說對了!人眼與人腦面對這種問題時,應該是比較依賴(相信)字元應有的特徵的!而且是組合的特徵!譬如L與A都是上窄下寬,但是A的寬度是漸增的,L的腰圍則是很纖細的!上窄下寬腰圍很細的字應該就是L不會認錯了!還有其他英數字同時有這兩種特徵嗎?應該沒有了吧?
所以如果人腦知道那是個台灣的車牌,裡面應該只有英數字,某個字又具備如上的特徵,就會判斷是個L字元了!我們可以用來辨識的特徵其實還有很多,譬如車牌是黃底幾乎就確定是黃牌重機了!這種車的第一字元幾乎永遠是L的!所以有點常識的人都不可能認錯這個字!但我們自己可能都沒意識到,這不只是靠我們的「視力」(影像),其實也很依賴非影像的常識與經驗的!
我確實就是靠著加入這些常識特徵來輔助辨識小字的!我認為這就是我向人腦學習的AI理念具體的實踐了!效果也真的不錯!有時候感覺會比人眼還更厲害哦!


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











