編輯 | sunlei
發布 | ATYUN訂閱號
本文中藍色字體為外部連結,部分外部連結無法從文章中直接跳轉,請點擊【閱讀原文】以訪問。
前文回顧:Arduino 機器學習實戰入門(上)
按照以下步驟設置Arduino IDE應用程式,該應用程式用於將推理模型上載到您的電路板,並在下一節中從電路板下載培訓數據。因為我們需要在Arduino IDE中下載和安裝特定的板和庫,所以比使用Arduino Create web editor要多幾個步驟。從https://arduino.cc/downloads下載並安裝Arduino IDE在Arduino IDE菜單中選擇工具>板>板管理器…搜索並安裝Arduino_TensorFlowLite庫接下來搜索並安裝Arduino_LSM9DS1庫:選擇板工具>板> Arduino Nano 33 BLE選擇埠工具>埠> COM5 (Arduino Nano 33 BLE)如果需要幫助,Arduino網站上有更詳細的入門和故障排除指南。
首先,我們需要獲取一些訓練數據。你可以通過USB數據線從Arduino板上獲取傳感器數據日誌,你可以用筆記本電腦或個人電腦給板編程。Arduino板運行小應用程式(也稱為示意圖),這些程序是由.ino格式的Arduino原始碼編譯而成,並使用Arduino IDE或Arduino Create在板上編程。我們將使用一個預先製作好的草圖IMU_Capture.ino,它執行以下操作:以119Hz採樣1秒,通過USB輸出CSV格式數據我們選擇從板上讀取的傳感器、採樣率、觸發閾值,以及我們是否將數據輸出為CSV、JSON、二進位或其他格式,這些都可以在Arduino上運行的示意圖中定製。在將數據輸出到日誌之前,還可以在設備上執行信號預處理和過濾——這一點我們可以在另一個博客中討論。現在,您只需要上傳草圖並開始採樣。要在Arduino IDE中使用此草圖對電路板進行編程:完成這些之後,我們現在就可以看到黑板上的數據了。我們還沒有捕獲數據-這只是讓你感覺一下傳感器數據捕獲是如何觸發的,以及一個樣本窗口有多長。這將有助於收集訓練樣本。在Arduino IDE中,打開串口繪圖儀工具>串口繪圖儀工具>埠>埠名(Arduino Nano 33 BLE)您應該會看到傳感器數據捕獲的實時圖(參見下面的GIF)。Arduino IDE串行繪圖儀將顯示從板輸出的CSV數據的實時圖形當你完成時,一定要關閉串行繪圖儀窗口——這很重要,否則下一步將無法工作。
要將數據捕獲為CSV日誌以上載到TensorFlow,可以使用Arduino IDE>Tools>Serial Monitor查看數據並將其導出到計算機桌面:在Arduino IDE中,打開串口監控工具>串口監控工具>埠>埠名(Arduino Nano 33 BLE)將數據從串行控制臺複製並粘貼到名為csv的新文本文件中清除控制臺窗口輸出並重複上面的所有步驟,這次是在一個名為csv的文件中使用flex手勢注意,兩個csv文件的第一行應該包含欄位aX、aY、aZ、gX、gY、gZLinux提示:如果願意,可以將傳感器日誌輸出從Arduino直接重定向到命令行上的.csv文件。串行繪圖儀/串行監視器窗口關閉後使用:
$ cat /dev/cu.usbmodem[nnnnn] > sensorlog.csv
我們將使用谷歌Colab來訓練我們的機器學習模型,該模型使用的是我們在前一節中從Arduino板上收集的數據。Colab提供了一個Jupyter notebook,允許我們在web瀏覽器中運行我們的TensorFlow訓練。將訓練後的模型轉換為TensorFlow Litecolab的最後一步是生成要下載的model.h文件,並將其包含在下一節的Arduino IDE手勢分類器項目中:讓我們打開Colab中的筆記本,運行單元中的步驟: arduino_tinyml_workshop.ipynb
接下來我們將在Arduino IDE項目中使用之前章節中我們剛剛訓練並從Colab下載的model.h文件:1.在Arduino IDE中打開imu_classifier.ino。2.在IDE中創建一個新選項卡命名為model.h。3.打開model.h選項卡並粘貼您從Colab下載的版本7.將每個手勢的置信度列印到串行監視器(0 =低置信度,1 =高置信度)祝賀您,您剛剛為Arduino培訓了第一個ML應用程式!為了增加樂趣,emoji_button.ino示例演示了如何在Linux和MacOS中創建列印emoji字符的USB鍵盤。嘗試將emoji_button.ino示例與imu_classifier.ino草圖結合起來,創建一個手勢控制的emoji鍵盤。
這是一個激動人心的時刻,有很多東西可以在Tiny ML中學習和探索。我們希望這篇文章能讓你了解它的潛力,並成為開始在你自己的項目中應用它的起點。https://medium.com/tensorflow/how-to-get-started-with-machine-learning-on-arduino-7daf95b4157
據說在看的沒有BUG