Mejorar el rendimiento de la visión computarizada con datos sintéticos

Cómo Neural Pocket disminuye los costos y acelera el entrenamiento de la visión computarizada en un 95 %

Neural Pocket: un caso de estudio de Unity Computer Vision

Entrenar a los modelos de visión computarizada para alcanzar una calidad de nivel de producción no es una tarea sencilla e históricamente ha requerido que los equipos recopilen y anoten detalladamente datos del mundo real, un proceso intensivo en término de tiempo y recursos. Neural Pocket está usando conjuntos de datos sintéticos generados con Unity Computer Vision para superar estos desafíos en las tareas de visión computarizada.

  • El desafío

    Generar gran cantidad de datos rápidamente con anotaciones perfectas para el entrenamiento de visión computarizada

  • Productos

    Unity Pro, Unity Computer Vision Perception Package

  • Miembros del equipo

    11 (1 ingeniero de simulación, 10 ingenieros de AI)

  • Ubicación

    Tokio, Japón

Entrenamiento más rápido, mejor y más accesible de la visión computarizada

Con oficinas centrales en Tokio, Neural Pocket ofrece soluciones integrales de AI para ciudades inteligentes a importantes empresas y entidades gubernamentales en Japón y otros países. Mediante el uso de la plataforma de desarrollo 3D en tiempo real de Unity y Unity Computer Vision Perception Package, su equipo entrena a los modelos de visión computarizada con mayor rapidez, rentabilidad y eficacia.

Los resultados

  • 95 % de reducción en el tipo de entrenamiento de los modelos de visión computarizada (1 semana, frente a 6 meses, en promedio)
  • 95 % de reducción en los costos de recopilación de datos, anotación y entrenamiento
  • Mejor rendimiento del modelo de visión computarizada
  • Capacidades mejoradas para tomar múltiples proyectos e impulsar el crecimiento de las ganancias
Infographic

Resultados con una parte del tiempo y de los costos

Los desafíos de la recopilación de datos del mundo real y la anotación, combinados con la naturaleza repetitiva del entrenamiento de los modelos de visión computarizada, pueden ser costosos y demandar mucho tiempo. Para Neural Pocket, entrenar a un modelo con datos del mundo real habitualmente requiere de varias repeticiones, a menudo, como 30 ciclos de entrenamiento. 

Cada uno de estos ciclos implica capturar datos del mundo real (p. ej., videos, fotos o capturas de drone), anotaciones (es decir, etiquetado manual por parte de anotadores), entrenamiento y, luego, evaluación, lo que toma en promedio una semana por ciclo. En el caso de los proyectos que alcanzan los 30 ciclos, los costos pueden ser de hasta 150 000 USD y los plazos se extienden a seis meses para obtener un modelo listo para producción.

Con Unity y Unity Computer Vision Perception Package, el equipo de Neural Pocket redujo significativamente el número de repeticiones y los costos asociados necesarios para entrenar a los modelos de visión computarizada y, al mismo tiempo, optimizó el rendimiento del modelo general. El equipo usa las herramientas de Unity para generar imágenes sintéticas que se etiquetan y anotan automáticamente para el entrenamiento repetitivo de los modelos de visión computarizada con una combinación de datos verdaderos y simulados.

Al usar datos sintéticos creados con Unity Computer Vision Perception Package y con un solo ciclo de entrenamiento con datos del mundo real, se puede crear un modelo con mayor rendimiento en una sola semana, lo que ahorra básicamente el 95 % de tiempo y dinero, en promedio.

Veamos cómo el equipo usó Unity Computer Vision Perception Package de diferentes maneras para dos proyectos relacionados con la seguridad.

Proyecto 1: detección de objetos de armas

Para este proyecto, uno de los socios de Neural Pocket quería proporcionar un entorno más seguro en una de sus oficinas. Solicitó a Neural Pocket que desarrollara un modelo de visión computarizada para que su sistema inteligente de cámaras de seguridad detectara de modo adecuado objetos peligrosos. 

Para recopilar datos reales para el entrenamiento de la visión computarizada, Neural Pocket representó una toma de video y filmó a los participantes portando armas, como cuchillos, bates y pistolas, en orientaciones que variaban de fáciles a difíciles de detectar. Luego, Neural Pocket creó aproximadamente 1000 imágenes fijas a partir de los videos y asignó la tarea de identificación de armas a su equipo interno de anotadores que etiquetaron manualmente cada imagen.

Después de usar estos datos para su ciclo de entrenamiento inicial, el índice de detección fue del 27 % para los cuchillos y del 80 % para los bates y las pistolas.

Combinación ganadora: datos reales y sintéticos

Para mejorar el rendimiento, Neural Pocket recurrió a Unity Computer Vision Perception Package para generar conjuntos de datos a gran escala para el entrenamiento de la visión computarizada y su validación.

«Unity Computer Vision Perception Package permite un flujo y una estructura organizados, y se puede reutilizar en gran medida en cualquier proyecto de detección», explicó Romain Angénieux, jefe de Simulación de Neural Pocket. «Gracias a un conjunto de componentes personalizables, como situaciones, aleatorizadores, etiquetas y cámaras inteligentes, pudimos configurar opciones aleatorias de modo muy directo y flexible en toda su UI».

