Um projeto extra-oficial (parte 1)

Sistema de ICR (Inteligent Character Recognition) para Declaração de Nascido Vivo e Declaração de Óbito

Paulo Scardine
FAÇADE
4 min readJun 26, 2017

--

Toda vez que nasce uma criança no estado de São Paulo, é preenchido um documento chamado “Declaração de Nascido Vivo”. Quando alguém morre, existe um documento correspondente chamado “Declaração de Óbito”.

O Provimento CG. n.º 25/2005 estabelece que os Cartórios de Registro Civil do Estado devem enviar mensalmente, à Fundação Seade, os arquivos/mapas estatísticos e fotocópias das declarações de nascidos vivos e de óbitos. Por que isso? A Fundação SEADE é responsável pela compilação de uma série de informações que é usada pela Secretaria de Planejamento para dimensionar e acompanhar as políticas públicas do governo estadual. Por exemplo, o banco de dados do IMP (Informações dos Municípios Paulistas) tem mais de mil variáveis, entre elas o total de nascidos vivos e de óbitos do estado.

Bom, e quantas pessoas nascem e morrem em São Paulo? Segundo o IMP são pouco mais de 630 mil nascimentos e 280 mil óbitos por ano.

Nascidos vivos versus óbitos, 2011 à 2015

Isto significa que os cartórios enviam perto de 900 mil fotocópias por ano? Não sei exatamente os detalhes, mas posso garantir que é um bocado de árvores mortas e muito trabalho manual para capturar, tabular e conferir os dados.

É possível automatizar este trabalho?

Em informática tudo é possível se você tiver tempo e dinheiro suficientes, resta saber: é viável?

Um dos desafios para automatizar a entrada de dados a partir destes formulários é que eles são preenchidos manualmente. Não dá pra usar um OCR simples como num documento impresso.

Os sistemas que automatizam a captura de dados em formulários de papel custam na casa das centenas de milhares de dólares e para obtenção de uma produtividade razoável precisam de um bocado de ajustes personalizados.

Com a perda de arrecadação em razão da grave crise econômica de 2014, todas as esferas de governo enfrentam desafios de financiamento. A fundação SEADE não é uma exceção. Em vista disso, mesmo que exista uma solução de mercado, obter provisionamento para qualquer tipo de investimento será um grande desafio.

Investigação extra-oficial

Um sistema de ICR (inteligent character recognition) definitivamente não é um projeto para inciantes. Mas é algo que pode ser feito com recursos internos? Essa é a pergunta que estou tentando responder nas últimas semanas.

Descobri que alguns cartórios enviam estes documentos já digitalizados via FTP e fui investigar a quantidade de documentos disponível: nas pastas do servidor de FTP existe quase 90 mil arquivos PDF, muitos com várias páginas — vou saber o número exato quando acabar de processar.

Também descobri que os dados dos formulários estão digitados no banco de dados de “estatísticas vitais”. Uma situação onde você tem uma grande amostra de entrada e de saída é perfeita para treinar um sistema de “Machine Learning”, ou aprendizado de máquina. Neste caso, existe uma grande quantidade de imagens de formulário e dos dados correspondentes.

Se for possível associar cada imagem a um registro no banco de dados, a parte do problema que envolve a geração de um “training set” (conjunto de dados de treinamento) está resolvida. Só meu superior imediato sabe que estou trabalhando nisso: se conseguir montar uma boa apresentação até meados de Julho pode ser que isso vire um projeto oficial.

Descobrindo o tipo de documento e o número

Os documentos enviados pelos cartórios em formato digital são arquivos PDF em dois formatos: branco e preto e colorido. A qualidade da digitalização é sofrível nos documentos em branco e preto, cerca de 10% ou mais são ilegíveis mesmo para um humano.

O cabeçalho das declarações tem uma tarja preta contendo o tipo do documento (Óbito ou Nascido Vivo). Ao lado desta tarja fica o número do documento.

Usando as bibliotecas OpenCV e PyTesseract, confirmei que é possível localizar estas regiões e extrair os dados para uma boa parte dos documentos. De pouco mais de 9 mil imagens processadas inicialmente, o algoritmo proposto foi capaz de determinar o tipo de documento para cerca de um terço.

Próximos passos

Nos próximos dias vou me concentrar em melhorar o algoritmo para limpar as imagens e extrair do número do formulário. Vamos ver se consigo manter a disciplina e publicar o progresso toda semana.

--

--