嵌入式系統近幾年來搭上人工智慧(AI)、物聯網(IoT)科技風潮,被廣泛應用在交通、醫療儀器、製造設備,甚至是消費性電子用品等。然AI的模型、算法的開發有一定門檻,加上嵌入式硬體的運算資源通常有限,工程師必須依賴更強大的開發工具,如MATLAB與Simulink,才能快速將AI功能整合到硬體產品中。
鈦思科技工程部經理童元鍼表示,嵌入式系統的設計流程,從決定需求/規格開始,要先擬定環境及系統行為模型;隨後根據設計需求進行設計,包含建立演算法、環境模型與各個實體的零組件模型,以及在建模之後進行設計模擬;接著,將模型及演算法等設計付諸實現,轉碼為目標晶片或硬體所需的程式碼;最後,則進行設計的測試及驗證。
在物聯網系統之中,大量的嵌入式裝置要能夠彼此溝通,但各個嵌入式系統乘載著不同的特性與條件,在開發上彼此之間也經常存在模型設計的差距,所使用的開發工具也不盡相同,帶來溝通及反覆驗證設計的困難及複雜度。尤其面對當前產業應用朝向多元化發展,在系統中結合了跨國、跨領域的設計,為傳統的開發設計流程帶來前所未有的挑戰,擁有一個能夠整合跨領域技術與理論的開發平台成為嵌入式系統開發廠商奪得產品市場先機的關鍵。
MathWorks公司旗下的MATLAB和Simulink可提供完整的模型化基礎設計(Model-Based Design)平台,在這個開發環境,以可執行的模型取代傳統文字撰寫的規格要求及須考量進設計中的法規等,接著跨領域的開發人員可以在相同的平台各自開發、在軟體階段先模擬設計的執行情況,確認軟體可以正常執行之後,再透過MATLAB及Simulink提供的自動程式碼生成工具,從Simulink模型產生可以在目標硬體上執行的程式碼,進行快速原型化,節省手動編碼所需的時間及人力成本。加上由程式碼產生工具自動產生的程式碼是可讀、可追蹤的,一旦硬體程式碼執行出現問題,可以直接追溯回模型修改設計。
至於在AI支援方面,MATLAB的類神經網路工具箱(Neural Network Toolbox)提供了現階段全球最新、準確率最高的各類型深度學習網絡的預訓練模型(Pre-trained Models),如適用於影像分類的卷積神經網路(CNN)訓練模型,以及多種最新預訓練模型如GoogLeNet、AlexNet、VGG-16、VGG-19、ResNet-50、ResNet-101、Inception-v3等,並可整合Caffe以及Tensorflow等深度學習架構,幫助使用者透過這些已有相當不錯表現的模型進行遷移式學習,訓練出自己所需的深度學習網路。這是MATLAB進行深度學習的優勢之一,當然使用者也可以從頭到尾自己利用MATLAB開發深度學習模型。
值得一提的是,深度學習需有特殊規格的硬體(如GPU)進行運算,同時也要熟悉某些獨特的程式編撰技術(如CUDA程式碼)。如果沒有上述基礎,要對不同的模型進行訓練,然後進行視覺化、評估和進行比較是相當困難的。而MATLAB與Simulink則提供相當完整對於深度學習架構開發及學習的環境,讓各領域使用者都能開始進行深度學習開發。
不過,童元鍼也提到,AI算法通常需要較高的運算能力支撐,但因為物聯網裝置通常在成本/功耗上有較嚴格的限制,因此,如何開發出高效率的算法,以便佈署在各種物聯網裝置硬體上,對開發者是很大的考驗。而且,各式物聯網硬體適用的程式架構不一樣,更讓開發者在工作上面臨巨大挑戰。使用MATLAB的好處在於,透過MATLAB快速開發與驗證出最佳算法與應用之後,透過自動轉碼工具,能生成適合各種物聯網裝置或嵌入式硬體的程式碼,省時又高效。