來源:富昌電子 計算機科學界在機器學習和更廣泛的人工智能(AI)領域取得了最重大的突破。從自動駕駛到擊敗國際象棋大師的計算機,人工智能領域最著名的成就取決于大規模計算資源的部署:例如,運行數百萬行代碼的超高速、大功率圖形處理單元(GPU)陣列。 嵌入式設備設計人員也開始將AI的優勢帶給邊緣設備,他們比計算機科學家面臨的約束要嚴格得多:與運行大規模AI應用程序的數據中心相比,嵌入式設備提供的處理器帶寬和存儲器要少幾個數量級。 盡管他們可以使用的硬件資源有所不同,但當今的嵌入式工程師仍然普遍使用起源于計算機科學領域的開發過程、工具和框架。這意味著,對于以前使用針對嵌入式硬件組件(例如微控制器或FPGA)的集成開發環境(IDE)的電子工程師來說,AI開發過程可能會令他們不知所措。AI項目還需要技能和知識的部署,例如訓練數據集的獲取、選擇和管理,而這些在傳統電子系統開發中是前所未有的。 但是正如本文所述,半導體制造商正在開始擴展其產品的功能和工具鏈,以支持嵌入式AI項目的需求。 有趣的是,機器學習的原生的嵌入式方法也正在興起,這消除了AI軟件的許多復雜性,從而消除了對計算機科學知識的需求。 神經網絡引入了新的開發流程 如圖1所示,機器學習的基本過程僅包括兩個階段:訓練神經網絡模型,即“訓練階段”;將此神經網絡部署到目標設備上,即“推理階段”。在嵌入式環境中,此目標設備通常是基于微控制器、應用處理器或FPGA的本地或“邊緣”設備。 圖1:每個機器學習開發項目的兩個階段(圖片由恩智浦半導體提供) 到目前為止看起來都很簡單。但是每個階段都有許多開發任務,這對于以前沒有機器學習經驗的嵌入式開發人員來說是陌生的。恩智浦的圖表(圖2)概述了工作流程的各部分中的任務。 圖2:嵌入式機器學習開發中的基本工作流程(圖片由恩智浦半導體提供) 不僅過程本身對嵌入式工程師來說是新的,技術、術語和行話也是如此。例如,在訓練神經網絡之前,開發人員需要確定哪種網絡最適合該應用。卷積神經網絡(CNN)模型廣泛用于圖像識別應用,而有限狀態機(FSM)可能適用于識別時間序列數據中的模式。wardingdatascience.com托管的神經網絡基本目錄列出了25種以上的類型。 對于每種神經網絡類型,通常都有數百種針對特定功能進行了優化的算法。這些軟件元素往往具有自己的行話,這對于初次使用的用戶可能很難理解。恩智浦的由eIQ工具支持的神經網絡模型列表(如下圖)提供了神經網絡算法的示例。 除了最大型的嵌入式開發團隊以外,其他人可能都沒有時間和資源在開始其首個AI項目之前就機器學習的所有關鍵方面進行自學。 對于較小的開發團隊,還有另一種選擇:諸如恩智浦和萊迪思半導體等元器件制造商已經為諸如人員檢測、人員計數和語音識別之類的應用開發了可立即投入生產的參考設計硬件和軟件。QuickLogic還提供了在其QuickAI™平臺上運行的低功耗聲音檢測器解決方案和語音識別解決方案。它們提供了最簡單、最快的機器學習入門。萊迪思甚至提供其訓練數據集,使OEM能夠修改每個參考設計中包含的神經網絡模型。 訓練階段:富昌電子提供專家幫助 如果現成的參考設計不支持預期的應用,則OEM將需要實施訓練和推斷過程。對于這兩個階段,嵌入式開發人員對于推理階段更為熟悉:本質上,這涉及采用經過訓練的模型并針對特定的硬件目標對其進行編譯,例如恩智浦的i.MX RT跨界微控制器、意法半導體的STM32F7 MCU,或QuickLogic的QuickAI平臺。 這些硬件設備的供應商或多或少地提供了開發工具,使將經過訓練的模型編譯到目標硬件的過程相當直觀和直接。例如,恩智浦為其MCU和應用處理器提供了eIQ工具。eIQ工具支持TensorFlow Lite、Arm® NN、OpenCV和其他推理引擎。同樣,ST提供了STM32Cube.AI工具,用于將神經網絡轉換為針對特定STM32 MCU的優化代碼。 與標準嵌入式開發工作流程的最大不同在于訓練階段。在典型的MCU開發項目中,可以在單個IDE(例如IAR Embedded Workbench或Keil MDK)中創建整個應用程序的代碼庫。 但是,在機器學習項目中,MCU、處理器或FPGA的開發環境不支持訓練階段:嵌入式工程師被帶到了新的領域。 參考上面的恩智浦工作流程圖,該流程的每個階段都需要專業知識和技術。在將原始數據提交給TensorFlow Lite、Caffe或Keras等模型訓練框架之前,首次準備訓練數據集的工程師需要學習很多知識,例如,如何收集原始數據、如何標記和管理原始數據、如何提取特征等。同樣,每個框架都有其自己的處理流程、用戶界面和數據協議。 線上有大量文檔可供嵌入式工程師學習。但是,無論工程師在理論上做了多少準備,都無法替代原型項目。在項目的早期階段,開發人員可以從機器學習專家的建議和指導中收獲很多。 這正是富昌電子可以提供的:我們各辦事處的龐大的現場應用工程師團隊中具有高需求技術領域的專家,包括機器學習/AI領域。我們的AI領域的區域高級工程師專家致力于這一領域,隨時為OEM開發人員提供指導,無論是計劃新的開發項目還是在項目期間,我們都能為您解決特定問題。 通過我們的區域卓越中心,OEM甚至可以將部分或全部設計項目外包給富昌電子,從而為機器學習提供完整的交鑰匙解決方案。 專為嵌入式世界打造的AI工具包 如前所述,MCU、處理器和FPGA制造商支持的大多數工具和框架都來自計算機科學界:它們龐大、復雜、功能強大且難以在短時間內學習。 因此,可編程片上系統制造商QuickLogic的子公司SensiML采用了不同且有趣的方法。SensiML起源于Intel的一個部門,創建了其SensiML Edge AI軟件工具包,以提供一個完整的端對端環境,嵌入式開發人員可以在該環境中立即提高工作效率(見圖3)。 圖3:SensiML提供的簡單機器學習工作流程(圖片由QuickLogic提供) 據SensiML,其邊緣AI軟件工具包“使開發人員無需數據科學或嵌入式固件專業知識就能在幾天或幾周內構建智能傳感設備”。它可以用于開發諸如工業機器的預測性維護、消費者可穿戴設備中的活動監視、智能農業中的牲畜監視以及零售商店的流量分析等應用。 圖1中所示的過程將開發分解為訓練階段(步驟1-3)和推理階段(步驟4)。但是,據SensiML,其不同之處是它是快速、智能和完整的。 · 它不需要手動編碼,會自動生成代碼 · 它不需要數據預處理方面的專業知識,開發人員要做的就是收集數據樣本。該工具包包含支持數據捕獲的SensiML數據捕獲實驗室模塊。 · 使從收集訓練數據到生成訓練算法的整個過程實現自動化。 因為SensiML工具包是為嵌入式工程師設計的,所以它不假定輸出必須是復雜的神經網絡模型。對于生成時間序列數據的應用程序(例如預測性維護或個人活動監控),較簡單的算法類型(例如分類器)通常優于神經網絡。這種更簡單的算法不僅更易于生成、修改和完善,而且還需要更少的目標硬件資源,使OEM可以圍繞低功耗目標(例如基于Arm Cortex®-M內核的MCU或QuickLogic自己的QuickAI可編程平臺)構建項目,而更復雜的神經網絡模型可能通常需要應用處理器或中等密度FPGA。 新資源出現可提供幫助 由于機器學習是嵌入式世界中的最新現象,不同制造商的產品尚未標準化,目前,不同供應商的工具鏈為AI項目提供的支持范圍存在很大差異。 盡管SensiML提供了最全面的工具包,但各制造商提供的環境和服務,例如,意法半導體和恩智浦為MCU和處理器提供的環境和服務,以及萊迪思和Microchip為FPGA提供的環境和服務,都支持越來越多的流行訓練框架,并為自己的產品提供了優化的編譯性能。 對于第三方框架與半導體制造商的工具之間必須彌合的差距,富昌電子的專家能夠隨時為您提供指導、專有技術和現場協助。 |