TensorFlow Lite untuk Mikrokontroler dirancang untuk menjalankan model pembelajaran mesin pada mikrokontroler dan perangkat lain dengan hanya beberapa kilobyte memori. 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, atau alokasi memori dinamis.
Mengapa mikrokontroler itu penting
Mikrokontroler biasanya kecil, perangkat komputasi berdaya rendah yang tertanam dalam perangkat keras yang memerlukan perhitungan dasar. Dengan menghadirkan pembelajaran mesin ke mikrokontroler kecil, kita dapat meningkatkan kecerdasan miliaran perangkat yang kita gunakan dalam kehidupan 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 latency 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, dan mainan ajaib yang dapat membantu anak-anak belajar dengan cara yang menyenangkan dan menyenangkan.
Platform yang didukung
TensorFlow Lite untuk Mikrokontroler ditulis dalam C++ 11 dan membutuhkan platform 32-bit. Ini telah diuji secara ekstensif dengan banyak prosesor berdasarkan arsitektur Arm Cortex-M Series , dan telah di-porting ke arsitektur lain termasuk ESP32 . Kerangka kerja ini tersedia sebagai perpustakaan Arduino. Itu juga dapat menghasilkan proyek untuk lingkungan pengembangan seperti Mbed. Ini adalah open source dan dapat dimasukkan dalam proyek C++ 11 apa pun.
Papan pengembangan berikut didukung:
- Arduino Nano 33 BLE Sense
- SparkFun Edge
- Kit Penemuan STM32F746
- Adafruit EdgeBadge
- Adafruit TensorFlow Lite untuk Kit Mikrokontroler
- Adafruit Circuit Playground Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- Terminal Wio: ATSAMD51
- Himax WE-I Plus EVB Endpoint AI Development Board
- Synopsys DesignWare Platform Pengembangan Perangkat Lunak ARC EM
- Sony Express
Jelajahi 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 ujung ke ujung menggunakan platform tertentu, seperti yang diberikan di bawah ini:
- Hello World - Mendemonstrasikan dasar-dasar mutlak penggunaan TensorFlow Lite untuk Mikrokontroler
- Micro speech - Menangkap audio dengan mikrofon untuk mendeteksi kata "ya" dan "tidak"
- Tongkat ajaib - Menangkap data akselerometer untuk mengklasifikasikan tiga gerakan fisik yang berbeda
- Deteksi orang - Menangkap data kamera dengan sensor gambar untuk mendeteksi ada atau tidaknya seseorang
alur kerja
Langkah-langkah berikut diperlukan untuk menerapkan dan menjalankan model TensorFlow pada mikrokontroler:
- Melatih model :
- Buat 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 byte C 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 kendala khusus pengembangan mikrokontroler. Jika Anda bekerja pada perangkat yang lebih canggih (misalnya, perangkat Linux yang disematkan seperti Raspberry Pi), kerangka kerja TensorFlow Lite standar mungkin lebih mudah untuk diintegrasikan.
Batasan berikut harus dipertimbangkan:
- Dukungan untuk subset terbatas dari operasi TensorFlow
- Dukungan untuk perangkat terbatas
- C++ API tingkat rendah yang membutuhkan manajemen memori manual
- Pelatihan perangkat tidak didukung
Langkah selanjutnya
- Mulailah dengan mikrokontroler untuk mencoba contoh aplikasi 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 pelatihan dan konversi model untuk diterapkan pada mikrokontroler.