2 puntos por GN⁺ 2024-10-29 | 1 comentarios | Compartir por WhatsApp
  • InkSight de Google Research restaura fotos de escritura a mano como tinta digital a nivel de trazos de pluma, con la idea de guardar y editar cuadernos en papel como si fueran notas digitales, sin hardware especial
  • A diferencia del OCR simple, que se limita a transcribir texto, InkSight reconstruye la trayectoria de los trazos que formaron la escritura para poder revisarla y seguir escribiendo conservando el estilo manuscrito
  • En lugar de extraer solo rasgos geométricos, el modelo aprende a la vez leer y escribir, y usa un codificador ViT y un codificador-decodificador mT5 para reconocer palabras y generar trazos
  • Para páginas completas, usa un flujo en el que primero encuentra bounding boxes por palabra con OCR, luego hace derendering de cada palabra por separado y después reemplaza la escritura en píxeles por los trazos reconstruidos
  • En la evaluación, la salida de Large-i, de unos mil millones de parámetros, fue calificada en varios casos como similar a la tinta digital creada por personas, y el 87% se marcó como buenos trazados o trazados con errores menores

Por qué convertir escritura a mano en papel a tinta digital

  • Las notas digitales ofrecen durabilidad, capacidad de edición e indexación, pero muchas personas todavía toman apuntes con papel y pluma
  • El proceso de convertir escritura física a formato digital se llama derendering, y el resultado son trazos que almacenan el movimiento de la pluma o del dedo como secuencias de puntos
  • A esta representación también se le llama representación de escritura “online” o tinta digital
  • El OCR simple transcribe la escritura a un documento de texto, pero la tinta digital captura los documentos manuscritos como colecciones de trazos
    • Permite al usuario editar a mano de forma más natural
    • Puede preservar el estilo de letra y la sensación real de la escritura manuscrita
    • Permite organizar e integrar notas junto con imágenes, texto, enlaces y funciones de asistencia digital
  • Antes ya existían métodos con smart pens, papel especial o stacks de software dedicados, pero el hardware adicional y el costo se convierten en barreras de adopción

Qué restaura InkSight

  • InkSight: Offline-to-Online Handwriting Conversion by Learning to Read and Write extrae los trazos que produjeron la escritura a partir de fotos de notas manuscritas
  • Usa solo fotos como entrada, sin equipo adicional, y el modelo junto con el código de inferencia están disponibles en el repo de GitHub
  • No depende de componentes geométricos típicos como gradientes, contornos o formas de la imagen
  • El modelo aprende dos capacidades al mismo tiempo
    • Leer: reconocer palabras en la imagen
    • Escribir: producir trazos que parezcan escritura a mano
  • Esta combinación está diseñada para funcionar con más robustez incluso ante entradas difíciles, como condiciones de iluminación, oclusiones y apariencias variadas

Flujo del sistema para procesar páginas completas

  • El objetivo principal es capturar la trayectoria a nivel de trazos de la escritura para que el usuario pueda guardarla en la app de notas que quiera
  • Internamente, un modelo OCR existente identifica palabras manuscritas y luego el modelo las convierte en trazos
  • Para favorecer la reproducibilidad, la reutilización y la facilidad de adopción, combina el codificador ViT y el codificador-decodificador mT5, ambos ampliamente usados
  • Como debe manejar imágenes de tamaño arbitrario, distintas resoluciones y cantidades variables de contenido, la escalabilidad es un reto clave
  • Entrenar directamente con entradas de muy alta resolución y secuencias de salida largas eleva el costo computacional, así que divide el derendering de la página en tres etapas
    • Extraer bounding boxes por palabra con OCR
    • Hacer derendering de cada palabra por separado
    • Reemplazar la representación de píxeles offline por los trazos derenderizados
  • Para reducir la brecha de dominio entre imágenes sintéticas de tinta renderizada y fotos reales, usa aumento de datos
    • Aleatoriza el ángulo de la tinta, el color y el ancho del trazo
    • Agrega ruido gaussiano y fondos complejos

