Contents ...
udn網路城邦
影像辨識始終來自人性,你一定能懂的!
2025/03/19 09:22
瀏覽570
迴響0
推薦3
引用0

我的影像辨識做得很好,辨識率高,速度也快,已經有很多人買很多人使用中,絕對不是一般學校補習班上課或可以買到的書上寫得那麼陽春基本!所以大家聽聽我的作法、故事與思路應該不是浪費時間!我也把日常寫的這些文章當作工作勞累時的消遣與整理思路!

今天想用上面的例子跟大家說明我的影像辨識是非常自然而人性化的!這張車牌有點髒,上方的螺絲生鏽了,下方空的螺絲孔也因為略為失焦與P字相連了!好吧!先不管影像品質如何?按照SOP做灰階→二值化→輪廓化,就變成上面的四格漫畫了!

從上圖結果我看到了幾個很像字元大小的目標成排出現,這就是我認為它們可能是車牌的資料處理起點了!這是不是很像我們在寬廣的視野中快速找到車牌的邏輯?看到幾顆黑白分明的東西排成一直線,個數大約五六七個!就可能是車牌了,對準它們看得更清楚一些就是下一步了!

此時我可以知道一個關鍵資訊就是車牌的水平傾斜度,基本上就是用這幾個目標的中心點逆推出最符合的一條直線,然後看它的斜率!有了這個基線再盡可能計算出字元的左右傾倒角度,因為車牌應該是硬的,所以假設每個字的傾倒角度都應該一樣,有很多方法可以估算的!我的書上也有寫。

有了大概範圍與兩個角度之後就可以把這一小塊區域做幾何旋轉校正成為一個車牌應該是接近正面直視的如下小影像了!在此我會刻意稍微放寬左右邊界加入這個處理區,是因為車牌邊緣的字常常會因為很多原因與背景沾連,這樣我就可以讓這些第一階段無法獨立切割的字元,在後續處理中設法把他們挖出來了!

當然夾在中間,但是因為某些原因與背景沾連的字,如上圖的P在第一階段因為螺絲釘生鏽讓它與上面的背景相連,所以並不在第一階段的名單(G9195)內,現在藉著其他清晰字元的幫助,也被順利夾帶進來了!如上圖已經是一個:字元接近端正,範圍也很小的車牌影像,幾乎沒有任何複雜背景了!即使直接用OpenCV的現成函數來玩,大概也可以辨識了!

接下來就是一一擷取檢視這個小圖內的目標去比對字元,如果兩字沾連的就會顯得太胖,破碎的則會顯得太瘦或太短,我會先用統計方式找出這些字元最合理的高度與寬度,依此標準來做這些目標是否正常的判斷!太胖的就要考慮切割,太小太矮的就要考慮是否拼合或強制擴大它的範圍做二值化等等。

當然有些我為了怕漏字硬加進來而產生的邊緣目標,就要評估他們是不是真的字元了!如上圖左右的目標經過評估都會被忽略,於是正確的車牌字元GP-9195等等就被辨識出來了!

所以不必想像很厲害的車牌辨識是一個神祕的技術?其實都可以用你也可以理解想得到的視覺嘗試去解決!以上只是一個例子,不同的困難案例核心程序雖然相同,例外狀況的處理就會五花八門,所以我天天都有事做,很像醫生天天在看不同狀況的病人!我看好的病越多,表示我的軟體以後就能治那些例外影像了!整體辨識率就逐漸變高了!

當然說說容易,實際做起來是很冗長的研發過程,所以大多數人就變得失去耐心,幻想有一種技術可以不必這樣一磚一瓦的蓋房子?機器學習就是這樣變熱門的!確實對於狀況較單純的影像,你不必懂任何影像辨識技術就可以用資料訓練出堪用大約八成的車牌辨識軟體!

但是就像現在的生成式AI一樣,只是想做到「像樣」可以靠這些AI,要做到很好,比別人也用AI做出的作品更好呢?你終究必須腳踏實地的!不要被深度學習等等抽象複雜的數學模式唬弄了!以為數學模式複雜抽象就可以產生奇蹟與智慧?這種事情從未發生過!我賣的任何一種影像辨識產品的辨識率都是深度學習望塵莫及的!

有誰推薦more

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