Get it on Google Play
02-05-2018
 

Inteligencia artificial y machine learning: Reconocimiento de imágenes con YOLO

YOLO(You Only Look Once) es un sistema de detección de objetos que funciona sobre Darknet, una red neuronal escrita en C que funciona como Framework.

En resumen, es un sistema al cual tu le mandas una imagen y el te detecta los objetos que encuentra, para cada objeto devuelve también un porcentaje de probabilidades. Por ejemplo, esta es la respuesta cuando le envío una foto de una de colaboración que hice con la Universitat de Lleida(En mi máquina tarda unos 13 segundos):

Darknet + YOLO sample

Darknet + YOLO sample

/media/IMG_5965.JPG: Predicted in 12.934413 seconds.
mouse: 76%
laptop: 90%
laptop: 83%
laptop: 66%
tvmonitor: 61%
laptop: 61%
laptop: 51%
laptop: 51%
tvmonitor: 93%
tvmonitor: 89%
tvmonitor: 82%
tvmonitor: 82%
tvmonitor: 67%
tvmonitor: 64%
tvmonitor: 55%
tvmonitor: 51%
chair: 81%
person: 98%
person: 98%
person: 96%
person: 96%
person: 95%
person: 90%
person: 89%
person: 87%
person: 74%
person: 73%
person: 70%
person: 59%

Es impresionante verdad, pues vamos a ver como podemos utilizarla:

Instalación y compilación de Darknet

Instalar Darknet es muy fácil, básicamente solo tememos que clonar el proyecto de Github y hacer ‘make’ para compilar todo:

# clonamos el proyecto
git clone https://github.com/pjreddie/darknet
# entramos en la carpeta ‘darknet'
cd darknet
# compilamos el proyecto
make

Esto va a tardar varios minutos

Descargar YOLO

Una vez tenemos descargado y compilado Darknet sin errores toca descargar el fichero ya entrenado con todos los ejemplos:

wget https://pjreddie.com/media/files/yolov3.weights

Este fichero ocupa 248 megas con lo que tardará un rato en descargar dependiendo de vuestra velocidad de conexión(En mi caso a tardado mucho 🙁 ).

Uso del sistema de reconocimiento de objetos

Para usar el sistema de reconocimiento de objetos podemos hacerlo de la siguiente manera:

./darknet detect cfg/yolov3.cfg yolov3.weights <imagen>

Donde:

  • ‘detect’ es la función.
  • ‘cfg/yolov3.cfg’ es el fichero de configuración del fichero ya entrenado. Viene por defecto con Darknet.
  • ‘yolov3.weights’ es el fichero entrenado para procesar la imagen(Nos lo acabamos de descargar).
  • ‘ es la imagen a procesar. Si se omite, Darknet irá preguntando imágenes hasta que hagamos Control+C. Es muy recomendable cuando queremos procesar varias imágenes porque así no tenemos que andar cargando el fichero de YOLO cada vez.

El ejemplo en funcionamiento ya os lo he puesto arriba(Si, he hecho un spoiler 😀 ). Espero que os resulte tan interesante como a mi.

Si te ha servido, por favor comparte
 

Comments

2 Responses to “Inteligencia artificial y machine learning: Reconocimiento de imágenes con YOLO”
  1. Felipe says:

    Hola, excelente, este es el mismo tutorial que esta en la página de YOLO, la pregunta es ¿como podemos crear nuestro propio modelo y como podemos exponerlo para que se pueda usar como un servicio???

  2. Puedes empaquetarlo como un microservicio y/o exponerlo con una API. Alternativamente no tienes porqué usar YOLO sobre Darknet, puedes usar Tensorflow, por ejemplo.

Leave a Reply