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):
/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.
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???
Puedes empaquetarlo como un microservicio y/o exponerlo con una API. Alternativamente no tienes porqué usar YOLO sobre Darknet, puedes usar Tensorflow, por ejemplo.
hola buen dia, instale yolo pero cuando hago esto ./darknet detect cfg/yolov3.cfg yolov3.weights data/horses.jpg arroja esto: segmentation fault, crees que falte algo o que no haya instalado bien, saludos!
hola, queria preguntarte q consola usas
hola, podrías hacer un tutorial sobre como crear nuestro propio modelo, para usarlo con yolo, hay muchos tutoriales y todos solo enseñan como ejecutar para reconocer desde modelos ya entrenados. seria bueno que nos pudieras ayudar a crear nuestros propios modelos utilizando yolo. gracias y saludos.