網路城邦
上一篇 回創作列表 下一篇   字體:
終於做出我心目中的終極車牌變形校正處理了!
2024/12/10 10:51:46瀏覽273|回應0|推薦6

最近有將近一周沒發文了,但絕對不是去出國渡假或在家耍廢,而是閉關想要開發出我心目中最理想的車牌變形校正程式!我的成果可以用上面這個案例充分說明!這個變形不只包括視角產生的變形,車牌本身就是圓弧狀突出的!即使用上我在台灣號稱無敵的歪斜車牌校正程序還是無法正確辨識!

我之前的演算法基本上還是必須假設車牌本身是空間中的一個正常矩形,而且我的鎖定車牌四邊的演算法中,如何決定左右兩邊,也就是字元左右傾倒程度的部分一直不夠穩定!譬如第一個字元如果是A時就可能誤判左右傾倒的角度,連帶影響其他字元都一起變歪了!只是我用了一些機器學習的概念,讓這些我明知存在的誤差用統計妥協的方式,讓極端誤差不至於大到辨識錯誤的程度而已!

簡單說,我一直覺得我可以在理論推理而非資料統計的基礎上發展出更精準合理有效的演算法,即使是像上面這種特殊狀況也能完美的處理,而且我知道:更複雜的幾何學校正程式絕對不會像機器學習或深度學習的嘗試錯誤概念一樣,發展出極度耗費計算資源的爛方法!任何一個案例都是一個完美的解析解,一個程序就可以精準算出答案,不會因為我的數學程序變得複雜一點,就需要多出幾十倍的計算量!

我怎麼作的呢?首先是找到字元行列的水平傾角,做個旋轉運算讓整體車牌先變成底部或頂部切齊的水平排列,老實說我之前的車牌辨識版本從未真的做過完整的影像旋轉運算,一方面數學比較複雜,一方面怕太耗時,但是如果局限於車牌鎖定區域做旋轉就不耗時了!結果如下圖:

接下來用每個字元的左右邊切線為統計左右傾倒角度的依據!上下等寬字元的左右切線是大致平行的當然沒問題,但是上下不等寬的字元左右切線不平行就要參考旁邊等寬字元的傾角了!這些都是精準的幾何運算,所以每個字元的計算結果都是精確的!即使一排字元左右端傾角不同,如上例的S左傾很明顯,右邊的Z則幾乎完全不傾斜,我都可以一一掌握做個別處理,如下圖每個字都被扶正了!

接下來當然就是一個字一個字縮放到標準字模的大小作比對了!此時每個字都是已經個別校正到最完美的狀態,因為變形導致錯誤的機率就比我之前的版本更低了!符合度信心水準當然是近乎完美的99%了!

很高興,閉關一個禮拜之後終於把我這幾年曾經想到的概念都一一實現了!最困難的部分就是把幾何學原理充分使用,寫成不相衝突的程式碼,此時才真的體會到高中時學的幾何學有多重要!通常這些視覺經驗一般人都有的!只是如果幾何學與程式功力不夠紮實,這些概念就一直只會是你的「直覺」!永遠無法變成精準可靠的AI軟體!

這是一個很具體成功的AI研發案例,與現在大家迷信的機器學習思路是完全相反的!我們不會想依賴很多資料的統計妥協來「趨近」最合理的答案!而是真的具體把幾何問題精確解析之後,用幾何學「精算」出最合理的答案!這才是我認為AIAI影像辨識!別再被那些機器學習或深度學習聲稱的假AI繼續蒙混了!

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

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