YOLO (You Only Look Once) es un enfoque de detección de objetos.
En tiempo real basado en redes neuronales convolucionales (CNNs).
Es uno de los algoritmos más populares y eficientes.
Para detectar objetos en imágenes o videos.
Debido a su capacidad de realizar predicciones rápidas y precisas
En una sola pasada a través de la red.
En lugar de dividir la tarea de detección en varias etapas.
Como otros enfoques tradicionales.
YOLO realiza todo el proceso en un solo paso.
Lo hace extremadamente rápido.
Adecuado para aplicaciones en tiempo real.
Principio Básico de YOLO
Una red neuronal convolucional puede predecir la localización.
La clase de los objetos presentes en una imagen.
De manera simultánea y eficiente.
En lugar de usar múltiples pasos.
Como en el enfoque de «region proposal»
Utilizado por otros métodos.
YOLO realiza todas las predicciones.
En un solo pase de la red.
El proceso de YOLO se basa en dividir.
Una imagen en una cuadrícula (grid).
Predecir para cada celda de la cuadrícula.
Qué objetos están presentes.
Sus posiciones y probabilidades de clase.
¿Cómo Funciona YOLO?
División de la Imagen en una Cuadrícula
La imagen de entrada se divide en una cuadrícula de S × S
Cada celda de la cuadrícula es responsable.
De predecir un número fijo de cajas delimitadoras.
Bounding boxes y sus respectivas probabilidades.
Predicciones por Celda
Cada celda predice
Cajas delimitadoras
Estas cajas están definidas por sus coordenadas (x, y)
Para el centro de la caja.
Junto con su ancho (w) y altura (h).
Confianza
La red predice un valor de confianza.
Para cada caja delimitadora.
Indica la certeza de que la caja contiene un objeto.
Probabilidades de clase
Para cada celda se predicen probabilidades.
Para cada clase de objeto.
«perro», «gato», «automóvil», etc.
Cálculo del Bounding Box Final
Para cada celda YOLO genera un conjunto.
De varias cajas delimitadoras.
Las celdas también asignan una probabilidad.
Para cada tipo de objeto por ejemplo, perro, coche, etc.
Si la confianza de una caja delimitadora.
Es lo suficientemente alta.
Esa caja es seleccionada como el objeto detectado.
No máximo (NMS) de Supresión
Se aplica el algoritmo NMS (Non-Maximum Suppression).
Reducir la redundancia y eliminar las cajas superpuestas.
Predicen el mismo objeto.
Esto garantiza que solo se conserve la mejor caja.
Delimitadora para cada objeto detectado.
Arquitectura de YOLO
La arquitectura de YOLO es una red neuronal convolucional (CNN).
De una sola etapa que toma una imagen como entrada.
Devuelve las predicciones en forma de una cuadrícula.
Cada celda predice varias cajas delimitadoras.
Junto con la probabilidad de cada clase.
La arquitectura más común de YOLO.
Se basa en una versión de la red convolucional Darknet
Fue desarrollada para ser rápida y eficiente.
Características Clave de YOLO
Detección en Tiempo Real
Capacidad de realizar detección de objetos en tiempo real.
Esto se logra gracias a su enfoque de una sola etapa.
Todo el proceso de detección localización y clasificación.
Ocurre en un solo pase de la red.
Rápido y Eficiente
Debido a que realiza todo el proceso de detección en una sola pasada.
YOLO es mucho más rápido que otros algoritmos.
R-CNN o Fast R-CNN
Requieren múltiples pasos de procesamiento.
Precisión y Escalabilidad
La precisión de detección puede ser menor.
Que otros métodos en escenarios complejos.
Con pequeños objetos o solapamientos.
Ha demostrado ser adecuado para una amplia variedad.
De aplicaciones prácticas.
Ventajas de YOLO
Detección en Tiempo Real
YOLO puede procesar imágenes en tiempo real.
Lo hace ideal para aplicaciones en vivo.
La vigilancia, los vehículos autónomos y la robótica.
Precisión Competitiva
YOLO ha demostrado ser muy efectivo.
Para muchos tipos de objetos y entornos.
Facilidad de Uso
Con las implementaciones disponibles en bibliotecas populares.
OpenCV, TensorFlow y PyTorch
YOLO es fácil de integrar en aplicaciones y proyectos.
Limitaciones de YOLO
Dificultad con Objetos Pequeños
YOLO tiene dificultades para detectar objetos pequeños.
Debido a la forma en que divide.
Las imágenes en cuadrículas.
Los objetos pequeños pueden caer en la misma celda.
No obtener predicciones precisas.
Dependencia de Resolución de Imágenes
El modelo depende de la resolución de la imagen.
Hacer predicciones más precisas.
Las imágenes de baja resolución.
Pueden resultar en una pérdida de precisión.
Detección de Objetos Solapados
A veces tiene problemas al detectar objetos.
Se solapan o están demasiado cerca unos de otros.
Aplicaciones de YOLO
Vigilancia en tiempo real
Detección de personas, vehículos y otros objetos.
En sistemas de cámaras de seguridad.
Vehículos autónomos
Detección de peatones, señales de tráfico y otros vehículos.
Robótica
Identificación y localización de objetos.
La manipulación robótica.
Agricultura de precisión
Detección de plagas, cultivos y otros objetos de interés.
Reconocimiento de imágenes
Usado en diversas plataformas.
Análisis y etiquetado de imágenes.
Implementación Básica de YOLO con OpenCV
import cv2
import numpy as np
# Cargar el modelo YOLO pre-entrenado y los archivos de configuración
net = cv2.dnn.readNet(«yolov3.weights», «yolov3.cfg»)
layer_names = net.getLayerNames()
output_layers = [layer_names[i – 1] for i in net.getUnconnectedOutLayers()]
# Cargar la imagen
img = cv2.imread(‘image.jpg’)
height, width, channels = img.shape
# Preprocesar la imagen para YOLO
blob = cv2.dnn.blobFromImage(img, 0.00392, (416, 416), (0, 0, 0), True, crop=False)
net.setInput(blob)
outs = net.forward(output_layers)
# Mostrar los resultados
for out in outs:
for detection in out:
scores = detection[5:]
class_id = np.argmax(scores)
confidence = scores[class_id]
if confidence > 0.5:
center_x = int(detection[0] * width)
center_y = int(detection[1] * height)
w = int(detection[2] * width)
h = int(d
Te puede interesar;






