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