Cómo aprende a leer y escribir al mismo tiempo

  • Reunir suficientes pares supervisados de imágenes y tinta digital correcta es caro, toma mucho tiempo y, según se indica, no existe un dataset lo bastante diverso para esta tarea
  • InkSight usa una configuración de aprendizaje multitarea para generalizar sin depender de grandes volúmenes de muestras emparejadas
  • La mezcla de entrenamiento se compone de cinco tipos de tareas
    • Tareas de derendering que generan tinta digital a partir de imágenes
    • Tareas de derendering que generan tinta digital a partir de imágenes y texto reconocido por OCR como entrada conjunta
    • Tareas de reconocimiento que producen texto a partir de imágenes reales
    • Tareas de reconocimiento que producen texto a partir de imágenes sintéticas
    • Tareas mixtas de reconocimiento y derendering que producen texto y tinta a la vez
  • Cada tarea usa texto de entrada específico para que el modelo pueda distinguirla durante entrenamiento e inferencia
  • El aprendizaje de lectura ayuda a localizar y extraer con más precisión los elementos de texto en la imagen
  • El aprendizaje de escritura hace que la representación vectorial de salida siga una dinámica física y un orden de trazos más cercanos a la forma humana de escribir

Representación de tinta digital y tokenización

  • Para el entrenamiento se usan pares de imágenes de texto y tinta digital correspondiente
  • La tinta digital se muestrea a partir de trayectorias de escritura en tiempo real y luego se representa como secuencias de trazos
  • Cada trazo es una secuencia de puntos muestreados a velocidad constante
    • Un ejemplo es muestrear 50 puntos por segundo
  • La imagen correspondiente se genera renderizando la tinta como bitmap a una resolución determinada
  • Este proceso crea la correspondencia píxel-trazo que sirve de base para los pares de entrada y salida del modelo
  • El tokenizador de tinta convierte los puntos a un formato adecuado para un LLM
    • Cada punto se transforma en dos tokens que codifican por separado la coordenada x y la coordenada y
    • La secuencia de tokens de tinta empieza con b, que indica el inicio del trazo
    • Después siguen los tokens de coordenadas de los puntos muestreados

Datos de evaluación y modelos de comparación

  • Para evaluar el rendimiento, se recopiló un dataset de evaluación por separado
  • Los datos de evaluación parten de datos de OCR y se complementan con pares de trazados generados por personas, donde las personas calcaban directamente las imágenes de texto mostradas
  • Se entrenaron tres variantes del modelo
    • Small-p: unos 340 millones de parámetros, configuración pública
    • Small-i: configuración interna
    • Large-i: unos mil millones de parámetros
  • Como baseline de comparación se usó General Virtual Sketching
  • Tanto en la evaluación automática como en la humana, las representaciones vectoriales generadas por el sistema resultaron semántica y geométricamente similares a las imágenes de entrada, y también parecidas a datos de tinta digital creados por personas

Diferencias observadas en la evaluación cualitativa

  • Se comparó el modelo con GVS en los datasets públicos IAM, IMGUR5K y en un dataset de bocetos fuera de dominio
  • En general, los modelos de InkSight reflejan con precisión el contenido textual e ignoran fondos irrelevantes para el significado
  • También pueden manejar entradas con oclusiones, mostrando la ventaja del conocimiento previo de lectura aprendido
  • GVS tiende a generar múltiples trazos duplicados y muestra dificultades para distinguir entre fondo y primer plano
  • Large-i conserva más detalles y puede adaptarse a una variedad mayor de estilos de imagen
  • En bocetos fuera de dominio, los modelos por lo general hacen derendering de bocetos simples, pero todavía aparecen artefactos como trazos innecesarios o desalineados

