網路城邦
上一篇 回創作列表 下一篇  字體:
車牌上面有三條線怎麼辦?
2023/07/07 03:46:47瀏覽821|回應0|推薦8

看到這種車牌要我辨識真的會臉上三條線!這是戶外停車場,車位後方有幾棵樹(或是竹子?),強烈的陽光把樹的影子不偏不倚的投射在車牌上!車牌上面就真的有三條線了!正常的車牌是白底黑字兩色分明,要正確的二值化,就是找個灰階門檻讓字元變全黑,背景變全白這不算困難!

但是從外面投射過來的陰影,會變成車牌影像上黑與白之外的另一種顏色(亮度),此時「二」值化的概念要用在實際上有「三」值或更多值的地方,那就不好做了!由此也可以看出車牌辨識的難度不只是辨識「車牌」而已,還必須有能力盡量排除來自環境的任何影響!如下是我用PhotoShop預設的128灰階門檻值做的二值化圖,顯然結果很難繼續辨識車牌字元。

聰明一點的人看到右邊的灰階分布圖應該就會有靈感了!灰階分布呈現三個高峰,最右邊(最亮)的當然是背景的白色,最左邊(最黑)的當然是字元黑漆,中間的峰值就是陰影了!所以如果我可以讓我的程式聰明到知道中間那個峰值是需要避開的雜訊,把門檻值放在陰影峰值的左邊如下,字元就超清晰了!

上面是用我們多數人都有的基本常識與直覺做的決定,所謂的AI設計者就是必須將這種判斷能力用程式實作出來的人!這就必須有很好的數學概念與程式技巧了!老實說,這個例子還算是簡單的,如果三(或更多)峰沒這麼清楚明確呢?如果陰影區很小只毀掉一個字呢?那個峰值就會很小很平緩很難判定了!

正因為這個數學實在很難做到面面俱到,所以傳統的影像辨識就卡關了!因為反正讓數學家累到死都做不完美,那就乾脆別瞎忙了!如廣告說的,喝一罐Red Bull,靠AI機器學習的神力給他一對翅膀,猜出一個最高正確率的公式吧!如果你給機器學習的指導原則之一是找山谷當門檻,或許會有很多變成這樣:

如上的判斷就是比直接用灰階全部範圍的一半128作門檻更糟的決策了!因為所有的陰影雜訊都被認證為字元訊號(黑色)了!但是好像沒有辦法了?既然是用統計的方式做決策,答案就只會有一個!因為狀況太複雜,也沒有完美的數學公式可以永遠都算對合理的門檻值,那麼最終的車牌辨識正確率,似乎只能決定在機器學習用資料訓練出來的門檻決策準確度了?

但是我的軟體可以做得更好!我的這種極端狀況的辨識率比其他廠牌的做得更好!原因並不是我有特別多的資料可以做最佳的機器學習訓練,也不是我發明了甚麼神奇完美的二值化門檻公式?在任何情況都能算對那個門檻?

其實我沒有甚麼神祕的AI,只是發揮勤勞的精神,用三四種自行設計的公式來計算門檻值,有些答案會偏高,有些會偏低,但我通通都給它們機會繼續做下去,如果門檻對了,就會一路順風得到字元符合度很高的正確答案,反之就是會卡在下面幾站無法完成辨識,但絕對不會只因為一次二值化的失敗就被判定死亡了!

你可以想像,我的做法大概就是給上面三種二值化門檻都有機會繼續辨識字元,所謂錯誤或不理想的門檻常常也能得到答案的!譬如因為雜訊某一個字會很難辨識或辨識錯誤,那時他的字元比對的符合度就會偏低了!所以當兩種門檻都有答案,而且不一樣時,我就會擇優錄取了!

這不是亂槍打鳥瘋狂掃射嗎?沒錯!只對目標開一槍的命中率如果是80%,瞄準目標加一點隨機亂數連開十槍呢?命中率應該就是99%了!也就是說我對單一案例會做不只一次的辨識,辨識失敗或分數不夠高就會調整策略(辨識流程參數)再做一次!連開十槍是不至於,連開兩三槍則是常事!嘗試錯誤(Try and error)是機器學習的專長,但是我也會用的!還用得更精準有效率!

我想其他研發者也不會笨到沒想過我的這種策略,但這不是想做就可以做的!影像辨識是高運算量的演算過程,做單一流程的辨識通常就很耗費計算時間與記憶體了!一個影像要辨識好幾次?那不是會讓辨識速度變慢嗎?如果慢到讓使用者有感的話,我的這個策略就不可行了!

所以我能這麼作的關鍵原因是我的演算法設計得太有效率了!計算量精簡,記憶體用量也精簡,就像電影中的閃電俠一樣!當一個消防隊員救一個人出火場的同時,閃電俠已經救出好幾個人了!如上這張百萬畫素的車牌影像,我用如此繁複囉嗦的方式做辨識,最終還是只需要120毫秒!也就是0.12秒!

誰還敢在我面前談AI車牌辨識呢?你是比我快?是比我準呢?想好再說!就像馬斯克邀請組克柏做鐵籠格鬥一樣,我也在等機器學習製作的車牌辨識軟體來跟我PK!等了七八年了!還是沒看到ML、DL與CNN做出來的車牌辨識商業產品問世?你們還好嗎?一定要很努力「訓練資料」才能看到我的車尾燈哦!要加油了哦!

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

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