大家都以為「貨櫃」一定都是六面都是平面的立方體,但是有些專門裝載液體貨物的貨櫃是不能做成立方體的!原因是液體貨物會對貨櫃的側壁產生壓力,貨櫃可能會因此變形甚至產生破裂,常見的油罐車會做成圓筒狀原因就是這樣的!但貨櫃碼寫在這種呈現弧形的表面可就麻煩了!一整排字每個字元都會呈現不同的傾斜,很難辨識的!
這也是為何我常說影像辨識技術中「幾何學」是很重要不可或缺的一部份!不只是目標的車牌或貨櫃碼可能因為拍攝角度呈現各種變形,即使同一拍攝角度,碰到目標本身就呈現弧形時,同一車牌或貨櫃碼內的各個字元都會呈現不同傾斜度的變形!如果你不能準確掌握他們的個別差異,一一將每個字元都獨立做正確的幾何校正,就不可能做出完整正確的辨識結果!
如上圖顯示的就是一個很經典的案例,它已經在我的不可能辨識的資料夾中待很久了!但現在終究還是讓我克服了!重點就是如何依據物理原理推算出每個字的左右傾斜度,因為字形本身的變化影響,事實上很難保證可以直接獨立算出每個字正確的傾斜度。
譬如上下等寬的U要直接算出正確傾斜沒問題,但是A,F,J,L,P,T,V,Y或數字的4,7等上下不等寬的字就比較困難,因為還未做傾斜校正的目標,我也不會先確定它是甚麼字。這些字的左右邊傾斜度是不同的,我應該相信左邊(如LPF)還是右邊(如J),還是二者的平均(如ATVY)呢?
我認為最好的策略就是先以上下等寬的目標為基準,算出它們的傾斜度,如上例中的C、D、U、0與2等字,其餘字元就相信物理的原則,即使每個字的傾斜不會一樣,但應該會呈現連續規律變化!譬如上例中Y我知道它上寬下窄不敢貿然計算傾斜度,就可以參考它前後的C與D的傾斜度作內插計算!
果然這樣推算之後每個字包括Y的傾斜度都很接近事實,據此作出幾何校正,每個字比對字模的結果就很明確了!我手上的這幾個類似案例就不再是不可能的任務了!
我會洩漏我的技術機密把這種技巧詳細說明,原因是希望大家能正確地深入理解真正合理的專業影像辨識,可以也應該是這麼作的!想依賴機器學習(或深度學習)的概念,讓辨識軟體學會辨識這種複雜案例幾乎是完全不可能的!
首先你連需要用來訓練的資料量都不可能找齊的!我做了好多年的貨櫃碼辨識,目前也只有四張這種案例,我用物理與幾何學去解析他們就可以做出近乎完美的辨識軟體,機器學習呢?沒有數百張影像就根本無法開工!即使有這麼多資料,要產生如此複雜的邏輯也很難,需要人為介入的成分很高!換言之,還是需要類似我的影像辨識基礎概念認知才可能做得到!
所以別傻了!ML、DL與CNN等所謂的AI技術,其實都是極為笨拙愚蠢,效率極低的影像辨識技術,最好的選擇就是根本不要使用它們!好好理解影像的物理意義與幾何關係,才是做影像辨識研究的康莊大道!
限會員,要發表迴響,請先登入