TensorFlow Lite untuk Mikrokontroler dirancang untuk menjalankan model pembelajaran mesin pada mikrokontroler dan perangkat lain dengan memori hanya beberapa kilobyte. Runtime inti hanya muat dalam 16 KB pada Arm Cortex M3 dan dapat menjalankan banyak model dasar. Itu tidak memerlukan dukungan sistem operasi, pustaka C atau C++ standar apa pun, atau alokasi memori dinamis.
Mengapa mikrokontroler itu penting
Mikrokontroler biasanya berukuran kecil, perangkat komputasi bertenaga rendah yang tertanam di dalam perangkat keras yang memerlukan komputasi dasar. Dengan membawa pembelajaran mesin ke mikrokontroler kecil, kita dapat meningkatkan kecerdasan miliaran perangkat yang kita gunakan dalam hidup kita, termasuk peralatan rumah tangga dan perangkat Internet of Things, tanpa bergantung pada perangkat keras yang mahal atau koneksi internet yang andal, yang sering kali bergantung pada bandwidth dan kendala daya dan menghasilkan latensi tinggi. Ini juga dapat membantu menjaga privasi, karena tidak ada data yang keluar dari perangkat. Bayangkan peralatan pintar yang dapat beradaptasi dengan rutinitas harian Anda, sensor industri cerdas yang memahami perbedaan antara masalah dan pengoperasian normal, serta mainan ajaib yang dapat membantu anak-anak belajar dengan cara yang menyenangkan dan menyenangkan.
Platform yang didukung
TensorFlow Lite untuk Mikrokontroler ditulis dalam C++ 17 dan membutuhkan platform 32-bit. Ini telah diuji secara ekstensif dengan banyak prosesor berdasarkan arsitektur Seri Arm Cortex-M , dan telah dipindahkan ke arsitektur lain termasuk ESP32 . Framework ini tersedia sebagai library Arduino. Itu juga dapat menghasilkan proyek untuk lingkungan pengembangan seperti Mbed. Ini adalah open source dan dapat disertakan dalam proyek C++ 17 apa pun.
Papan pengembangan berikut didukung:
- Arduino Nano 33 BLE Rasa
- Tepi SparkFun
- Kit penemuan STM32F746
- Adafruit Edge Lencana
- Adafruit TensorFlow Lite untuk Mikrokontroler Kit
- Adafruit Circuit Playground Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- Terminal Wio: ATSAMD51
- Papan Pengembangan Himax WE-I Plus EVB Endpoint AI
- Platform Pengembangan Perangkat Lunak Synopsys DesignWare ARC EM
- Sony Spresense
Jelajahi contoh-contohnya
Setiap contoh aplikasi ada di Github dan memiliki file README.md
yang menjelaskan cara penerapannya ke platform yang didukungnya. Beberapa contoh juga memiliki tutorial end-to-end menggunakan platform tertentu, seperti yang diberikan di bawah ini:
- Hello World - Mendemonstrasikan dasar-dasar penggunaan TensorFlow Lite untuk Mikrokontroler
- Pidato mikro - Menangkap audio dengan mikrofon untuk mendeteksi kata "ya" dan "tidak"
- Deteksi orang - Menangkap data kamera dengan sensor gambar untuk mendeteksi ada tidaknya seseorang
Alur kerja
Langkah-langkah berikut diperlukan untuk menerapkan dan menjalankan model TensorFlow pada mikrokontroler:
- Latih model :
- Hasilkan model TensorFlow kecil yang sesuai dengan perangkat target Anda dan berisi operasi yang didukung .
- Konversikan ke model TensorFlow Lite menggunakan konverter TensorFlow Lite .
- Konversikan ke array C byte menggunakan alat standar untuk menyimpannya dalam memori program hanya-baca di perangkat.
- Jalankan inferensi pada perangkat menggunakan pustaka C++ dan proses hasilnya.
Keterbatasan
TensorFlow Lite for Microcontrollers dirancang untuk batasan spesifik pengembangan mikrokontroler. Jika Anda bekerja pada perangkat yang lebih kuat (misalnya, perangkat Linux tersemat seperti Raspberry Pi), framework TensorFlow Lite standar mungkin lebih mudah diintegrasikan.
Keterbatasan berikut harus dipertimbangkan:
- Dukungan untuk subset terbatas dari operasi TensorFlow
- Dukungan untuk perangkat terbatas
- API C++ tingkat rendah yang memerlukan manajemen memori manual
- Pelatihan di perangkat tidak didukung
Langkah selanjutnya
- Mulailah dengan mikrokontroler untuk mencoba aplikasi contoh dan pelajari cara menggunakan API.
- Pahami pustaka C++ untuk mempelajari cara menggunakan pustaka dalam proyek Anda sendiri.
- Buat dan konversi model untuk mempelajari lebih lanjut tentang melatih dan mengonversi model untuk diterapkan di mikrokontroler.