Triển khai thị giác máy tính tăng tốc SIMD trên vi điều khiển giá 2 USD
Hiệu năng của ESP32-S3
- ESP32-S3 là một vi điều khiển giá rẻ được trang bị CPU lõi kép 240MHz cùng nhiều thiết bị ngoại vi như WiFi và radio Bluetooth Low Energy.
- Con chip này hỗ trợ lệnh SIMD 128-bit, có thể tận dụng để cải thiện hiệu năng đáng kể.
Triển khai bộ phát hiện góc FAST tăng tốc SIMD
- Bằng cách tăng tốc bộ phát hiện góc FAST bằng lệnh SIMD, có thể xử lý khung hình QVGA (320x240) trong khoảng 6ms.
- Nhờ đó đạt hiệu năng gần gấp đôi so với bản triển khai tham chiếu.
Ngôn ngữ assembly và bộ cấp phát thanh ghi
- Tác giả đã học ngôn ngữ assembly trên ESP32-S3 và viết một bộ cấp phát thanh ghi cơ bản (basm) để vượt qua các giới hạn của con chip.
- Đồng thời triển khai một hàm dùng lệnh SIMD để xử lý 16 pixel cùng lúc.
Xử lý dữ liệu pixel
- Để xử lý dữ liệu pixel, cần thực hiện việc so sánh chênh lệch giữa pixel trung tâm và các pixel xung quanh.
- Tác giả cũng nghĩ ra cách chuyển đổi dữ liệu pixel phù hợp để vượt qua các hạn chế của ESP32-S3.
Cải thiện hiệu năng
- Bộ phát hiện góc FAST tăng tốc SIMD giúp cải thiện tốc độ xử lý lên khoảng 220%.
- Nhờ đó, ESP32-S3 có thể xử lý luồng VGA 30fps theo thời gian thực.
Ý kiến của GN⁺
- Tính hữu dụng của ESP32-S3: Với hiệu năng mạnh so với mức giá thấp, ESP32-S3 rất hữu ích cho nhiều dự án IoT và hệ thống nhúng.
- Tầm quan trọng của lệnh SIMD: Tận dụng lệnh SIMD có thể đạt hiệu năng cao ngay cả trên phần cứng cấu hình thấp.
- Học ngôn ngữ assembly: Học assembly giúp hiểu rõ hoạt động chi tiết của phần cứng và nâng cao khả năng tối ưu hóa.
- Vượt qua giới hạn: Quá trình vượt qua các giới hạn phần cứng cũng giúp rèn luyện khả năng giải quyết vấn đề một cách sáng tạo.
- Thị giác máy tính thời gian thực: Bài viết cho thấy khả năng thực hiện các tác vụ thị giác máy tính thời gian thực ngay cả trên vi điều khiển chi phí thấp.
1 bình luận
Ý kiến trên Hacker News