網路城邦
上一篇 回創作列表 下一篇  字體:
被撞歪的機車車牌怎麼辨識?
2023/08/16 07:10:47瀏覽1336|回應0|推薦8

和完全貼在車身上的汽車車牌不一樣,機車車牌的左右兩邊通常是懸空的,所以有些車牌會被撞歪成上面那樣!這通常是停車時被旁邊的機車撞到的,那不是車主的錯,但確實會讓車牌辨識變得很困難!如果照片是水平於車牌高度拍攝的還好,但不論是手拍或掛在牆上的攝影機,都是俯視拍攝的,結果都是歪斜部分的字元會嚴重往上(往前折時)或往下(往後折時)偏!

很顯然的,如上圖中的62都會因為車牌彎曲而有上移現象,6字的偏差幅度尚小,加個上下一兩畫素的偏移容忍量還是不難辨識成6字的!但是2字的偏移量就大到跟預期的2字字模筆畫完全不搭,如果比對不到底部的橫線,這個字就很容易被誤認是7了!

那為什麼我的辨識軟體那麼聰明(AI),還是知道它是個2字呢?其實是運用了一個假設:每個車牌字元理論上都應該要「頂天立地」的!就是字元最低的黑點就是字元的底部,最高的黑點就是字元的頂端!所以如果2字區塊的實質黑點沒有切齊車牌的底線邊緣,我就會把那個字垂直放大到車牌應有的高度

這樣一來,2的偏差就大部分被修正到可以辨識正確了!但如果彎曲幅度大到2字的頂部超出了我預期的車牌範圍,2字就會殘缺不全了,以我目前的演算法還是會辨識錯的!除非倒帶回原圖去抓到車牌範圍外的2字頭部,這是可以做到的,只是很麻煩,也可能因為判斷錯誤,讓某些正確的字元如此一補反而錯了!

這樣一個簡單的例外演算法,就可以解決大部分輕微被撞歪的機車車牌辨識了!這其實就是一個物理現象產生的幾何學問題,按照我前面說的邏輯去理解,有高中程度的數學物理能力你就可以完全聽懂!再加上一兩年的寫程式訓練,你應該就可以寫出跟我類似的處理程式。

在我的車牌辨識核心模組中,這種應付各種例外狀況的程式片段有幾百個之多!我的影像辨識概念是:沒病的按照SOP跑,有病的就要吃藥,還必須對症下藥!當所有病人都吃到正確的藥,也就是局部的影像處理或重塑時,我的辨識程式就會變得很聰明,就是很AI了!事實也證明確實如此!

但是我相信你到全世界任何課堂上學影像辨識都不會有人這麼教你的!只要是牽涉到電腦資訊或數學的科技專家,總是喜歡搞神祕擺架子,不是關鍵步驟留一手不跟你講,就是誤導你:高科技都是由非常完美的數學模式變出來的!這簡直是錯得離譜了!你完全不必自卑覺得自己笨?凡是不能用常識或基礎科學理解的東西,都是可疑的!八成是假的,或無法成功運作的!

因為如車牌辨識這種影像辨識要處理的就是千變萬化的真實世界影像,絕對沒有甚麼萬靈丹或完美萬用的SOP!就跟你待人處事的智慧一樣,見人說人話,見鬼說鬼話,才是正確的常態!而且在處理這些複雜狀況時,你還必須隨時考慮成本效益,如果你跟每一個路人都微笑打招呼,然後跟他們推銷車牌辨識,那你就是白癡一個!當然是必須把時間用在真的可能買的人身上嘛!

影像辨識確實就應該是這樣的!如果有某一種好到不行的演算法,可以「保證」辨識到所有隱蔽在任何角落的車牌,但是辨識一張影像就要五秒鐘,那就太慢不能用了!我們面對日常生活的任何事都是一樣的!成本太高時就必須有所取捨,很多小經驗累積出來的待人處事技巧就是你的智慧了!所有課本教材都希望歸納出簡單的通則,但誰都知道「盡信書不如無書」,真正的智慧總是會夾雜著很多小聰明小撇步的!

那為何大家認為AI影像辨識就會不一樣呢?何必將影像辨識弄得蓋高尚?神秘兮兮?好像是外星來的科技?我認為AI影像辨識就應該是非常生活化人性化的東西,如果一定要讀過高深的數學或電腦科技才能理解的,我認為都是無根也必定會被淘汰的爛科技!好的AI用任何人的常識,頂多加上中學生的科學知識程度,都應該可以充分理解的!

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

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