OpenCV: Uma breve introdução à visão computacional com python
Por Rogério Marques
03 outubro 2018 - 10:00 | Atualizado em 19 setembro 2023 - 09:43
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
- Baixar e instalar executável da linguagem python (recomendado 3.6.5~)
- Baixar e instalar o PIP (baixar o arquivo get-pip.py e executá-lo no terminal com o comando python get-pip.py)
- Ainda no terminal, execute os comandos pip install opencv_python e pip install numpy
Ubuntu (pode funcionar em outros linux baseados no Debian)
- 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
- 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.
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.
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.
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.
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):
Código completo – parte 1:
Executando o código acima no terminal, obtemos o resultado:
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:
Para finalizar:
- adicionamos 2 regiões de interesse, uma em escala de cinza e uma de cores:
- utilizamos o classificador na região de interesse cinza
- desenhamos retângulos para marcar os olhos encontrados
O restante do código ficou assim…
Código completo – parte 2:
Executamos o programa no terminal e o resultado ficou:
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!
Outros artigos que você possa se interessar:
- Confira também a lista com os principais e melhores blogs sobre TI e software para continuar se atualizando sobre essa área.
- WhatsApp Business: Conheça mais as possibilidades de integrar serviços e aplicações com o WhatsApp Business API
- Quer ler mais sobre tecnologia? Sabe o que é uma API? Se não conhece o conceito acesse aqui.
- Depois, não deixe de acompanhar diversos materiais e livros gratuitos na nossa área de Ebooks.
- Exemplo e cases reais de Chatbots, conheça.
Chatbots: Comece a construir a sua primeira aplicação:
- Crie agora mesmo uma conta gratuita no People e dê início ao seu primeiro Chatbot.
Deixe um comentário