網路城邦
上一篇 回創作列表 下一篇  字體:
為什麼我不用Lib作影像辨識?
2017/08/02 07:15:31瀏覽1801|回應0|推薦3

最近有個國內辨識類似如上考卷需求的案子在洽談中,有趣的部份是他們公司的資訊團隊真的已經自己作出類似功能的影像辨識軟體!但是執行速度太慢,他們又希望日後可以在手機APP內執行辨識,拍照之後如果要兩三秒鐘甚至更久才有結果就不實用了,推出那種產品一定是會捱罵的!所以從網路上看到我能做類似的程式就來詢問看看。

當然,因為他們自己就會作影像辨識,如果我的辨識速度也不怎麼樣,他們自己繼續研究即可,就不必給我作了!所以我必須先提供一個試用程式,展現我之前案子的辨識效能,要真的夠快才能取得這個工作。我整理後執行某張辨識結果如上圖:2475X3496,約8.4百萬畫素的掃描影像,辨識100個題目的答案,加上考卷上10個數字的編號,時間總共只需要89毫秒!

這當然夠快了!即使拿到手機上執行變慢10倍,也只是一秒鐘的辨識時間。為什麼這麼「神奇」?我比其他人真的厲害很多倍嗎?其實主要是使用工具的差異,我可以想像多數玩影像辨識的人都是使用如OpenCV之類的Lib兜的!一般人都會誇讚這些Lib的功能多麼齊全,甚至以個別程序來說效能也很好!

既然效能好,怎麼作出來的解決方案速度會慢我的東西很多呢?我的演算法能力再強,也不會比OpenCV的開發團隊強很多倍吧?那我不就是神了嗎?我當然不是神!事實是OpenCV的函數再多也不是專門為了你的解決方案所設計,他們也不確定釋出Lib之後每一個使用者會怎麼用?為了方便讓每個人都能用,而且不能因為任何人不同的使用方式而當掉,程式的顧慮多了,效能就下降了!

其實OpenCV既然稱為Open,使用者應該是可以接觸到底層原始碼的!但是有多少人有足夠的專業能力與耐心(時間)去重組原始碼呢?我賺的其實就是這種技術差距的錢,而且因為我專職作影像辨識好幾年了!和其他公司資訊團隊平日廣泛做各式軟體的經驗值不同,所以我可以更快更精準的建立好高效率的辨識程式。

很多接觸過影像辨識的人,知道我不用Lib都會覺得我很厲害,甚至可以說很帥很酷!但實務上這不是耍帥,而是非這樣不可!不然大家都可以很快用OpenCV組裝出來的程式,我也用一樣的方式組裝,效能相差不多誰會買單呢?所以我認為真正專業的影像辨識公司不是不能用Lib,但是必須有不用Lib也能寫出辨識程式的更佳實力,不然就會像賣泡麵的深夜食堂一樣,應該很少人上門了!我自己買麵回家泡不就好了?

現在大家都知道影像辨識很重要了,很多研究所都會開相關課程,也多半是使用OpenCV或MatLab之類的Lib教學作實驗,但是大家必須有警覺!如果只是用於純學術研究,只會這些東西就夠了!要真的到業界工作,要真的能替客戶客製化最佳效能的辨識軟體,你反而必須深入更底層的知識與技術,徹底了解每一個Function的原理與細節。誰說走學術路線的人才需要用功?要到業界叢林闖蕩的好漢更需要練好武功!

所以,如果有學校的老師開影像辨識課宣稱用C++等標準化程式語言教學,你一定不能放過!至於像我一樣,用VB作影像辨識的人,我想全世界也沒幾個吧?想修到我的VB影像辨識課,目前連門都沒有!哈哈!

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

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