Je travaille sur Odroid et la détection de visage en cours d'exécution en utilisant OpenCV python sur elle. Mais il y a trop de décalage dans l'appareil photo. J'ai essayé beaucoup de choses mais je n'ai pas pu supprimer le décalage. S'il vous plaît suggérer comment puis-je supprimer le décalage. Je veux détecter les visages d'au moins 15 pieds pour que j'ai besoin d'images à haute résolution, mais les images à haute résolution causent plus de retard. Actuellement, j'ai 2 secondes de décalage entre les images. S'il y a des suggestions, partagez.En CV ouvert, python comment puis-je supprimer le décalage dans la caméra
import cv2, sys, numpy, os
import json
size = 3
fn_haar = 'haarcascade_frontalface_default.xml'
fn_haareye = 'haarcascade_eye.xml'
(im_width, im_height) = (112, 92)
haar_cascade = cv2.CascadeClassifier(fn_haar)
eye_cascade = cv2.CascadeClassifier(fn_haareye)
webcam = cv2.VideoCapture(0)
while True:
(rval, frame) = webcam.read()
frame=cv2.flip(frame,1,0)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
mini = cv2.resize(gray, (gray.shape[1]/size, gray.shape[0]/size))
faces = haar_cascade.detectMultiScale(mini,scaleFactor=1.05, minNeighbors=3, minSize=(20, 20), flags = cv2.cv.CV_HAAR_SCALE_IMAGE)
for i in range(len(faces)):
face_i = faces[i]
(x, y, w, h) = [v * size for v in face_i]
face = gray[y:y + h, x:x + w]
face_resize = cv2.resize(face, (im_width, im_height))
eyes = eye_cascade.detectMultiScale(face)
for (ex,ey,ew,eh) in eyes:
cv2.rectangle(face_resize ,(ex,ey),(ex+ew,ey+eh),(0,255,0),2)
cv2.imshow('OpenCV', frame)
key = cv2.waitKey(10)
if key == 27:
break
augmente le facteur d'échelle dans la fonction detectMultiScale. Si vous avez l'option alors essayez de choisir ROI afin de minimiser la région dans laquelle vous devez faire la détection de visage –
@ Optimus1072 si j'augmente le facteur d'échelle sera-t-il capable de détecter les visages de 15 pieds? –
avec scaleFactor = 1.2 et résolution d'image de 360 * 288, je suis capable de et sur ma machine (I5) il prend 15ms par trame. –