API de reconhecimento facial com OCI – Parte 1

Você já deve ter notado que estou estudando sobre Machine Learning (incluindo Deep Learning). No meu estudo eu gosto de implementar códigos de outros desenvolvedores ou criar alguns códigos a partir do zero. Se você também estuda sobre reconhecimento facial já deve ter ouvido falar sobre o Facenet. O Facenet é uma implementação em Tensorflow para reconhecimento facial que você pode integrar em seus projetos, e usei ele para criar minha API de reconhecimento facial.

Neste primeiro artigo, você aprenderá a usar minha API de reconhecimento facial com uma instância do OCI Compute (Ubuntu 16.04). Você pode escolher entre instâncias de CPU ou GPU, mas se você tiver várias fotos de pessoas diferentes, eu recomendo as instâncias de GPU para acelerar o treinamento de seu modelo.

No segundo artigo, você aprenderá como integrá-la com o Object Storage para armazenar todas as suas imagens.

Antes de tudo, algumas das informações da sua conta são necessárias.
Acesse sua conta da Oracle Cloud, copie e cole o OCID do usuário em um bloco de notas.

Crie uma nova API Key para seu usuário usando essa chave pública.

-----BEGIN PUBLIC KEY-----
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAqXpSBJfl+6CP8AQueRlC
ZISG0aJVrVWTZR/HtakVri+T+jsLyZNc5/7TsQ2VuqrKCV4/6LsxpRwkaRW70N1t
7HFaeo35LaSOkeXHzAPTIDtkaJUXMEpMaokKJzFnG2VElytUUVrtoHs3kMp4ykYH
zVNahsVG11sWKcp2TKe3rCXM4EaxRL0WsfNu3d5JIkL1AxrT2twdQrHqgwCWPzKs
9D6BsbjgMyKhckF2cyYL7L/XCrUjhjlZZVauMcIUzeIwJb0XUZFGxdkBFwHCF5pT
0z5erCN7Bh6BKpTBRdRlV3keIjP9VQ62cLXorQS9/9Tbrf453GDUEEPVMcOw1OAd
XwIDAQAB
-----END PUBLIC KEY-----

Copie e cole a fingerprint gerada.

Copie e cole o OCID do seu tenancy.

Copie e cole o OCID do seu compartimento.

Abra um terminal, acesse sua instância do OCI Compute e instale as bibliotecas necessárias.

 $ sudo apt-get install -y libsm6 libxext6 libxrender-dev ffmpeg

Clone meu projeto no GitHub.

$ git clone https://github.com/waslleysouza/face_recognition_api.git

Crie um novo ambiente usando o Anaconda.

$ conda create -n facerec python=3.6 -y

Ative seu ambiente.

$ source activate facerec

Acesse a pasta do projeto.

$ cd face_recognition_api

Instale os pacotes python necessários usando o arquivo requirements.txt.

  • Se sua instância tiver apenas CPU, execute:
$ pip install -r requirements-cpu.txt
  • Se sua instância tiver uma GPU, execute:
$ pip install -r requirements-gpu.txt

Abra o arquivo config/config.prod.

$ vi config/config.prod

Edite e salve o arquivo.

  • user: OCID do usuário
  • fingerprint: o fingerprint gerado acima
  • key_file: a chave privada da chave pública. Se você usou minha chave pública para gerar um novo fingerprint, use o arquivo “./config/oci_api_key_private.pem”
  • tenancy: OCID do tenancy
  • region: a região do seu compartimento
  • compartiment: OCID do compartimento

Inicie o aplicativo em segundo plano.

$ nohup python server.py &

Abra seu navegador e acesse o console da API de reconhecimento facial:

http://<HOST_PUBLIC_IP>:5000/ui

A API de reconhecimento facial tem 4 operações:

  1. ADD: esta operação adiciona uma nova face ao banco de dados da API de reconhecimento facial. Você pode enviar vídeos ou imagens que contenham apenas uma pessoa.
  2. CLASSIFY: Esta operação executa um reconhecimento facial. Você pode fazer upload de imagens que contenham apenas uma pessoa.
  3. TRAIN: Esta operação treina o modelo para reconhecer as novas faces adicionadas pela operação ADICIONAR.
  4. RESTART: Esta operação recarrega o modelo da API de reconhecimento facial se você tiver algum problema.

Vá para a operação ADD e envie sua foto.

Depois, vá para a operação TRAIN para treinar o modelo com o seu rosto.

Aguarde 15 segundos e execute a operação CLASSIFY.
Use uma foto diferente de você e a API tentará reconhecer.
Se você tiver sorte, a API irá reconhecê-lo! = D

Machine Learning é mágico!
Neste primeiro artigo, você aprendeu como instalar e executar minha API de reconhecimento facial na OCI. No segundo artigo, você aprenderá como integrá-la ao OCI Object Storage para armazenar todas as suas imagens.

Divirta-se!

Autor: Waslley Souza

Consultor Oracle com foco em tecnologias Oracle Fusion Middleware e SOA. Certificado Oracle WebCenter Portal, Oracle ADF e Java.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *