Agosto de 2018

Volumen 33, número 8

Inteligencia artificial: exploración de Custom Vision Service

Por Frank La La | Agosto de 2018

Frank La VigneUno de los servicios cognitivos más fascinantes disponibles en Microsoft Azure es Custom Vision Service, lo que permite a los usuarios crear fácilmente modelos de visión artificial personalizado. Tradicionalmente, un clasificador de imágenes de entrenamiento necesario miles o incluso decenas de miles de imágenes por clase para generar un modelo es lo suficientemente preciso para un uso práctico. Además, también necesitaría un conocimiento sólido de la mecánica de las redes neuronales. Custom Vision Service proporciona una interfaz de usuario de Web fácil de usar que enmascara la complejidad de subyacente.

Custom Vision Service aún mejor, puede crear los clasificadores de imagen personalizada bastante precisa con tan solo 15 o 20 imágenes por clase, aunque la documentación recomienda un mínimo de 50 imágenes por clase. Por lo general, mejorará la calidad del clasificador de imágenes con más imágenes de entrenamiento. Custom Vision Service también expone los modelos entrenados a través de una API de REST para simplificar la implementación de estos modelos.

En la conferencia Build 2018, una de las demostraciones de discurso de apertura implicado un vehículo aérea sin personal de operación o un DRON, volar a través de una serie de canalizaciones para detectar defectos y problemas de mantenimiento. En la demostración, un DRON transmite vídeo desde su cámara a un equipo portátil. El equipo portátil evalúa las imágenes en un modelo entrenado de visión personalizada, que le avise del operador de drones de los posibles defectos en las canalizaciones. En este artículo, puedo podrá incorporar una inteligencia artificial similar (IA)-ampliar el modelo de mantenimiento para detectar problemas con pistas de tren. Para ello, voy a explorar Custom Vision Service y demostrar lo fácil que es agregar la clasificación de imágenes personalizadas a cualquier aplicación o sitio Web.

Abastecimiento de imágenes para entrenar en

Creación de un modelo de computer vision con Custom Vision Service implica tres pasos sencillos:

  1. Cargar un conjunto de imágenes y etiquételos.
  2. Entrenar y generar el modelo haciendo clic en el botón "Train".
  3. Use la interfaz Web o API de REST para evaluar el rendimiento del modelo.

Es realmente así de fácil empezar a trabajar. Pero debe tener cuidado cuando comienza el abastecimiento de imágenes para el modelo en el que se va a entrenar.

Recientemente para ver una demostración del cliente, recopila una serie de imágenes de tren pistas a través de Internet. Estas imágenes incluyen pistas de tren normal y aquellas con defectos graves. Con tan solo 30 imágenes, fui capaz de generar un modelo de visión personalizado para detectar defectos de seguimiento con aproximadamente el 80 por ciento precisión como parte de la presentación. Tan impresionante en los puede ser, fui tardarán en señalar al cliente que cualquier modelo de clasificación de imagen para entornos de producción necesitaría imágenes de entrenamiento realiza un seguimiento en una variedad de condiciones de iluminación distintos ángulos y así sucesivamente. Esta diversidad de datos de clasificación reduce la probabilidad de que el algoritmo de aislar las características incorrectas de las imágenes de entrenamiento, lo que podrían causar estragos en los resultados.

Hay un clásico y, posiblemente, cuento con moraleja, seguro que recordáis sobre redes neuronales de entrenamiento. La leyenda explica lo que enfrentan a los investigadores en la década de 1980 cuando los Estados Unidos. Ha decidido ejército entrenar una red neuronal para detectar los depósitos. Según el caso, la red neuronal realiza muy bien en los datos de prueba como parte del experimento. Sin embargo, cuando la red neuronal se proporciona nuevas imágenes para clasificar, realiza muy.

Los investigadores eran dumbfounded hasta que se dieron cuenta de que hubiera sido tomadas todas las imágenes que contiene los depósitos en overcast días, mientras que todas las imágenes que carecen de los depósitos se realizaron en días soleados. La red neuronal separados de las dos clases de fotos y ha elegido distinguir los dos conjuntos según el color del cielo en lugar de la presencia de un depósito. Obviamente, esto es que no lo que necesita el ejército. Para una exploración completa de la historia de la detección de los depósitos, puede desproteger la escritura original de Neil Fraser seguridad en bit.ly/2llxudb, pero esta parte de su artículo vale la pena entrecomillar aquí:

"Es un ejemplo perfecto del mayor problema detrás de las redes neuronales. Toda la red automáticamente entrenada con más de unos pocos docenas neuronas es prácticamente imposible analizar y comprender. Uno no se puede saber si una red se han memorizado entradas, o se "trampa" en alguna otra manera."

Aunque el artículo se actualizó por última vez en 2003, esta oferta se cumple hoy en día. Se está trabajando para comprender mejor el funcionamiento interno de las redes neuronales complejas, pero este esfuerzo está en curso y es apenas más allá de su fase incipiente. El procedimiento recomendado es actualmente datos de origen que contiene un variado conjunto de datos de entrenamiento. Esto ayuda a que el algoritmo de distinguir las imágenes según las variables correctas.

Para evitar problemas de copyright de imagen, he decidido aprovechar la colección de pista de mis hijos juguete grandes "Train" en este artículo. Esto también me permite crear, entrenar y probar imágenes rápidamente. He tomado 34 imágenes y dividirlos en tres carpetas denominadas rota, Normal y prueba. Imágenes con pistas de tren "roto" están en la carpeta rota y son imágenes con pistas contiguas en la carpeta Normal. He elegido una serie de imágenes para probar el modelo en forma aleatoria y colocados en la carpeta de prueba. Con Mis imágenes seleccionado y la etiqueta de origen, es hora de crear un modelo.

 

Creación del modelo

En un explorador, voy a customvision.ai y hago clic en el botón Inicio de sesión para iniciar sesión con mi cuenta Microsoft. Una vez iniciada la sesión, hago clic en nuevo proyecto para crear un nuevo proyecto de visión personalizada.

En el cuadro de diálogo siguiente, escribo "Trenes de juguete" para el nombre del proyecto y una descripción breve del proyecto. Dejar la lista desplegable de grupo de recursos para la configuración predeterminada de la versión de prueba limitado y asegúrese de que los botones de radio para tipos de proyecto y los dominios están establecidos para la clasificación y General, respectivamente. A continuación, hago clic en el botón Crear del proyecto para crear un nuevo proyecto de visión personalizada. Figura 1 muestra esta configuración.

La creación de cuadro de diálogo nuevo proyecto
Figura 1 la creación de cuadro de diálogo nuevo proyecto

Carga de imágenes

Una vez creado el proyecto, el sitio Web le pide para cargar imágenes. Hago clic en Agregar imágenes y en el cuadro de diálogo siguiente, haga clic en Examinar archivos locales para la búsqueda de imágenes para cargar. En primer lugar, cargar las imágenes en la carpeta rota seleccionando todas ellas y haga clic en Abrir en el cuadro de diálogo de exploración. En el cuadro de texto debajo de las imágenes, escribo el término roto y haga clic en el signo más azul etiquetar las imágenes con la etiqueta rota. A continuación, hago clic en el botón Cargar para cargar las 15 imágenes. Este paso se muestra en figura 2. A continuación, hago clic en listo para terminar de este paso.

Imágenes etiquetadas pista roto
Figura 2 etiquetar imágenes pista roto

Ahora que se cargan las imágenes de pistas de tren rota, es momento de cargar las imágenes en la carpeta Normal. Para ello, hago clic en el icono en la parte superior izquierda del panel con el signo más en él. Este botón está resaltado en figura 3. Repita los pasos anteriores para cargar las imágenes de entrada, pero esta vez, elegir las imágenes en la carpeta Normal y la etiqueta a la que las imágenes con la etiqueta Normal. Hago clic en el botón Cargar para transferir las imágenes y, a continuación, haga clic en listo para cerrar el cuadro de diálogo.

Agregar más imágenes a los datos de entrenamiento
Figura 3 agregar más imágenes a los datos de entrenamiento

Con todas las imágenes de muestra cargado y etiquetado, es el momento para entrenar y probar el modelo.

Entrenamiento del modelo

En la parte superior de la página, hay un botón verde con artes en él. Hago clic en ella para entrenar un modelo con las imágenes etiquetadas actualmente. Tarda algún tiempo antes de que el entrenamiento es completando y devuelve la página Web con las métricas de rendimiento del modelo, que se muestra en figura 4.

Resultados del entrenamiento y las métricas de rendimiento
Figura 4 resultados del entrenamiento y las métricas de rendimiento

Las dos métricas principales mostradas son la precisión del modelo y la recuperación. Precisión indica con qué frecuencia un resultado de predicción es correcto, mientras que recuerde mide el porcentaje de frecuencia una etiqueta de predicción era correcta. En otras palabras, recuerde indica que cuando la respuesta correcta es "Roto", ¿con qué frecuencia el modelo predecirá "Roto". Para obtener una explicación adicional de la terminología de la matriz de confusión, lea "Sencilla guía a confusión matriz terminología" en bit.ly/2IbRoAi.

Prueba del modelo

Ahora es momento de probar el modelo en las imágenes que se reservan para las pruebas para ver lo bien que llevará a cabo el modelo cuando se presentan con nuevas imágenes. Justo a la derecha del botón verde de entrenamiento, hay un botón denominado prueba rápida. Hago clic en esta opción para abrir el cuadro de diálogo prueba y, a continuación, haga clic en el botón de examinar archivos locales para que aparezca el cuadro de diálogo de carga de archivo. Usar este cuadro de diálogo para seleccionar una imagen en la carpeta de prueba y haga clic en Abrir para cargar el archivo. Tras unos instantes, el algoritmo mostrará los resultados después de evaluar la imagen. Figura 5 muestra que esta imagen tiene una probabilidad por ciento 79.2 de ser una pista Normal y una probabilidad por ciento 60,2 de que se va a dividir. Recuerde que para este proyecto, Normal significa que la pista es ininterrumpida o contiguas.