Evaluación humana y limitaciones

  • En esta área todavía no existen métricas ni benchmarks establecidos para evaluación cuantitativa
  • En la evaluación humana se usaron como control datos de trazado humano de HierText dataset, y como grupo experimental las salidas del modelo sobre las mismas muestras
  • Los evaluadores vieron juntas la imagen original y una muestra renderizada de tinta digital, y respondieron dos preguntas
    • Si la salida era un trazado razonable de la imagen de entrada
    • Si esa tinta digital podía parecer hecha por una persona
  • Participaron 16 personas familiarizadas con la tinta digital, pero no involucradas en la investigación
    • Cada muestra fue evaluada por 3 personas
    • Los resultados se agregaron por mayoría
  • La mayor parte de la tinta derenderizada generada por Large-i fue evaluada como de nivel similar al trabajo hecho por personas
  • El 87% de las salidas de Large-i se marcó como buenos trazados o trazados con errores menores
  • En comparaciones de ejemplo, todos los modelos manejaron mal las comillas dobles en la muestra de la línea superior, y en la muestra de la línea inferior hubo un caso en el que el trazado humano se concentró solo en las palabras principales y omitió la mayoría de los demás elementos
  • Incluso los trazados humanos no se alinean perfectamente con la imagen base, lo que muestra que trazar la parte manuscrita de HierText es en sí una tarea compleja y difícil

Conclusión

  • InkSight es un primer tipo de enfoque para convertir fotos de escritura a mano en tinta digital
  • Su configuración de entrenamiento está diseñada para funcionar incluso sin datos de entrenamiento emparejados
  • Funciona con robustez en entradas diversas, puede aplicarse a cuadernos manuscritos completos y generaliza hasta cierto punto a bocetos fuera de dominio
  • Es un enfoque que puede construirse con componentes estándar, sin modelado complejo

