Nemotron OCR v2 demuestra algo que muchos sospechábamos pero pocos habían cuantificado: con suficiente datos sintéticos realistas puedes entrenar un OCR multilingüe que sea a la vez preciso y veloz. ¿Cómo lo lograron? Combinando una granja de datos renderizados con una arquitectura que reaprovecha características para evitar trabajo redundante.
Qué lograron y por qué importa
Construyeron un modelo OCR multilingüe (inglés, chino, japonés, coreano, ruso) que alcanza errores casi nulos en pruebas sintéticas y procesa 34.7 páginas por segundo en una sola GPU A100. Eso no es sólo rapidez por la rapidez: significa pipelines de producción más baratos y respuestas en tiempo real para aplicaciones que deben leer documentos en varios idiomas sin detectar idioma previo.
La palanca principal fue el uso masivo de datos sintéticos: 12.2 millones de páginas generadas con anotación pixel-perfect (cajas a nivel de palabra, línea y párrafo, y grafos de orden de lectura). El dataset público es y el modelo está disponible como .
nvidia/OCR-Synthetic-Multilingual-v1
nvidia/nemotron-ocr-v2
Datos sintéticos: la receta y por qué funciona
¿Por qué datos sintéticos y no solo scraping o anotación humana? Porque con renderizado programático obtienes escala y etiquetas puras. Cada caja, transcripción y orden de lectura es conocido exactamente: tú lo colocaste ahí.
Ingredientes clave:
Fuente de texto: usan mOSCAR para muestrear textos con distribución realista por idioma.
Conjunto de fuentes: entre 165 y 1,258 fuentes por idioma (Google Fonts, Noto, etc.).
Motor de renderizado: versión fuertemente modificada de SynthDoG con extensiones para multiestructura.
Augmentaciones extensas: efectos en glyphs, dilatación/erosión, blur, desplazamientos de color, sombras, texturas de fondo y más.
Ventaja central: puedes controlar qué edge cases aparecen (columnas verticales, tablas, slides, textos dispersos) y producir millones de ejemplos por día en una sola máquina.
Extensiones importantes sobre SynthDoG
Anotaciones multi-nivel: cajas a nivel de palabra, línea y párrafo, con quads de 4 puntos y relaciones jerárquicas.
Grafo de relaciones: orden de lectura explícito entre líneas y párrafos, crucial para documentos multi-columna o tablas.
Modo de layouts variados: multi-columna, columnas verticales (importante para japonés y chino), tablas, slides, etc.
Reconocimiento a nivel de línea para CJK: evita segmentación por palabras cuando no hay espacios consistentes.
Todo esto reduce el cuello de botella clásico del OCR multilingüe: no fue la arquitectura, fue la falta de datos representativos.
El dataset en cifras
El set contiene 12.258.146 muestras en seis idiomas. Resumen por idioma:
Language
Total Samples
Train
Test
Validation
English
1,825,089
1,460,304
183,629
181,156
Japanese
1,889,137
1,502,712
193,779
192,646
Korean
2,269,540
1,814,994
227,091
227,455
Russian
1,724,733
1,380,404
171,678
172,651
Chinese (Simplified)
2,335,343
1,914,948
210,143
210,252
Chinese (Traditional)
2,214,304
1,772,280
221,867
220,157
Total
12,258,146
9,845,642
1,208,187
1,204,317
Arquitectura: diseño para velocidad y estructura
Nemotron OCR v2 usa una arquitectura de tres componentes end-to-end:
Text Detector con backbone RegNetX-8GF.
Text Recognizer: pequeño Transformer pre-norm que decodifica los recortes rectificados.
Relational Model: Transformer compacto que predice agrupaciones lógicas y orden de lectura.
La idea es simple y eficiente: la convolución costosa se ejecuta una sola vez y sus mapas de características se reutilizan por detector, reconocedor y modelo relacional. Esa reutilización de características es lo que permite el salto en eficiencia: 34.7 páginas/s en A100.
Dos variantes disponibles:
Variante
Idiomas
Nivel de región
Capas reconocedor
Charset
Parámetros
v2_english
English
Word
3
855
54M
v2_multilingual
EN, ZH, JA, KO, RU
Line
6
14,244
84M
Nota: el reconocedor multilingüe es más pesado porque maneja un vocabulario de 14,244 tokens y procesa líneas completas, lo que reduce la necesidad de segmentar en idiomas sin espacios, pero afecta el throughput en páginas muy densas.
Resultados: precisión y velocidad
SintDoG (páginas sintéticas) NED: el modelo multilingüe reduce NED a niveles muy bajos comparado con Nemotron v1 y con variantes especializadas de otros frameworks.
Language
PaddleOCR (base)
PaddleOCR (specialized)
OpenOCR (server)
Nemotron OCR v1
Nemotron OCR v2 (multi)
English
0.117
0.096
0.105
0.078
0.069
Japanese
0.201
0.201
0.586
0.723
0.046
Korean
0.943
0.133
0.837
0.923
0.047
Russian
0.959
0.163
0.950
0.564
0.043
Chinese (Simplified)
0.054
0.054
0.061
0.784
0.035
Chinese (Traditional)
0.094
0.094
0.127
0.700
0.065
OmniDocBench (documentos del mundo real) muestra un tradeoff claro entre velocidad y exactitud en mezclas de idiomas:
Model
pages/s
EN
ZH
Mixed
PaddleOCR v5 (server)
1.2
0.027
0.037
0.041
OpenOCR (server)
1.5
0.024
0.033
0.049
Nemotron OCR v2 (multi)
34.7
0.048
0.072
0.142
Nemotron OCR v2 (EN)
40.7
0.038
0.830
0.437
Nemotron OCR v1
39.3
0.038
0.876
0.436
EasyOCR
0.4
0.095
0.117
0.326
La tabla deja claro un punto práctico: si tu carga es multilingüe y no quieres detectar idioma antes, la variante multilingüe ofrece mejores resultados generales y un enorme salto de velocidad frente a soluciones por pipeline que ejecutan detectores y reconocedores separados.
Tradeoffs y decisiones de diseño
Line-level recognition para CJK evita la segmentación por palabras y mejora la robustez en japonés y chino.
Un vocabulario muy grande (14,244 tokens) exige un reconocedor más profundo y reduce throughput en páginas muy text-densas.
Reutilizar el backbone reduce latencia, pero impone cuidado en cómo se extraen y rectifican las regiones para el reconocedor.
Si trabajas en producto: piensa en el equilibrio entre soporte multilingüe y rendimiento por página. Para documentos en un solo idioma con poco texto, la variante en inglés puede ser más eficiente; para flujos mixtos o internacionales, el modelo multilingüe simplifica la operación.
Licencia, demos y cómo probarlo
Modelo: nvidia/nemotron-ocr-v2 (NVIDIA Open Model License)
Demo: Nemotron OCR v2 Space en Hugging Face para probar en el navegador
Esto facilita integración y evaluación rápida en tu flujo de datos.
Al final, lo más interesante no es sólo el número de páginas por segundo ni una tabla de NED: es la demostración de que, con un renderer robusto y buenas augmentaciones, los datos sintéticos dejan de ser una aproximación y pasan a ser una solución práctica para escalar OCR a muchos idiomas sin la factura prohibitiva de la anotación humana.