OpenCV uma biblioteca para reconhecimento de objetos em imagens e câmeras

openCV

OpenCV é uma biblioteca gratuita de visão de máquina multiplataforma (versões existentes para GNU / Linux, Mac OS X, Windows e Android) que foi originalmente Desenvolvido pela Intel e usado em inúmeras aplicações, de sistemas de segurança com detecção de movimento a aplicativos de controle de processo onde o reconhecimento de objetos é necessário. Isso porque sua publicação se dá sob a licença BSD, que permite seu uso livre para fins comerciais e de pesquisa nas condições nela expressas.

CV aberto contém mais de 500 funções que cobrem uma ampla gama de áreas no processo de visão, como reconhecimento de objeto (reconhecimento facial), calibração de câmera, visão estéreo, visão robótica, classificação de ações em vídeo, conversão de imagens, extração de modelos 3D, criação de espaço 3D a partir de uma imagem de câmera estéreo criando imagens de alta qualidade combinando imagens de baixa qualidade.

Também oferece a capacidade de pesquisar imagens de objetos semelhantes ao conjunto de elementos apresentados pela aplicação de métodos de aprendizado de máquina, organizando marcadores, identificando elementos comuns em diferentes imagens, eliminando automaticamente defeitos como olhos vermelhos.

OpenCV fornece mais de 2500 algoritmos, clássico e reflexivo das últimas conquistas no campo da visão computacional e sistemas de aprendizado de máquina. O código da biblioteca é escrito em C ++ e distribuído sob a licença BSD.

Sobre a nova versão do OpenCV 4.2

Atualmente a a biblioteca está em sua versão OpenCV 4.2, em que no módulo DNN (Rede neural profunda) com a implementação de algoritmos de aprendizado de máquina baseados em redes neurais, adicionou um back-end para usar CUDA e o suporte experimental para a API nGraph OpenVINO foi implementado.

Além de usar instruções SIMD, otimizamos o desempenho do código para saída estéreo (StereoBM / StereoSGBM), redimensionamos, mascaramos, giramos, calculamos os componentes de cor ausentes e muitas outras operações.

No módulo G-API (opencv_gapi), que atua como um motor de processamento Eficiência de imagem usando algoritmos baseados em gráficos, suporta algoritmos híbridos mais complexos para visão computacional e aprendizado de máquina profundo. Fornece suporte para o Intel Inference Engine. Suporte para processamento de stream de vídeo foi adicionado ao modelo de execução.

Vulnerabilidades (CVE-2019-5063, CVE-2019-5064) que poderiam levar à execução de código de ataque pelo processamento de dados não verificados nos formatos XML, YAML e JSON também foram corrigidos. Se um caractere com um código nulo for encontrado durante a análise JSON, todo o valor será copiado para o buffer, mas sem a verificação adequada dos limites da área de memória alocada.

Das outras mudanças apresentado nesta nova versão:

  • Adicionada implementação multithread da função pyrDown.
  • Adicionada a capacidade de extrair streams de vídeo de contêineres de mídia (demuxing) usando o backend de vídeo baseado em FFmpeg.
  • Adicionado um algoritmo para reconstrução seletiva de frequência rápida de imagens FSR (Reconstrução seletiva de frequência) danificadas.
  • Adicionado método RIC para interpolação de áreas em branco típicas.
  • Adicionado método de normalização de desvio de LOGOS.

Como instalar o OpenCV 4.2?

Para aqueles interessados ​​em instalar esta biblioteca, pode obter a nova versão bem como consultar as informações relacionadas ao uso e ainda encontrar tutoriais em seu site oficial.

O link é este.

Neste artigo Forneceremos as etapas para implementar a biblioteca em um Raspberry pi.

Para instalar o OpenCV em um Raspberry Pdevo ter o seu sistema, que é Raspbian.

Do vVamos abrir um terminal e nele digitaremos os seguintes comandos para instalar dependências, ferramentas de desenvolvedor, pacotes de imagem entre outras bibliotecas extras:

sudo apt-get install build-essential cmake pkg-config
sudo apt-get install libjpeg-dev libtiff5-dev libjasper-dev libpng-dev libavcodec-dev libavformat-dev libswscale-dev libv4l-dev libxvidcore-dev libx264-dev libfontconfig1-dev libcairo2-dev libgdk-pixbuf2.0-dev libpango1.0-dev libgtk2.0-dev libgtk-3-dev libatlas-base-dev gfortran libhdf5-dev libhdf5-serial-dev libhdf5-103 libqtgui4 libqtwebkit4 libqt4-test python3-pyqt5

Finalmente, vamos instalar os arquivos de cabeçalho python 3 para que possamos compilar o OpenCV:

sudo apt-get install python3-dev

Agora vamos criar um ambiente Python com os seguintes comandos, isso para ter um site isolado:

wget https://bootstrap.pypa.io/get-pip.py
sudo python get-pip.py
sudo python3 get-pip.py
sudo rm -rf ~/.cache/pip

Vamos instalar o virtualenv e o virtualenvwrapper:

sudo pip install virtualenv virtualenvwrapper
nano ~/.bashrc

# virtualenv and virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3

source /usr/local/bin/virtualenvwrapper.sh
source ~/.bashrc
mkvirtualenv cv -p python3
pip install "picamera[array]"

Feito isso agora vamos compilar openCV com:

cd ~
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.2.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.2.0.zip
unzip opencv.zip
unzip opencv_contrib.zip
mv opencv-4.2.0 opencv
mv opencv_contrib-4.2.0 opencv_contrib

Agora vamos aumentar a troca em nosso sistema, pois se deixarmos como está por padrão, o sistema pode travar:

sudo nano /etc/dphys-swapfile

E vamos editar a variável CONF_SWAPSIZE:

CONF_SWAPSIZE=1024

Nós salvamos e fechamos com ctrl + o e ctrl + x. Então nós digitamos:

sudo /etc/init.d/dphys-swapfile stop
sudo /etc/init.d/dphys-swapfile start

Agora iremos compilar:

workon cv
pip install numpy
cd ~/opencv
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_EXTRA_MODULES_PATH=~/opencv_contrib/modules \
-D ENABLE_NEON=ON \
-D ENABLE_VFPV3=ON \
-D BUILD_TESTS=OFF \
-D INSTALL_PYTHON_EXAMPLES=OFF \
-D OPENCV_ENABLE_NONFREE=ON \
-D CMAKE_SHARED_LINKER_FLAGS=-latomic \
-D BUILD_EXAMPLES=OFF ..
make -j4
sudo make install
sudo ldconfig
cd /usr/local/lib/python3.7/site-packages/cv2/python-3.7
sudo mv cv2.cpython-37m-arm-linux-gnueabihf.so cv2.so
cd ~/.virtualenvs/cv/lib/python3.7/site-packages/
ln -s /usr/local/lib/python3.7/site-packages/cv2/python-3.7/cv2.so cv2.so

E pronto.


Seja o primeiro a comentar

Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.