1 comentarios

 
GN⁺ 2024-10-29
Opiniones de Hacker News
  • Compré un pequeño pizarrón blanco para el refrigerador y, combinado con la función del iPhone que toma una foto de la escritura a mano y la copia como texto, funciona bastante bien
    No siempre es perfecto, y mi letra tampoco lo es, pero alcanza para corregir una o dos letras y enviarlo
    Es eficiente porque no manda la imagen completa, no hay que escribir ni deslizar el dedo, ni siquiera mirar la pantalla; mi pareja puede ver la lista en cualquier momento y no hace falta subirla a la nube
    No necesita energía, los marcadores duran mucho, y cuando se acaba algo dentro del refri, el flujo de tomar el marcador y escribirlo ahí mismo se siente muy natural

    • Es una idea bastante genial. Creo que este comentario hará que suban un poquito las ventas de pizarrones blancos para refrigerador entre los lectores de HN
    • Si quieres evitar los marcadores, una tableta LCD para escribir también es una opción. Se ve y funciona parecido a un Etch A Sketch, pero usa un stylus y una pantalla LCD, y se puede comprar por menos de 10 euros
  • Muy bueno. Hay una aplicación interesante de esta tecnología. Mi letra a mano es bastante mala, y empeora cuando escribo rápido
    Cuando enseño, muchas veces la letra que escribo en el pizarrón es bastante peor de lo que quisiera
    Podría entrenar un sistema así con mi letra escrita muy despacio y con mucho cuidado, y luego hacer que, durante la clase, convierta mi mala letra escrita rápido en el pizarrón en una versión más prolija de mi propia letra

    • Puede sonar raro, pero me da curiosidad si has probado una pluma fuente
      La retroalimentación es completamente distinta a la de un bolígrafo, y también influyen el tipo de papel y de tinta. Escribir se vuelve menos “predecible” y un poco más agradable
      Puedes empezar con una barata de 5 a 15 dólares con plumín mediano; algunos terminan coleccionando plumas fuente, pero yo hago la mayor parte de lo que escribo en papel con una Pelikan Jazz de unos 20 dólares
    • Mejorar la letra no es difícil. En un pizarrón blanco, empieza por escribir solo en letra de molde
      Al principio te hará más lento, pero no por mucho tiempo
      Fue uno de los consejos que me “cambiaron el pizarrón” cuando trabajaba como tutor en la universidad. El otro era copiar siempre los libros de atrás hacia adelante; fue muy útil, aunque ahora es un método algo anticuado
    • También puedes buscar manuales de rotulación y mejorar tu letra. Si practicas despacio, tu letra al escribir rápido también mejora
    • Si dibujas las fórmulas lo suficientemente bien, se pueden convertir en tiempo real a LaTeX y luego ejecutarlas en un cuaderno de cálculo
      En especial si se combina el LaTeX con el audio en el que se explican las fórmulas, también se pueden corregir errores
    • En ese caso, me parece que bastaría con usar un proyector láser, un teclado y un cuadro de texto sobre un lienzo
  • Solo por el título, ingenuamente pensé que era un artículo sobre cómo recuperar una habilidad perdida y volver a escribir notas a mano legibles y bonitas
    Es un problema que estoy teniendo ahora, después de pasar años escribiendo demasiado en teclado y usando menos la escritura a mano
    La investigación real de Google también ayuda, porque hace que mis notas digitales sean menos desastrosas. Pero no quiero depender de innovaciones tecnológicas para mejorar mi letra

    • Si de verdad quieres mejorar, en YouTube hay todo un nicho dedicado a eso. Elige el estilo de letra que quieres y practica, practica, practica
      Algunas personas publican gratis o venden hojas de práctica con líneas especiales que ayudan a igualar distintas alturas o lograr una inclinación perfecta
      Igual que cuando aprendiste a escribir por primera vez, tienes que dedicarle tiempo, atención y hacerlo tú mismo
    • Si quieres mejorar tu letra, una buena forma es usar una pluma fuente
      Mi letra mejora mucho cuando escribo con pluma fuente que con bolígrafo o pluma de gel. Supongo que es porque la pluma fuente te obliga a usar una posición y un ángulo óptimos. No es algo que escriba aunque lo presiones contra el papel en cualquier ángulo, así que es más exigente, y además ofrece una sensación más suave y mejor retroalimentación
      No hace falta exagerar; normalmente basta con una Pilot Metro de unos 20 euros con plumín mediano, o algo similar
    • Recomiendo estudiar rotulación de cómic. No digo que sea la forma más eficiente de escribir, pero te enseña a pensar en términos de trazos y consistencia
      A partir de ahí puedes desarrollar fácilmente tu propio estilo
    • Después de darme cuenta de que mi letra era un desastre, la mejoré escribiendo más despacio y prestando atención conscientemente a que quedara prolija
      La pluma fuente me ayudó a bajar la velocidad, pero en el fondo se trataba de escribir lo suficientemente despacio mientras formaba letras bonitas de manera consciente; una vez que se volvió más fácil, la velocidad también aumentó. Aun así, quedó el hábito de poner atención suficiente para formar letras agradables
      Más que la práctica deliberada con hojas de ejercicio o entrenamiento, lo importante es escribir lo suficientemente despacio como para formar las letras correctamente hasta que la memoria muscular se acumule y la velocidad vuelva
    • Recomiendo el sitio Handwriting Repair de Kate Gladstone
      https://handwritingrepair.info/
      O también vale la pena ver esto
      https://sites.google.com/view/briem/free-books
      También son buenos el hermoso The First Writing Book: Arrighi's Operina de John Howard Benson y el excelente An Italic Calligraphy Handbook de Carolyn Knudsen. Los títulos son modestos, pero el contenido es mucho mejor, y se pueden usar junto con un marcador de punta cincelada o una pluma fuente
  • Hace 10 años probé Tesseract para OCR y reconocía el inglés lo suficientemente bien. Si mal no recuerdo, Tesseract también lo desarrollaba Google y era de código abierto
    En ese entonces lo probé con un idioma que no era inglés, es decir, griego, y los resultados fueron muy malos
    Me alegra ver buena investigación de OCR basada en Transformers

    • Últimamente Tesseract me impresionó bastante. El mes pasado lo usé para agregar texto OCR invisible a un PDF escaneado que consulto con frecuencia y, aunque la calidad del escaneo era bastante buena, la precisión aun así fue impresionante
      También hice OCR del índice y, después de experimentar ajustando la configuración de segmentación de páginas en la terminal hasta obtener una salida que pudiera copiar y pegar, agregué un índice navegable
      1: Con ayuda de https://github.com/ocrmypdf/OCRmyPDF
      2: https://tesseract-ocr.github.io/tessdoc/Command-Line-Usage.html, “ Using different Page Segmentation Modes”
    • Tesseract fue creado originalmente por HP y, después de liberarse como código abierto, más tarde lo desarrolló Google. Al estar basado en tecnología de los años 80, queda bastante por debajo de las expectativas
      Aun así, tiene la ventaja de ser gratis
  • Me pregunto cuál es el estado del arte actual en detección de escritura a mano en fotos
    Seguir los trazos suena bien, pero me interesa más convertir mis notas manuscritas a Markdown

    • No sé si sea el estado del arte, pero el reconocimiento de escritura a mano de iOS y ChatGPT me funcionan sorprendentemente bien. Incluso con letra fea
      Eso sí, la precisión está más cerca de 90~95%, así que hay que revisar la salida antes de confiar en ella
  • Es un experimento muy interesante. Llevo los últimos años desarrollando una aplicación de escritura a mano, y sería genial poder incluir una función que tome una foto y la convierta en tinta digital
    [0] https://scrivanolabs.github.io

  • ¿También puede leer la letra garabateada de los médicos? Si es posible, podría ser revolucionario para la captura de datos médicos

    • La cantidad de muertes causadas por leer mal indicaciones de tratamiento en hospitales es impactante
      Hay que ser muy cuidadosos al interponer otra capa de interpretación entre el médico y el personal de enfermería encargado del tratamiento
      Es una lástima que en las facultades de medicina no enseñen letra de imprenta como se les enseñaba antes a los dibujantes técnicos
  • Cuando Apple Notes corrigió mi letra usando mi propio estilo de escritura, fue un momento inquietante

  • Todavía espero un entorno de programación que permita usar entrada con lápiz en una tablet. Ojalá no me obliguen a cargar un teclado Bluetooth
    Lamentablemente, como es muy probable que la mayoría no pague por eso, parece que nadie lo considera una oportunidad de negocio

    • Sin duda escribo más rápido tipeando que a mano. Especialmente con código, porque suele requerir edición en el lugar o reordenar frases
      También me gusta trabajar con papel y pluma, pero se adapta mejor a ideación, diagramas y listas de tareas que a entrada estructurada
    • Suena a una experiencia de usuario realmente horrible, y no pagaría por eso. Más bien tendría que pagarme alguien para usarlo
    • ¿Puedes dibujar 120 palabras por minuto con toque?
  • Creo que un modelo que convierta escritura a mano “offline”, es decir, tinta sobre papel, a una forma “online” como el orden y el tiempo de los trazos, podría ser realmente útil para pipelines de reconocimiento de escritura manuscrita en documentos históricos
    Pero, al final, se necesita un enfoque integrado de punta a punta
    No entiendo por qué el reconocimiento de escritura manuscrita en documentos históricos queda tan marginado en todos los benchmarks de evaluación de modelos multitarea. Hay millones de documentos históricos manuscritos sin indexar, y podrían permitirnos entender mucho mejor nuestro pasado reciente
    Además, también podrían darles a los modelos una comprensión mucho mejor del pasado reciente