Aprendendo a ler e escrever para voltar aos cadernos manuscritos
(research.google)- O InkSight do Google Research restaura fotos de escrita manual em tinta digital no nível de traços de caneta, como uma abordagem para salvar e editar cadernos de papel como se fossem notas digitais, sem hardware especial
- Ao contrário do OCR simples, que fica na transcrição de texto, o InkSight reconstrói a trajetória dos traços que formaram a escrita, permitindo revisar e continuar escrevendo preservando o estilo da letra
- Em vez de extrair apenas características geométricas, o modelo aprende leitura e escrita em conjunto, usando um codificador ViT e um codificador-decodificador mT5 para reconhecimento de palavras e geração de traços
- Para a página inteira, ele usa um fluxo que encontra caixas delimitadoras de palavras com OCR, faz o derendering de cada palavra separadamente e depois substitui a escrita em pixels pelos traços restaurados
- Na avaliação, a saída do Large-i, com cerca de 1 bilhão de parâmetros, foi julgada em vários casos como semelhante à tinta digital feita por humanos, e 87% foram marcados como bons traçados ou traçados com apenas pequenos erros
Por que transformar escrita manual em papel em tinta digital
- Notas digitais oferecem durabilidade, possibilidade de edição e indexação, mas muitas pessoas ainda fazem anotações com papel e caneta
- O processo de converter escrita manual física em formato digital é chamado de derendering, e o resultado são traços que armazenam o movimento da caneta ou do dedo como sequências de pontos
- Essa representação também é chamada de representação de escrita “online” ou tinta digital
- O OCR simples transcreve a escrita manual para um documento de texto, enquanto a tinta digital captura o documento manuscrito como um conjunto de traços
- O usuário pode editar à mão de forma mais natural
- É possível preservar o estilo da letra e a sensação real da escrita manual
- Dá para organizar e integrar as notas com imagens, texto, links e recursos de assistência digital
- Antes já existiam abordagens com canetas inteligentes, papel especial e pilhas de software dedicadas, mas o hardware extra e o custo são barreiras de adoção
O que o InkSight reconstrói
- InkSight: Offline-to-Online Handwriting Conversion by Learning to Read and Write extrai os traços que formaram a escrita a partir de fotos de cadernos manuscritos
- Usa apenas fotos como entrada, sem equipamento separado, e o modelo com o código de inferência pode ser visto no repositório no GitHub
- Não depende de componentes geométricos típicos, como gradientes, contornos e formas da imagem
- O modelo aprende duas capacidades ao mesmo tempo
- Ler: reconhecer palavras na imagem
- Escrever: gerar traços que pareçam escrita manual
- Essa combinação foi projetada para funcionar com mais robustez mesmo em entradas difíceis, como condições de iluminação, oclusões e aparências variadas
Fluxo do sistema para processamento em nível de página
- O objetivo básico é capturar a trajetória em nível de traço da escrita manual para que o usuário possa armazená-la no aplicativo de notas que quiser
- Internamente, um modelo OCR pronto identifica palavras manuscritas, e depois o modelo converte essas palavras em traços
- Para reprodutibilidade, reutilização e facilidade de adoção, ele combina o codificador ViT e o codificador-decodificador mT5, ambos amplamente usados
- Como precisa lidar com imagens de tamanho arbitrário, diferentes resoluções e quantidades variadas de conteúdo, a escalabilidade é um desafio central
- Como aprender diretamente com entradas de altíssima resolução e sequências de saída longas tem alto custo computacional, o derendering da página é dividido em três etapas
- Extrair caixas delimitadoras por palavra com OCR
- Fazer o derendering de cada palavra separadamente
- Substituir a representação offline em pixels pelos traços derenderizados
- Para reduzir a diferença de domínio entre a imagem sintética da tinta renderizada e a foto real, é usado aumento de dados
- O ângulo da tinta, a cor e a largura do traço são randomizados
- Ruído gaussiano e fundos complexos são adicionados
Como leitura e escrita são aprendidas juntas
- Coletar imagens para aprendizado supervisionado com seus pares corretos de tinta digital é caro, demorado, e não parece haver um conjunto de dados suficientemente diverso para essa tarefa
- O InkSight usa uma configuração de aprendizado multitarefa para generalizar sem depender de grande volume de amostras pareadas
- A mistura de treinamento é composta por cinco tipos de tarefa
- Tarefa de derendering que gera tinta digital a partir da imagem
- Tarefa de derendering que recebe imagem e texto reconhecido por OCR como entrada e gera tinta digital
- Tarefa de reconhecimento que produz texto a partir de imagens reais
- Tarefa de reconhecimento que produz texto a partir de imagens sintéticas
- Tarefa híbrida de reconhecimento e derendering que produz texto e tinta juntos
- Cada tarefa usa texto de entrada específico para permitir que o modelo diferencie as tarefas durante treino e inferência
- O aprendizado de leitura ajuda a localizar e extrair com mais precisão os elementos textuais da imagem
- O aprendizado de escrita faz com que a representação vetorial de saída siga a dinâmica física e a ordem dos traços de forma mais próxima da escrita humana
Representação e tokenização da tinta digital
- O treinamento usa pares de imagens de texto e sua tinta digital correspondente
- A tinta digital é amostrada de trajetórias de escrita em tempo real e depois representada como sequência de traços
- Cada traço é uma sequência de pontos amostrados em velocidade constante
- O exemplo usa amostragem de 50 pontos por segundo
- A imagem correspondente é gerada renderizando a tinta em bitmap com uma resolução especificada
- Esse processo cria a correspondência pixel-traço que serve de base para os pares de entrada e saída do modelo
- O tokenizador de tinta converte os pontos para um formato adequado a LLMs
- Cada ponto é transformado em dois tokens que codificam separadamente as coordenadas x e y
- A sequência de tokens de tinta começa com
b, que indica o início de um traço - Em seguida vêm os tokens de coordenadas dos pontos amostrados
Dados de avaliação e modelos de comparação
- Foi coletado um conjunto de dados de avaliação separado para medir o desempenho
- Os dados de avaliação começam com dados de OCR e adicionam pares de traçados gerados por humanos, em que pessoas copiaram manualmente as imagens de texto apresentadas
- Três variantes de modelo foram treinadas
- Small-p: cerca de 340 milhões de parâmetros, configuração pública
- Small-i: configuração interna
- Large-i: cerca de 1 bilhão de parâmetros
- Como linha de base de comparação, foi usado o baseline General Virtual Sketching
- Tanto na avaliação automática quanto na avaliação humana, a representação vetorial criada pelo sistema foi semanticamente e geometricamente semelhante à imagem de entrada e também parecida com os dados de tinta digital feitos por humanos
Diferenças vistas na avaliação qualitativa
- O modelo e o GVS foram comparados nos conjuntos públicos de avaliação IAM, IMGUR5K e em um conjunto de sketches fora de domínio
- Os modelos InkSight em geral refletem corretamente o conteúdo textual e ignoram fundos irrelevantes do ponto de vista semântico
- Também conseguem lidar com entradas com oclusão, mostrando a vantagem do conhecimento prévio de leitura aprendido
- O GVS gera vários traços duplicados e tem dificuldade para distinguir fundo e primeiro plano
- O Large-i preserva mais detalhes e consegue acomodar uma variedade maior de estilos de imagem
- Em sketches fora de domínio, os modelos em geral conseguem fazer o derendering de desenhos simples, mas ainda aparecem artefatos como traços desnecessários ou desalinhados
Avaliação humana e limitações
- Atualmente não há métricas nem benchmarks estabelecidos para avaliação quantitativa nessa área
- Na avaliação humana, os dados de traçado humano do HierText dataset foram usados como controle, e as saídas do modelo para as mesmas amostras foram usadas como grupo experimental
- Os avaliadores viram juntos a imagem original e as amostras renderizadas de tinta digital e responderam a duas perguntas
- Se a saída era um traçado razoável da imagem de entrada
- Se essa tinta digital poderia parecer ter sido feita por um humano
- Participaram da avaliação 16 pessoas familiarizadas com tinta digital, mas que não participaram da pesquisa
- Cada amostra foi avaliada por 3 pessoas
- Os resultados foram agregados por maioria
- A maior parte da tinta de derendering gerada pelo Large-i foi avaliada como próxima do nível de algo feito por humanos
- 87% das saídas do Large-i foram marcadas como bons traçados ou traçados com apenas pequenos erros
- Em comparações de exemplo, todos os modelos trataram incorretamente as aspas duplas na amostra da linha superior, e na amostra da linha inferior houve um caso em que o traçado humano se concentrou apenas nas palavras principais e deixou de fora a maior parte dos outros elementos
- Mesmo o traçado humano não fica perfeitamente alinhado com a imagem base, mostrando que a própria tarefa de traçar a parte manuscrita do HierText é complexa e difícil
Conclusão
- O InkSight é um primeiro tipo de abordagem para converter fotos de escrita manual em tinta digital
- A configuração de treinamento foi projetada para funcionar mesmo sem dados de treinamento pareados
- Ele funciona com robustez em entradas variadas, pode ser aplicado a cadernos manuscritos inteiros e generaliza até certo ponto para sketches fora de domínio
- É uma abordagem que pode ser construída com componentes padrão, sem modelagem complexa
1 comentários
Comentários no Hacker News
Comprei uma pequena lousa branca de geladeira e, combinada com o recurso do iPhone de fotografar texto manuscrito e copiá-lo como texto, ela é bem excelente
Nem sempre é perfeita, e minha letra também não é perfeita, mas é suficiente para corrigir uma ou duas letras e enviar
É eficiente porque não envia a imagem inteira; não preciso digitar nem deslizar o dedo, nem olhar para a tela; meu cônjuge pode ver a lista a qualquer momento; e não preciso subir nada para a nuvem
Não precisa de energia, os marcadores duram bastante, e o fluxo de pegar o marcador e escrever na geladeira quando algo dentro dela acaba parece muito natural
Muito legal. Há uma aplicação interessante desse tipo de tecnologia. Minha letra é bem ruim, e fica ainda pior quando escrevo rápido
Quando dou aula, muitas vezes a letra que escrevo no quadro é muito pior do que eu gostaria
Parece que seria possível treinar um sistema desses com a minha letra escrita bem devagar e com cuidado e, depois, durante a aula, fazer com que ele transformasse a letra ruim que escrevo rapidamente na lousa em uma versão mais limpa da minha própria letra
O feedback é completamente diferente do de uma esferográfica, e também é influenciado pelo tipo de papel e de tinta. Escrever fica menos “previsível” e um pouco mais prazeroso
Dá para começar com uma barata, de 5 a 15 dólares, com pena média; alguns acabam entrando no colecionismo de canetas-tinteiro, mas eu faço a maior parte do que escrevo em papel com uma Pelikan Jazz de cerca de 20 dólares
No começo fica mais lento, mas isso não dura muito
Foi um dos conselhos que “mudaram o jogo” que recebi quando trabalhava como tutor na universidade. O outro era sempre copiar o livro de trás para frente; foi muito útil, embora hoje seja um método um tanto ultrapassado
Especialmente se combinar o LaTeX com a voz explicando as fórmulas, também dá para corrigir erros
Só pelo título, ingenuamente achei que fosse um texto sobre como recuperar uma habilidade perdida e voltar a escrever anotações manuscritas legíveis e bonitas
É um problema que enfrento hoje, depois de anos digitando demais e escrevendo menos à mão
A pesquisa real do Google também ajuda, já que deixa minhas anotações menos bagunçadas no digital. Mas eu não gostaria de depender de inovação tecnológica para melhorar minha letra
Há pessoas que disponibilizam gratuitamente ou vendem folhas pautadas especiais para ajudar a alinhar diferentes alturas ou obter a inclinação perfeita
Assim como quando você aprendeu a escrever pela primeira vez, é preciso reservar tempo, prestar atenção e fazer você mesmo
Minha letra fica muito melhor com caneta-tinteiro do que com esferográfica ou gel. Acho que é porque a caneta-tinteiro força uma posição e um ângulo ideais. Ela é mais rigorosa, porque não é algo que escreva sendo pressionado contra o papel em qualquer ângulo, e também oferece uma sensação e um feedback mais suaves
Não precisa exagerar: uma Pilot Metro com pena média, por cerca de 20 euros, ou algo semelhante, costuma bastar
A partir daí, é fácil desenvolver seu próprio estilo
A caneta-tinteiro ajudou a reduzir a velocidade, mas, fundamentalmente, era uma questão de escrever devagar o suficiente, formando letras bonitas de modo consciente; depois que ficou fácil, a velocidade também aumentou. Ainda assim, permaneceu o hábito de prestar atenção o bastante para formar letras bonitas
Mais do que exercícios deliberados, como folhas de treino ou treinamento, o importante é escrever devagar o suficiente para formar as letras corretamente até que a memória muscular se acumule e a velocidade volte
https://handwritingrepair.info/
Ou estes também valem a pena ver
https://sites.google.com/view/briem/free-books
Também são bons o belo The First Writing Book: Arrighi's Operina, de John Howard Benson, e o excelente An Italic Calligraphy Handbook, de Carolyn Knudsen. Os títulos são modestos, mas o conteúdo é muito melhor, e você pode usá-los junto com marcadores de ponta chanfrada ou canetas-tinteiro
Há 10 anos, usei o Tesseract para OCR, e ele reconhecia inglês bem o suficiente. Se minha memória não falha, o Tesseract também foi desenvolvido pelo Google e era open source
Na época, testei com um idioma que não era inglês, ou seja, grego, e o resultado foi muito ruim
Fico feliz em ver boas pesquisas de OCR baseadas em Transformer
Também processei o sumário com OCR e, depois de experimentar no terminal ajustes de segmentação de página até obter uma saída que eu pudesse copiar e colar, adicionei um sumário navegável
1: contei com a ajuda de https://github.com/ocrmypdf/OCRmyPDF
2: https://tesseract-ocr.github.io/tessdoc/Command-Line-Usage.html, “ Using different Page Segmentation Modes”
Ainda assim, tem a vantagem de ser gratuito
Fico curioso para saber qual é o estado da arte atual na área de detecção de caligrafia em fotos
Rastrear traços também é interessante, mas estou mais interessado em converter minhas anotações manuscritas para Markdown
Ainda assim, a precisão fica mais perto de 90–95%, então é preciso revisar a saída antes de confiar nela
É um experimento muito interessante. Nos últimos anos venho criando um aplicativo de escrita à mão, e seria ótimo poder incluir um recurso para tirar uma foto e convertê-la em tinta digital
[0] https://scrivanolabs.github.io
Será que consegue ler os rabiscos de médicos? Se conseguir, pode ser revolucionário para a área de entrada de dados médicos
É preciso ter muito cuidado ao inserir mais uma camada de interpretação entre o médico e o enfermeiro responsável pelo tratamento
É uma pena que as faculdades de medicina não ensinem letra de forma como se ensinava aos antigos desenhistas técnicos
Foi um momento assustador quando o Apple Notes corrigiu minha escrita para ficar com a minha própria caligrafia
Ainda espero por um ambiente de programação que permita usar entrada por caneta em tablets. Eu gostaria que não me obrigassem a carregar um teclado Bluetooth
Infelizmente, como é bem provável que a maioria das pessoas não pague por isso, parece que ninguém trata isso como uma oportunidade de negócio
Também gosto de trabalhar com papel e caneta, mas isso combina mais com ideação, diagramas e listas de tarefas do que com entrada estruturada
Acho que modelos capazes de transformar escrita à mão “offline”, isto é, tinta no papel, em uma forma “online”, com ordem e timing dos traços, podem ser muito úteis em pipelines de reconhecimento de manuscritos em documentos históricos
Mas, no fim, será necessária uma abordagem integrada de ponta a ponta
Não entendo por que o reconhecimento de manuscritos em documentos históricos é tão negligenciado em todos os benchmarks de avaliação de modelos multitarefa. Existem milhões de documentos históricos manuscritos não indexados, e eles poderiam nos ajudar a entender muito melhor nosso passado recente
Além disso, também poderiam dar aos modelos uma compreensão muito melhor desse passado recente