2 pontos por GN⁺ 2024-05-14 | 1 comentários | Compartilhar no WhatsApp

Correção de deformação de páginas (Page Dewarping)

  • Aborda a tarefa de achatar imagens de páginas enroladas como um problema de otimização

Contexto

  • Métodos existentes de correção de deformação, como a biblioteca Leptonica ou a abordagem Coordinate Transform Model (CTM), usam uma abordagem hierárquica de decomposição do problema
    1. Separar o texto em linhas
    2. Encontrar um warping ou transformação de coordenadas que torne as linhas paralelas e horizontais
  • Inspirado pela abordagem baseada em modelo cilíndrico 3D do CTM, foi criado um modelo paramétrico próprio usando parâmetros que determinam o formato da página
    • Vetores de rotação/translação 3D, inclinação da curvatura da página, deslocamento da linha horizontal etc.
  • Definido como um problema de otimização
    • Encontrar keypoints ao longo das regiões de texto horizontais na foto original
    • Partindo de uma estimativa inicial, otimizar os parâmetros do modelo para minimizar o erro de reprojeção dos keypoints

Procedimento

  1. Extração da borda da página
  2. Detecção dos contornos do texto
  • Uso de binarização, operações morfológicas e análise de componentes conectados
  • Especializado para também detectar tabelas com texto vertical
  1. Agrupamento dos contornos de texto em regiões horizontais
  2. Amostragem de keypoints nas regiões horizontais
  3. Estimativa inicial dos parâmetros do modelo
  4. Minimização do erro de reprojeção por otimização
  • Uso do solver Powell de scipy.optimize.minimize
  • Ocupa a maior parte do tempo de execução
  1. Transformação de coordenadas com o modelo otimizado, seguida de remapeamento da imagem e binarização

Resultados

  • Funciona bem em vários vídeos de exemplo
  • Como o número de parâmetros do modelo é grande, a otimização leva tempo
  • A distorção na direção horizontal não foi considerada

Encerramento

  • Um fluxo de trabalho típico de acumular conhecimento prévio e formular o problema como otimização
  • Abordagem semelhante a Deformable Part Model e Active Appearance Model
  • Também foram obtidos aprendizados práticos sobre o uso de ferramentas como Emacs e Pylint
  • Não há planos de evolução adicional, mas é um projeto que vale como referência ao ensinar visão computacional

Opinião do GN⁺

  • Para usabilidade real, parece necessário corrigir também a distorção na direção horizontal. Para isso, provavelmente será necessário um modelo mais sofisticado, como o CTM.
  • Melhorar a velocidade da otimização parece importante. Reduzir o número de parâmetros ou usar técnicas de otimização mais rápidas pode ajudar.
  • Seria interessante comparar com métodos baseados em deep learning. Talvez o deep learning consiga resolver ao mesmo tempo a extração de pontos característicos e a modelagem.
  • Para uso em tarefas industriais de digitalização de documentos, parece necessário garantir maior robustez para documentos com layouts variados.
  • É bom que tenha sido publicado como open source, mas para uso prático talvez seja melhor distribuir como um programa executável independente, em vez de um script Python.

1 comentários

 
GN⁺ 2024-05-14
Opiniões no Hacker News

Resumo:

  • É preciso tomar cuidado ao aplicar um limiar alto na binarização de imagens
    • Funciona bem para texto comum, mas ilustrações ou notas de rodapé podem ser danificadas a ponto de ficarem ilegíveis
    • Se a única opção for um scan do Google Books, você pode dar azar
  • Mesmo em 2024, esse recurso ainda não vem embutido em apps de scanner de documentos
  • O ex-CEO da Adobe, John Warnock, se dedicou à preservação de livros históricos raros
    • O desafio era fazer o de-curling de páginas escaneadas que não podiam ser abertas completamente
    • Projeto relacionado: Rare Book Room
  • Este texto é um bom exemplo de como documentar projetos técnicos e decisões de forma eficaz, algo que vale usar como referência no trabalho
  • Na faculdade, ao criar um app para escanear anotações com código de cores, esbarrei em um problema de distorção de cores
    • As cores no topo e na base da página eram diferentes, dificultando distinguir canetas azuis e verdes
  • O resultado parece adequado, mas o modelo de warp é um pouco global demais
    • Ele não captura todas as deformações complexas do papel, então ainda há distorções residuais no resultado final
  • Um texto interessante que lamento não ter visto em 2016
    • Ele descreve muito bem todo o processo: definição do problema, aplicação de técnicas inteligentes e obtenção de uma solução que funciona bem
    • Talvez eu nunca use isso diretamente, mas é um excelente exemplo de resolução de problemas
  • Ocorreu um erro na instalação, então abri uma issue no GitHub
  • Seria legal testar isso também para de-wrinkling de recibos
  • Se você só precisa de OCR, talvez dê para pular esta etapa
  • O Google já tinha resolvido esse problema há 10 anos
  • Se forem livros ou documentos valiosos, dá para fazer de-warping sem contato com tomografia por raios X