TensorFlow Lite for Microcontroller
1
前言
2
Introducing TFLM (TensorFlow Lite for Microcontroller)
3
Prerequisite 準備工作
3.1
git 及 github 簡單操作
3.2
認識 make 及簡單操作 (mbed cli 的操作必備技能之一)
3.3
在 Windows 10 下安裝 VMware Workstation Player 及 Ubuntu 18.04
3.3.1
0. 事先準備
3.3.2
1. 下載 Ubuntu 18.04 ISO image 檔案 (電腦需要至少 20GB 以上硬碟空間, 預估下載時間: 7 分鐘)
3.3.3
2. 下載及安裝 VMWare Workstation Player (預估下載時間: < 1 分鐘 / 操作時間:10 分鐘)
3.3.4
3. 安裝套件之準備工作 (以下步驟 3 - 7 約需時 30 分鐘 )
3.3.5
4. 安裝 ARM mbed-os command line 編譯程式 mbed-cli
3.3.6
5. 安裝 ARM GCC compiler (編譯器)
3.3.7
6. 下載 TensorFlow Lite for Microcontroller (TFLM)
3.3.8
7. 下載 STM32-F 系列工具箱
3.3.9
8. 開始執行 TensorFlow Lite for Microcontroller 程式
3.3.10
參考文件
3.4
Arduino IDE 安裝 - 方法一: 從 Arduino libraries 安裝 TensorFlowLite
3.5
Arduino IDE 安裝 - 方法二: 從 Makefile 安裝 TensorFlowLite
3.6
ESP32-CAM 安裝 Arduino 開發環境
3.7
ESP32-CAM 安裝 esp-idf 開發環境
3.7.1
ESP32-CAM 硬體簡介
3.7.2
esp-idf 安裝環境設定
4
Hello_world 範例程式 - 訓練
4.1
在 Google colab 上建立及訓練 hello_world 的模型
4.2
colab 執行 training 程式前的準備工作
4.3
colab 執行 train hello_world model.ipynb 程式
4.3.1
訓練過程中, 學習如何修正及改善模型, 並將模型轉換成 TFLM 接受的格式
5
Hello_world 範例程式 - 推論
5.1
在 STM32 DISCO_F746NG 上實現 hello_world
5.1.1
(無痛執行)在筆電上編譯程式, 並下載至 STM32 DISCO_F746NG
5.1.2
(微痛執行)在筆電上編譯程式, 並下載至 STM32 DISCO_F746NG
5.1.3
(痛苦的 debug過程) DISCO_F746NG 執行 hello_world 當機
5.2
在 Arduino Nano 33 BLE 上實現 hello_world
5.3
在 ESP32-CAM 上實現 hello_world
5.4
在 MaixPy Amigo (RISC-V CPU) 上實現 hello_world
5.4.1
建立 MaixPy tool chains
5.4.2
下載 TensorFlow lite micro, 執行 make 來產生 source code
5.4.3
將 tensforflow 的 source code 檔案整理成 MaixiPy tool chain 的檔案架構
6
Micro_speech 範例程式-喚醒詞偵測:建構 app
6.1
在 STM32 DISCO_F746NG 上實現 micro_speech
6.1.1
(無痛執行)在筆電上編譯程式, 並下載至 STM32 DISCO_F746NG
6.1.2
(微痛執行)在筆電上編譯程式, 並下載至 STM32 DISCO_F746NG
6.2
在 Arduino Nano 33 BLE 上實現 micro_speech
7
Micro_speech 範例程式-喚醒詞偵測:訓練模型
7.1
在 Google colab 上建立及訓練 micro_speech 的模型 (原始程式及設定)
7.1.1
colab 執行 training 程式前的準備工作
7.1.2
colab 執行 train micro_speech model.ipynb 程式
7.1.3
將模型上傳至開發板
7.1.4
接續執行 make 及程式上傳
7.2
在 Google colab 上建立及訓練客製化 micro_speech 的模型
7.2.1
修改 colab 訓練程式
7.2.2
更換模型 - 將 colab 訓練結果的 g_model[ ] 內容複製貼上到 model.cc
7.2.3
修改 micro_model_settings.cc
7.2.4
修改 command_responder.cc
7.2.5
接續執行 make 及程式上傳
References
8
Magic_wand 範例程式
9
Person_detection 範例程式
9.1
ESP32-CAM 於 esp-idf 開發環境
9.2
ESP32-CAM 於 Arduino 開發環境
References 參考文獻
附錄
A
Appendix A - 開發板運算能力分析
B
Appendix B - Hello_world 原始碼分析
C
Appendix C - 機器學習模型之加強及改善可能
D
Appendix D - 音頻聲譜的說明與模型分析
Marconi github
marconi1964@yahoo.com or
marconi.jiang@gmail.com
TensorFlow Lite for Microcontroller (TFLM)
Chapter 8
Magic_wand 範例程式