TensorFlow Lite dành cho Bộ vi điều khiển được thiết kế để chạy các mô hình máy học trên bộ vi điều khiển và các thiết bị khác chỉ có vài kilobyte bộ nhớ. Thời gian chạy lõi chỉ vừa với 16 KB trên Arm Cortex M3 và có thể chạy nhiều kiểu máy cơ bản. Nó không yêu cầu hỗ trợ hệ điều hành, bất kỳ thư viện C hoặc C++ tiêu chuẩn nào hoặc cấp phát bộ nhớ động.
Tại sao vi điều khiển lại quan trọng
Bộ vi điều khiển thường là các thiết bị điện toán nhỏ, công suất thấp được nhúng trong phần cứng yêu cầu tính toán cơ bản. Bằng cách đưa công nghệ máy học vào các bộ vi điều khiển nhỏ bé, chúng ta có thể tăng cường trí thông minh của hàng tỷ thiết bị mà chúng ta sử dụng trong cuộc sống, bao gồm các thiết bị gia dụng và thiết bị Internet of Things, mà không cần phụ thuộc vào phần cứng đắt tiền hoặc kết nối internet đáng tin cậy, vốn thường phụ thuộc vào băng thông và hạn chế về năng lượng và dẫn đến độ trễ cao. Điều này cũng có thể giúp bảo vệ quyền riêng tư vì không có dữ liệu nào rời khỏi thiết bị. Hãy tưởng tượng các thiết bị thông minh có thể thích ứng với thói quen hàng ngày của bạn, các cảm biến công nghiệp thông minh hiểu được sự khác biệt giữa sự cố và hoạt động bình thường cũng như đồ chơi kỳ diệu có thể giúp trẻ em học hỏi theo những cách thú vị và vui vẻ.
Nền tảng được hỗ trợ
TensorFlow Lite dành cho Vi điều khiển được viết bằng C++ 17 và yêu cầu nền tảng 32 bit. Nó đã được thử nghiệm rộng rãi với nhiều bộ xử lý dựa trên kiến trúc Sê-ri Arm Cortex-M và đã được chuyển sang các kiến trúc khác bao gồm cả ESP32 . Khung có sẵn dưới dạng thư viện Arduino. Nó cũng có thể tạo các dự án cho các môi trường phát triển như Mbed. Nó là mã nguồn mở và có thể được bao gồm trong bất kỳ dự án C++ 17 nào.
Các bảng phát triển sau đây được hỗ trợ:
- Arduino Nano 33 Cảm giác BLE
- Cạnh SparkFun
- Bộ khám phá STM32F746
- Adaf nhung EdgeHuy hiệu
- Adaf nhung TensorFlow Lite dành cho Bộ vi điều khiển
- Sân chơi Adaf nhung Circuit Bluefruit
- Espressif ESP32-DevKitC
- Espressif ESP-EYE
- Thiết bị đầu cuối Wio: ATSAMD51
- Himax WE-I Plus EVB Endpoint AI Development Board
- Synopsys Nền tảng phát triển phần mềm DesignWare ARC EM
- Sony Spresense
Khám phá các ví dụ
Mỗi ứng dụng mẫu đều có trên Github và có tệp README.md
giải thích cách ứng dụng có thể được triển khai trên các nền tảng được hỗ trợ. Một số ví dụ cũng có hướng dẫn từ đầu đến cuối bằng cách sử dụng một nền tảng cụ thể, như được đưa ra dưới đây:
- Hello World - Thể hiện những kiến thức cơ bản tuyệt đối về cách sử dụng TensorFlow Lite cho Vi điều khiển
- Micro speech - Ghi lại âm thanh bằng micrô để phát hiện các từ "có" và "không"
- Phát hiện người - Chụp dữ liệu máy ảnh bằng cảm biến hình ảnh để phát hiện sự hiện diện hay vắng mặt của một người
quy trình làm việc
Cần thực hiện các bước sau để triển khai và chạy mô hình TensorFlow trên bộ vi điều khiển:
- Đào tạo người mẫu :
- Tạo một mô hình TensorFlow nhỏ có thể vừa với thiết bị mục tiêu của bạn và chứa các hoạt động được hỗ trợ .
- Chuyển đổi sang mô hình TensorFlow Lite bằng bộ chuyển đổi TensorFlow Lite .
- Chuyển đổi thành mảng byte C bằng các công cụ tiêu chuẩn để lưu trữ nó trong bộ nhớ chương trình chỉ đọc trên thiết bị.
- Chạy suy luận trên thiết bị bằng thư viện C++ và xử lý kết quả.
Hạn chế
TensorFlow Lite dành cho Vi điều khiển được thiết kế cho các hạn chế cụ thể của quá trình phát triển vi điều khiển. Nếu bạn đang làm việc trên các thiết bị mạnh hơn (ví dụ: thiết bị Linux nhúng như Raspberry Pi), khung TensorFlow Lite tiêu chuẩn có thể dễ dàng tích hợp hơn.
Những hạn chế sau đây cần được xem xét:
- Hỗ trợ cho một tập hợp con giới hạn các hoạt động của TensorFlow
- Hỗ trợ cho một bộ thiết bị hạn chế
- API C++ cấp thấp yêu cầu quản lý bộ nhớ thủ công
- Không hỗ trợ đào tạo trên thiết bị
Bước tiếp theo
- Bắt đầu với bộ vi điều khiển để thử ứng dụng ví dụ và tìm hiểu cách sử dụng API.
- Hiểu thư viện C++ để học cách sử dụng thư viện trong dự án của riêng bạn.
- Xây dựng và chuyển đổi mô hình để tìm hiểu thêm về đào tạo và chuyển đổi mô hình để triển khai trên vi điều khiển.