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 read • Q2BSTUDIO Team

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.

A BREAK?

Play for a moment before you go

OUR SERVICES

How we can help you

Artificial intelligence

AI agents, chatbots, and intelligent assistants that automate tasks and serve your customers 24/7 to improve the efficiency of your business.

More info

Software Development

Web, mobile, and desktop applications, intranets, e-commerce, SaaS, and management platforms designed for your company's specific needs.

More info

Cloud services

Migration, infrastructure, managed hosting, high availability, and security on Microsoft Azure and Amazon Web Services to help your business scale without limits.

More info

Cybersecurity and pentesting

Security audits, penetration testing and protection of applications, data and infrastructure on-premise and cloud, with ethical hacking and regulatory compliance.

More info

Business Intelligence

Dashboards and data analysis with Power BI: we integrate your sources, design dashboards and KPIs and turn your data into decisions.

More info

Process automation

We automate repetitive tasks and connect your applications with n8n, Power Automate, Make, and RPA, eliminating manual work and increasing productivity.

More info

Training for Companies

We train your teams in technology with criteria: web development, databases, Git, best practices and security, automation with n8n, artificial intelligence for companies and creation of AI solutions with Azure AI Foundry.

More info

Code Auditing

We audit the code that you, your team or an AI create: we tell you what is good and what to improve, we secure it and make it ready for production, web or app.

More info

AI Image Generation

We create for you the images that your business needs with artificial intelligence: product, networks, advertising, illustration and avatars. You tell us what you want and we deliver it ready to use.

More info

AI Video Generation

We create videos with artificial intelligence for you: promotional, networking, virtual presenters, dubbing and animations. You tell us the idea and we will deliver it assembled and ready to publish.

More info

AI Conversational Avatars

We create conversational avatars with AI – digital humans with a face and voice – that serve your customers and teams with the knowledge of your company, on your website, interactive monitors, WhatsApp or Teams.

More info

Online Marketing and AI

Google Ads, Meta Ads, LinkedIn Ads and AI Engine Positioning (GEO/AEO): we attract customers and make your brand appear where they search for you, also on ChatGPT, Gemini and Perplexity.

More info

Do you have a project in mind?

Tell us your vision and we'll turn it into a software solution. Whatever the scope, we make your idea real.