Implementación de visión por computadora acelerada con SIMD en un microcontrolador de $2
Rendimiento del ESP32-S3
- El ESP32-S3 es un microcontrolador económico con una CPU de doble núcleo a 240MHz y varios periféricos, incluidos radios WiFi y Bluetooth Low Energy.
- Este chip es compatible con instrucciones SIMD de 128 bits, y aprovecharlas puede mejorar mucho el rendimiento.
Implementación de un detector de esquinas FAST acelerado con SIMD
- Al acelerar el detector de esquinas FAST con instrucciones SIMD, fue posible procesar cuadros QVGA (320x240) en aproximadamente 6ms.
- Con esto, se logra cerca del doble de rendimiento frente a la implementación de referencia.
Lenguaje ensamblador y asignador de registros
- Se aprendió lenguaje ensamblador en el ESP32-S3 y se escribió un asignador básico de registros (
basm) para superar las limitaciones del chip.
- Se implementó una función que procesa 16 píxeles a la vez usando instrucciones SIMD.
Procesamiento de datos de píxeles
- Para procesar los datos de píxeles, se comparan las diferencias entre el píxel central y los píxeles circundantes.
- Para superar las limitaciones del ESP32-S3, se ideó una manera de transformar adecuadamente los datos de píxeles.
Mejora de rendimiento
- El detector de esquinas FAST acelerado con SIMD mejora la velocidad de procesamiento en aproximadamente 220%.
- Gracias a esto, el ESP32-S3 puede procesar en tiempo real un stream VGA a 30fps.
Opinión de GN⁺
- Utilidad del ESP32-S3: El ESP32-S3 ofrece un rendimiento potente para su bajo precio, por lo que resulta útil en varios proyectos de IoT y sistemas embebidos.
- Importancia de las instrucciones SIMD: Aprovechar instrucciones SIMD permite alcanzar alto rendimiento incluso en hardware de gama baja.
- Aprender lenguaje ensamblador: Aprender ensamblador ayuda a entender el funcionamiento detallado del hardware y a desarrollar capacidad de optimización.
- Superar limitaciones: El proceso de superar las limitaciones del hardware ayuda a fortalecer la capacidad de resolver problemas de forma creativa.
- Visión por computadora en tiempo real: Muestra que es posible ejecutar tareas de visión por computadora en tiempo real incluso en microcontroladores de bajo costo.
1 comentarios
Comentarios de Hacker News