字體:小 中 大 |
|
|
|
| 2026/03/25 02:32:28瀏覽496|回應0|推薦3 | |
我原本就是教學生寫程式的教授,到了業界我繼續教我的學生員工做商業軟體,我時常說的軟體開發原則與順序就是:功能→效能→介面!做軟體的目的當然是想達到預設的功能,以車牌辨識來說就是車牌號碼必須正確!功能達到之後就必須提升效能,執行速度越快表示計算量越少,不僅使用者覺得舒服,也可以節能減碳,用較便宜的電腦降低系統建置成本! 功能與效能都做好了,當然最後就是設計出讓使用者很方便使用的介面了!我賣的軟體都是讓介面盡量直覺簡單,最好使用者不必看說明書就能直接使用!那些雜七雜八的參數設定就盡量隱藏讓軟體自己偵測調整就好,不要去讓使用者困擾了!簡單說,就是傻瓜相機的概念,現在的說法更好聽了!就是AI啦! 事實上以影像辨識來說,這三個目標最困難也是必要的前提是功能!辨識結果不夠準確就一切都別提了!停車場的車牌辨識率不到98%就根本不必賣了!沒有人會買的!夠準了還必須反應夠快,辨識時間超過0.5秒就太遲鈍也是會被嫌棄的!反而是使用者介面比較不重要,因為使用這種軟體的多半是專業人士,現在我盡量只賣DLL模組,就完全不需要管介面了! 所以我們幫客戶開發特定的影像辨識軟體時,九成以上的工時都是在研究如何讓辨識更正確,就是提高辨識率啦!辨識準確之後就是回頭一一檢視所有程序,看看有哪些重複或不必要的計算可以跳過?或是哪些計算的精確度不需要那麼高,可以降低解析度後做計算也不會影響最終的結果?如果刷牙三十下跟二十下的效果一樣,那就少刷幾下省點力氣吧! 通常在幾天的效能優化努力之後,辨識速度至少會快上一倍,甚至是好幾倍的!我們的公司是非常注重這個效能環節的!所以一樣功能的產品幾乎毫無懸念都是市場上速度最快的產品!對此執著瘋狂的程度簡直可以用日語的痴漢來形容了! 原因之一是因為我是一個地科領域的海洋地質博士出身,速度越快越節省計算量就是越節能減碳愛地球!我雖然以軟體為業了,但絕對不想當個破壞環境的幫兇!每次聽到甚麼「算力等於國力」之類的論調時,心中就有如淌血一般沉痛!不必要的算力使用越多地球毀滅就越快!另一方面我是個客家人,執著省錢也是我的DNA!計算量少表示不需要買昂貴的電腦設備就能運作良好,就可以替客戶省很多錢了! 最近的工作是在升級柬埔寨版的車牌辨識核心,現在也將功能的部分處理得差不多了!就開始想著如何減少不必要的運算?其中最刺眼的就是如上圖車號上方的柬埔寨文的國名「柬埔寨」,以及下方用英文寫的省市名稱了! 因為它們跟車號一樣,也都是整齊排列的目標群組,所以一定也會被當作可能的車牌,進入完整的資料處理程序!但是到最後當然會被證實不是車牌號碼而被淘汰不予回報,所以這些計算時間就算白費了!如果可以越早發現他們不可能是車牌,提前結束辨識旅程當然整體計算量就可以大減了! 想像一下,如上的車牌每一個都必須做3.0次的車牌辨識,如果我讓國名與地名的辨識提早出局,變成1.X次的總辨識量,我不就省很大了嗎?我的技巧之一就是真的替柬埔寨文做字模!確認看到任何一個柬文字元時就直接停止該辨識程序了!真正的車牌號碼中當然是沒有柬文字元的! 另一方面,真正的車牌字元比英文地名大很多,而且依照辨識順序一定會比英文地名先辨識出來!所以如果發現待處理目標比已經完成辨識的車號小很多,而且剛好位在已辨識車號的下方緊鄰處,那就可以直接放棄,不辨識都知道那是地名不是車牌了!就是這樣兩個小動作而已,辨識時間就從170毫秒變成86毫秒了!就是不到0.1秒就辨識出來了!
寫到這邊不免有個感觸,就是好像所有的車牌辨識或影像辨識文獻,或網路資訊,都有點愚民政策?沒有務實的完整讓讀者知道大部分一定會發生也一定需要處理的問題!所以讓完全自學的我非常辛苦的才能走到今天以此為業!為什麼我們不能就事論事地看待這個專業呢?還要繼續欺騙大眾用XX學習就可以輕鬆搞定影像辨識嗎?這種事從未發生過,以後也絕對不會發生!還要繼續騙嗎? |
|
| ( 心情隨筆|工作職場 ) |