Cuadro de diálogo de prueba rápida para un conjunto contiguo de pistas
Figura 5 cuadro de diálogo prueba rápida para un conjunto contiguo de pistas

Ejecutar la prueba con otra imagen de una pista rota, nuevo haciendo clic de nuevo en el botón de examinar archivos locales. Esta vez seleccionar una imagen de un conjunto de pistas roto. El modelo informa de que hay una posibilidad de porcentaje 95,9 de esto que era una pista roto y un solo 11.2% oportunidad de la pista es normal. Probar el modelo out con el resto de los archivos en la carpeta de prueba para hacerse una idea de que el modelo funciona bien y en la que tenga dificultades para identificar el estado correcto de las pistas.

Para aún más la experimentación, realizar una búsqueda de imágenes en Internet y copie la dirección URL de imagen y péguela en el cuadro de texto en la interfaz de usuario de prueba. Estas imágenes representan train pistas desde distintos ángulos y en distintas superficies en condiciones de iluminación a diferencia de las imágenes en el conjunto de entrenamiento. Esto le proporcionará una perspectiva en el trabajo de las redes neuronales cómo y por qué un conjunto diverso de datos de ejemplo es fundamental para el éxito de un modelo para entornos de producción. El siguiente tres direcciones URL, seleccione algunas imágenes de ejemplo que encuentran en línea (tenga en cuenta cómo el modelo clasifica cada una de las imágenes):

Además, es útil saber cómo se comportará el clasificador cuando se especifica una imagen fuera de su ámbito. ¿Por ejemplo, cómo se ejecutará este clasificador, diseñado para determinar el estado de juguete train pistas, funcionan cuando se especifica una imagen de un inicio de sesión de neón? Esto se conoce como control negativo de la imagen y un modelo eficaz debería para predecir valores cercanos a cero en estos casos. Para probar esta salida, escribe la siguiente dirección URL en el cuadro de texto: http://datadriven.tv/wp-content/uploads/2018/05/50k.png. Mi modelo predictivo generó un resultado de 1.7 para Normal y por ciento de 0 para roto.

Avanzar

Para fines de este ejemplo, he creado un sistema de clasificación de imágenes de dos clases, que tenía el modelo solo a las imágenes de etiqueta de pistas de tren juguete como roto o normal. Sin embargo, puedo crear modelos más complejos. Actualmente, el nivel (estándar) de Custom Vision Service S0 puede admitir hasta 250 etiquetas únicas, lo que significa que puede aprender a clasificar 250 etiquetas independientes. Además, el servicio puede controlar hasta 50 000 imágenes al proyecto.

Además, los modelos generados mediante Custom Vision Service se pueden exportar para su uso en dispositivos informáticos de edge y no confían en el acceso al servicio en la nube. Esto significa que podría cargar el modelo en un dispositivo y clasificar imágenes en un escenario sin conexión. Actualmente, Custom Vision Service es compatible con las exportaciones del modelo en tres formatos: TensorFlow para dispositivos Android, CoreML para dispositivos iOS y ONNX para Windows. Además, Custom Vision Service puede crear un contenedor de Windows o Linux que incorpora un modelo de TensorFlow y el código para llamar a la API de REST. Para obtener más información sobre cómo exportar modelos para ejecutarse en dispositivos perimetrales, asegúrese de consultar la documentación en bit.ly/2K4ibjL.

En este artículo, demostré lo fácil que es empezar a trabajar con Custom Vision Service y elaborar un modelo de computer vision con un conjunto limitado de datos de entrenamiento. Uno de los usos posibles de esta tecnología sería tener acceso a datos de imagen desde cámaras de tráfico y entrenar un modelo para detectar distintos niveles de congestión basados únicamente en esos datos. Anteriormente, automatizar esta tarea sería desalentadora, ya que requiere conocimientos especializados y una enorme cantidad de datos de entrenamiento etiquetado. Sin embargo, Custom Vision Service combina tecnología de vanguardia de red neuronal con una interfaz fácil de usar para crear una herramienta que se abre visión de equipo para el uso más extendido.


Frank La Vignetrabaja en Microsoft como un profesional de soluciones de tecnología de inteligencia artificial donde ayuda a las empresas llegue más lejos al obtener el máximo partido de sus datos con inteligencia artificial y análisis. También hospeda el DataDriven podcast. Escribe publicaciones con regularidad en FranksWorld.com y puede verlo en su canal de YouTube, "Frank’s World TV" (FranksWorld.TV).

Gracias a los siguientes expertos técnicos por revisar este artículo: Andy Leonard y Jonathan Wood


Discuta sobre este artículo en el foro de MSDN Magazine