Contents ...
udn網路城邦
影像辨識軟體需要極高效率,拼裝的開發策略不好啦!
2026/04/01 10:28
瀏覽65
迴響0
推薦1
引用0

紙箱材積辨識的專案已經接近尾聲,正進入最後的手機實測效能調整與穩定性測試的階段!辨識率已經達到原先設定的95%以上的標準,但全程辨識時間是略微超過500毫秒(0.5)的!以我常用的標準來說是有點嫌慢了!於是深入了解了運算時間使用的狀況!

如上圖列出的全程辨識時間是544毫秒,從影像轉為可運算矩陣的時間getRGB需時125毫秒,某個不是我們開發的前處理程序Canny需時229毫秒,所以我們開發的辨識程序運算使用的時間是:544 – 125 – 229 = 190毫秒!我問了我的RD我們開發的程式碼大約幾行?她說是5000多行!

耗時開發將近一年,5000多行的程式碼執行一次完整辨識只需190毫秒,我當然對RD的努力成果沒得挑剔了!我自己御駕親征也不會做得更好了!getRGB的動作是跟作業系統效能直接相關的,也沒有加速的空間了!所以那個黑盒子Canny就是我想開刀的對象了!

原來那個Canny是之前客戶的研發團隊使用開源程式碼組裝出來模組,目的是想鎖定箱子頂點的精確位置!上圖右方是使用者拍照時APP預設會有的介面,需要使用者將目視的箱子頂點瞄準到紅色圓圈之內!Canny就是在此紅圈範圍內找到一個最近似箱子頂點的座標用的

如果沒有這個預設的辨識起點,要漫無目標的從全圖搜索找到頂點,當然就會耗時到讓人發瘋!紅圈瞄準的目的就是讓人的抽象理解力很容易做得到事情手動幫助減少電腦的運算量!CNN會很浪費時間的原因,就是必須全圖無差別的搜索目標嘛!讓聰明的人眼經過拍攝過程點出中心點當然就好做多了

即使是我們自己的演算法如果沒有「概略」的中心點作為起點,也會很慢的!我們也會陷入CNN地獄的意思!但是委託我們的客戶研發團隊之前是以Canny直接算出整體答案的最終頂點!我們採用那個頂點啟動我們的辨識之後其實還是會回溯調整這個頂點的!

所以其實我們不需要Canny的較準確答案,只需要那個紅圈的範圍限制我們起點的搜尋範圍就夠了!我們自己的演算法就足以做到Canny的工作了!事實上是可以做得更好!很像我們習慣了外包某樣工作久了,後來仔細評估才發現那件事自己做會更快,還更好!

所以昨天的會議就是決定更改流程,嘗試跳過這個需要耗時200多毫秒的程序!我們估計只需要使用二三十毫秒的時間就可以做到一樣的工作了!這代表全程運算時間會減少到只需300多毫秒!使用者的感覺就是很即時,反應很快了!這當然是很有意義也很有價值的優化!

由此事可以看出,我們開發辨識軟體時跟其他業界研發團隊理念是相反的!業界公司總是想加速開發縮短研發時程,所以都傾向盡量用現成的模組拼裝修改,很不願意從演算法的基礎從頭寫完整客製化的程式!委託我們的客戶就是這樣快速拼裝出看來可用的軟體,但辨識率不夠高,執行速度也很慢,所以才會找我們重新開發的!

我們呢?即使有現成模組可用都是會盡量自己重寫的!因為這樣才能最精準有效地針對問題解決問題!有點像龜兔賽跑吧?一步一步踏實走過的路才能建立出最堅實高效率的軟體!開發只是一時的工作,軟體的效益則是永久的!還是不要太貪圖快速開發省下的小錢吧?產品好才能長期領先競爭對手賺更多,也賺更久嘛

另一方面,從這次研發我們也發現手機的運算能力與一般桌機電腦的差距變小很多了!十年前我們就試過的!在電腦上開發的軟體拿到手機上跑就需要好幾倍的時間!如果現在還是這樣,這個專案也很難實用了!目前的感受是只會慢個大約0.5倍吧?電腦跑200多毫秒的到手機上就大約是300多毫秒而已,可以接受的!

即使如此,計算能力還是一個做生意不可忽略的成本!想像一下,如果我們是用了較低效率的MLDLCNN開發辨識軟體呢?在電腦端如果不用GPU就不可能是零點幾秒了!拿到手機端怎麼辦?難道輝達也要製作GPU手機來因應嗎?即使他們能做得出來,那種天價AI手機你買得起嗎?廣大客戶群願意使用嗎?

所以我真的無法理解:影像辨識軟體的主流技術應該是CNNDL?的這種荒謬說法。在現實上這是不可能實現的!簡單說就是:實在太貴了!即使有廠商做得出來,也會貴到沒人買得起的

有誰推薦more

限會員,要發表迴響,請先登入