Arduino 機器學習實戰入門(下)

2021-02-13 ATYUN訂閱號

編輯 | 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

相關焦點

  • 機器學習入門
    機器學習理論主要是設計和分析一些讓計算機可以自動「學習」的算法。機器學習算法是一類從數據中自動分析獲得規律,並利用規律對未知數據進行預測的算法。因為學習算法中涉及了大量的統計學理論,機器學習與統計推斷學聯繫尤為密切,也被稱為統計學習理論。算法設計方面,機器學習理論關注可以實現的,行之有效的學習算法。
  • 機器學習實戰
    想快速入門機器學習領域的童鞋還等什麼?!看小編介紹的這個課程就可以啦!!
  • 《PyTorch 機器學習從入門到實戰》國內最懂「小扎」的技術團隊...
    近日,由校寶在線CTO孫琳,攜校寶研究院技術專家項斌、蔣陽波、汪建成共同撰寫的國內首款介紹PyTorch 深度學習框架在教育信息化領域實戰操作書籍《PyTorch 機器學習從入門到實戰》 正式出版了。作為最早介入PyTorch 深度學習框架研究的國內技術團隊之一,該書向想要學習PyTorch 深度學習框架學習者,提供從基礎入門到商業實操的全部經驗。
  • 機器學習入門線路
    ML表示機器學習,DEV表示開發,本專欄旨在為大家分享作為算法工程師的工作,機器學習生態下的有關模型方法和技術,從數據生產到模型部署維護監控全流程,預備知識、理論、技術、經驗等都會涉及,近期內容以入門線路為主,敬請期待!往期回顧:之前寫了有關計算機開發能力和數學能力的入門,在已有一定開發和數學基礎的前提下,大家可以慢慢開展機器學習方面的學習。
  • 【下載】《機器學習》+《機器學習實戰》
    簡介:機器學習是計算機科學與人工智慧的重要分支領域。 本書作為該領域的入門教材,在內容上儘可能涵蓋機器學習基礎知識的各方面。2.機器學習實戰簡介:機器學習是人工智慧研究領域中一個極其重要的研究方向,在現今的大數據時代背景下,捕獲數據並從中萃取有價值的信息或模式
  • Arduino入門1: Arduino的前世今生
    當很多初學者問為什麼大家都推薦先入門Arduino而不是其他平臺?答案就是經典。可以說,學習Arduino,不單是掌握一項技能,更可以接觸到開源硬體的經典範式,理解Maker Movement背後的精神追求。
  • 大牛輕鬆帶你玩轉Arduino智能硬體:(一)arduino入門:硬體介紹
    (一)arduino入門:硬體介紹認識arduino你都不需要去關心單片機編程繁瑣的細節,提供給你的是一套容易使用的工具包。4 以下是基於arduino單片機的作品尋跡小車平衡小車我相信大家看了這些作品後,都會感覺arduino的強大,心中也是很激動的,也很想嘗試去自己動手製作,那好就讓我們進入arduino的世界吧,讓自己成為一名創客。
  • 認證會員項目show|最通俗易懂的sklearn機器學習入門,根據溫溼度判斷天氣(Python+Arduino)
    欄目首篇推文,給大家推薦一篇超級無敵詳細的教程,帶你入門sklearn機器學習,運用Arduino和Python來根據溫度和溼度判斷天氣情況。教程來自柴火認證會員鄭博培Mr.鄭先生,感謝開源分享。Open source is love.
  • Arduino中小學創客教師快速入門,專業書籍是重要法寶
    本書包含在Arduino官方入門套件中,還帶有配套的入門級Arduino Uno開發板及14個實驗所需的所有電子元件。超圖解 Arduino互動設計入門(第2版)愛好者,本書由淺入深地敘述了學習arduino的全部過程,文章中的文字通俗易懂,可謂是arduino初學者的殿堂,本店主推薦大家參閱一下,或許您會得到一些收穫。
  • 推薦|機器學習入門方法和資料合集
    近些天在微信群裡經常看小夥伴問到「機器學習如何入門,看哪些資料 ?」,於是乎想根據筆者學習兩年多的學習經驗,介紹下機器學習如何入門,該看哪些資料?下面我將從以下幾個方面整理機器學習入門的資源:(1)語言:機器學習中常用的語言。
  • 玩轉Arduino提升工業/交互作品 | Workshop 01
    通過編程,設計師可以通過arduino讀取各種傳感器的數值,並使用物理輸出和可視輸出控制或影響外界環境,創造出有趣的互動原型。Arduino對於新手非常友好,入門簡單,非常適合設計師學習。掌握Arduino能讓設計師的想像力有更多的發揮空間。
  • Arduino_集合Arduino教程、Arduino IDE及設計應用的技術專題
    26# 雲端 說:2014-05-18 22:55 家庭物聯網,離不開arduino
  • 564 頁《Hands-On Machine Learning》已開源,機器學習入門必備!
    :《Hands-On Machine Learning with Scikit-Learn & TensorFlow》,中文譯為《Scikit-Learn 與 TensorFlow 機器學習實用指南》。
  • 機器學習/深度學習入門資料匯總
    這門課主要針對初學者,不需要有經典的機器學習基礎(其實,深度學習入門,比經典的機器學習更容易)。課程的內容深入淺出,訓練和預測樣本都是各種數碼寶貝和二次元卡通人物,絕對讓你耳目一新。沒有字幕,中文授課(臺灣腔)。
  • 推薦:《機器學習實戰:基於Scikit-Learn和TensorFlow》中文翻譯和代碼下載
    本文提供機器學習入門的好書《機器學習實戰:基於Scikit-Learn和TensorFlow》的中文翻譯文件和原始碼下載。一、前言推薦一本機器學習入門的好書:《機器學習實戰:基於Scikit-Learn和TensorFlow》。
  • 《機器學習實戰》中英文電子書、源碼分享
    有朋友留言要求分享一下以Python 為基礎的機器學習實戰編程書籍:《Machine Learning In Action》,也就是中文版廣為流傳的《機器學習實戰》,小湯本著一直堅持的「好資源大家一起分享,共同學習,共同進步」的初衷,於是便去找了資料,而且還是中英文兩個版本都有,分享給有需要的小夥伴
  • 《機器學習實戰:基於Scikit-Learn和TensorFlow》中文版
    機器學習的核心是「使用算法解析數據,從中學習,然後對世界上的某件事情做出決定或預測」。這意味著,與其顯式地編寫程序來執行某些任務,不如教計算機如何開發一個算法來完成任務。有三種主要類型的機器學習:監督學習、非監督學習和強化學習,所有這些都有其特定的優點和缺點。
  • 機器學習實戰 | 機器學習性能指標
    它通過將連續變量設定出多個不同的臨界值,從而計算出一系列敏感性和特異性,再以敏感性為縱坐標、(1-特異性)為橫坐標繪製成曲線,曲線下面積越大,判別的準確性越高。在ROC曲線上,最靠近坐標圖左上方的點為敏感性和特異性均較高的臨界值。那麼 ROC 曲線是如何繪製出來的呢?
  • 機器學習實戰 中英文版 PDF 高清電子書
    《機器學習實戰》內容簡介:機器學習是人工智慧研究領域中的一個極其重要的方向。在現今大數據時代的背景下,捕獲數據並從中萃取有價值的信息或模式,使得這一過去為分析師與數學家所專屬的研究領域越來越為人們矚目。《機器學習實戰》通過精心編排的實例,切入日常工作任務,摒棄學術化語言,利用高效可復用的Python代碼闡釋如何處理統計數據,進行數據分析及可視化。
  • 機器學習漫遊指南 最完整的入門書單(外文版)
    這份指南適合多樣背景的讀者:從想要了解機器學習的普通人,到入門新手,再到高階開發者和學術研究人員。因此,雷鋒網對其進行編譯整理,特來與大家分享。友情提醒:該指南只考慮了英文市場的機器學習圖書,適合大家作為國際 ML 讀物的參考。而例如周志華老師 《機器學習》等國內優秀著作並沒有體現,請讀者見諒。