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
- Separar o texto em linhas
- 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
- Extração da borda da página
- 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
- Agrupamento dos contornos de texto em regiões horizontais
- Amostragem de keypoints nas regiões horizontais
- Estimativa inicial dos parâmetros do modelo
- 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
- 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
Opiniões no Hacker News
Resumo:
de-curlingde páginas escaneadas que não podiam ser abertas completamentede-wrinklingde recibosde-warpingsem contato com tomografia por raios X