Rogério Marques
03 outubro 2018 - 10:00 | Atualizado em 29 março 2023 - 17:44
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 (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.
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 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.
Muitos métodos de OpenCV pedem que a imagem esteja nesse espaço de cores.
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.
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:
Adiciona-se o resultado do classificador quando o filtro de olhos é aplicado logo abaixo do de faces. O código ficou assim:
Para finalizar:
O restante do código ficou assim…
Código completo – parte 2:
Executamos o programa no terminal e o resultado ficou:
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!