Logo de CursoIA
CursoIA Curso de Inteligencia Artificial

Detección de objetos, Unidad 8 — Postprocesado de detecciones, 8.2 — Ajuste de umbrales ·

Casos reales

Casos reales: Ajuste de umbrales para detección de objetos

Introducción

El ajuste adecuado de umbrales es una fase crítica en la postprocesada de detecciones de objetos, ya que puede significativamente afectar la precisión y recall del sistema. Este proceso implica seleccionar las predicciones de detección con confianza suficientemente alta para incluirlas en el resultado final, eliminando aquellas predicciones falsas o inexactas. A continuación, exploraremos cómo ajustar umbrales de manera efectiva a través de casos reales y mejores prácticas.

Explicación principal con ejemplos

En la detección de objetos, los modelos suelen emitir una serie de predicciones para cada posible objeto detectado en una imagen. Cada predicción se asocia con un umbral que representa la confianza del modelo en dicha predicción. Un alto umbral indica mayor certeza del modelo sobre la detección, mientras que uno bajo sugiere menos confianza.

Un ejemplo de cómo ajustar umbrales podría verse en el código siguiente:

import numpy as np

def apply_threshold(predictions, threshold):
    """
    Aplica un umbral a las predicciones de detección.
    
    :param predictions: Lista de tuplas (bbox, conf, class_id)
    :param threshold: Umbral para seleccionar predicciones con confianza suficiente
    :return: Lista de diccionarios con objetos detectados
    """
    detected_objects = []
    for bbox, conf, class_id in predictions:
        if conf >= threshold:
            detected_objects.append({
                'bbox': bbox,
                'confidence': conf,
                'class_id': class_id
            })
    return detected_objects

# Ejemplo de uso
predictions = [
    ((100, 100, 200, 200), 0.85, 'car'),
    ((300, 300, 400, 400), 0.65, 'person'),
    ((500, 500, 600, 600), 0.70, 'dog')
]

threshold = 0.7
detected_objects = apply_threshold(predictions, threshold)
print(detected_objects)

En este ejemplo, la función apply_threshold toma una lista de predicciones y un umbral, y devuelve solo aquellas predicciones con una confianza mayor o igual al umbral.

Errores típicos / trampas

  1. Umbral demasiado bajo: Un umbral muy bajo puede resultar en muchas falsas positivas (predicciones incorrectas que son incluidas en los resultados). Esto puede llevar a una alta tasa de false positives, lo cual es inaceptable para muchos sistemas de detección.
  1. Umbral demasiado alto: Un umbral muy alto podría resultar en muchas falsas negativas (predicciones correctas que son excluidas del resultado final). Esto puede reducir el recall del sistema a niveles no aceptables, lo cual también es inaceptable para muchos sistemas de detección.
  1. Negligencia de validación realista: No siempre es posible evaluar la calidad del umbral en un conjunto de datos de validación. Es crucial tener conjuntos de datos de prueba reales y aplicarlos regularmente para asegurarse de que el sistema funcione bien en situaciones no vistas.

Checklist accionable

  1. Analiza los datos de entrenamiento: Comprueba cómo se comportan las predicciones del modelo sobre una variedad de objetos y condiciones.
  2. Valida con conjuntos de datos reales: Usa un conjunto de datos de prueba real y ajusta el umbral según la precisión y recall obtenidos.
  3. Monitorea el balance entre precision y recall: Ajusta el umbral para lograr un equilibrio adecuado entre estas dos métricas críticas.
  4. Evalúa en múltiples escenarios: Asegúrate de que el sistema funcione bien bajo diferentes condiciones, como iluminación variada o objetos en movimiento rápido.
  5. Considera la aplicación específica: El umbral puede ser diferente para sistemas que requieren alta precisión y aquellos que pueden tolerar ciertas falsas alarmas.

Cierre con "Siguientes pasos"

Para seguir avanzando en la detección de objetos, es importante considerar los siguientes pasos:

  • Implementa transfer learning: Utiliza modelos preentrenados para mejorar el ajuste del umbral y la precisión general.
  • Ajusta a tu dominio específico: Asegúrate de que el modelo se adapte bien al tipo particular de imágenes o escenario en el que se utilizará.
  • Monitorea el rendimiento continuamente: Continúa validando y ajustando el umbral regularmente para mantener una alta precisión.

Siguiendo estos pasos, podrás mejorar significativamente la eficacia de tu sistema de detección de objetos.

Contacto

Indica tu objetivo (ChatGPT, RAG, agentes, automatización) y tu stack (web/backend).