0%
YOLOv10 y YOLOv11: las últimas versiones de YOLO

YOLOv10 y YOLOv11: las últimas versiones de YOLO

Descubre los últimos avances de YOLO con las versiones 10 y 11, sus mejoras y sus aplicaciones.

I

InSkillCoach

· min

YOLOv10 y YOLOv11: las últimas versiones de YOLO

Las versiones 10 y 11 de YOLO aportan mejoras significativas en cuanto a rendimiento, precisión y funcionalidades.

1. YOLOv10

1.1 Características principales

# Instalación de YOLOv10
pip install ultralytics

# Import
from ultralytics import YOLO

# Carga del modelo YOLOv10
model_v10 = YOLO('yolov10n.pt')  # Nano
model_v10_s = YOLO('yolov10s.pt')  # Small
model_v10_m = YOLO('yolov10m.pt')  # Medium
model_v10_l = YOLO('yolov10l.pt')  # Large
model_v10_x = YOLO('yolov10x.pt')  # XLarge

1.2 Mejoras

  1. Arquitectura

    • Nueva arquitectura de backbone optimizada
    • Mejor gestión de las características multiescala
    • Reducción de la latencia de inferencia
  2. Rendimiento

    • Velocidad de inferencia aumentada un 15 %
    • Precisión mejorada un 5 %
    • Consumo de memoria optimizado
  3. Funcionalidades

    • Soporte mejorado para la detección de objetos pequeños
    • Mejor gestión de las oclusiones
    • Detección en tiempo real optimizada

2. YOLOv11

2.1 Características principales

# Instalación de YOLOv11
pip install ultralytics

# Import
from ultralytics import YOLO

# Carga del modelo YOLOv11
model_v11 = YOLO('yolov11n.pt')  # Nano
model_v11_s = YOLO('yolov11s.pt')  # Small
model_v11_m = YOLO('yolov11m.pt')  # Medium
model_v11_l = YOLO('yolov11l.pt')  # Large
model_v11_x = YOLO('yolov11x.pt')  # XLarge

2.2 Mejoras

  1. Arquitectura

    • Nueva arquitectura de backbone con atención
    • Mejor gestión de las características espaciales
    • Optimización para dispositivos móviles
  2. Rendimiento

    • Velocidad de inferencia aumentada un 25 %
    • Precisión mejorada un 8 %
    • Consumo de memoria reducido un 20 %
  3. Funcionalidades

    • Soporte de la detección 3D
    • Mejor gestión de escenas complejas
    • Detección en tiempo real ultraoptimizada

3. Comparación de las versiones

3.1 Métricas de rendimiento

def compare_versions():
    # Configuración
    test_image = "path/to/test/image.jpg"
    
    # Prueba de las distintas versiones
    versions = {
        'v8': YOLO('yolov8n.pt'),
        'v10': YOLO('yolov10n.pt'),
        'v11': YOLO('yolov11n.pt')
    }
    
    results = {}
    for version, model in versions.items():
        # Medición del tiempo de inferencia
        start_time = time.time()
        results[version] = model(test_image)
        inference_time = time.time() - start_time
        
        print(f"YOLO{version}:")
        print(f"Temps d'inférence: {inference_time:.2f}s")
        print(f"Nombre de détections: {len(results[version][0].boxes)}")
        print(f"Précision moyenne: {results[version][0].boxes.conf.mean():.2f}")

3.2 Tabla comparativa

VersiónVelocidadPrecisiónMemoriaFuncionalidades
v8BaseBaseBaseBase
v10+15%+5%-10%+2 nuevas
v11+25%+8%-20%+4 nuevas

4. Aplicaciones prácticas

4.1 Detección en tiempo real

def real_time_detection():
    # Inicialización
    cap = cv2.VideoCapture(0)
    model = YOLO('yolov11n.pt')  # Uso de YOLOv11
    
    while cap.isOpened():
        success, frame = cap.read()
        if not success:
            continue
        
        # Detección con YOLOv11
        results = model(frame)
        
        # Visualización
        annotated_frame = results[0].plot()
        
        # Visualización en pantalla
        cv2.imshow('YOLOv11 Detection', annotated_frame)
        
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    
    cap.release()
    cv2.destroyAllWindows()

4.2 Detección 3D (YOLOv11)

def detection_3d():
    # Inicialización
    model = YOLO('yolov11-3d.pt')
    
    # Detección 3D
    results = model('path/to/3d_scene.pcd')
    
    # Visualización
    for result in results:
        # Puntos 3D
        points = result.points
        # Cajas 3D
        boxes = result.boxes_3d
        
        # Visualización con Open3D
        vis = o3d.visualization.Visualizer()
        vis.create_window()
        
        # Adición de los puntos y las cajas
        vis.add_geometry(points)
        for box in boxes:
            vis.add_geometry(box)
        
        vis.run()
        vis.destroy_window()

5. Buenas prácticas

  1. Elección de la versión

    • v8 para aplicaciones básicas
    • v10 para aplicaciones avanzadas
    • v11 para aplicaciones innovadoras
  2. Optimización

    • Utilizar la aceleración por GPU
    • Ajustar los umbrales de confianza
    • Optimizar el tamaño del batch
  3. Despliegue

    • Exportar en el formato adecuado
    • Utilizar la aceleración por hardware
    • Implementar un sistema de caché

Conclusión

Puntos clave:

  • Mejoras significativas del rendimiento
  • Nuevas funcionalidades avanzadas
  • Soporte optimizado para dispositivos móviles
  • Detección 3D con YOLOv11

Recomendaciones:

  • Elegir la versión según las necesidades
  • Optimizar el rendimiento
  • Utilizar la aceleración por hardware
  • Implementar una gestión robusta de los errores
InSkillCoach

Acerca de InSkillCoach

Experto en formación y tecnologías

Coach especializado en tecnologías avanzadas e IA, impulsado por GNeurone Inc.

Certificaciones:

  • AWS Certified Solutions Architect – Professional
  • Certificaciones de Google Cloud
  • Microsoft Certified: DevOps Engineer Expert
  • Certified Kubernetes Administrator (CKA)
  • CompTIA Security+
1.4k
102

Comentarios

Los comentarios funcionan con GitHub Discussions

Inicia sesión con GitHub para participar en la discusión

¡Enlace copiado!