分類彙整: TensorFlow

好書推薦:《TinyML|TensorFlow Lite 機器學習》

TinyML: Machine Learning with TensorFlow Lite on Arduino and Ultra-Low-Power Microcontrollers 繁體中文版

最近終於把這本書讀完一遍了,不過還沒嘗試執行書中的範例程式,等有空時再來試試:)

這本書裡用來執行範例程式的硬體開發板有:

  • Arduino Nano 33 BLE Sense
  • SparkFun Edge
  • ST Microelectronics STM32F746G Discovery kit

不過現在 TensorFlow Lite for Microcontrollers 也支援 ESP32 了,所以沒有上述的硬體開發板也沒關係,可以用 ESP32 來試試看。

書開頭的幾章先用「Hello World」範例帶領讀者走一遍完整的開發流程(從建立與訓練模型開始,然後執行程式,再到部署至微控制器),「Hello World」範例的功能其實很簡單,就是模擬正弦 (sin) 信號而已。

之後的章節陸續講解了喚醒詞偵測 (yes/no)、人體偵測、魔杖(手勢) 等功能的程式建構與模型訓練。

最後幾章講了 TensorFlow Lite for Microcontrollers 使用上要注意的地方,還有優化、除錯、移植等相關的技巧,最後還有提到安全與隱私方面的議題。

這本書厲害的地方是:我覺得作者在概念與基礎知識的講解上算是淺顯易懂,所以蠻推薦對 TinyML 有興趣的人來讀讀看這本書。

★ 2021 年 3 月時的補充說明:Raspberry Pi 基金會在 2021 年 1 月時推出了 Raspberry Pi Pico 開發板,而《TinyML|TensorFlow Lite 機器學習》的作者之一 Pete Warden 也在稍後將 TensorFlow Lite Micro 移植到了 Pi Pico 上,Pi Pico 的價格很便宜,而且很容易購買到,所以使用 Pi Pico 來製作 TinyML 應用的原型應該也是不錯的選擇。

試玩 Coral USB Accelerator

我不久前買了 Google 出的 Edge TPU 裝置:Coral USB Accelerator 來玩玩看,覺得這玩意非常不錯,台幣兩千多元,可以跑 TensorFlow Lite 格式的模型,我個人是覺得還蠻划算的。

我先用 Raspberry Pi 3 Model B+ 來測試 Pose Detection 模型,一開始使用預設的解析度:640×480,繪製的速度不是很理想,影片如下:

然後我把解析度設定成:480×360,繪製的速度有加快,但還是不盡理想,所以後來我改用一台 2013 年買的小筆電來跑,這次繪製的速度就相當不錯了,影片如下:

這台小筆電的規格為:CPU 是 Intel Celeron(R) CPU 847 @ 1.10GHz,記憶體 4GB,作業系統是 Debian 10 (buster) amd64 版,且有 USB 3 的插孔。

Raspberry Pi 3 Model B+ 除了 CPU 速度較慢之外,也沒有 USB 3 的插孔,所以整體上慢了一大截。但是前陣子出的 Raspberry Pi 4 Model B 有 USB 3 插孔,我已經訂了一台 Pi 4,等收到貨後再測試看看繪製速度是否有提升。

# 2019 年 11月 3 日補充: 我在 Raspberry Pi 4 (4GB 記憶體版本) 上測試了 Coral PoseNet,測試結果請看以下影片,TrueFPS 維持在 20.x 以上:

然後我還有嘗試 Object detection 與 MiniGo 圍棋:

Coral 官方網站也提供了好幾個已編譯好的模型讓人下載:https://coral.withgoogle.com/models/ ,可以先從這些模型開始玩起。

感想:這種 Edge TPU 裝置可以做很多有趣的應用,而且價格不算貴,有興趣的人快去買來玩玩看!