La razón oculta por la que el OCR falla con texto curvo e inclinado
Based on: 2D Rotary Position Embedding for Scene Text Recognition with Transformers — Zobeir Raisi
Apunta tu teléfono a una botella de champú e intenta leer la lista de ingredientes que rodea la curva. Tus ojos lo hacen sin pensarlo: siguen las letras mientras se curvan, se inclinan y se encogen hacia el borde. La mayoría de los modelos de OCR no lo hacen tan bien, y un nuevo preprint ofrece una explicación bastante específica del porqué: a los modelos nunca se les dijo que las imágenes tienen dos dimensiones.
Suena absurdo para un sistema diseñado para procesar imágenes. Pero la explicación, una vez que la ves, es uno de esos momentos de "claro" que te hace preguntarte cómo pasó desapercibido por tanto tiempo.

Por qué las líneas rectas son una mala suposición para el texto del mundo real
El Reconocimiento de Texto en Escena, o STR por sus siglas en inglés, es la tarea específica de leer texto que se encuentra dentro de una fotografía del mundo real, en lugar de un escaneo limpio. Señales de tráfico, etiquetas de productos, matrículas de vehículos, menús de restaurantes fotografiados con mala iluminación. Es un problema diferente al de leer un PDF o un documento de Word, porque el texto en sí está deformado por la física del mundo: se curva alrededor de botellas, se fotografía desde un ángulo, se inclina cuando alguien toma una foto de una señal sin alinear la cámara, y la perspectiva estira las letras que están más lejos del lente.
Los sistemas modernos de STR son principalmente Transformers, la misma arquitectura detrás de los grandes modelos de lenguaje. Un codificador observa la imagen y la divide en una cuadrícula de pequeños parches, luego un decodificador lee los caracteres uno a uno, de la misma manera que un modelo de lenguaje predice la siguiente palabra. Esto funciona bien para texto regular y frontal. Se vuelve inestable en el momento en que el texto deja de comportarse como una línea recta.
Aquí está la parte que es fácil pasar por alto: los Transformers no tienen ningún sentido de posición incorporado. Si le das a un Transformer una bolsa desordenada de parches de imagen sin información de ubicación, no puede distinguir arriba de abajo o izquierda de derecha. Cada Transformer necesita algún tipo de codificación posicional añadida, y resulta que la elección de esa codificación importa más de lo que la mayoría de la gente asume.
Cómo saben los Transformers dónde están las cosas, y dónde se rompe el atajo
El esquema de codificación posicional tomado de los modelos de lenguaje se llama RoPE, abreviatura de Rotary Position Embedding (Incrustación Posicional Rotatoria). Se utiliza en la mayoría de los modelos de lenguaje abiertos modernos, incluido LLaMA. La idea es rotar el vector de cada token en una cantidad vinculada a su posición en la secuencia, de modo que, cuando se comparan dos tokens durante la atención, el resultado refleja naturalmente qué tan separados están. Piénselo como la manecilla de un reloj: rótela una cantidad fija por paso y el ángulo entre cualquier par de manecillas le indica la distancia entre ellas sin necesidad de almacenar dicha distancia de forma explícita.
RoPE fue diseñado para secuencias unidimensionales (1D): palabras en una oración, una tras otra. Las imágenes son bidimensionales (2D), por lo que los investigadores desarrollaron una extensión llamada RoPE 2D axial para los Transformers de visión, que divide la rotación en dos partes independientes: una que rastrea la posición de la fila y otra que rastrea la posición de la columna.
Esa extensión incorpora dos suposiciones desde el principio, y este artículo argumenta que ambas fallan en el caso del texto escénico.
La primera suposición es que las imágenes son aproximadamente cuadradas. Dividir el presupuesto de rotación equitativamente entre filas y columnas está bien para una foto de un rostro o un paisaje. Pero una palabra recortada como "STOP" podría ser cuatro veces más ancha que alta. Si dedica la mitad de su resolución posicional a la altura cuando casi no ocurre nada distintivo en el eje vertical, está privando de recursos a la dimensión que realmente importa: la que transporta el orden de izquierda a derecha de las letras.
La segunda suposición es dónde se aplica la codificación. El trabajo previo con RoPE 2D solo rotaba vectores dentro del codificador, donde los parches de imagen prestan atención entre sí. Pero los modelos de Reconocimiento de Texto Escénico (STR) son de tipo codificador-decodificador: el decodificador genera caracteres uno a la vez y, en cada paso, mira hacia atrás la cuadrícula de parches de imagen del codificador a través de lo que se llama atención cruzada. Ese es el momento en que el modelo decide: "dadas las letras que ya he leído, ¿dónde en la imagen debería mirar a continuación?". Si la matemática posicional nunca toca ese paso, el decodificador está navegando por una imagen 2D sin brújula. Tiene que recurrir a etiquetas de posición aprendidas genéricas que no portan una noción real de "arriba", "abajo", "a la izquierda de" o "a la derecha de".
Dos correcciones, sin nuevos parámetros
La corrección propuesta en el artículo aborda ambas lagunas directamente, y lo que encuentro genuinamente atractivo es que ninguno de los cambios añade nuevos pesos al modelo. No se trata de una red más grande ni de un nuevo módulo añadido. Es un cambio en la forma en que se configura la matemática de rotación existente.
La primera corrección asigna las dimensiones rotativas de manera desigual, coincidiendo con la relación de aspecto del recorte de texto real en lugar de dividirlas 50/50. Un recorte ancho y corto obtiene más resolución posicional a lo largo de su ancho y menos a lo largo de su altura, coincidiendo con donde realmente reside la información.
La segunda corrección extiende el mismo acoplamiento rotacional a la atención cruzada, dando a las consultas del decodificador y a la cuadrícula 2D del codificador un marco geométrico de referencia compartido. En la práctica, esto significa que un paso de decodificación puede relacionar "el siguiente carácter que voy a predecir" con "el parche de imagen justo después del último carácter, siguiendo la curva del texto", en lugar de tratar toda la imagen como un montón indiferenciado de tokens.
Las comidas gratis tan específicas son raras en el aprendizaje automático, así que querría ver que la corrección se reproduzca fuera de las propias ejecuciones de los autores antes de creer plenamente en ella. Pero la teoría se sostiene, y se ajusta a un modo de fallo que cualquiera que haya intentado realmente hacer OCR en una foto de producto real reconocerá al instante.

