網路城邦
上一篇 回創作列表 下一篇   字體:
所有的小聰明加起來就是大智慧了!AI本應如此!
2024/04/04 05:11:11瀏覽875|回應0|推薦10

這是一個很有趣的車牌辨識案例,有點像是比武中被對手點中穴道的OCR高手?他可以用內功自行衝開被點的穴道嗎?因為影像略為失焦拍得模糊一點,就讓車牌字元下方一張不知所云的貼紙上的文字黑影與部分車牌字元夾纏不清,如上的四格漫畫就是我的OCR處理過程!到了左下的第三步顯示篩選過的目標輪廓時,就會看到七個車牌字元中有三個長出不該有的尾巴了!

字元輪廓找到之後,要繼續辨識出正確的車牌,一個極為重要的步驟是正確切割出整個車牌的四個邊界,這樣才能正確扭正車牌影像到標準的形狀大小作字元比對!但不管是介紹OCR或CNN的書籍文章都會有意無意地忽略或簡化這一步驟!在真實世界中它們通常不會剛好是垂直與水平線的!要找出這些字元正確的底部或頂部切線時,如上例中幾個因為小雜訊長了尾巴的字元就會是讓辨識失敗的致命錯誤了!令人扼腕遺憾的程度有如被小感冒奪走性命!

要找正確的底線,一開始最簡單的想法當然是取得七個字元的最低點,找到最接近切過這七個點的直線,如果運氣好有雜訊的字元只有一兩個,或是偏差不太大,做出的最接近切線偏差也就很小,還是可以正確辨識出字元。但是這個例子中有三個字明顯底部端點位置太低,算出來的下切線偏差就太大了,造成字元辨識的錯誤混亂,結果當然就錯了!

我不是用機器學習讓電腦去嘗試錯誤猜字的那種專家,當辨識錯誤如上例時,我會立即知道事發的前因後果與所有細節過程!如果可以直接將雜訊用影像處理技術處理掉,就是切掉那幾個字的假尾巴當然不錯,但必須考慮處理時間的成本!這種雜訊出現的機率其實很低,大概是千分之一!如果每張正常影像也因此必須耗時檢查處理根本不存在的雜訊,那就太浪費了!CNN專家碰到計算太多會找GPU幫忙,我則希望從演算法上根本解決

那有沒有不必大費周章就能處理好這個問題的簡單方法呢?我想到的方法是對七個字元高做統計取得「中值」,不是平均哦!就是將七個字元目標的高度排序,找中間那個高度做代表!那就是七個應該一樣高的字元最可能的合理高度了!以此為標準,在做邊緣切線時就忽略高度異常的幾個目標即可!最終我就可以不受到雜訊影響,略過37的不正確底部邊界,只用高度正常的NLX9等四個字得到正確車牌切割,答案當然就完全正確了!

這個簡單的方法可以同時適用於正常與異常資料的程序,就是來自我們一般人都有的經驗與常識,死腦筋的人才會氣得跑去撕掉貼紙重拍影像,聰明一點的人就會設法看出並忽略少數的錯誤異常,只用合理的資料作判斷,讓程序不必中斷或加上大量運算就可以繼續正確地走下去

又如下例中,因為影像失焦模糊,T字的上橫線會細到若有若無,很容易就會被誤認為一個I字,但是依據監理單位的公告規則,七碼新車牌的英文字母是不會出現I與O的!所以看到是I就當作T,看到是O就當作是D,這也是符合常識的小聰明!一定會猜對的!

這些小聰明點點滴滴加起來就是我充滿智慧的「AI」產品了!這些其實是違反影像處理結果,甚至也不符合統計結果的例外處理在我的軟體中多不勝數!都是機器學習學不會的!但都是符合「事實」的合理處理程序!我的辨識軟體額外的高辨識率都是這樣來的!根本不需要也無法藉由更多資料去訓練學習的!

知道了嗎?機器學習只是實現AI的一種粗糙而且原始的手段而已,不能代表AI的!而且是差得遠了!我的廣義AI比機器學習的統計概念廣用太多了!如果你相信影像辨識只能用機器學習(ML)、深度學習(DL),與類神經網路(CNN),你就死定了!至少永遠看不到我的車尾燈了!

( 心情隨筆工作職場 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=yccsonar&aid=180474120