

做影像辨識最基本的要求是要盡量正確,達到最高的辨識率!也就是要能克服最多的五花八門的各種辨識障礙!譬如要在非常複雜的環境中找到正確的目標,找到之後還要能處理因為拍攝的距離角度產生的歪斜變形,以及自然及人為因素導致干擾目標的雜訊,你必須將這個複雜過程中的每一步都做對,才能得到最終的正確答案!如上的瓦斯表辨識就是一個很好的例子!
這麼複雜的辨識過程,當然不可能靠著大量資料的統計逆推就自動產生!所以我從一開始就幾乎否決了機器學習的解決方案!因為以統計學概念為基底的機器學習是不會認真考慮探究辨識過程合理性的!也就是先天上就只相信經驗累積,不重視科學原理與事實經過的!如果採用了那種處理概念我就沒有多少可以發揮我的邏輯能力與知識智慧的空間了!這就是機器學習團隊永遠無法跟上我的原因了!選擇機器學習等於放棄自己,也放棄科學求真的精神了!
即使如此,我並不以此為滿足!把事情「做對」,也就是結果正確只是基本的要求!我是一個賣軟體的人!想像一下你對PhotoShop的期待,它做的任何影像處理當然必須正確,但是我們還會希望它速度很快!如果做個美肌美顏的處理要等上30秒或更久呢?大家當然就很不喜歡了!最好是立竿見影馬上做就馬上有嘛!
有趣的是:如果你能讓軟體在一樣規格的硬體上跑得更快,那就表示使用者不必花大錢買超級電腦或昂貴的周邊設備,不但可以省錢同時間還會更省電!因為跑程式的時間短就是耗電的時間短嘛!所以為了商業上的產品優勢,也為了節能環保愛地球的理想,我始終是強烈追求軟體執行速度的狂熱分子!
如上的影像是1920X1080的解析度,也就是兩百萬畫素的影像,我現在可以讓它在18毫秒的時間就辨識出正確答案!稍微對演算法軟體有概念,或有使用經驗的人,都會知道這是極為不可思議的極限速度!也就是使用這種軟體時,你可以很省錢摳門的使用最低階的電腦,甚至微電腦!辨識速度都不會慢到讓人不舒服!而且常態長時間使用時也不必擔心電費會飆高!
我怎麼作到的呢?也完全沒有甚麼AI神奇秘技?就是努力節省運算量而已!譬如此案中原始影像中的字元大約是30X60畫素,其實要正確辨識是甚麼英數字不必那麼多畫素,大約15X30就夠了!所以就先縮圖一半再辨識,這就可以省下很多資料處理的時間了!這樣的辨識時間大約是60幾毫秒,再加上前文提過的,參考上一次找到目標辨識成功時的概略位置,進一步縮小資料搜尋處理的範圍,就變成只需20毫秒左右了!
這很像所謂的省錢達人做的事情!大家的收入都差不多,需要的生活機能也差不多,但是如何達到一樣的目的呢?可以用的手段方式很多,如果你能很聰明的花最少的錢達到所有的生活機能,你就會變得相對富有,就是省錢達人了!譬如不要買實際上用不到的奢侈品,能暫時租借偶爾使用的東西就不要花錢去買等等!
這也是我很想強調的AI精神!我非常反對為了追求AI就必須大幅提高算力的觀念!也就是濫用運算量來實現AI目標!我認為AI應該是幫我們提高效率的工具!發展過程中如何節省運算來達到目標應該是非常非常非常重要的!如果大家就是不重視呢?所有AI都很耗電時,地球一定會遭殃的!但是短期內有我這種觀念的人就會過得比別人好!我的產品速度快耗電低比較好賣嘛!所以堅持環保觀念未必會吃虧的!有志者盍興乎來?