Approved Reseller
Approved Reseller
La visión artificial es una de las tecnologías más interesantes de la industria en la actualidad, pero alguna vez te has preguntado, ¿cómo logran detectar objetos estos algoritmos?. En este post trataremos de darte una idea general de cómo funcionan y como implementarlo con la Jetson Nano.
En aplicaciones de vision en tiempo real es preciso que el procesamiento de imagenes se haga de manera rápida y eficiente. Uno de los mejores algoritmos para procesar imagenes en tiempo real se llama YOLO. YOLO viene de “You Only Look Once”, o sólo se mira una vez.
A grandes rasgos, YOLO procesa la imagen con algo llamado Red Neuronal Convolucional, esta red neuronal es un tipo de inteligencia artificial y es muy útil para extraer características de imágenes. Lo primero que hace el algoritmo es procesar la imagen, pasandola a escala de grises y detectando los bordes de los objetos con un filtro.
Los pasos que siguen consiste en reducir la imagen a un problema de clasificación de clases y enmarcar el objeto identificado en una caja. Para esto, el algoritmo trata de encerrar el objeto en varias cajas, que luego reduce al mejor candidato que ubique mejor el objeto.
Una de las dificultades que presenta este algoritmo es la detección varios objetos del mismo tipo que estén muy cerca en un recuadro. También se le complica detectar objetos pequeños, debido a que necesita de areas grandes para crear la clasificación del objeto.
Para seguir leyendo…
Este algoritmo de visión artificial esta muy difundido en vehículos autónomos. Permite guiar al automóvil para evitar que atropelle una persona o choque contra un poste o un árbol. Además, utilizando otros sensores, permite determinar la distancia del auto a la persona u obstáculo. Otra aplicación es en conteo de asistentes en restaurantes o en controles de calidad para frutas y verduras.
Para utilizar este algoritmo es necesario instalar algunos complementos e indicar la fuente de la imagen, que puede ser un archivo o una webcam. Para ello hay que seguir este procedimiento:
Actualizar las librerías
sudo apt-get update
Exportar la ruta de Cuda
export PATH=/usr/local/cuda-10.0/bin${PATH:+:${PATH}} export LD_LIBRARY_PATH=/usr/local/cuda-10.0/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
Descargar Darknet y Yolo
git clone https://github.com/AlexeyAB/darknet cd darknet wget https://pjreddie.com/media/files/yolov3.weights wget https://pjreddie.com/media/files/yolov3-tiny.weights
Habilitar el uso de GPU
Necesitamos editar el archivo Makefile de compilación para habilitar el GPU, Cuda y OpenCV. Para ello hay que escribir:
sudo vi Makefile
Y establecer los valores:
GPU=1
CUDNN=1
OPENCV=1
y dejar el resto del archivo como está.
Compilar Darknet
make
Con esto ya estará instalado YOLO y Darknet, con lo que podrás hacer tus proyectos de detección de objetos. Para inciarlo puedes ejecutar alguno de estos comandos.
cd darknet %nos posicionamos en la carpeta de darknet ./darknet detector test cfg/coco.data yolov3.cfg yolov3.weights -ext_output dog.jpg %para detectar desde una imagen ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights -c 0 % para detectar desde la webcam ./darknet detector demo cfg/coco.data cfg/yolov3.cfg yolov3.weights -ext_output test.mp4 % para detectar desde un video
Referencias:
Overview of the object detection algorithm