Implémentation de vision par ordinateur accélérée par SIMD sur un microcontrôleur à 2 $
Performances de l'ESP32-S3
- L'ESP32-S3 est un microcontrôleur bon marché doté d'un CPU double cœur à 240 MHz et de divers périphériques, dont le Wi‑Fi et une radio Bluetooth Low Energy.
- Cette puce prend en charge des instructions SIMD 128 bits, qui permettent d'améliorer fortement les performances lorsqu'elles sont exploitées.
Implémentation d'un détecteur de coins FAST accéléré par SIMD
- En accélérant le détecteur de coins FAST avec des instructions SIMD, il devient possible de traiter des images QVGA (320x240) en environ 6 ms.
- Cela permet d'atteindre environ deux fois les performances de l'implémentation de référence.
Langage assembleur et allocateur de registres
- L'auteur a appris l'assembleur sur l'ESP32-S3 et a écrit un allocateur de registres basique (
basm) pour contourner les limitations de la puce.
- Une fonction traitant 16 pixels à la fois a été implémentée à l'aide d'instructions SIMD.
Traitement des données de pixels
- Le traitement des pixels consiste à comparer les écarts entre le pixel central et les pixels environnants.
- Une méthode appropriée de transformation des données de pixels a été imaginée pour surmonter les limitations de l'ESP32-S3.
Gain de performances
- Le détecteur de coins FAST accéléré par SIMD améliore la vitesse de traitement d'environ 220 %.
- Grâce à cela, l'ESP32-S3 peut traiter en temps réel un flux VGA à 30 fps.
L'avis de GN⁺
- Polyvalence de l'ESP32-S3 : l'ESP32-S3 offre des performances puissantes pour son prix et se révèle utile dans de nombreux projets IoT et systèmes embarqués.
- Importance des instructions SIMD : exploiter les instructions SIMD permet d'obtenir de hautes performances même sur du matériel peu puissant.
- Apprentissage de l'assembleur : apprendre l'assembleur aide à comprendre le fonctionnement détaillé du matériel et à développer des capacités d'optimisation.
- Dépassement des contraintes : surmonter les limitations du matériel permet de développer une résolution de problèmes créative.
- Vision par ordinateur en temps réel : cela montre qu'il est possible d'exécuter des tâches de vision par ordinateur en temps réel même sur des microcontrôleurs à faible coût.
1 commentaires
Avis Hacker News