Cómo probar modelos de visión artificial#
Introducción#
Las pruebas de modelos comprueban el rendimiento de un modelo entrenado con datos reales y no vistos previamente (objetos en movimiento, mal iluminados o parcialmente ocultos) en lugar de en un conjunto de datos selecto. Mientras que la evaluación de modelos mide las métricas en un conjunto de datos etiquetado, las pruebas verifican que el comportamiento aprendido del modelo coincida con los objetivos de tu aplicación antes del despliegue. Esta guía abarca la preparación de datos de prueba, la prueba de modelos Ultralytics YOLO26 y la detección de sobreajuste, subajuste y fugas de datos.
Watch: How to Test Machine Learning Models | Avoid Data Leakage in Computer Vision 🚀
Prueba de modelos frente a evaluación de modelos#
Las pruebas de modelos y la evaluación de modelos son dos pasos distintos en un proyecto de visión artificial. La evaluación mide el rendimiento con métricas en un conjunto de datos etiquetado; las pruebas comprueban si el comportamiento aprendido del modelo se mantiene en condiciones que simulan el despliegue.
Supón que has entrenado un modelo de visión artificial para reconocer gatos y perros, y quieres desplegar este modelo en una tienda de mascotas para vigilar a los animales. Durante la fase de evaluación del modelo, utilizas un conjunto de datos etiquetado para calcular métricas como la exactitud, la precisión y la sensibilidad. Por ejemplo, el modelo podría tener una exactitud del 98% al distinguir entre gatos y perros en un conjunto de datos determinado.
Tras la evaluación, pruebas el modelo utilizando imágenes de una tienda de mascotas para ver qué tan bien identifica gatos y perros en condiciones más variadas y realistas. Compruebas si puede etiquetar correctamente a los gatos y perros cuando se mueven, en diferentes condiciones de iluminación o cuando están parcialmente ocultos por objetos como juguetes o muebles. La prueba de modelos verifica que el modelo se comporte como se espera fuera del entorno de evaluación controlado.
Preparación para la prueba de modelos#
Los conjuntos de datos de visión artificial suelen dividirse en conjuntos de entrenamiento y de prueba para simular condiciones del mundo real: los datos de entrenamiento enseñan al modelo, mientras que los datos de prueba verifican su comportamiento en ejemplos que nunca antes ha visto. La Ultralytics Platform mantiene la organización y la anotación de los conjuntos de datos en un solo lugar, lo que ayuda a la hora de construir un conjunto de prueba etiquetado.
- Representación realista: Los datos de prueba nunca antes vistos deben ser similares a los datos que el modelo manejará cuando se implemente. Esto ofrece una imagen realista de las capacidades del modelo.
- Tamaño suficiente: El dataset de prueba debe ser lo suficientemente grande como para proporcionar información fiable sobre el rendimiento del modelo.
Cómo probar un modelo YOLO26#
Probar un modelo YOLO26 entrenado implica dos flujos de trabajo complementarios: validar en una división de prueba etiquetada para obtener métricas cuantitativas y realizar predicciones en imágenes nuevas para inspeccionar el comportamiento cualitativamente.
Validar en una división de prueba etiquetada#
El modo de validación compara las predicciones del modelo con las etiquetas de verdad de terreno e informa la precisión, la sensibilidad, mAP50 y mAP50-95 para los modelos de detección. También guarda ayudas visuales como una matriz de confusión y una curva de precisión-sensibilidad, que te ayudan a detectar áreas específicas en las que el modelo podría no estar rindiendo bien.
from ultralytics import YOLO
# Load a pretrained model or your own trained checkpoint, e.g. "path/to/best.pt"
model = YOLO("yolo26n.pt")
# Validate; add split="test" if your dataset YAML defines a test split
metrics = model.val(data="coco8.yaml")
print(metrics.box.map) # mAP50-95De forma predeterminada, la validación se ejecuta en la división val del conjunto de datos. Para medir el rendimiento en un conjunto de prueba reservado, define una división test: en el archivo YAML de tu conjunto de datos y pasa split="test".
Realizar predicciones en imágenes nuevas#
El modo de predicción ejecuta el modelo con datos nuevos y no vistos sin necesidad de etiquetas. No produce métricas de rendimiento, pero guardar las salidas anotadas te permite revisar cómo se comporta el modelo en imágenes del mundo real; por ejemplo, una carpeta entera de imágenes de prueba de una sola vez.
from ultralytics import YOLO
# Load a pretrained model or your own trained checkpoint, e.g. "path/to/best.pt"
model = YOLO("yolo26n.pt")
# Run predictions on a folder of test images and save annotated results
results = model.predict(source="path/to/test_images", save=True)Para comprobar si YOLO26 se adapta a tu aplicación antes de invertir en un entrenamiento personalizado, ejecuta el modo de predicción con un punto de control preentrenado en tus propias imágenes. Los modelos están preentrenados en conjuntos de datos como COCO, por lo que los resultados dan una idea rápida de lo bien que el modelo podría rendir en tu contexto específico.
Modo de validación frente a modo de predicción#
| Modo | Propósito | Requiere etiquetas | Salida |
|---|---|---|---|
| Validación | Cuantificar el rendimiento frente a la verdad básica (ground truth) | Sí | Precisión, recall, mAP50, mAP50-95, matriz de confusión, curvas PR |
| Predicción | Inspeccionar el comportamiento del modelo en datos nuevos sin etiquetar | No | Imágenes anotadas y resultados de predicción, sin métricas |
Cómo analizar los resultados de las pruebas#
Una vez que tengas las predicciones y las métricas, investiga dónde y por qué falla el modelo:
- Imágenes mal clasificadas: Identifica y revisa las imágenes que el modelo clasificó incorrectamente para entender dónde se está equivocando.
- Análisis de errores: Realiza un análisis de errores exhaustivo para comprender los tipos de errores (por ejemplo, falsos positivos frente a falsos negativos) y sus posibles causas.
- Sesgo y equidad: Comprueba si hay sesgos en las predicciones del modelo. Asegúrate de que el modelo funcione igual de bien en diferentes subconjuntos de datos, especialmente si incluye atributos sensibles como raza, género o edad.
Overfitting y underfitting en Machine Learning#
Al probar un modelo de aprendizaje automático, especialmente en visión artificial, es importante vigilar el sobreajuste y el subajuste. Estos problemas pueden afectar significativamente al funcionamiento de tu modelo con nuevos datos.
| Problema | Señales comunes | Cómo solucionarlo |
|---|---|---|
| Overfitting | Alta precisión en entrenamiento pero baja precisión en validación; hipersensibilidad a cambios menores o detalles irrelevantes en las imágenes | Aplica regularización como la deserción (dropout), aumenta el tamaño del conjunto de datos de entrenamiento o simplifica la arquitectura del modelo |
| Underfitting | Baja precisión incluso en el conjunto de entrenamiento; fallo constante al reconocer características u objetos obvios | Usa un modelo más complejo, proporciona características más relevantes o aumenta las épocas de entrenamiento |
La clave es encontrar un equilibrio para que el modelo funcione bien tanto en el dataset de entrenamiento como en el de validación. Supervisar regularmente las métricas e inspeccionar visualmente las predicciones durante las pruebas te ayuda a detectar si te desvías hacia cualquiera de los dos extremos.
Fugas de datos en visión artificial y cómo evitarlas#
Las fugas de datos (data leakage) ocurren cuando información externa al dataset de entrenamiento se utiliza accidentalmente para entrenar el modelo. El modelo puede parecer muy preciso durante el entrenamiento, pero no funcionará bien con datos nuevos y nunca vistos cuando esto ocurre.
Las fugas pueden ser difíciles de detectar y a menudo provienen de sesgos ocultos en los datos de entrenamiento:
| Tipo de sesgo | Qué aspecto tiene |
|---|---|
| Sesgo de cámara | Diferentes ángulos, iluminación, sombras y movimientos de cámara introducen patrones no deseados |
| Sesgo de superposición | Logotipos, marcas de tiempo u otras superposiciones en las imágenes engañan al modelo |
| Sesgo de fuente y objeto | Fuentes u objetos específicos que aparecen frecuentemente en ciertas clases sesgan el aprendizaje del modelo |
| Sesgo espacial | Los desequilibrios entre primer plano y fondo, las distribuciones de las cajas delimitadoras y las ubicaciones de los objetos afectan al entrenamiento |
| Sesgo de etiqueta y dominio | Etiquetas incorrectas o cambios en los tipos de datos conducen a fugas |
Cómo detectar y evitar las fugas de datos#
Para encontrar fugas de datos, comprueba si los resultados del modelo son sorprendentemente buenos, analiza si una característica es mucho más importante que otras, vuelve a verificar que las decisiones del modelo tengan sentido de forma intuitiva y verifica que los datos se dividieron correctamente antes de cualquier procesamiento.
Para evitarlo, utiliza un dataset diverso con imágenes o vídeos de diferentes cámaras y entornos, y revisa cuidadosamente tus datos en busca de sesgos ocultos, como que todas las muestras positivas se hayan tomado en una hora específica del día. Evitar las fugas de datos hace que tus modelos de visión artificial sean más fiables en situaciones del mundo real.
Qué sigue después de la prueba del modelo#
Después de probar tu modelo, los siguientes pasos dependen de los resultados. Si tu modelo rinde bien, puedes desplegarlo en un entorno del mundo real. Si los resultados no son satisfactorios, tendrás que hacer mejoras. Esto puede implicar analizar errores, recopilar más datos, mejorar la calidad de los datos, ajustar los hiperparámetros y volver a entrenar el modelo.
Conclusión#
Unas pruebas de modelos rigurosas —validar en una división de prueba reservada, predecir en imágenes del mundo real y comprobar el sobreajuste y las fugas de datos— son lo que convierte a un modelo bien evaluado en uno fiable. Resuelve los problemas que revelen las pruebas antes del despliegue, y tu modelo tendrá muchas más probabilidades de rendir como se espera en producción. Si te surgen dudas por el camino, pregunta a la comunidad en el repositorio de GitHub de Ultralytics o en el servidor de Discord de Ultralytics.
FAQ#
La evaluación de modelos mide el rendimiento con métricas en un conjunto de datos etiquetado, mientras que las pruebas de modelos comprueban cómo se comporta el modelo con datos nuevos y no vistos que se asemejan a las condiciones de despliegue. La evaluación produce números como la precisión y el mAP a partir de un conjunto de datos controlado; las pruebas revelan si el comportamiento aprendido se mantiene con iluminación variada, movimiento u oclusión. Consulta Pruebas de modelos frente a evaluación de modelos para ver un ejemplo práctico.
Usa el modo de predicción y pasa la ruta de una carpeta como
source: YOLO26 se ejecuta en cada imagen de la carpeta y puede guardar los resultados anotados para su revisión. El modo de predicción no calcula métricas; para cuantificar el rendimiento en un conjunto etiquetado, utiliza en su lugar el modo de validación. Ambos flujos de trabajo se muestran en Cómo probar un modelo YOLO26.Para los modelos de detección, la validación informa la precisión, la sensibilidad, mAP50 y mAP50-95, y guarda gráficos que incluyen una matriz de confusión y una curva de precisión-sensibilidad. Para validar en una división de prueba dedicada en lugar de en la división predeterminada
val, definetest:en el archivo YAML de tu conjunto de datos y pasasplit="test". Consulta la guía de métricas de rendimiento para saber cómo interpretar cada métrica.Para el sobreajuste, aplica técnicas de regularización como la deserción (dropout), aumenta el tamaño del conjunto de datos de entrenamiento o simplifica la arquitectura del modelo. Para el subajuste, usa un modelo más complejo, proporciona características más relevantes o entrénalo durante más épocas. Los signos de cada problema y sus correspondientes soluciones se resumen en Sobreajuste y subajuste en el aprendizaje automático.
Sospecha de una fuga de datos cuando el rendimiento en las pruebas parezca sorprendentemente bueno, una sola característica domine las predicciones o las decisiones del modelo no tengan sentido intuitivo. Evítala utilizando diversos conjuntos de datos procedentes de diferentes cámaras y entornos, revisando los datos en busca de sesgos ocultos y verificando que la división entre entrenamiento y prueba se realizó antes de cualquier procesamiento. Consulta Fugas de datos en visión artificial para conocer los tipos de sesgo más comunes.
Si los resultados cumplen los objetivos de tu proyecto, despliega el modelo; si no, mejóralo antes del despliegue. Eso puede significar analizar errores, recopilar datos más diversos, mejorar la calidad de los datos, ajustar los hiperparámetros y volver a entrenar. Repite las pruebas después de cada ronda de cambios para confirmar que las correcciones funcionaron.