中文 | English

Edge Impulse使數百萬的Arduino開發者可使用TinyML

翻攝自Arduino.c.c網站,特此致謝。

(特別感謝Arduino團隊開放授權,使我們得已將這篇文章翻譯成中文。也特別感謝原文作者Jan Jongboom與Dominic Pajak,感謝兩位作者。若讀者盼望一覽原文,請點擊以下網址:https://blog.arduino.cc/2020/05/26/edge-impulse-makes-tinyml-available-to-millions-of-arduino-developers/?fbclid=IwAR12VIk5-yehKak-8-l7Vq-faAQd4RePNl6iJ4geCmuc1LfZQtX9Nzlhmfk

在微控制器上運作機器學習(稍後段落以ML為簡稱),是去年(2019年)最令人興奮的發展之一:允許由小電池提供動力的裝置,偵測複雜的動態,識別聲音,或於感測器的資料中,發現異常現象。為了建構並佈署這些模型,讓每位嵌入式的開發者得以使用,我們針對Arduino Nano 33 Sense,以及其它32位元的Arduino開發板,在Edge Impulse中,發佈了第一級的支援。

在微控制器上運作ML的趨勢,被稱為嵌入式ML或TinyML,意指裝置可作出智慧的決定,卻不需要傳送資料至雲端——從效率及隱私的觀點而言,這真的是棒極了!甚至威力強大的深度學習(Deep Learning)模型(以人工神經網路為基礎),目前也觸及了微控制器。去年這項絕佳的進步,使得深度學習模型更小、更快,以及透過專案,如TensorFlow Lite MicrouTensor及Arm的CMSIS-NN,可運作於嵌入式硬體。但建構一個質量資料集,提取正確的功能,訓練並佈署這些模型,仍十分複雜。

使用Edge Impulse,您可以即刻、快速地收集真實世界的感測器資料,利用這些在雲端上的資料,訓練ML模型,然後將這些模型佈署於您的Arduino裝置。從這裡,您可運用單一的函式呼叫,將模型整合至您的Arduino Sketch。之後您的感測器將變得智慧許多,能夠理解真實世界中複雜的事件。內建的範例,允許您從加速器及麥克風收集資料,只要幾行程式碼,便可以簡單地整合其它感測器。

您覺得欣喜若狂嗎?這是您運用Arduino Nano 33 BLE Sense,首次建構您的深度學習模型。(也有教學影片,請點擊。)

  • 免費註冊一個Edge Impulse帳戶
  • 安裝Node js.及Arduino CLI
  • 插入您的Arduino Nano 33 BLE Sense開發板
  • 下載Arduino Nano 33 BLE Sense韌體。這是一個特殊的韌體包(原始碼),包含所有的程式碼,以快速從其感測器收集資料。
  • 啟動Edge Impulse的守護程序,以將您的開發板,連結至Edge Impulse。開啟一個終端機或命令提示字元,並且運作:

$ npm install edge-impulse-cli -g

$ edge-impulse-daemon

  • 收集一些資料,並且建構一個模型。
  • 現在,您的裝置顯示於Edge Impulse Studio的裝置標籤上,準備好讓您收集一些資料,並且建立一個模型。
  • 一旦您完成,您可以佈署您的模型回到Arduino 33 BLE Sense。不論是作為包括您的完整ML模型的二進制,或是作為您可以在任何Sketch中整合的Arduino函式庫。
翻攝自Arduino c.c.網站,特此致謝!

從Edge Impulse佈署至Arduino

  • 現在,您的機器學習模型正在Arduino開發板上運作。開啟序列埠監控視窗,並輸入「AT+RUNIMPULSE」,以開始分類真實世界的資料。
翻攝自Arduino c.c.網站,特此致謝。

與您最喜愛的Arduino平台整合

我們已與Arduino Nano 33 BLE Sense一起發佈,但您也可以運用您最喜愛的Arduino平台,與Edge Impulse整合。您可以使用Data Forwarder,輕易地從任何感測器和開發板收集資料。Data Forwarder是一個小型的應用程式,透過Serial函式庫讀取資料,並將資料傳送至Edge Impulse。而您所有需要做的,即在您的sketch內,撰寫幾行程式碼。(範例

在您建構模型後,您可輕易地以Arduino函式庫的形式輸出模型。而這個函式庫將於任何以Arm為基礎的Arduino平台上運作,包括Arduino MKR家族,或Arduino Nano 33 IoT,假如Arduino平台有足夠的記憶體運作您的模型。現在,只要幾行程式碼,您可於任何Arduino Sketch中,包括您的ML模型。當您已將函式庫,加至Arduino IDE後,您可以於Files > Examples > Your project – Edge Impulse > static_buffer下,發現一個整合模型的範例。

為了盡可能快速及高速節能地運作您的模型,我們自動地利用您的Arduino開發板的硬體效能,例如,訊號處理擴充,可用於以Arm Cortex-M4為基礎的Arduino BLE Sense,或效能更強大,以Arm Cortex-M7為基礎的Arduino Portenta H7。我們也利用了Arm於CMSIS-NN中提供的,最佳化的神經網路卷積核。

生產之路

此項發佈是關於這項讓人感到興奮的合作計畫第一步。我們相信,今天許多嵌入式應用得以從ML獲益,不論是針對預測性維護,以幫助工作人員的安全;或用於醫療保健領域。使用Edge Impulse搭配Arduino MKR家族,您已可快速佈署,簡單地以ML為基礎的應用,搭配LoRa、NB IoT cellular或WiFi的連結。於接下來我們也將針對Arduino Portenta H7,增加於Edge Impulse上的整合,使更高效能的工業應用成為可能。

我們迫不及待想看到您將建構的應用!

分享到社群