簡體   English   中英

在開放式簡歷中,python如何消除相機中的滯后

[英]In open CV, python how can i remove lag in the camera

我正在研究Odroid,並在其上使用openCV python進行人臉檢測。 但是相機有太多滯后。 我嘗試了很多事情,但無法消除延遲。 請提出如何消除滯后的建議。 我需要檢測至少15英尺高的人臉,因為我需要高分辨率圖像,但是高分辨率圖像會導致更大的延遲。 目前,我在各幀之間有2秒的延遲。 如果有建議請分享。

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

您可以嘗試以下操作(根據我的經驗,這些區域)
1.降低圖像的分辨率或從圖像中選擇roi。
2.增加detectMultiscale因子。 您必須對其進行調整,因為增加它會對其准確性產生不利影響。
3.設置HOG的nlevels參數,默認情況下將其設置為64,在我的情況下,將其減小為8對精度幾乎沒有影響,但速度提高了25-30%。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM