2 pontos por GN⁺ 2024-10-29 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2024-10-29
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

    • Ideia bem legal. Acho que este texto vai causar um pequeno aumento nas vendas de lousas brancas de geladeira entre os leitores do HN
    • Se quiser evitar marcadores, um tablet LCD de escrita também é uma opção. Parece um Etch A Sketch e funciona de forma parecida, mas usa uma caneta stylus e uma tela LCD; dá para comprar por menos de 10 euros
  • 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

    • Pode soar estranho, mas fico curioso se você já tentou usar uma caneta-tinteiro
      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
    • Melhorar a letra não é difícil. Na lousa branca, comece escrevendo apenas em letra de forma
      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
    • Você também pode procurar um manual de lettering para melhorar a letra. Praticar devagar melhora também a letra quando você escreve rápido
    • Se você desenhar fórmulas bem o suficiente, dá para convertê-las em LaTeX em tempo real e depois executá-las em um notebook computacional
      Especialmente se combinar o LaTeX com a voz explicando as fórmulas, também dá para corrigir erros
    • Nesse caso, acho que bastaria usar um projetor a laser, um teclado e uma caixa de texto em uma tela
  • 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

    • Se você quer melhorar de verdade, há uma área no YouTube dedicada a isso. Escolha o estilo de letra que quer e pratique, pratique, pratique
      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
    • Se quer melhorar a letra, uma boa forma é usar uma caneta-tinteiro
      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
    • Recomendo estudar lettering de quadrinhos. Não quer dizer que seja a forma mais eficiente de escrever, mas você aprende a pensar em termos de traços e consistência
      A partir daí, é fácil desenvolver seu próprio estilo
    • Depois que percebi que minha letra era uma bagunça, melhorei ao conscientemente escrever mais devagar e com mais capricho
      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
    • Recomendo o site Handwriting Repair, da Kate Gladstone
      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

    • Recentemente fiquei bastante impressionado com o Tesseract. Usei no mês passado para adicionar texto OCR invisível a PDFs escaneados que consulto com frequência e, embora a qualidade do scan fosse bem boa, a precisão ainda assim foi impressionante
      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”
    • O Tesseract foi criado originalmente pela HP e, depois de ser lançado como open source, passou a ser desenvolvido pelo Google. Por se basear em tecnologia dos anos 1980, fica bem abaixo das expectativas
      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

    • Não sei se é estado da arte, mas o reconhecimento de escrita à mão do iOS e o ChatGPT funcionam surpreendentemente bem para mim. Até com letra feia
      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

    • O número de mortes causadas em hospitais por leituras erradas de instruções de tratamento é chocante
      É 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

    • Eu definitivamente digito mais rápido do que escrevo à mão. Especialmente no caso de código, porque ele exige com frequência edição no lugar ou reorganização de frases
      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
    • Parece que seria uma experiência de usuário realmente terrível, e eu não pagaria por isso. Pelo contrário, acho que só usaria se alguém me pagasse
    • Dá para desenhar 120 palavras por minuto com toque?
  • 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