home Sem categoria OpenCV: Uma breve introdução à visão computacional com python

OpenCV: Uma breve introdução à visão computacional com python

Visão computacional

A visão computacional procura modelar e replicar a visão humana usando software e hardware. O processamento de imagens tem uma imagem como parâmetro de entrada e um conjunto de valores numéricos como saída (objetos complexos, vetores, matrizes, etc).

Tentando simular a visão natural, a visão computacional tem embasamento científico decorrente de estudos de algoritmos que buscam analisar e compreender conceitos da visão humana nas áreas de Biologia, Óptica e Matemática (álgebra linear, geometria e estatística).

OpenCV

OpenCV (Open Source Computer Vision) é uma biblioteca de programação, de código aberto e inicialmente desenvolvida pela Intel com o objetivo de tornar a visão computacional mais acessível a desenvolvedores e hobistas. Atualmente possui mais de 500 funções, pode ser utilizada em diversas linguagens de programação (C++, Python, Ruby, Java…) e é usada para diversos tipos de análise em imagens e vídeos, como  detecção, tracking e reconhecimento facial, edição de fotos e vídeos, detecção e análise de textos, etc.

Instalação

Windows

  1. Baixar e instalar executável da linguagem python (recomendado 3.6.5~)
  2. Baixar e instalar o PIP (baixar o arquivo get-pip.py e executá-lo no terminal com o comando python get-pip.py)
  3. Ainda no terminal, execute os comandos pip install opencv_python e pip install numpy

Ubuntu (pode funcionar em outros linux baseados no Debian)

  1. Como o Ubuntu já vem por padrão com o python 2.7 instalado, podemos pular o primeiro passo e instalar diretamente o PIP com o comando sudo apt-get update install python-pip
  2. Ainda no terminal, execute os comandos pip install opencv_python e pip install numpy

Primeiro programa usando OpenCV: detecção de faces em uma imagem

Importando as bibliotecas necessárias para detecção (opencv) e tratamento de arrays e objetos complexos (numpy)

Essas bibliotecas foram instaladas previamente através dos comandos do terminal e são necessárias ao nosso código porque possuem diversos procedimentos que usaremos a seguir.

OpenCV: Uma breve introdução à visão computacional com python

 

Selecionar o classificador para detecção de faces

OpenCV divide o problema de detecção de faces em diversos estágios, onde um teste mais específico é realizado a cada etapa aprovada e que, no fim, o sucesso ocorre apenas se todas as classificações forem aprovadas.

OpenCV: Uma breve introdução à visão computacional com python

Selecionar o arquivo da imagem que queremos executar o algoritmo e convertê-la em uma escala de cinza

Muitos métodos de OpenCV pedem que a imagem esteja nesse espaço de cores.

OpenCV: Uma breve introdução à visão computacional com python

Mão na massa! Agora podemos utilizar o classificador na imagem escolhida para que a face seja  detectada e desenhar um retângulo sobre ela para marcação.

As variáveis x, y, w e h são as coordenadas no plano cartesiano (x,y), largura e altura respectivamente. O método de desenho do retângulo pede essas 4 variáveis supracitadas, onde vamos desenhar (image), a cor e espessura dos traços.

OpenCV: Uma breve introdução à visão computacional com python

Para finalizar

Adicionamos o código abaixo com o nome da janela OpenCV onde iremos mostrar o resultado, a imagem que exibida e uma função que espera alguma entrada do teclado para fechar as janelas com o resultado (cv.waitKey):

OpenCV: Uma breve introdução à visão computacional com python

Código completo – parte 1:

OpenCV: Uma breve introdução à visão computacional com python

Executando o código acima no terminal, obtemos o resultado:

OpenCV: Uma breve introdução à visão computacional com python

Complementando o código:

Detectando olhos nas faces previamente detectadas

Adiciona-se o resultado do classificador quando o filtro de olhos é aplicado logo abaixo do de faces. O código ficou assim:

OpenCV: Uma breve introdução à visão computacional com python

Para finalizar:

  1. adicionamos 2 regiões de interesse, uma em escala de cinza e uma de cores:
  2. utilizamos o classificador na região de interesse cinza
  3. desenhamos retângulos para marcar os olhos encontrados

O restante do código ficou assim…

OpenCV: Uma breve introdução à visão computacional com python

Código completo – parte 2:

OpenCV: Uma breve introdução à visão computacional com python

Executamos o programa no terminal e o resultado ficou:

OpenCV: Uma breve introdução à visão computacional com python

Conclusão

As possibilidades de aplicações da visão computacional são imensas, elas abrangem diversos setores de tecnologia da informação, por exemplo: as câmeras, sistemas de visão de drones e de impressora 3D. Hoje em dia também vemos aplicações da visão computacional em segurança com detecção e reconhecimento facial tanto para bloqueio e desbloqueio de smartphones quanto para polícia e instituições que fazem tracking de pessoas potencialmente perigosas. As possibilidades são inúmeras, e, caso você tenha alguma ideia diferente, compartilhe conosco e vamos programar!

 

Gostou? Compartilhe:

Marlon de Alencar Rocha

Marlon de Alencar Rocha

Tem 28 anos e nasceu em Crato, no Ceará. Trabalha na Cedro Technologies como Analista de Testes. Possui interesse na área de QA, desenvolvimento, robótica e jogos de PC (CS:GO e Dota2).