繁体   English   中英

实时人脸识别在Raspberry Pi3上运行缓慢

[英]Real time face recognition ran slowly on Raspberry Pi3

我正在使用Raspberry Pi3进行人脸识别,这是我的代码来检测人脸,但是实时识别运行缓慢

cam = cv2.VideoCapture(0)

rec = cv2.face.LBPHFaceRecognizer_create();

rec.read(...'/data/recognizer/trainingData.yml')
    getId = 0
    font = cv2.FONT_HERSHEY_SIMPLEX
    userId = 0
    i = 0
    while (cam.isOpened() and i<91):
        i=i+1
        ret, img = cam.read()
        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        faces = faceDetect.detectMultiScale(gray, 1.3, 5)
        for (x, y, w, h) in faces:
            cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)

            getId, conf = rec.predict(gray[y:y + h, x:x + w])  # This will predict the id of the face

            # print conf;
            if conf < 50:
                userId = getId
                cv2.putText(img, "Detected", (x, y + h), font, 2, (0, 255, 0), 2)
                record = Records.objects.get(id=userId)
                record.is_present = True
                record.save()
            else:
                cv2.putText(img, "Unknown", (x, y + h), font, 2, (0, 0, 255), 2)

            # Printing that number below the face
            # @Prams cam image, id, location,font style, color, stroke

        cv2.imshow("Face", img)
        cv2.waitKey(50)`

请如何纠正? 感谢您的帮助。

您应该使用线程来最大化性能。 imutils是一个库,可让您在picamera和网络摄像头捕获上使用线程。 这里的问题是在帧之间执行太多的输入输出操作。

以下是有助于提高我的fps的文章: https : //www.pyimagesearch.com/2015/12/28/increasing-raspberry-pi-fps-with-python-and-opencv/

这是您可以添加的代码:

import imutils
from imutils.video.pivideostream import PiVideoStream

然后代替cam = cv2.VideoCapture(0)

使用cam = PiVideoStream().start()

而不是ret, img = cam.read()使用im = cam.read()

并释放相机使用:

cam.stop()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM