雖然我們做的車牌辨識系統好像不錯了!但是我越作越覺得可以進步發展的空間還是很大!據我們所知,目前即使全世界一起算,真正可以達到商業化水準的車牌辨識核心技術研發團隊應該只有個位數!隨便逛逛網路,台灣賣車牌辨識系統的商家是有十幾二十家,但是真正自行開發核心演算法的應該極少,我們當然是結結實實完全自主開發的!
這是我們的優勢,至少我們擁有技術核心,不但原始碼都在,還都是自己想出來的!辨識能力的優缺點與流程設計的邏輯都在我的大腦裡面,別人即使抄了程式碼都沒法抄襲到我的思路。在我來說,前面三年的每一個月的時間都是一次大躍進,至今都還沒慢下來!
在消極面,我們可以最有彈性的隨時因應客戶需要的環境最佳化調整辨識系統,讓客戶都能滿意;在積極面,我們還有很多基礎的研發點子不斷出現,可以讓辨識更快、也更聰明!最近積極動腦筋的方向就是如何善用平行運算來增加整體辨識速度,與增加運算的空間,加入更多聰明的演算程序而不必拖慢辨識時間。
現在幾乎已經沒有「單核心」(單一CPU)的電腦了!連樹莓派之類的微型電腦都已經有多核心了!但是如果沒有多執行緒的程式架構,任何程式仍然無法同時使用多核心來分散運算或平行運算,這表示任何單一程式執行的速度,在多核心的電腦上,仍然與單核心的電腦一樣的「慢」!
一般人買電腦越多核心確實越好!表示可以同時跑很多個程式都很順暢,但是對於我們寫複雜程式的人來說,如果你不能在軟體上就先幫自己的工作「分工」,讓作業系統可以好像執行很多個程式一樣,一次動用好幾個CPU來幫你的「一個」程式工作,那麼多核心電腦對我們的工作就毫無幫助了!此時,一個超高效能的CPU會比四核八核的電腦表現更好。
當然我們不是大型製造商,研發的演算法程式要以配合客戶常用的電腦硬體為方向,所以如何讓複雜的演算法「分工」為多執行緒程式至關重要!應該是我們未來一年內演算法技術發展的重點。目前我的程式一秒鐘可以辨識四五張近百萬畫素的影像,以較靜態的情境來說,譬如門禁管制或手拍車牌,這樣是夠快了!但是要用到動態的連續影像辨識就還有提升的必要,而且影像品質越來越好,也表示計算時間必須更久,追求速度提升是沒有止境的!
這是商業機密嗎?應該不算的!這是軟體設計者的常識,多執行緒當然會比單執行緒跑得快!就像不必問就知道球場上三個打一個勝算比較大。大家必須競爭的是如何實作出來的技術!如果基本的演算法都不是自己寫的,或理解不夠深入,還要妄想能將演算法靈活的拆解為多執行緒程式,而且順暢的運作,那是不可能的事情!
我不介意分享這種研發的經驗心得,因為事實上影像辨識的需求與市場規模像海一樣的大!即使有數十家像我們這樣的公司都作類似的事情,也不必擔心競爭者太多互相排擠沒工作的!只怕我們自己連「簡單」的影像辨識核心都作不出來,就是連基本的影像辨識技術門檻都跨不過去啦!就像美國西部開發時期一樣,要去佔地墾荒,也必須要先學會騎馬與駕馬車呀!
影像辨識的軟體技術,和之前也衝擊過軟體業的APP或Web技術不同之處是門檻高出很多!不只是要會寫程式,數學的理解與設計能力也很重要,不想被此技術浪潮淹沒的有志之士,就早點開始招募人才作基礎研發吧!等到客戶湧現要軟體公司作影像辨識時再培養就來不及了!如果只能到國外買辨識核心,我們就會從22K低薪繼續下探「高科技」低收入的極限了!
限會員,要發表迴響,請先登入