Pular para o conteúdo principal

Criando Ambiente OpenCV 3.1.0


Antes de Seguir as configurações do ambiente vale ressaltar que nos testes foi usado o sistema Ubuntu 16.04 com as versões de Python2.7 e python 3.5

1) Etapa instalar as dependências do OpenCV no Ubuntu 16.04


Com os comandos apt-update e upgrade atualize o sistema para as últimas features existentes do sistema.


$  sudo apt update
$ sudo  apt upgrade --yes


Em seguida instale os pacotes build-essential cmake e pkg-config, esse pacotes são essenciais para instalação automatizada dos pacotes de configuração e compilação do OpenCV.
A OpenCV é uma biblioteca de processamento de imagens por isso precisa carregar vários formatos de imagens diferentes existentes no disco, como não possui incluída as bibliotecas de imagens, requer dependências nas seguintes dependências abaixo.


$ sudo apt-get install libjpeg8-dev libtiff5-dev libjasper-dev libpng12-dev


Com as bibliotecas para carregar as imagens do disco local, requer dependências para trabalhar com formato de vídeos, com a extração de quadros por imagem em fluxo, segue abaixo as bibliotecas necessárias para isso.


$ sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
$ sudo apt-get install libxvidcore-dev libx264-dev


Em determinado monento interface grafica ou geração de modelos para visualização de interface de usuarios devem ser gerados para facilidade de uso da biblioteca, para que isso acontece requer as bibliotecas gtk3-dev.


$ sudo apt-get install libgtk-3-dev


Em seguida, otimização no opencv é de fato necessário visto que operações com matrizes e modelos algébricos requer muito processamento de maquina, para tais otimizações instale as bibliotecas abaixo:


$ sudo apt-get install libatlas-base-dev gfortran


Concluir a etapa 1 de configuração do ambiente com as bibliotecas de desenvolvimento python-dev.


$ sudo apt-get install python2.7-dev python3.5-dev


2) Etapa, baixe o código fonte do OpenCV.


Baixe o arquivo do codigo fonte do opencv 3.1.0.zip


$ cd
$ wget -O opencv.zip https://github.com/Itseez/opencv/archive/3.1.0.zip
$ unzip 3.1.0.zip
$ wget -O opencv_contrib.zip https://github.com/Itseez/opencv_contrib/archive/3.1.0.zip
$ unzip opencv_contrib.zip


O download da opencv_contrib.zip, é separado pelo simples fato de que nas versões anteriores era apenas um pacote, porem novas features e novas atualizações podem ser instalados de forma modular e separada com a opencv_contrib.zip


3) Etapa configuração do ambiente python 2.7 ou python3


Use a biblioteca python-pip para instalação dos pacotes do ambiente python, virtualenv e virtualenvwrapper.


$ sudo apt install python-pip
$ sudo pip install virtualenv virtualenvwrapper
$ sudo rm -rf ~/get-pip.py ~/.cache/pip


Com a configuração básica e instalação dos pacotes necessários abra o arquivo ~/.bashrc e inclua as linhas de código abaixo:


# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh


Esse script funciona com a execução do terminal bash, ele aponta para as chamadas do diretórios onde fica os ambientes virtualizados do python. Em seguida ele carrega as configurações necessitarias do virtualenvwrapper. Para configurar o ~/.bashrc use seu editor padrão, gedit, vi ou nano.
Com o comando source habilite para a sessão do script bashrc ser iniciado na sessão atual assim que abrir um terminal.


$ source ~/.bashrc


Criando um ambiente virtual python, independente da versão do do python usado o nome do ambiente sera cv(abreviação de visão computacional)


Com python 2.7
$ mkvirtualenv cv -p python2


Com python 3
$ mkvirtualenv cv -p python3


Para testar o ambiente use o comando workon e o nome do ambiente, nesse caso cv.


$ workon cv

Observe que o (cv) vai aparecer no canto esquerdo do seu terminal


(cv) $


Dentro do ambiente virtual instale a biblioteca Numpy, para performace em calculos matriciais e processamento numerico.


(cv) $ pip install numpy


4) Etapa Configurando e Compilando OpenCV


Nesse momento, todos os pre-requisitos foram instalado e configurados, com tudo pronto para fazer a compilação do OpenCV. Contudo verifique o ambiente (cv), use o comando workon cv para entrar no ambiente e começar a compilar.


$ workon cv
(cv)
(cv) $ cd ~/opencv-3.1.0/
(cv) $ mkdir build
(cv) $ cd build
(cv) $ cmake -D CMAKE_BUILD_TYPE=RELEASE \
   -D CMAKE_INSTALL_PREFIX=/usr/local \
   -D INSTALL_PYTHON_EXAMPLES=ON \
   -D INSTALL_C_EXAMPLES=OFF \
   -D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib-3.1.0/modules \
   -D PYTHON_EXECUTABLE=~/.virtualenvs/cv/bin/python \
   -D BUILD_EXAMPLES=ON ..


Os comandos acima mudam o diretório do opencv seguidos até aqui, para a pasta build onde será construído após a conclusão da compilação.
Finalmente depois de alguns minutos, use o comando cmake para configurar sua pre-compilação.


(cv) $ cmake


