網路城邦
上一篇 回創作列表 下一篇  字體:
影像辨識沒有萬靈丹
2016/02/17 05:13:57瀏覽1137|回應0|推薦15

「視覺」只有兩個字而已,但是人是怎麼看東西的?這個故事卻永遠講不完!想想看一個小嬰兒要經過多少學習過程才能正確的認識周遭的事物?譬如電影中常常出現的橋段,都市人忽然到了荒野叢林,他可能根本看不到毒蛇已經爬到腳下,或一隻致命的虎頭蜂已經飛到你眼前,因為我們的文明生活中根本不需要辨識這些目標,但是鄉下人(或鱷魚先生等專家)卻遠遠的就「看到」(辨識成功)這些危險了!

不變的事實是:任何的影像辨識過程與邏輯都不會完全一樣,我們必須先定義目標,再找出它與背景的差異,甚至加上出現時機的環境(時間地點)因素,所以即使都市人視力不比鄉下人差,還有先進的變焦眼鏡、夜視鏡等設備協助,也一樣不容易看到他根本沒看過(或不夠熟悉)的東西!經驗法則其實比實際上的「視力」強弱還更重要!即使你有千萬畫素的攝影機也未必可以比賞鳥專家更快發現樹林中的鳥雀。

所以如果有人說:

我發明了一個很強的演算法,可以快速正確的辨識所有我們需要辨識的目標。」

這種言論的可信度就跟奇蹟大師說:「聽我幾堂課你就可以賺到一億元!」一樣的高!

我這一兩年除了車牌辨識也同時作了很多種的影像辨識,通常都能很快就有具體的成果,多數人會認為我的演算法很強,甚至我可能已經發明了一種非常強大的影像辨識演算法!我是有一些特殊的演算法小發明,但是仔細想想都沒有超出多數影像辨識專家所知,以及一般人的常識或「直覺」的範疇。

我所以看起來作影像辨識很「厲害」的原因,並不是我數學特別強!而是我比較相信常識經驗以及直覺!我並不認為某種演算法本身會有甚麼神奇的功能,而是依據辨識的目的,每次都是從頭思考與設計演算法與程式的!沒有框架的負擔反而是我能快速作好工作的原因,如果有人想到我的電腦裡面竊取我的「神奇」演算法應該是會失望的!

最近一個實例是:我有位員工跟我學了半年的影像辨識,「大致」上已經了解我作車牌辨識的一些邏輯與程式模組功能。有個案子要辨識攝影畫面上固定位置的數字變化,他自動請纓要作這個案子,我也讓他使用我的既有程式資源去嘗試。我自己作的話,這個辨識核心只需要一兩天就可以完成,但是包括年假在內我讓他玩了一個月,作的辨識核心還是卡卡的,有些狀況就是會辨識錯誤。

因為計畫時程有點壓力了,我接手處理,果然一天之內就砍掉他組裝出來的一大半程式,辨識核心變得又快又穩!關鍵不是我「加入」了甚麼神奇地程式,而是切除了我車牌辨識程式模組中大部分在此情境下可有可無,甚至不對味會造成副作用的程式。

他的問題就是太相信我的車牌辨識程式演算法有著神奇的魔力,就像多數研究生不敢任意改變指導教授的意見或理論一樣!我的辨識流程大部分他都不敢任意更動,但是他要辨識的東西不是任意角度距離的車牌,只是固定位置角度與大小的幾個數字,這樣其實是很難作好事情的。我問他這一個月的掙扎中學到了甚麼?他的感想是其實自己還不是真的理解我的演算法,他只知道這些程式是「怎麼運作」的,卻沒有理解到「為何而作」?

就是這樣!徒法不足以自行,即使影像辨識需要用到很多看起來很複雜嚇人的數學演算法,但是它們畢竟都是工具,本身並沒有神奇的力量!如果我只是為了上下班方便需要買車,買一輛超跑其實未必勝於一輛機車!如果距離夠近,一輛摺疊腳踏車都可能比機車方便,甚至更快速!因為不必找停車位,也不必付停車費啊!

所以我的車牌辨識完整程式多達幾千行,最終這個簡單目的的辨識核心只有幾百行,但是速度與準確性都更好!殺雞不必用牛刀,用電鋸來切嫩豆腐不是專業而是大外行!也因此我認為整天尋找各種「最佳」影像辨識的演算法或程式庫,希望「直接」解決所有辨識問題的程式師是想太多了!還是見招拆招個別突破比較實際,也才有可能徹底解決問題。

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

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