Neural Pocket obtuvo modelos 3D de armas de la Asset Store de Unity y otros mercados, y los integró fácilmente a las herramientas de visión computarizada de Unity para la detección personalizada de objetos. El equipo distribuyó aleatoriamente varios aspectos de su simulación entre los marcos capturados, como el renderizado de imágenes con manos que sostenían armas y armas solas.

Unity Computer Vision ofrece una solución escalable para generar cientos e incluso millones de imágenes sintéticas. Neural Pocket generó 5100 marcos simulados, cinco veces más que el número de marcos reales. Después de entrenar al modelo con una combinación de datos reales y sintéticos, los resultados alcanzaron niveles de calidad de producción: el índice de detección de cuchillos aumentó del 27 % al 87 %, mientras que el de bates y pistolas saltó de un 80 % a un perfecto 100 %. 

«Nos sorprendió obtener resultados increíbles de inmediato», comentó Alex Daniels, experto sénior y director del equipo Technology Incubation. «Con la capacidad de cambiar fácil y rápidamente los parámetros para generar conjuntos de datos nuevos y mejorados, y sin depender de la recopilación de datos del mundo real, nuestro proceso de creación de conjuntos de datos se agilizó mucho más».

Proyecto 2: detección de objetos de teléfonos inteligentes

En otro proyecto, un socio de Neural Pocket quería entrenar a una AI para detectar a personas que sacan fotos con un teléfono inteligente, con el fin de proteger información confidencial, como los números de las tarjetas de crédito.

Como el equipo usó Unity Computer Vision Perception Package de modo innovador para el proyecto de detección de objetos peligrosos, aprovechó la capacidad de extensión del paquete y la base de código abierto para este proyecto más complejo. 

«La configuración predeterminada de Perception Package es suficiente para optimizar el rendimiento de la visión computarizada, pero se puede desarrollar mucho más aparte de las herramientas existentes para abarcar un dominio que sea lo más amplio posible», explicó Angénieux.

El equipo creó una serie de opciones aleatorias personalizadas para superar los siguientes desafíos técnicos relacionados con el reconocimiento de teléfonos inteligentes:

  • Amplio rango de modelos: se diseñó un método lógico para combinar varios componentes base (p. ej., logotipos, cámaras) y generar modelos 3D realistas de teléfonos del mercado.
  • Número infinito de posibles diseños de carcasas de teléfonos: se realizaron combinaciones de texturas para que cualquier imagen de la API de imágenes de Google se pudiera vincular con las carcasas de los teléfonos.
  • Teléfonos en las manos y parcialmente cubiertos por los dedos de diferentes maneras: se crearon manos modulares en diferentes poses y con diversos tipos de piel.
  • Confusión de múltiples objetos como teléfonos celulares: se crearon objetos de trampa anotados, es decir, objetos que tienen forma y estilo similares a un teléfono inteligente, pero que no se deben detectar, lo que introdujo la noción de que «no todos los objetos rectangulares en las manos son necesariamente teléfonos» para reducir los falsos positivos.

La simulación optimiza el rendimiento nuevamente

Neural Pocket capturó 20 540 imágenes reales y generó 27 478 imágenes sintéticas. Solo con datos del mundo real, el índice de detección fue del 89,8 %. Al usar conjuntos de datos reales y simulados, este índice aumentó al 92,9 %.

«Tal vez esto parezca una mejora menor, pero como la detección de teléfonos se realiza en función de una serie de marcos de video, un aumento del 3 % con imágenes fijas puede generar una ganancia significativa en los índices de detección de teléfonos en general», comentó Daniels.

Lo que sigue

Debido a que Unity ayudó a que Neural Pocket aumente significativamente su resultado, el equipo ahora puede tomar más trabajo y ampliar su potencial de ganancias. Neural Pocket sigue usando las herramientas de visión computarizada de Unity en diversos proyectos. Consulta esta entrada del blog para obtener más ejemplos. 

En el futuro, Neural Pocket piensa depender menos de los datos del mundo real y usar datos sintéticos para el 90 % de sus datos de entrenamiento. La confianza del equipo en las capacidades de visión computarizada de Unity es un factor clave en este cambio.

«Con su desarrollo activo centrado en las necesidades del usuario, esperamos que Unity Computer Vision Perception Package siga mejorando con el tiempo y se convierta en una referencia para las tareas de percepción y un punto de partida para nuestros proyectos de percepción», comentó Angénieux.

Romain Angénieux, Head of Simulation, Neural Pocket

«Las herramientas de visión computarizada de Unity nos permiten trabajar de manera más rápida y rentable. Como resultado, podemos entrenar e implementar nuestros modelos de visión computarizada en mucho menos tiempo y a un costo mucho menor de lo habitual».

Romain Angénieux, Head of Simulation, Neural Pocket
Alex Daniels, Senior Expert and Head of the Technology Incubation Team, Neural Pocket

«Gracias a la mayor variación de los datos que ofrece Unity Computer Vision, la necesidad de recopilación de datos del mundo real es menor. El rendimiento de los modelos de visión computarizada también mejora, lo que da como resultado productos de mayor calidad».

Alex Daniels, Senior Expert and Head of the Technology Incubation Team, Neural Pocket

Comienza a usar Unity Computer Vision

Consulta nuestra oferta para descubrir cómo nuestro equipo de expertos puede ayudarte a generar datos sintéticos adaptados a las necesidades de tu modelo de visión computarizada.

Usamos cookies para brindarte la mejor experiencia en nuestro sitio web. Visita nuestra página de política de cookies si deseas más información.

Listo