Cómo construyeron un OCR multilingüe rápido usando datos sintéticos
Crear un OCR de calidad exige enormes volúmenes de datos anotados; la generación sintética ofrece escala y etiquetas perfectas. Nemotron OCR v2 demuestra que, con buena renderización y diversidad, los modelos entrenados en datos sintéticos pueden ser precisos y muy rápidos.
Introducción
La construcción de modelos OCR (reconocimiento óptico de caracteres) de alta calidad choca siempre con un obstáculo principal: los datos. Etiquetar imágenes con cajas precisas, transcripciones y orden de lectura a nivel de palabra, línea y párrafo es costoso y lento. Los datasets públicos tienen etiquetas limpias pero escalan poco y están sesgados hacia idiomas como inglés y chino. El scraping masivo de PDFs ofrece cantidad, pero con frecuentemente texto incrustado o capas ruidosas que requieren filtrado intensivo.
La generación sintética de datos propone un camino intermedio: escala ilimitada y etiquetas pixel-perfect porque nosotros colocamos el texto y las cajas. El desafío es lograr realismo suficiente para que el modelo generalice a documentos reales. Con la estrategia adecuada de renderizado y aleatorización de tipografías, colores, fondos, augmentaciones y estructuras de layout, es posible entrenar modelos que funcionen bien en escenarios del mundo real.
Este enfoque es la base de Nemotron OCR v2: un modelo multilingüe que combina la precisión por los datos y la velocidad por la arquitectura.
El problema: no era la arquitectura, era la escasez de datos
Nemotron OCR v1 ya era un buen modelo para inglés, pero al probarlo en otros idiomas su desempeño caía drásticamente. En el benchmark SynthDoG, las puntuaciones de Normalized Edit Distance (NED) para varios idiomas no ingleses eran altas, lo que indica muchos errores de reconocimiento:
- Japonés: 0.723
- Coreano: 0.923
- Ruso: 0.564
- Chino simplificado: 0.784
- Chino tradicional: 0.700
Uno de los límites era el conjunto de caracteres: la versión v1 soportaba solo 855 caracteres, insuficientes para cubrir escrituras como CJK o cirílico. En un experimento se amplió el vocabulario a 14,244 caracteres para abarcar los idiomas objetivo; eso ayudó levemente, pero sin datos de entrenamiento que contuvieran ejemplos reales de esos caracteres la mejora fue marginal. En resumen: el modelo podía representar los caracteres en teoría, pero nunca aprendió a reconocerlos. La verdadera restricción fue la falta de datos adecuados, no la arquitectura.
Recolectar y anotar millones de imágenes reales con etiquetas jerárquicas y orden de lectura para seis idiomas habría sido inviable por costo y tiempo. Había que buscar otra vía.
Una pipeline sintética y genérica
La idea clave fue considerar que la receta para datos de OCR multilingüe es, en su esencia, independiente del idioma: hacen falta dos ingredientes principales:
- Texto fuente en la lengua objetivo, muestreado con una distribución realista de vocabulario y longitudes.
- Tipografías (fonts) que soporten y puedan renderizar el sistema de escritura.
Con esos elementos, un motor de renderizado puede producir imágenes anotadas de forma ilimitada: cajas a nivel de palabra, línea y párrafo, quads, relaciones jerárquicas y orden de lectura, todo con precisión pixel-perfect.
Texto: mOSCAR
Para el corpus de texto se utilizó mOSCAR, un gran corpus multilingüe web que cubre 163 subconjuntos de idioma y múltiples alfabetos (latín, CJK, cirílico, árabe, devanagari, thai, entre otros). Muestrear desde mOSCAR permite obtener frases y distribuciones de vocabulario y frecuencia de caracteres mucho más representativas que listas de palabras o textos generados artificialmente.
Renderizado: SynthDoG modificado
La pipeline se construyó sobre una versión fuertemente extendida de SynthDoG (Synthetic Document Generator). Las mejoras clave incluyeron:
-
Cajas en múltiples niveles: la versión original generaba etiquetas a nivel de página; la versión extendida produce anotaciones precisas a nivel de palabra, línea y párrafo, incluyendo cajas axis-aligned y quads de 4 puntos, con índices que vinculan palabras con sus líneas y párrafos padres.
-
Grafo de relaciones para orden de lectura: la mayoría de datasets públicos no incluyen orden de lectura. Inspirados en HierText, la pipeline genera un grafo que codifica qué palabras forman cada línea, qué líneas forman cada párrafo y en qué orden deben leerse. Esos vínculos permiten entrenar componentes relacionales que entienden la estructura del documento, no solo detectan texto.
-
Gran randomización: fuentes, colores, fondos, estilos y augmentaciones variadas para lograr invariancia frente a las distintas presentaciones que aparecen en documentos reales.
Gracias a esto, la generación sintética recupera tanto escala como limpieza de etiquetas.
Resultados: precisión y velocidad
El impacto fue notable: entrenando con 12 millones de imágenes sintéticas en seis idiomas, Nemotron OCR v2 redujo las puntuaciones NED en idiomas no ingleses de rangos de 0.56–0.92 a 0.035–0.069. Es decir, el error de edición normalizado se desplomó, lo que se traduce en salidas mucho más fieles al texto real.
Además de la precisión, se trabajó la arquitectura para velocidad. Nemotron OCR v2 usa una columna vertebral de detección compartida cuyas características son reutilizadas tanto por el reconocedor como por el componente relacional, eliminando cómputos redundantes. El resultado: procesamiento a 34.7 páginas por segundo en una sola GPU A100.
El pipeline y el modelo son además genéricos: siempre que existan fuentes y texto de origen para un idioma, se puede extender la generación sintética para incluirlo.
Disponibilidad y cómo probarlo
El conjunto sintético está disponible públicamente como nvidia/OCR-Synthetic-Multilingual-v1 y el modelo como nvidia/nemotron-ocr-v2. También hay una demo en el navegador para probar Nemotron OCR v2 directamente.
Relevancia para América Latina
Para empresas y organismos en la región, esta aproximación tiene varias implicaciones prácticas:
-
Escalabilidad: la generación sintética permite crear datasets para español y portugués a gran escala, incluyendo variantes regionales, sin depender exclusivamente de costosas anotaciones manuales.
-
Adaptación de dominios: con el control sobre estilos, fuentes y layouts, es posible generar documentos similares a facturas, formularios o cedulas de identidad locales para mejorar el desempeño en casos de uso empresariales y gubernamentales.
-
Inclusión de alfabetos locales: si se dispone de fuentes y corpus, el método puede extenderse a escrituras indígenas siempre que existan estas piezas, facilitando iniciativas de digitalización más inclusivas.
Conclusión
El trabajo detrás de Nemotron OCR v2 muestra que la principal palanca para escalar OCR multilingüe no está necesariamente en cambiar la arquitectura del modelo, sino en tener datos adecuados y abundantes. La generación sintética, apoyada en corpora reales como mOSCAR y en motores de renderizado capaces de producir anotaciones jerárquicas y orden de lectura, permite obtener modelos precisos y rápidos. Para organizaciones en América Latina que enfrentan diversidad de documentos e idiomas, esta estrategia ofrece una vía práctica y escalable para desplegar OCR confiable en producción.
Enlaces útiles
- Dataset: nvidia/OCR-Synthetic-Multilingual-v1
- Modelo: nvidia/nemotron-ocr-v2
- Demo: Nemotron OCR v2 en navegador
Fuente original: Hugging Face Blog