A saida deste comando deve gerar observação em pontos especificos da versão do python2.7 e 3 tais como : Interpreter, Libraries e Numpy e os pacotes de path.


  1. o Interpretador deve apontar para o ambiente virtual
  2. O Numpy deve apontar para o ambiente virtual
  3. O caminho dos pacotes devem apontar para lib/python2.7/site-packages.
Quando combinado o comando CMAKE_INSTALL_PREFIX, isso refe-se ao pacote cv2.so encontrado no diretorio /usr/local/lib/python2.7/site-packages/.
Se seu comando cmake saiu sem nenhum erro, agora você pode compilar o OpenCV.


(cv)$ make -j4


O -j controla o número de processos a serem usados ao compilar o OpenCV, caso queira definir o número de processos/núcleos a serem usados em sua maquina. Neste caso os teste foram feitos com 4 cores de processo.
O multiprocesso é interessante para agilizar o processo de compilação. Porém há momentos em que os altos picos de compilação passa por fora dos padrões de compilação. Para resolver esses picos use o make clean para limpar os erros da compilação com apenas um único core.


(cv) $ make clean
(cv) $ make


Depois de ter compilado o ultimo passo a ser seguido é de fato a instalação.


(cv)$ sudo make install
(cv)$ sudo ldconfig


5) Etapa, Finalizado a instalação do OpenCV


Depois de rodar o comando sudo make install, seu python 2.7 obrigatoriamente vai estar com o opencv3 no local /usr/local/lib/python2.7/site-packages/, verifique usando o comando:


(cv) $ ls -l /usr/local/lib/python2.7/site-packages/


No python3 o mesmo comando deve ser seguido porém com um link de refencia para uso.


$ ls -l /usr/local/lib/python3.5/site-packages/
$ cd /usr/local/lib/python3.5/site-packages/


Renomeie cv2.cpython-35m-x86_64-linux-gnu.so para cv2.so


$ sudo mv cv2.cpython-35m-x86_64-linux-gnu.so cv2.so
$ cd ~/.virtualenvs/cv/lib/python3.5/site-packages/


Referencia em link para cv2.so


$ ln -s /usr/local/lib/python3.5/site-packages/cv2.so cv2.so


6) Etapa, test !


Com o terminal python3 aberto usando o comando workon cv, importe a biblioteca cv2 e cheque a versão do opencv.


(cv) $ python
Python 3.5.2 (default, abril  6 2017, 12:43:10)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>  import cv2
>>>  cv2.__version__
‘3.1.0’
>>>











Comentários

  1. Cara entra em contato comigo, quero saber se voce consegue desenvolver um prototipo em conjunto - othonss88@gmail.com

    ResponderExcluir

Postar um comentário

Postagens mais visitadas deste blog

Automatizando uma lampada com Bluetooth (Serie: Sem Fio)

Olá humanos, essa semana estive com uns guris da minha faculdade com muita dificuldade de trabalhar com o modulo bluetooth HC-06/05, tivemos uma apresentação dos projetos da minha turma e apresentei um robo explorador controlado via web, porem o que me motivou a escrever este post, foi o fato de uma equipe ter empacado, no quesito usar o modulo bluetooth durante a apresentação dessa equipe, eles falavam muito sobre como não conseguiram programar o bluetooth e nem a eletronica funcionava da forma como queriam, quando terminaram de apresentar fui até eles e disse que ajudaria eles, por que de fato é bem simples, então ajudei eles, em um simples test de ligar é desligar um led, controlado via bluetooth. Bom chega de papo, vamos ao que importa, o que é um bluetooth ? bluetooth e uma tecnologia de comunicação a curta distancia para transações simples, sendo envio de mensagens, ou envio de arquivos. Para este projeto você precisa dos seguintes ingredientes. Arduino UNO Modulo Blueto...

Redirecionamento de Porta usando ngrok (Port Forward with ngrok) SSH

Olá Humanos, estou no pensionato e aqui não tenho acesso ao roteador para fazer um redirencionamento de porta digno affs ¬__¬, sim pensei em Hackear rsrsrs, porem minha preguiça minha preguiça não deixa hauhauha, então encontrei uma ferramenta bem legal chamada ngrok que faz com que eu possa acessar remotamente meu servidor local para brincar com IoT. Instalação e ngrok  link: https://ngrok.com/ Para se cadastrar é bem simples basta logar com conta sua conta do git ou google depois faça download e na https://dashboard.ngrok.com/auth na aba auth pegue seu authtoken e valide no terminal # unzip ngrok-stable-linux-amd64.zip # ./ngrok authtoken <YOUR AUTHTOKEN> Instalando SSH no seu computador  Bom se você usa Ubuntu basta rodar  comando  # apt-get install openssh-server Para testar se o serviço digite  # service ssh status Iniciando SSH no Ngrok Rode o ngrok em protocolo tcp na porta 22  # ./ngrok tcp 22 ...

Scratch for Arduino Servo Motor Basic One(Controland Servo Motor com S4A)

Olá Humanos, aqui vamos brincar com arduino usando Scratch, neste pequeno teste vamos trabalhar com: /* 1 Arduino Uno */   /*  1 Micro Servo */ >>> print "Com este Circuito bem basico " >>> print  "Com o circuito montado inicie o Scratch for arduino e Programe o controle e movimentos dessa forma. " >>> exit()