Skip to content

Estudo para coleta de documentos com câmera

Implementação feita em: Cam-docs-study

Objetivo

Nossa empresa tem atualmente desenvolvido um projeto mobile, portanto surgiu a necessidade de estudar a implementação da funcionalidade de tirar foto de um documento e analisá-lo, com a possibilidade de uma inteligência artificial para ler se o documento é válido ou não.

Solução mais simples

API do capacitor: Documentação

Problemática envolvida: Esta api abre o aplicativo de câmera do celular, logo não permite muita personalização, por exemplo.

PWA -> Progressive Web App:

Progressive web app é o aplicativo rodando em uma plataforma de formato web. No caso do estudo atual, de câmera, é necessário que a câmera seja aplicável em plataforma web. Ao clicar para abrir a câmera, o comportamento esperado no navegador é abrir a webcam, e no celular em endereço web ainda deve ser possível abrir a câmera.

Biblioteca alvo da pesquisa: pwa-elements

Foi testada a aplicação do pwa-elements/loader, mas a solução tem falha que aponta a não existência de uma propriedade "isProxied", provavelmente sendo um conflito com o próprio svelte ou o stencil, conforme indicam nas issues abaixo.

Issues relacionadas:

Fechada por inatividade: Stencil -> Issue 1661

Issue Aberta: Stencil -> Issue 2774

1. Biblioteca utilizada + Overlay

Biblioteca usada: Camera Preview

Problemas encontrados: Infelizmente a overlay realmente não funcionou conforme o desejado no nativo e até o presente momento não consegui aplicar. Ficou bem aplicada no PWA (que com essa biblioteca funcionou), mas não no aplicativo de celular.

1.1 Alternativa sugerida no site do ionic:

Documentação: Ionic -> Camera preview Implementada na branch 2 do projeto

Problema: A biblioteca indicada é do cordova, e este não suporta PWA. https://github.com/ionic-team/capacitor/issues/769

2. Comparar foto do documento com a foto do rosto

Soluções encontradas:

Face-api.js

É uma biblioteca disponível para navegadores e node.js, contendo as funções de:

  • Reconhecimento facial
  • Detecção de expressões
  • Comparação de rostos
  • Detectar gênero e idade
  • Traçar contorno do rosto

Foram realizados testes nessa biblioteca também, mas apenas com as instruções deles. Não foi implementado em nosso projeto até o presente momento.

git clone https://github.com/justadudewhohacks/face-api.js.git cd face-api.js/examples/examples-browser npm i npm start

Observação: Foi estudado também o reconhecimento facial da azure, da microsoft. Existe a possibilidade de até 30000 usos gratuitos por mês da api, mas aponta estar disponível apenas para o sul do país e em breve para sudoeste.

3. Analisar documento enviado

Nessa tarefa, o objetivo principal era verificar a possibilidade de implementar a análise de documentos no projeto, como qual documento se trata (RG, CPF, CNH...)

A análise própria do tipo de documento não foi possível, e caso fosse possível existiria a possibilidade de ficar desatualizado por atualizações nos documentos.

Entretanto, uma possibilidade mais viável é a implementação de leitura do texto dos documentos, cujas possibilidades são tão vastas que poderia ser feito um novo estudo completo para decidir a melhor.

Exemplos: