Por José Paulo Marchezi, Cientista de Dados na Dom Rock
Grandes empresas costumam gerenciar diariamente um número considerável de documentos, variando desde comprovantes de pagamentos, notas fiscais ou até informações contratuais dos funcionários. A classificação dos documentos é uma parte fundamental dentro dos processos da empresa. A separação e classificação, na maioria dos casos é feita manualmente, o que pode se tornar uma tarefa complicada e custosa para a empresa. Isso mostra a importância de ferramentas de automação na classificação de documentos, de tal forma que as empresas possam destinar o tempo dos funcionários a tarefas mais importantes.
A classificação automática de documentos geralmente é feita utilizando apenas a informação textual da imagem, o que pode funcionar bem em certos casos, mas também é capaz de gerar confusão entre os diferentes documentos, principalmente se a qualidade das imagens não for boa. A base de dados que desejamos classificar é composta por: Notas fiscais de serviço, produtos e transporte; Boletos; Guias de recolhimento; Contas de energia elétrica e saneamento; entre outros. A informação textual desses documentos é muito parecida, de forma que a classificação utilizando somente o texto pode não ser a melhor e a única opção. Adotamos uma abordagem baseada na classificação considerando o layout visual do documento utilizando Redes Neurais Convolucionais (Convolutional Neural Network — CNN).
Uma CNN é um tipo de arquitetura de machine learning muito utilizada na análise de imagens, isso se deve ao fato de uma CNN, diferente das redes neurais tradicionais, receber como entrada um dado em duas dimensões, ou uma matriz, por exemplo. Isso significa que ela é capaz de analisar melhor as relações entre os pixels vizinhos, o que é de grande importância em análise de imagens. Esse tipo de rede neural necessita de, em sua etapa de treinamento, uma grande quantidade de documentos para chegar uma acurácia adequada. Podemos utilizar a transferência de aprendizado (Transfer learning) para reduzir o tempo de processamento e ainda assim obter um resultado satisfatório.
Esse método consiste em utilizar uma rede neural já treinada com uma quantidade grande de imagens e adicionar uma camada de filtros a mais na rede. Essa camada será treinada e terá como saída as diferentes classes de imagens desejadas. A base de dados mais utilizada é a ImageNet, com mais de 14 milhões de imagens distribuídas em mais de 20 mil categorias. Utilizamos a rede treinada resNet50, foi que a que apresentou os melhores resultados para nossa aplicação.
Base de dados
Para ilustrar um caso comum em muitas empresas, construímos uma base de dados de mais de 2 mil documentos, originalmente em formato pdf (Portable Document Format) com várias páginas e classes desorganizadas. O primeiro passo é separar todos os arquivos pdf em imagens individuais e organizar os dados adequadamente nas classes finais.
As classes encontradas foram:
boleto
concessionária
controle de vencimento
cupom fiscal
e-mail
guias
lançamento de despesas 1
lançamento de despesas 2
nota fiscal eletrônica de produto
Nota fiscal eletrônica de serviços
Nota fiscal de transportes
página com carimbo
recibo de transportes por aplicativos
Com as imagens devidamente separadas, manualmente, o próximo passo é equilibrar o número de documentos em cada classe, para isso utilizamos uma técnica chamada de augmentation, que consiste em manipular as imagens já existentes e criar novas imagens com alguma mudança na rotação, esquema de cores, e qualidade de imagem. Com isso temos uma nova base com pelo menos 300 amostras em cada classe.
O próximo passo é separar as imagens que serão utilizadas para treinar o modelo, as utilizadas para validação e as de teste. Escolhemos separar 70% das imagens para treino, 20% para validação e 10% para testes.
Resultados
Para exemplificar, a Figura 1 mostra 8 classes de documentos: boletos, concessionárias, cupom fiscal, guias de recolhimento, notas fiscais de transporte, NF de serviços, NF de produtos e recibos de transporte por aplicativos. Cada imagem possui suas peculiaridades, mas ainda assim tem alguns pontos semelhantes, como, por exemplo, código de barras. Durante o treinamento da rede neural os pontos que são comuns dentro de cada classe são valorizados, de modo que quando utilizamos a rede para classificar um documento novo, os coeficientes da saída da rede neural possuem certa configuração que depois são comparados com a configuração média dos coeficientes já presentes na rede neural.
Figura 1. Exemplo dos diferentes tipos de documentos utilizados no treinamento da rede neural.
Um fator importante de se observar é que regiões comuns na maioria das classes, como código de barras, não é valorizada durante a classificação em nenhuma situação. Isso mostra que o modelo está levando em consideração regiões particulares de cada conjunto de imagens.
Utilizou-se o método de transferência de conhecimento na rede resNet50. Treinamos as novas camadas da rede durante 50 épocas, chegando a uma acurácia de ~90%, como mostra a Figura 3, o que é um bom resultado, levando-se em consideração o número de documentos e a técnica de augmentation, que muitas vezes pode gerar um overfitting e desfavorecer os resultados finais.
Figura 2. Acurácia no modelo (lado esquerdo) e a perda durante o treinamento (lado direito).
A Figura 2 mostra a matriz de confusão para todas as classes desse banco de dados. Esse tipo de representação compara a classe real, no eixo vertical, e a classe predita pela rede, no eixo horizontal, a escala de cores mostra o quão assertiva foi a classificação dentro de todos os documentos reservados para o teste, ou seja, quanto mais azul, maior o número de acertos. Podemos observar que algumas classes, como notas fiscais de produtos e transportes, apresentam 98% de acertos.
Figura 3. Matriz de confusão.
Considerações finais
A utilização de redes neurais na classificação de imagens é uma tecnologia que já vem sendo utilizada há um bom tempo e está bem difundida no mercado e pode ser aplicada na classificação automática de documentos. Os resultados apresentados são satisfatórios, e podem ser aplicados para qualquer tipo de formulários e documentos comuns dentro da maioria das empresas. Esse método pode ainda ser aprimorado utilizando uma combinação de modelos. Uma alternativa é utilizar a classificação por imagem e com informação textual juntas. Isso pode aumentar a assertividade da classificação sem aumentar os custos computacionais.
Comentarios