YOLO (You Only Look Once): Detección de Objetos en Tiempo Real
Introducción:
Hace diez años los investigadores pensaban que inventar una computadora que distinguiera un gato de un perro sería casi imposible. Hoy en día los sistemas de visión artificial lo hacen con una precisión superior al 99%.
YOLO: Detección de Objetos en Tiempo Real
Así se describe el proyecto en su pagina oficial.
En resumen: YOLO (You Only Look Once) es un método de detección de objetos objetos de código abierto que puede identificar objetos tanto en imágenes como en vídeos, desde animales a señales de transito.
"Nuestro modelo tiene varias ventajas sobre los sistemas basados en clasificadores. Mira la imagen completa en el momento de la prueba, de modo que sus predicciones se basan en el contexto global de la imagen. También hace predicciones con una única evaluación de red a diferencia de sistemas como R-CNN que requieren miles para una sola imagen. Esto lo hace extremadamente rápido, más de 1000 veces más rápido que R-CNN y 100 veces más rápido que Fast R-CNN ."
Detección de objetos con un modelo pre-entrenado:
git clone https://github.com/pjreddie/darknet
O puedes descargar el archivo zip: https://github.com/pjreddie/darknet.
Luego de esto, utilizamos el comando cd para entrar a la carpeta del proyecto (darknet) y seguidamente ejecutamos make:
cd darknet
make
¿Para que usar make? Luego de ejecutar este comando, tendremos el archivo de configuración para YOLO en el sub-directorio cfg.
Lo siguiente que necesitamos, es descargar el modelo pre-entrenado. Para ello ejecutaremos el siguiente comando en nuestra terminal.
wget https://pjreddie.com/media/files/yolov3.weights
Perfecto. Otra alternativa, es descargar el modelo ingresando al siguiente enlace: https://pjreddie.com/media/files/yolov3.weights.
¿Y ahora? Ahora es momento de probar el detector.
./darknet detect cfg/yolov3.cfg yolov3.weights data/dog.jpg
Anlaicemos un poco esta linea. Lo que hacemos ejecutar detect el cual tiene 3 argumentos: el archivo de configuración (cfg/yolov3.cfg), el modelo pre-entrenado (yolov3.weights) y la imagen que usaremos como prueba (data/dog.jpg) . El proyecto tiene algunas imágenes de prueba en el sub-directorio data.
¡Enter!
layer filters size input output
0 conv 32 3 x 3 / 1 416 x 416 x 3 -> 416 x 416 x 32 0.299 BFLOPs
1 conv 64 3 x 3 / 2 416 x 416 x 32 -> 208 x 208 x 64 1.595 BFLOPs
.......
105 conv 255 1 x 1 / 1 52 x 52 x 256 -> 52 x 52 x 255 0.353 BFLOPs
106 detection
truth_thresh: Using default '1.000000'
Loading weights from yolov3.weights...Done!
data/dog.jpg: Predicted in 0.029329 seconds.
dog: 99%
truck: 93%
bicycle: 99%
El resultado, la imagen las predicciones del modelo. En la consola podemos ver todos los detalles de la predicción.
Realicemos otro ejemplo:
./darknet detect cfg/yolov3.cfg yolov3.weights data/horses.jpg
¡Increíble! es fascinante.
¿Que opinas?
Utilizando YOLO en Python:
Deja una respuesta
necesito comparar o identificar formas me recomiendas este metodo