Un protocolo diseñado para resistir la ilusión de resultados
Lo que distingue a este artículo de un resultado típico de "nuestra codificación posicional obtiene mejores números" es el cuidado tomado para demostrar que la mejora proviene de donde los autores afirman que proviene, y no de algún efecto secundario no relacionado del reentrenamiento.
Tres verificaciones realizan ese trabajo. En primer lugar, un par de ablaciones controladas: mantener todo el modelo idéntico y cambiar únicamente el módulo de codificación posicional, comparando la codificación RoPE 1D, la codificación sinusoidal 2D, la codificación aprendible 2D y su nueva 2D-RoPE-STR entre sí. Esto aísla la única variable que cambió.
En segundo lugar, un análisis de discrepancia a nivel de imagen. En lugar de informar un único número de precisión agregado (que puede ocultar tanto como revelar, ya que un promedio plano puede enmascarar grandes victorias en algunas imágenes compensadas por pérdidas en otras), los autores observan qué imágenes específicas pasan de incorrectas a correctas, y cuáles pasan de correctas a incorrectas, entre el método base y el nuevo método. Esta es una prueba mucho más difícil de manipular, porque obliga a los autores a demostrar que sus ganancias se concentran en algún lugar específico en lugar de estar dispersas y desiguales.
En tercer lugar, visualización de la atención: trazar literalmente dónde caen los pesos de atención del codificador durante la decodificación, para verificar si el modelo está siguiendo visualmente la curva del texto como se esperaría, en lugar de tener suerte en un benchmark.
Dónde se manifiestan realmente las ganancias
Los seis conjuntos de evaluación utilizados aquí, IIIT5K, SVT, ICDAR 2013, ICDAR 2015, CUTE80 y SVTP, constituyen el conjunto de prueba estándar para esta subdisciplina. Los tres primeros consisten principalmente en texto frontal, horizontal y de lectura directa. Los últimos tres son los que los investigadores utilizan específicamente para poner a prueba el texto irregular: ICDAR 2015 contiene gran cantidad de letreros inclinados y de baja calidad, CUTE80 está lleno de texto curvo y SVTP se centra fuertemente en la distorsión de perspectiva.
Según el resumen, las mejoras se concentran casi por completo en ese segundo grupo, más difícil: diseños con texto curvo, rotado y deformado por perspectiva, donde el orden de lectura se desvía de una línea horizontal recta. Esta es una narrativa coherente, no dispersa. Indica que la solución está haciendo exactamente lo que su fundamento teórico predecía, en lugar de elevar marginalmente cada conjunto de evaluación de manera uniforme, como suele ocurrir con muchos trabajos sobre "mejoras en la codificación de posición".
Destaco la obviedad de la advertencia: el resumen en arXiv no publica las tablas de precisión reales, y no pude extraer ganancias porcentuales específicas de la ficha del artículo. El trabajo está actualmente bajo revisión en el International Journal on Document Analysis and Recognition, por lo que se debe tratar como un resultado prometedor y bien argumentado desde el punto de vista mecánico, pero no definitivo, hasta que se publiquen los datos completos y un equipo externo al original los reproduzca.
Qué sigue sin estar demostrado
Hay algunos aspectos que vale la pena considerar antes de emocionarse demasiado.
Se trata de un artículo de un solo autor que aún está en revisión por pares y no ha sido aceptado. Eso no significa que sea incorrecto, pero sí implica que aún no ha pasado por el escrutinio habitual de la comunidad (replicación, revisión adversarial, intentos de hacer que falle en un conjunto de datos diferente).
Los seis conjuntos de evaluación (benchmarks) son todos académicos, centrados en el inglés y se ensamblaron aproximadamente entre 2003 y 2016. Constituyen un proxy razonable para "texto en fotografías", pero no son lo mismo que los documentos enormemente variados que ve una canalización de OCR en producción: scripts mixtos, ruido de cámaras de teléfono, poca luz, desenfoque por movimiento, recibos fotografiados a las 2 de la mañana con un teléfono malo. Si esta corrección de codificación posicional generaliza a ese caos es una pregunta abierta que el artículo no pretende responder.
También vale la pena ser precisos sobre el alcance. Esto se dirige al paso de reconocimiento, es decir, leer caracteres dentro de un recorte que algún detector aguas arriba ya ha identificado como conteniendo texto. No aborda la maquetación de documentos, la estructura de tablas ni el orden de lectura de página completa. Si tu problema de OCR son facturas y contratos escaneados, esta corrección está dirigida a un modo de fallo diferente al que normalmente te afecta en ese contexto.
Por qué importa para quien construye o elige OCR
Si la mayor parte de lo que alimentas al OCR son documentos limpios y frontales (facturas, contratos escaneados, formularios), no esperes que esta corrección en particular mueva mucho tu precisión. Los propios resultados del paper dicen que las ganancias se concentran en diseños irregulares, y los documentos limpios, casi por definición, no son irregulares.
Pero si tu producto toca fotos del mundo físico, etiquetas de productos, señalización vial, empaques, recibos fotografiados con ángulo en un teléfono, esto apunta exactamente al modo de falla que suele avergonzar a los sistemas OCR en demos: texto que se curva, inclina o se estira por perspectiva. Esa es una categoría real y común de entrada, y "el modelo literalmente no tiene sentido 2D de posición" es una explicación satisfactoria y corregible de por qué sigue fallando ahí.
La parte que debería importar más a quien evalúa motores es la afirmación de "sin nuevos parámetros". Si se sostiene bajo pruebas independientes, significa que un mejor manejo de texto distorsionado no tiene que venir con un modelo más grande, más lento y más caro añadido encima. Esa es una propiedad genuinamente útil si intentas mantener los costos de inferencia sensatos mientras persigues precisión en imágenes desordenadas del mundo real. Por ahora, el movimiento sensato es mantener un ojo en esta línea de trabajo en lugar de actuar sobre ella: vigila las tablas del paper completo, vigila reproducciones independientes y sigue juzgando motores OCR principalmente por cómo se desempeñan en las cargas reales de tus usuarios. Los benchmarks te dicen dónde mirar. No reemplazan probar contra las fotos extrañas, curvas y mal iluminadas que tus clientes realmente te enviarán.