3 poin oleh GN⁺ 2024-06-26 | 1 komentar | Bagikan ke WhatsApp

Implementasi computer vision dengan akselerasi SIMD di mikrokontroler $2

Performa ESP32-S3

  • ESP32-S3 adalah mikrokontroler murah yang dilengkapi CPU dual-core 240MHz serta beragam periferal, termasuk radio WiFi dan Bluetooth Low Energy.
  • Chip ini mendukung instruksi SIMD 128-bit, yang dapat dimanfaatkan untuk meningkatkan performa secara signifikan.

Implementasi detektor sudut FAST dengan akselerasi SIMD

  • Detektor sudut FAST dipercepat menggunakan instruksi SIMD sehingga dapat memproses frame QVGA (320x240) dalam sekitar 6ms.
  • Dengan ini, performanya mencapai sekitar dua kali lipat dibanding implementasi referensi.

Bahasa assembly dan register allocator

  • Penulis mempelajari bahasa assembly di ESP32-S3, lalu menulis register allocator dasar (basm) untuk mengatasi keterbatasan chip.
  • Juga diimplementasikan fungsi yang memproses 16 piksel sekaligus menggunakan instruksi SIMD.

Pemrosesan data piksel

  • Untuk memproses data piksel, dilakukan perbandingan selisih antara piksel pusat dan piksel di sekitarnya.
  • Untuk mengatasi keterbatasan ESP32-S3, dirancang metode untuk mengubah data piksel dengan tepat.

Peningkatan performa

  • Melalui detektor sudut FAST dengan akselerasi SIMD, kecepatan pemrosesan meningkat sekitar 220%.
  • Hasilnya, ESP32-S3 kini dapat memproses stream VGA 30fps secara real-time.

Opini GN⁺

  • Kegunaan ESP32-S3: ESP32-S3 menawarkan performa kuat untuk harganya yang murah, sehingga berguna untuk berbagai proyek IoT dan sistem embedded.
  • Pentingnya instruksi SIMD: Dengan memanfaatkan instruksi SIMD, performa tinggi bisa dicapai bahkan pada hardware berspesifikasi rendah.
  • Mempelajari bahasa assembly: Belajar bahasa assembly membantu memahami cara kerja hardware secara rinci dan mengembangkan kemampuan optimisasi.
  • Mengatasi keterbatasan: Proses mengatasi keterbatasan hardware dapat mengasah kemampuan pemecahan masalah yang kreatif.
  • Computer vision real-time: Ini menunjukkan kemungkinan menjalankan tugas computer vision real-time bahkan pada mikrokontroler berbiaya rendah.

1 komentar

 
GN⁺ 2024-06-26
Komentar Hacker News
  • Menarik bahwa silikon lebih murah daripada rata-rata secangkir kopi. Mungkin bukan chip yang terlalu murah, melainkan kopi yang terlalu mahal.
  • Board ESP32-CAM mendukung proyek computer vision yang praktis.
  • Jika tertarik, saya merekomendasikan untuk melihat produk Edge Impulse.
  • Edge Impulse mengoptimalkan pekerjaan deep learning, computer vision, dan DSP.
  • Jika Anda mengunggah model TensorFlow, PyTorch, dan JAX, Anda bisa mendapatkan library C++ yang telah dioptimalkan.
  • Edge Impulse menyediakan studio pelatihan model yang disesuaikan untuk berbagai hardware embedded.
  • Tulisan singkat tentang SIMD di ESP32-S3 juga layak dibaca.
  • Saya penasaran apakah memungkinkan menggunakan beberapa ESP32 secara paralel untuk menangani resolusi dan frame rate yang lebih tinggi.
  • Dengan mempercepat detektor fitur FAST menggunakan SIMD, performa meningkat 220%.
  • ARMv7 dan ARMv8 memiliki ekstensi set instruksi SIMD opsional.
  • Orrin Nano menawarkan 40 TOPS, yang cukup untuk Copilot+.
  • Ada penelitian tentang cara mengubah cahaya inframerah menjadi cahaya tampak.
  • Ada library PicoVGA yang mengimplementasikan tampilan VGA/TV di Raspberry Pi Pico.
  • Saya penasaran apakah memungkinkan menggunakan controller ESP32 dengan Rust.
  • Saya penasaran apakah ESP32 memiliki slot VLIW dan apakah pengemasan instruksi yang lebih rapat dimungkinkan.
  • SIMD lebih unggul daripada SMT untuk jenis pemrosesan tersebut.
  • Saya lebih suka sesuatu yang lebih mahal dan lebih bagus. Ada Intel UpSquared.