Manual
do
Maker
.
com
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.
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?
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 feitas com raspi-config e então faça a primeira reinicialização do sistema:
shutdown -r now
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]
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
É 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.
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.
Se quiser, experimente fazer reconhecimento facial com Raspberry com a dlib fornecida através do pip3:
pip3 install dlib
Eventualmente pode funcionar.
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?
Inscreva-se no nosso canal Manual do Maker no YouTube.
Também estamos no Instagram.
Autor do blog "Do bit Ao Byte / Manual do Maker".
Viciado em embarcados desde 2006.
LinuxUser 158.760, desde 1997.