A visão computacional é, sem dúvida, uma das coisas de revolucionou o mundo dos sistemas embarcados. A partir dela é possível criar aplicações e produtos que podem “enxergar” o ambiente, e com esses “olhos virtuais” buscar características no ambiente e permitir com que programas reajam às características encontradas. Dentre as bibliotecas e recursos de visão computacional disponíveis, sem dúvida o mais popular, e um dos mais completos existentes, é o OpenCV. O OpenCV é uma biblioteca Open-Source (livre para uso comercial e acadêmico) para visão computacional, com utilização vasta em sistemas embarcados Linux e Windows, incluindo Smartphones.
Dada a importância do OpenCV, este artigo irá lhe ensinar a executar a compilação e instalação do OpenCV 3.1.0 na Raspberry Pi Zero W. Apesar do foco do artigo na versão Zero W, este tutorial funciona sem problemas para a Raspberry Pi 3 também.
Materiais necessários
Para compilar o OpenCV para a Raspberry Pi Zero W, você precisará dos seguintes materiais:
- Uma Raspberry Pi Zero W*;
- Uma fonte de 5V com corrente de saída de 2A ou superior;
- Roteador próximo (acesso à rede local e Internet) à Raspberry Pi Zero W (pois todo o procedimento será feito nela via SSH).
*O mesmo procedimento vale para a Raspberry PI 3
Além disso, é necessário que a Raspberry Pi esteja operante, com sistema operacional e conectividade à internet. Para saber como fazer isso, veja este tutorial.
Tutorial em vídeo
O tutorial contido neste artigo também está disponível em vídeo. Você pode visualiza-lo abaixo:
Script de instalação e compilação – explicação e passo-a-passo
O script completo pode ser visualizado no meu GitHub. Abaixo, serão explicadas cada uma das partes do mesmo.
Instalação dos pacotes necessários
O bloco de código a seguir é a parte do script destinada à instalação automática dos pacotes necessários para o OpenCV (pacotes vinculados às imagens, codecs de vídeo, etc.):
sudo apt-get install -y build-essential cmake pkg-config sudo apt-get install -y libjpeg-dev libtiff5-dev libjasper-dev libpng12-dev sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev sudo apt-get install -y libxvidcore-dev libx264-dev sudo apt-get install -y libgtk2.0-dev sudo apt-get install -y libatlas-base-dev gfortran sudo apt-get install -y python2.7-dev python3-dev
Note que todos os comandos de instalação de pacote possuem o argumento -y. Isso tem como finalidade não solicitar confirmação do usuário para instalar os pacotes (algo importante para o script ser encarado como automático).
Download do código-fonte
O download do código-fonte do OpenCV 3.1.0 é feito no bloco de código abaixo. Note que é baixado, além do código “oficial”, os módulos extras. Se você dispõe de bom espaço de armazenamento, é recomendável que tudo seja baixado neste momento para não haver necessidade futura de recompilação de módulos extras.
cd ~ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zip unzip opencv.zip wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip unzip opencv_contrib.zip
Instalação do numpy
O numpy é um pacote do Python destinado a se trabalhar com matrizes e arrays multidimensionais. Como imagens são, computacionalmente, matrizes e arrays multidimensionais (número de dimensões varia conforme formato da imagem), você irá precisar desse pacote mais cedo ou mais tarde caso for trabalhar com Python e OpenCV.
Sua instalação é feita conforme comando abaixo:
pip install numpy
Preparação do build com cmake
Para preparar o build, é utilizado o cmake. O cmake irá preparar o terreno para a compilação a ser realizada posteriormente, já considerando os módulos extras do OpenCV. Em termos gerais, é equivalente ao “./configure” para outros códigos-fonte. O cmake é executado conforme bloco de código abaixo:
cd ~/opencv-3.1.0/
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D INSTALL_PYTHON_EXAMPLES=ON \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules \
-D BUILD_EXAMPLES=ON ..
Compilação
A compilação é feita executando-se o comando abaixo:
make
É importante ressaltar que esta compilação consume muito tempo e processamento da Raspberry Pi, levando algumas horas para a conclusão do processo. Portanto, é recomendável o seguinte:
- Durante esse processo, nada mais seja feito na Raspberry Pi;
- A Raspberry Pi tenderá a aquecer consideravelmente durante o processo. Portanto, exceto você possuir um case refrigerado / com cooler, deixe a placa fora de qualquer case.
Instalação
Feita a compilação, é a hora de se instalar o OpenCV compilado. Para isso, execute o seguinte comando:
sudo make install
Criação de links e cache
Para a criação dos links e cache (de forma simplificada, o processo de “avisar” o sistema operacional que foram instaladas novas bibliotecas e que estas estão disponíveis para uso) do OpenCV, é utilizado o comando a seguir:
sudo ldconfig
Processo sugerido para compilação e instalação do OpenCV 3.1.0
Para usufruir da comodidade do script (compilar e instalar tudo automaticamente), recomenda-se executar a seguinte sequência de comandos.
Observação: uma forte sugestão é conectar-se à Raspiberry Pi via SSH e fazer o projeto a partir da sessão aberta.
git clone https://github.com/phfbertoleti/script_instalacao_opencv_raspzerow.git cd script_instalacao_opencv_raspzerow sudo ./InstalaOpenCV
O processo demora horas. Portanto, se possível, sugiro deixar a compilação e execução rodar noite a dentro.
Verificação
Uma maneira simples de verificar se a instalação foi bem sucedida é utilizar o interpretador Python. Execute o seguinte comando:
python
Uma vez inicializado o interpretador, digite o seguinte comando e aperte enter:
import cv2
Se a compilação e instalação foram bem sucedidas, nenhum erro irá surgir aqui.
Para sair do interpretador, basta pressionar Ctrl + D.
Hora de fazer projetos!
Se você chegou até aqui, está tudo pronto para você fazer seus projetos de visão computacional! Para começar, utilize como base os seguintes exemplos:
- Contagem de objetos em movimento com OpenCV e Python usando Raspberry Pi
- Robô seguidor de linha com Raspberry Pi Zero W e OpenCV
- Visão Computacional com OpenCV na Intel Edison
Referências







Olá Pedro,
Ótimo tutorial. Já instalei o pacote no meu rasp pi 2. Pretendo fazer um projeto em C++ no Geany. Porém não estou conseguindo importar esta biblioteca nele. Você sabe como proceder? em qual caminho encontro esta biblioteca?
Pedro, obrigado pelos elogios!
Infelizmente não tenho experiência em desenvolver com o Geany na Raspberry Pi. Entretanto, porém uma vez instalado o OpenCV, para utiliza-lo com C++ (nas suas funcionalidades básicas) basta incluir o seguinte header file (digite isso na sessão de includes do seu código):
#include
Atenciosamente,
Pedro Bertoleti