Contents ...
udn網路城邦
模糊辨識的技術重點在整理雜亂目標的功力!OCR還行的!
2026/05/28 14:46
瀏覽121
迴響0
推薦9
引用0

僅僅在一兩年前,碰到這麼小(15畫素高)又模糊的車牌,我都不敢期待可以辨識成功!但是現在已經變成我的軟體日常應可辨識的普通案例了!如果你學過CNN的概念就會覺得這不算太難,用字模大小的特徵矩陣掃描,每一個位置對於每一個可能的字元都會有權重分數,你總是可以從每個字元的分數分佈中找到每一個字的最佳位置的!也就是說你一定可以找到正確的車牌!

但是如果我用了CNN,就表示運算量會比我原先習慣使用的OCR高出數十倍之多!如果不用GPU,如果不找黃仁輝先生幫忙,我就絕對無法走下一步了!現在大部分的年輕人可能一開始就被AI廣告洗腦了!認定影像辨識就是必須使用CNN與深度學習的?所以必須依賴GPU也是不得已的必要之惡!但事實不是這樣的!你真的有其他更好的選擇!

如果我用OCR做二值化切割出可能的車牌字元,結果會像上面這樣!真正正常的字只有72,藍色的2下方與螺絲孔沾連變長了,綠色的兩個3字沾連成一塊了,左邊的H字更是不但破碎還與背景區塊聯成一氣了!對於傳統上使用OCR的人來說可能會覺得很沮喪,就像打牌的人拿到一手爛牌,還樣的手氣能贏嗎?

但是其實這些不理想的字元區塊中,已經包含了如何整理它們成為正確車牌的所有關鍵資訊!譬如只要用統計或嘗試錯誤的方式找出可能正確的字元寬高,用來整理不正常的區塊,該切割的切割,該合併的合併,應該很快就可以得到正確的73322幾個字了!之後再往左右外插搜尋可能與背景沾連的字元,不必很多的計算量車牌就可以正確辨識出來了!

上面這個案例就更妙了!K字的一隻腳居然與LE的連體嬰沾連成一塊了!畸形成這樣還有救嗎?可以的!首先是發現前兩個目標的X位置有交疊,就先視他們為同一個連體嬰,交纏的LE雙胞胎與殘缺的K就融合成三胞胎連體嬰了!但因為已經是完整的三胞胎平均切割之後就都是正常的KLE三個字了!要是不先合併的話就怎麼切都是錯的!複雜但是合理的處理程序就是我的密技了!

所以面對這種模糊亂象,堅持使用OCR還是可以走得通的!我就是這樣逐步深入研究如何整理不完美的二值化切割的目標,成就了目前台灣市場上應該是速度最快,辨識率也最高的車牌辨識軟體了!更重要的是「它不必使用GPU」!上面敘述的異常目標整理演算法或許很麻煩,但只要不是地毯式的矩陣搜尋運算,計算量就是很低的!比CNN少數十倍之多!

所以我可以告訴大家:CNN就是新一代的「何不食肉糜?」吃肉當然可以吃飽,但是在饑荒時只有極少數富豪可以吃得到!就像現在能大量使用GPU的電腦已經昂貴到只有大公司可以買得起了!難道AI只是富人才能用的奢侈品嗎?我的堅持就是希望可以不必如此!我也真的做到了!我的軟體都是不必使用GPU就很快速準確了!不但軟體不貴,需要搭配的硬體也很便宜的!

有誰推薦more

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