Cómo entrenar YOLO de segmentación con MIDV500 para documentos de identidad

Guía para entrenar YOLO de segmentación con MIDV500 y detectar/rectificar documentos de identidad: convertir anotaciones, entrenar, exportar a ONNX y crear una app GUI de escritorio

7 sept 2025 • 5 min de lectura • Equipo Q2BSTUDIO

Inteligencia-Artificial-

Cómo entrenar YOLO de segmentación con MIDV500 para documentos de identidad

En esta guía práctica aprenderás todo el flujo para entrenar un modelo YOLO de segmentación que detecte documentos de identidad con el dataset MIDV500 y la librería ultralytics. Cubriremos la descarga del dataset, su conversión al formato YOLO, verificación visual de anotaciones, entrenamiento, exportación a ONNX y la creación de una aplicación de escritorio con interfaz gráfica para detección y rectificación de documentos. Si tu empresa necesita aplicaciones a medida, software a medida o soluciones de inteligencia artificial, en Q2BSTUDIO te acompañamos de extremo a extremo con un equipo experto en ciberseguridad, servicios cloud AWS y Azure, inteligencia de negocio y agentes IA. Descubre más sobre nuestras soluciones de IA en Q2BSTUDIO Inteligencia Artificial y sobre desarrollo multiplataforma en desarrollo de aplicaciones a medida.

Qué vas a lograr

1 Descargar y preparar MIDV500 para segmentación de documentos. 2 Convertir las anotaciones JSON a formato YOLO de segmentación. 3 Verificar visualmente las máscaras con un visor de dataset en PySide6. 4 Entrenar YOLO11-seg con ultralytics usando GPU o CPU. 5 Exportar el mejor modelo a ONNX y probar inferencia. 6 Crear una GUI para detectar y rectificar documentos.

Dataset MIDV500

MIDV500 es un conjunto amplio de imágenes y vídeos de documentos de identidad de múltiples países, ideal para tareas de detección, segmentación y reconocimiento. Puedes consultar la referencia en GitHub en MIDV500 dataset.

Instalación rápida del descargador pip install midv500

Descarga con Python ejemplo simple import midv500 luego dataset_dir = midv500_data y finalmente midv500.download_dataset(dataset_dir, all). Tras la descarga, verifica que existan carpetas por tipo de documento con subdirectorios images, ground_truth y videos.

Conversión de anotaciones a formato YOLO

MIDV500 utiliza anotaciones JSON con polígonos o cuadriláteros. Para entrenar segmentación con YOLO debemos convertirlas a etiquetas YOLO con coordenadas normalizadas. Requisitos pip install ultralytics opencv-python numpy tqdm pyyaml pillow. Crea un script que recorra todas las imágenes, localice su JSON asociado en ground_truth, ordene los puntos como TL TR BR BL, normalice por ancho y alto y guarde etiquetas con la clase 0 document en labels train y val. Genera además el archivo doc.yaml con path absoluto, y con train images train y val images val, names document y nc 1.

Ejecución de la conversión ejemplo python prep_midv500_to_yolov11seg.py. Al finalizar deberías tener dataset images train, dataset images val y dataset labels train y val, además del doc.yaml para entrenamiento.

Verificación visual de anotaciones

Antes de entrenar, valida que las etiquetas se hayan generado correctamente. Instala el visor pip install PySide6 y crea un pequeño visualizador que cargue imágenes de dataset images train y dataset images val, busque su etiqueta homónima en dataset labels y dibuje el polígono sobre la imagen. Úsalo para revisar casos aleatorios y corregir problemas si fuese necesario. Ejecuta python dataset_viewer.py.

Entrenamiento con YOLO segmentation

Instala ultralytics pip install ultralytics. Descarga un checkpoint base de segmentación si no lo tienes y entrena con un comando típico yolo task=segment mode=train model=yolo11s-seg.pt data=dataset doc.yaml imgsz=640 epochs=20 batch=16 device=0 patience=5. Si prefieres CPU usa device=cpu y ajusta batch más bajo. También puedes crear un script en Python que genere un doc.yaml temporal con path absoluto y lance el entrenamiento, además de exportar posteriormente el mejor modelo.

Comandos alternativos útiles

Entrenamiento GPU yolo task=segment mode=train model=yolo11s-seg.pt data=dataset doc.yaml imgsz=640 epochs=30 batch=16 device=0 amp=True. Entrenamiento CPU yolo task=segment mode=train model=yolo11s-seg.pt data=dataset doc.yaml imgsz=640 epochs=30 batch=8 device=cpu. Reanudar desde checkpoint yolo task=segment mode=train model=runs segment train weights last.pt resume=True.

Parámetros clave

model modelo YOLO de segmentación preentrenado. data ruta al YAML del dataset. epochs número de iteraciones. imgsz resolución de entrada recomendada 640. batch tamaño de lote ajustado a la memoria GPU. device 0 para GPU o cpu para CPU. amp mixed precision para acelerar y ahorrar memoria.

Exportación a ONNX

Tras el entrenamiento, exporta el mejor modelo a ONNX para despliegue y optimización en producción yolo export model=runs segment train weights best.pt format=onnx opset=12. También puedes simplificar el grafo yolo export model=runs segment train weights best.pt format=onnx opset=12 simplify=True.

Prueba rápida de inferencia con ONNX

