Elección de la placa Computer Vision en 2022

Nov 30 2022
Elegir una plataforma para trabajar con Computer Vision on the Edge es difícil. Hay docenas de tableros en el mercado.

Elegir una plataforma para trabajar con Computer Vision on the Edge es difícil. Hay docenas de tableros en el mercado. Si lees sobre uno de ellos, querrás usarlo. Pero cuando lo intentas, no es tan bueno.

Imagen del autor

Traté de comparar muchas tablas baratas en el mercado . Y no sólo en términos de velocidad. Traté de comparar las plataformas por su "usabilidad". Qué fácil sería exportar redes, qué bueno es el soporte. Y lo fácil que es trabajar.

Este artículo es el resultado de la comparación. Pero si quieres ver más sobre los tableros, hay un video diferente que hice sobre cada tablero (con una comparación completa):

  1. Coral de Google
  2. Khadas Vim3
  3. ESP32 — (El video fue filmado antes de hacer esta guía. Pero está cerca, así que lo pegaré aquí. Y uno adicional —https://youtu.be/ms6uoZr-4dc)
  4. frambuesa pi
  5. Myriad X (NCS 2, Profundidad Ai (OAK, OAK-1, OAK-D, etc.))
  6. Rock Pi 3A (RK3568, etc.) (y uno adicional:https://youtu.be/NHVPxPlY2lIsobre el desarrollo)
  7. Supersónico Nano
  8. Hola-8
  1. Tablero K210 ( sobre )
  2. Tablero MAIX-II ( acerca de )

Y ahora pedí un m5stack (con procesador Sigmstar SSD202D) para probarlo (ya probado, el video se lanzará pronto).

Además, tengo una lista que planeo ordenar y probar tarde o temprano y agregar a este artículo o al siguiente:

  1. DEBIX Modelo A : debería ser muy similar a Vim3 pero con un sistema diferente
  2. K510 Dual RSIC-V64 : la nueva versión de k210 es una aceleración significativa con respecto a la plataforma anterior. Sistema más conveniente
  3. Placa Horizon X3 Pi AI : una placa con una gran comunidad dirigida más a ROS. Pero hay alguna contraparte de NPU a bordo, lo que hace que la plataforma sea interesante de probar.
  4. VisionFive RISC-V : una placa con dos módulos de aceleración (NVDLA Engine y NPU). Cuando pensé en ordenarlo hace tres meses, me detuvieron porque algunos hilos en el foro oficial dejaron en claro que ninguno de ellos podía ejecutarse todavía ( NNE no funciona , NVDLA no funciona ). No creo que nada haya cambiado todavía.
  5. Orange Pi 5 : este es un Rockchip RK3588S. Pero Orange Pi tiene su infraestructura bastante avanzada; sería interesante comparar con Rock Pi. Pero lo más probable es que sea similar. También sería interesante probar el Orange 4B, que es similar.
  6. Sobre RockChip, sería interesante probar algo basado en el RK1808 . Hay muchas tablas baratas (como esta ). E incluso hay algunos con cámaras.
  7. KNEO STEM : módulo NPU para el que no hay comentarios.
  8. Sophon BM1880 : también, una placa emocionante sin muchas reseñas.
  9. Xilinx Kria : es una placa FPGA. Sigo queriendo armar mi acto y probarlo. La última vez que intenté portar matemáticas a un FPGA

¡Vamos!

Aquí está la mesa final con todos los tableros:

https://docs.google.com/spreadsheets/d/1BMj8WImysOSuiT-6O3g15gqHnYF-pUGUhi8VmhhAat4/edit?usp=sharing

Pero permítanme explicar primero todos los criterios.

que facil de trabajar

¿Qué tan fácil es flashear? Llevó medio día flashear Jetson TK1. Para RPi — media hora. El firmware es el punto donde comienza su comunicación con la placa después de abrir la caja.

Fácil de trabajar. Cuando estaba trabajando con DaVinci, la depuración tomó mucho tiempo. Hoy en día todos los procesos suelen ser mucho más fáciles. Hablemos de ellos.

Linux convencional . Me gusta cuando puedes trabajar con Ubuntu normal. Y me entristece cuando no hay un Linux normal en la placa. Comprobemos esto.

Soporte comunitario. Gran comunidad: poca cantidad de problemas y muchas soluciones. Vamos a comprobarlo.

Imagen del autor

En mi opinión, la mejor placa es RPi y NCS. Pero no son completamente placas de Computer Vision. Coral y Supersónicos son buenos pero no excelentes.

Soporte de modelos

Por lo general, las NPU no son muy fáciles de usar en términos de conversión de modelos. Hablemos de modelos.

Modelos Oficiales Zoo . ¿Qué modelos son compatibles?

Zoológico de modelos no oficiales . ¿Qué comunidad le da a esta placa?

¿Qué tan fácil es convertir el modelo aleatorio? ¿Por qué necesito los primeros dos puntos si puedo exportar cualquier cosa?

Problemas fáciles de depurar con la conversión. Si la exportación no sale según lo planeado.

Imagen del autor

Como podéis ver, tres buenas tablas y una casi buena.

Preparación para la producción / Preparación para proyectos de pasatiempos / Construcción de tableros

Cierta información adicional puede permitirle decidir si debe elegir el tablero.

¿ Velocidad del procesador ? Muchos sistemas de visión artificial requieren buenos procesadores. Vamos a comprobarlos. Para probarlo, usaré la herramienta stress-ng (Sudo apt-get install stress-ng) en una PC con Linux para hacer una comparación.

Partes mecánicas , construcción, estabilidad de temperatura.

Fácil de comprar. ¿Debo presionar el botón “Contactar para solicitar el precio”?… ¿O esperar en la fila unos meses?

Pines para conexión externa . ¿Seré capaz de manipular la realidad?

Imagen del autor

Como puede ver, toda la placa se ve casi igual a excepción de las placas sin Linux.

Prueba de velocidad

Es difícil hacer una comprensión cómplice de "qué tan rápido es el tablero" por 2 o 3 puntos en la comparación de rendimiento. Es mejor mirar las partes de los videos de "Prueba de velocidad" y verificar la información aquí . Diferentes tableros tienen diferentes marcos de inferencia, diferentes parámetros y diferentes cuantificaciones.

Uso tamaño de lote = 1 en todas partes. Y esta no es la mejor estrategia. Por ejemplo, para Jetson, aumentará el rendimiento.

Imagen del autor

Pero en mi opinión, estas pruebas pueden responder algunas preguntas:

  1. ¿Qué tan rápida es la placa para redes neuronales pequeñas?
  2. ¿Qué tan rápido es el tablero para las grandes redes neuronales?
  3. ¿Cuál es el marco óptimo para ejecutar una red neuronal?

Precio

Para grandes proyectos, el precio es fundamental. Pero difícilmente se puede estimar el costo real. Por ejemplo:

  1. El costo de Jetson fue de alrededor de 99 $, pero con la escasez actual de chips, apenas se puede comprar con 250
  2. Un envío grande de tableros cuesta menos que uno pequeño.
  3. Puede crear un prototipo de su placa para algunos chips, que costarán menos.
  4. La periferia adicional aumentará el costo. Y será diferente para los diferentes tableros.
Imagen del autor

El consumo de energía

Además, traté de medir el consumo de energía.
Algunas notas importantes:

  1. No puedo medir el consumo de energía para cada tablero en consideración (algunos tableros se los doy a amigos, algunos tableros no tienen USB, etc.)
  2. Intento medir solo dos regímenes: "inactivo" y "funcionando NN". Pero: algunas placas tienen una cámara interna, algunas placas usan wifi, algunas placas tienen periféricos adicionales, etc. No conecto ninguna parte adicional, pero
  3. Es el consumo de energía "medio". No intenté medir un consumo máximo.
Imagen del autor

Resumen

Asi que. Espero que esto te ayude a elegir tu tabla. Pero es un artículo bastante pequeño. Y déjame recomendarte algunos más.

  1. Un buen artículo sobre qué es NPU y TPU, en qué se diferencian y cómo se optimizan las matemáticas:https://blog.inten.to/hardware-for-deep-learning-part-4-asic-96a542fe6a81
  2. Buen artículo sobre la comparación de plataformas. Hay algunas plataformas que no he revisado + ejemplos de redes que no tengo:https://qengineering.eu/deep-learning-with-raspberry-pi-and-alternatives.html
  3. No es una comparación muy detallada, pero algunas plataformas interesantes que aún no he revisado:https://jfrog.com/connect/post/comparison-of-the-top-5-single-board-computers/
  4. Un artículo excelente y detallado, pero no muchos tableros.https://arxiv.org/pdf/2108.09457.pdf
  5. Prueba de rendimiento ncnn para un grupo de placas:https://github.com/nihui/ncnn-small-board