# [2021-10-29] Dr. Gelion Lin (Chun Wei Lin), Garmin International (Taiwan), "An introduction of image/signal algorithm design" GARMIN除了是車載導航領導品牌外,亦有另外五大領域的服務,包含Automotive(ADAS、前車碰撞、車載導航、行人偵測及警示)、Outdoor、Fitness(組次紀錄、經期分析、自動指針校正、手勢辨識、抬手喚醒)、Marine(漁探、自動停泊、聲納、環場鳥瞰系統)、Aviation(飛航輔助系統)。 在開發流程上,從Request開始,找出客戶的需求,並釐清硬體限制以及什麼演算法能夠達成需求,如何在硬體限制下演算法能夠表現依舊。進入演算法開發階段時,在設計上除了看可不可行外,亦要看演算法是否採到專利;實作階段時,從實現演算法到部屬終端;進而到驗證階段,評估演算法正確性;最終回到分析階段,若結果不如預期,便將回到設計階段,改良演算法,若接以達標,便可Release到使用者端,最後由Maintenance階段收取客戶feedback,從而改進之。在NN開發上,Data Collect要保證找到夠好夠多的data,並在Model Training時決定是CNN或RNN滿足需求,驗證時亦是看accuracy以及model size是否不盡理想,最後一樣Release & Maintenance,從客戶端取得feedback。 實務上,環場鳥瞰系統開發上,發現到了使用者對於渴望知道周圍環境的需求,因而發想出一套提供上視圖、單獨畫面以及虛擬保險桿的系統。在車用環場系統上該技術已經趨近成熟,但是在船隻上,將會面臨尺度太大從而放大error的問題,且也會有拼接面對齊以及水平面偵測問題。因此在設計演算法上,採用了6顆魚眼,如何將球面影像轉成平便辨識一大挑戰,GARMIN演算法團隊使用OpenCV先將球面轉成立體面,在用電腦視覺的做法,將立體面經過Homography/Projective,8參數矩陣計算轉回水平面。最後在拚接時,使用Blending的方法去把交接處柔和化。應用上發現每次都要經過此類計算將消耗太多時間,因此透過look up table把魚眼的位置以及平面的位置map起來,便能節省運算資源了。最後在驗證上,除了實地到瑞典使用廠商提供的船隻實際測試外,亦有模擬測試以及台灣島內測試。 而在手錶訊號處理的議題,手勢辨識主題中,如何使使用者抬手時正確喚醒手錶變成一大議題。團隊採用小型RNN,以Apple Watch的反應作為label,有良好的dataset便能產生足夠好且符合限制的結果。在健身次數偵測上,其採用C-RNN,除了抓取當下動作的feaature外,亦利用RNN儲存歷史資訊的特性,進而偵測確切的開始-結束動作時間點,進而精準計算出次數,與傳統方法相比,準確度甚至提升至90%,且使用者介入的時間也縮短不少。 NN不是萬靈丹,他需要品質好的data,耗費很多時間labeling,以及需要model pruning使之能符合硬體限制。但NN不是不行使用,NVDA/ARM/Android接提供了現成的API使得Developer能直接call function實現NN以及其硬體加速。 ## Note ### The note I write is totally summarized version of speaker with minor my opinion. The citation is described below. ## Citation ### Topic: An introduction of image/signal algorithm design ### Speaker: Dr. Gelion Lin