Contents ...
udn網路城邦
要怎麼才能像人眼一樣準確地辨識有框的字元?
2022/05/13 03:31
瀏覽672
迴響0
推薦6
引用0

上面的貨櫃碼是:TSSU 205806 9,最後的一個9是所謂的檢查碼!理論上就是讓我們這種寫辨識程式或Key in資料的人,用來確認前面的10個英數字有沒有打錯或辨識錯誤。將前面10個英數字做特定的Checksum演算,會得到一個唯一的答案,如果此答案與檢查碼不符,那就表示前十個字至少有一個字錯了!

很尷尬的是:要從影像中正確辨識出如上貨櫃碼中的前十個數字很容易,幾乎不可能錯誤,最容易辨識錯的字元反而是加了框的檢查碼!原因說給你聽:首先我們認字的程序是將字元目標作灰階與二值化處理切割出來,如下兩圖:

理論上,如果方框與字元總是可以清楚分割成為確定獨立的目標,我只要忽略方框目標,只辨識裡面的字元就OK了!但現實是:那個方框與字元非常貼近,只要稍微有點距離拍成影像時就會沾連在一起了!如果只是這樣也還好,把這個帶框的目標剝兩層皮去框(外圍侵蝕運算)就好了!

但是哪有這種好事?角度陰影亮度變化都可以讓「方框」變成奇形怪狀,上圖就很難定義「方框」的確實位置。多數時候那個方框還若有若無斷斷續續,如下圖,方框變成一些碎片了?你要怎麼辦?把那個3字剝兩層皮?那還是個字嗎?那就是吃錯藥,藥到命除了!

明明是用來檢查辨識正確與否的關鍵數字,本身卻是錯誤率最高的一個字?這好像師生一起去做登山活動,結果體力最差最難登頂的居然是應該帶隊點名的老師?這太糗了!即使全體學生都順利達標登頂了,老師卻還在半山腰掙扎,甚至迷路了!如何認證這個任務已經達成了呢?換言之,明明主要的十個貨櫃碼都辨識對了,檢查碼是唯一的辨識錯誤,「結論」居然是這個辨識案例錯了?你不會被氣到吐血嗎?

這個問題困擾我好久了!雖然想出了一些怪招撇步,但是檢查碼的辨識正確率還是明顯不如一般字元,框框造成的雜訊狀況太多了!這段時間我處理了好多貨櫃碼辨識的整體問題,昨天終於有時間跟這個大麻煩正面對決了!我的老師是誰呢?依然是人眼的辨識邏輯

試問你或任何視力正常的人,是如何不受忽隱忽現斷斷續續的框框干擾,總是可以直接看清楚裡面的字元的呢?我得到的結論是:我們會參考旁邊沒框的正常字元大小,拿這個Size去「移動比對」那個可能包含或不包含框框的字元區域!不管框框是否存在或完整,那個字總是跟其他字一樣大,而且一樣完整的!就像開保險箱一樣,不斷轉動轉盤,只找到對的角度,就會「咖」的一聲找到節點過關了!

所以我的做法就是:當我知道那個目標是檢查碼時,就不要硬把它縮放成字模大小去比對,而是以前面幾個正常字元的大小為依據,去這個目標範圍內移動「搜索」出可能的那個數字!程式當然變得比較囉囌,我也花了我大半天的時間才寫出來,執行效果呢?一級棒!目前以數百張影像驗證,帶框字的正確率已經完全不輸給正常字了

這又再度驗證了我的影像辨識理念!要解決問題,看很多論文,或請教AI影像辨識大師都是徒勞的!問自己的眼睛與大腦就夠了!我的專業技術與一般人的差距,只是我可以將你我的眼睛腦袋本來就會做的事情,翻譯成可以RUNVB程式而已!哪裡需要機器學習啊?要如何用深度學習學會這種事情?你教教我吧

老實說,截至目前,那些CNN或DNN甚麼的影像辨識說法,我怎麼看都像是在說夢話?或是神話?希望有一天可以真的看懂他們在說甚麼東西?看看可不可以讓我的軟體更強一點?現在呢?根本不必用到它們,日子也過得很好了!也沒看到有誰用CNN來讓我難看!那就繼續看下去吧!

有誰推薦more
全站分類:心情隨筆 工作職場
自訂分類:不分類

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