OpenCV: Uma breve introdução à visão computacional com python
Rogério Marques
03 outubro 2018 - 10:00 | Atualizado em 29 março 2023 - 17:44
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.
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!
A Cedro Technologies utiliza cookies para melhorar a sua experiência de navegação, personalizar conteúdos e desenvolver iniciativas de marketing. Para informações sobre os tipos de cookies e para configurá-los de acordo com a sua preferência, clique em “Definições de cookies”, onde poderão ser habilitados e desabilitados conforme sua preferência. Para aceitá-los, clique em "Aceitar todos os cookies". Querendo saber mais, acesse nossa Política de Privacidade.
Cookies estritamente necessários
Os cookies estritamente necessários permitem um funcionamento adequado do nosso site, não coletando ou armazenando informações sobre você ou em relação às suas preferências. Normalmente, eles só são configurados em resposta a ações realizadas pelos usuários, como por exemplo salvar as suas preferências de privacidade, realizar login ou salvar informações para o preenchimento de formulários. Por essa razão, não é possível desabilitá-los.
Se você desativar este cookie, não poderemos salvar suas preferências. Isso significa que toda vez que você visitar este site, você precisará ativar ou desativar os cookies novamente.
Cookies de desempenho (Performance cookies)
Esse tipo de cookie coleta informações sobre como os usuários utilizam e navegam no site, como por exemplo:
Quais páginas os usuários acessam com mais frequência;
Se o usuário recebe mensagens de erro de nossas páginas.
Vale ressaltar que esse tipo de cookie não coleta informações que identificam o usuário. Todas as informações que esses cookies coletam são agregadas e, portanto, anônimas, sendo usados apenas para melhorar o funcionamento do site (medição e melhoria de desempenho do site).
Ative primeiro os Cookies estritamente necessários para que possamos salvar suas preferências!
Cookies de funcionalidade (Functional cookies)
Permitem que o site forneça funcionalidade e personalização aprimoradas. Eles podem ser definidos por nós ou por fornecedores terceiros cujos serviços adicionamos às nossas páginas.
Ative primeiro os Cookies estritamente necessários para que possamos salvar suas preferências!