OpenCV é uma biblioteca de código aberto, que visa a visão computacional em tempo real. Esta biblioteca é desenvolvida pela Intel e é multiplataforma - pode suportar Python, C ++, Java, etc. Computer Vision é um campo de ponta da Ciência da Computação que visa permitir que os computadores entendam o que está sendo visto em uma imagem. OpenCV é uma das bibliotecas mais amplamente utilizadas para tarefas de visão computacional, como reconhecimento de rosto, detecção de movimento, detecção de objeto, etc.

Neste tutorial, vamos construir um Detector Pedestre básico para imagens e vídeos usando OpenCV. A detecção de pedestres é uma área de pesquisa muito importante porque pode aprimorar a funcionalidade de um sistema de proteção de pedestres em carros sem motor.

Podemos extrair recursos como cabeça, dois braços, duas pernas, etc, de uma imagem de um corpo humano e passá-los para treinar um modelo de machine learning. Após o treinamento, o modelo pode ser usado para detectar e rastrear humanos em imagens e fluxos de vídeo. No entanto, o OpenCV possui um método integrado para detectar pedestres. Possui um modelo HOG (Histograma de Gradientes Orientados) + Linear SVM pré-treinado para detectar pedestres em imagens e fluxos de vídeo.

Histograma de Gradientes Orientados

Este algoritmo verifica diretamente os pixels circundantes de cada pixel. O objetivo é verificar quão mais escuro é o pixel atual em comparação com os pixels circundantes. O algoritmo desenha e setas mostrando a direção da imagem ficando mais escura. Ele repete o processo para cada pixel da imagem. Por fim, cada pixel seria substituído por uma seta, essas setas são chamadas de Gradientes . Esses gradientes mostram o fluxo de luz da luz para a escuridão. Usando esses gradientes, os algoritmos realizam análises adicionais. Para saber mais sobre HOG, leia o artigo de pesquisa de Navneet Dalal e Bill Triggs sobre HOG para detecção humana. .



Requisitos

opencv-python 3.4.2
imutils 0.5.3

Para instalar os módulos acima, digite o comando abaixo no terminal.

pip install moudle_name

Exemplo 1:

Vamos fazer o programa para detectar pedestres em uma imagem:

Imagem usada:
python-opncv

import cv2 
import imutils 
   
hog = cv2.HOGDescriptor() 
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector()) 
   
image = cv2.imread('img.png') 
   
image = imutils.resize(image, 
                       width=min(400, image.shape[1])) 
   
(regions, _) = hog.detectMultiScale(image,  
                                    winStride=(4, 4), 
                                    padding=(4, 4), 
                                    scale=1.05) 
   
for (x, y, w, h) in regions: 
    cv2.rectangle(image, (x, y),  
                  (x + w, y + h),  
                  (0, 0, 255), 2) 
cv2.imshow("Image", image) 
cv2.waitKey(0) 
   
cv2.destroyAllWindows() 

Resultado: