Está acompanhando a série sobre inteligência artificial? Está perdendo um bom material, se não estiver. Nesse, veremos como fazer reconhecimento facial com Raspberry e inteligência artificial, baseado no mesmo projeto desse outro artigo.
A grande sacada é que o treinamento não é feito no Raspberry, apenas um model treinado em um computador potente é incluído ao projeto.
Tópicos
Preparar o sistema para reconhecimento facial com Raspberry
Primeiramente, o sistema deve ser o Raspian Jessie Light mais atual. Anteriores não funcionarão. Será que você vai ter que formatar o seu?
Configurações iniciais
Instale o sistema no cartão, faça o login normalmente e então configure o WiFi. Rode o configurador:
sudo su raspi-config
Faça as configurações de sistema necessárias, habilite a câmera do Raspberry. Configure a memória da GPU para pelo menos 16. A minha está 64 (menu Advanced). Se não tiver o programa instalado, instale-o:
apt-get install raspi-config
Nesse outro artigo mostrei como colocar o sistema de arquivos em somente-leitura para proteger o sistema de arquivos e aumentar a vida útil do cartão. É altamente recomendada a leitura. Se já está utilizando dessa forma, antes de instalar qualquer coisa é necessário por o sistema de arquivos em read-write:
mount -o remount,rw /
Salve as configurações e então faça o primeiro reboot do sistema:
shutdown -r now
Instalação de pacotes
Agora é hora de instalar as dependências. Mais uma vez, coloque o sistema em modo de escrita se tiver executado o tutorial de proteção do cartão SD, então instale os pacotes:
sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential \ cmake \ gfortran \ git \ wget \ curl \ graphicsmagick \ libgraphicsmagick1-dev \ libatlas-dev \ libavcodec-dev \ libavformat-dev \ libboost-all-dev \ libgtk2.0-dev \ libjpeg-dev \ liblapack-dev \ libswscale-dev \ pkg-config \ python3-dev \ python3-numpy \ python3-pip \ zip sudo apt-get clean
Se estiver utilizando uma câmera ( certamente quererá fazê-lo), instale uns extras necessários:
sudo apt-get install python3-picamera sudo pip3 install --upgrade picamera[array]
Compilação nativa
Temos duas opções em relação à dlib. Uma, a compilação nativa e a outra, cross-compiling. Ah, tem também a opção de compilação nativa em ambiente virtualizado. Ou compilação em docker (que é paralelização de processos. Etc.
O primeiro exemplo é para compilação nativa, caso você ainda seja um usuário de Windows. Primeiro, habilite uma área de troca para auxiliar a memória RAM. Isso é temporário.
sudo nano /etc/dphys-swapfile < change CONF_SWAPSIZE=100 to CONF_SWAPSIZE=1024 and save / exit nano > sudo /etc/init.d/dphys-swapfile restart
Feito isso, reinicie. Instale a dlib versão 19.6:
mkdir -p dlib git clone -b 'v19.6' --single-branch https://github.com/davisking/dlib.git dlib/ cd ./dlib sudo python3 setup.py install --compiler-flags "-mfpu=neon" #Ou se der erro: sudo python3 setup.py install --compiler-flags "mfpu=neon"
Instale o face_recognition para fazer o reconhecimento facial com Raspberry:
sudo pip3 install face_recognition
Reverta a swap:
sudo nano /etc/dphys-swapfile < change CONF_SWAPSIZE=1024 to CONF_SWAPSIZE=100 and save / exit nano > sudo /etc/init.d/dphys-swapfile restart
Baixe os exemplos:
git clone --single-branch https://github.com/ageitgey/face_recognition.git cd ./face_recognition/examples python3 facerec_on_raspberry_pi.py
Se você quiser uma interface gráfica no seu Raspberry (recomendo que não utilize para não desperdiçar memória), faça o seguinte:
sudo apt-get install --no-install-recommends xserver-xorg xinit raspberrypi-ui-mods
Compilação cruzada
É um bocado trabalhoso, mas em compensação você não sofrerá aguardando que o pobre processador ARM termine a longa e demorada compilação. Se desejar utilizar seu computador como máquina de compilação para o Raspberry usando cross-compiling, o procedimento está descrito nesse artigo.
Compilação em plataforma virtualizada
Nesse outro artigo descrevo o processo para compilação nativa em ambiente virtualizado utilizando o QEmu para emular ARM. É uma boa opção também, desde que seu computador nativo tenha memória RAM para fornecer ao virtualizador.
Tentando na sorte
Se quiser, experimente fazer reconhecimento facial com Raspberry com a dlib fornecida através do pip3:
pip3 install dlib
Eventualmente pode funcionar.
Documentação da API
A documentação da API pode ser encontrada nesse link. Os exemplos que você deve ter baixado seguindo esse tutorial lhe serão bastante úteis e a documentação cobrirá quaisquer dúvidas.
Farei alguns projetos bem interessantes com esses recursos, mas precisarei de outro Raspberry Pi 3 para isso. Verei com os parceiros do site assim que possível e teremos muita diversão pela frente. Afinal, qual o objetivo de apenas reconhecer, exceto impressionar os amigo, certo?
Deixe seu like na nossa página do facebook clicando alí no canto superior direito. Farei alguns vídeos logo mais, inscreva-se no nosso canal DobitAoByteBrasil no Youtube e clique no sininho para receber notificações. Ou você vai correr o risco de perder os experimentos?
Até a próxima!
1 comentário
Comments are closed, but trackbacks and pingbacks are open.