2000 identificações por segundo: como selecionar a tabela correta em um documento sem redes neurais
Smart Engines
Meta
A Smart Engines desenvolveu um método para identificar uma tabela-alvo entre várias regiões semelhantes a tabelas em um documento, usando expressões regulares em vez de redes neurais. Cada região de tabela é convertida em uma string unidimensional que codifica sua estrutura e conteúdo de texto, que é então comparada com padrões de regex. A abordagem executa cerca de 2000 identificações por segundo em um processador móvel e melhora a qualidade de reconhecimento em documentos reais.
A Smart Engines desenvolveu um método para identificar a tabela correta entre várias regiões semelhantes a tabelas em um documento, sem usar redes neurais. O sistema primeiro detecta possíveis regiões de tabela e, em seguida, converte cada região em uma string unidimensional que codifica tanto sua estrutura geométrica quanto seu conteúdo de texto. Isso é feito projetando linhas verticais e palavras de OCR no eixo X, marcando posições como dígitos de qualidade de linha, marcadores de texto ou pontos vazios, e fundindo-os em uma assinatura compacta. A tarefa de identificação é então reduzida a verificar essa string contra expressões regulares que descrevem a estrutura esperada da tabela. Dois cenários são usados: identificação de estrutura fixa para formulários padronizados, como faturas, e identificação de coluna característica para tabelas onde a ordem das colunas pode variar. Testes em documentos russos (atos e faturas) mostraram reduções nos erros de detecção de linhas e colunas de até 35,87% e 26,36%, respectivamente, com a precisão do reconhecimento de células melhorando em até 9,97%. O algoritmo é executado em 0,49 ms por região em ARMv8 de 64 bits, cerca de 2000 verificações por segundo, em comparação com 1-3 segundos por candidato usando uma abordagem de LLM com Llama 3 em um PC. O método também foi aplicado para classificar tipos de documento com base na estrutura da tabela, alcançando 100% de precisão e recall para cinco dos sete tipos, superando uma classificação básica baseada em campos.
Fonte: Habr — хаб ML —
original