Carga el modelo ONNX con ultralytics YOLO, infiere sobre una imagen de prueba y extrae la máscara más grande. Después, aproxima el polígono a un cuadrilátero ordenado y aplica una transformación de perspectiva para rectificar el documento. Guarda dos resultados detect_overlay.jpg con el contorno detectado y document_warped.jpg con el recorte rectificado. Este paso valida que el modelo exportado funciona correctamente fuera de PyTorch.

Aplicación GUI de escritorio

Con PySide6 puedes construir una aplicación sencilla que permita arrastrar y soltar una imagen, ejecutar la detección y mostrar dos paneles lado a lado el original con el polígono y el documento rectificado. La clase de detección puede intentar cargar primero runs segment train weights best.pt en PyTorch y si no existe, usar runs segment train weights best.onnx. Una vez detectado el polígono, ordénalo TL TR BR BL, calcula la homografía y muestra el resultado. Dependencias pip install PySide6 y ejecución python document_detector_gui.py.

Buenas prácticas para resultados sólidos

1 Mezcla imágenes de varios países y condiciones de iluminación del MIDV500 para mayor robustez. 2 Ajusta el tamaño de lote y epochs a tu hardware, aplica early stopping y valida periódicamente. 3 Mantén la resolución de inferencia 640 para un equilibrio entre precisión y velocidad, y prueba con 960 si tu GPU lo permite. 4 Exporta a ONNX y ensaya en onnxruntime para asegurar portabilidad. 5 Versiona tu doc.yaml y mantén rutas absolutas en entornos de producción.

Recursos de referencia

Repositorio MIDV500 en GitHub ver dataset. Paquete ultralytics en PyPI ver librería. Un ejemplo de código público similar al flujo descrito puede encontrarse en repositorios comunitarios y en documentación oficial de ultralytics.

Q2BSTUDIO, tu aliado para llevarlo a producción

En Q2BSTUDIO somos especialistas en aplicaciones a medida y software a medida con despliegue seguro y escalable. Diseñamos soluciones de inteligencia artificial e ia para empresas, incluyendo agentes IA, visión por computador y NLP, y las integramos con servicios cloud AWS y Azure, pipelines de datos y servicios inteligencia de negocio con power bi. Si quieres transformar este prototipo en una solución empresarial con autenticación, auditoría, CI CD, observabilidad y ciberseguridad avanzada, contáctanos. Conoce más sobre nuestros servicios de IA en nuestra landing de Inteligencia Artificial y sobre cómo creamos aplicaciones multiplataforma en software y apps a medida.

Palabras clave de interés aplicaciones a medida, software a medida, inteligencia artificial, ciberseguridad, servicios cloud aws y azure, servicios inteligencia de negocio, ia para empresas, agentes IA, power bi.

¿UNA PAUSA?

Juega un momento antes de irte

NUESTROS SERVICIOS

Cómo podemos ayudarte

Inteligencia artificial

Agentes de IA, chatbots y asistentes inteligentes que automatizan tareas y atienden a tus clientes 24/7 para mejorar la eficiencia de tu negocio.

Más info

Desarrollo de software

Aplicaciones web, móviles y de escritorio, intranets, e-commerce, SaaS y plataformas de gestión diseñadas para las necesidades concretas de tu empresa.

Más info

Servicios cloud

Migración, infraestructura, hosting gestionado, alta disponibilidad y seguridad en Microsoft Azure y Amazon Web Services para que tu negocio escale sin límites.

Más info

Ciberseguridad y pentesting

Auditorías de seguridad, test de intrusión (pentesting) y protección de aplicaciones, datos e infraestructura on-premise y cloud, con hacking ético y cumplimiento normativo.

Más info

Business Intelligence

Cuadros de mando y análisis de datos con Power BI: integramos tus fuentes, diseñamos dashboards y KPIs y convertimos tus datos en decisiones.

Más info

Automatización de procesos

Automatizamos tareas repetitivas y conectamos tus aplicaciones con n8n, Power Automate, Make y RPA, eliminando trabajo manual y aumentando la productividad.

Más info

Formación para empresas

Formamos a tus equipos en tecnología con criterio: desarrollo web, bases de datos, Git, buenas prácticas y seguridad, automatización con n8n, inteligencia artificial para empresas y creación de soluciones de IA con Azure AI Foundry.

Más info

Auditoría de código

Auditamos el código que creas tú, tu equipo o una IA: te decimos qué está bien y qué mejorar, lo securizamos y lo dejamos listo para producción, web o app.

Más info

Generación de imágenes con IA

Creamos por ti las imágenes que necesita tu negocio con inteligencia artificial: producto, redes, publicidad, ilustración y avatares. Tú nos dices qué quieres y te lo entregamos listo para usar.

Más info

Generación de vídeos con IA

Creamos por ti vídeos con inteligencia artificial: promocionales, para redes, presentadores virtuales, doblaje y animaciones. Nos cuentas la idea y te lo entregamos montado y listo para publicar.

Más info

Avatares conversacionales con IA

Creamos avatares conversacionales con IA —humanos digitales con cara y voz— que atienden a tus clientes y equipos con el conocimiento de tu empresa, en tu web, monitores interactivos, WhatsApp o Teams.

Más info

Marketing Online e IA

Google Ads, Meta Ads, LinkedIn Ads y posicionamiento en motores de IA (GEO/AEO): captamos clientes y hacemos que tu marca aparezca donde te buscan, también en ChatGPT, Gemini y Perplexity.

Más info

¿Tienes un proyecto en mente?

Cuéntanos tu visión y la convertimos en una solución de software. Sea cual sea el alcance, hacemos realidad tu idea.

Live Chat