3 điểm bởi GN⁺ 2024-06-26 | 1 bình luận | Chia sẻ qua WhatsApp

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

 
GN⁺ 2024-06-26
Ý kiến trên Hacker News
  • Việc silicon rẻ hơn một ly cà phê trung bình thật tuyệt. Có lẽ không phải chip quá rẻ mà là cà phê quá đắt.
  • Bo mạch ESP32-CAM hỗ trợ các dự án thị giác máy tính thực tiễn.
  • Nếu quan tâm, nên xem qua sản phẩm của Edge Impulse.
  • Edge Impulse tối ưu hóa các tác vụ deep learning, thị giác máy tính và DSP.
  • Nếu tải lên các mô hình TensorFlow, PyTorch, JAX, bạn có thể nhận được thư viện C++ đã được tối ưu hóa.
  • Edge Impulse cung cấp studio huấn luyện mô hình phù hợp với nhiều loại phần cứng nhúng khác nhau.
  • Một bài viết ngắn về SIMD trên ESP32-S3 cũng đáng tham khảo.
  • Không rõ liệu có thể dùng nhiều ESP32 song song để xử lý độ phân giải và tốc độ khung hình cao hơn hay không.
  • Đã tăng tốc bộ phát hiện đặc trưng FAST bằng SIMD, cải thiện hiệu năng 220%.
  • ARMv7 và ARMv8 có các phần mở rộng tập lệnh SIMD tùy chọn.
  • Orrin Nano cung cấp 40 TOPS, như vậy là đủ cho Copilot+.
  • Đã có nghiên cứu về cách chuyển đổi ánh sáng hồng ngoại thành ánh sáng khả kiến.
  • Có thư viện PicoVGA để triển khai màn hình VGA/TV trên Raspberry Pi Pico.
  • Không rõ có thể dùng Rust với bộ điều khiển ESP32 hay không.
  • Không rõ ESP32 có các khe VLIW hay có thể đóng gói lệnh chặt chẽ hơn hay không.
  • SIMD vượt trội hơn SMT đối với kiểu xử lý này.
  • Tôi thích đồ đắt tiền và tốt hơn. Có Intel UpSquared.