【openvino+树莓派】实现实时摄像头人脸检测

目录

参考步骤 

人脸检测py代码 

图片形式

摄像头实时

树莓派+openvino 人脸检测实时效果

openvino 树莓派 人脸实时检测测试效果_哔哩哔哩_bilibili 


参考步骤 

  • Openvino:安装、部署。(可参考以下文档,验证不建议参考)

树莓派+神经计算棒2部署Openvino的human_pose_estimation_demo实例_hwxhxyz1998403的博客-CSDN博客_openpose 树莓派

树莓派4B使用OpenVINO部署人体关键点检测模型Demo (视频中使用的文件在介绍里下载)_哔哩哔哩_bilibili

安装包链接:https://pan.baidu.com/s/1g-pCfJY0wkwTCclqOCKOng 
提取码:48z7

参考到此部分

  

人脸检测py代码 

图片形式

#coding=utf-8
import cv2 as cv
# Load the model.
net = cv.dnn.readNet('face-detection-adas-0001.xml',
                     'face-detection-adas-0001.bin')
# Specify target device.
net.setPreferableTarget(cv.dnn.DNN_TARGET_MYRIAD)
# Read an image.
frame = cv.imread('/home/pi/Downloads/inference_engine_vpu_arm/deployment_tools/inference_engine/samples/cpp/build/1.jpeg')
if frame is None:
    raise Exception('Image not found!')
# Prepare input blob and perform an inference.
blob = cv.dnn.blobFromImage(frame, size=(672, 384), ddepth=cv.CV_8U)
net.setInput(blob)
out = net.forward()
# Draw detected faces on the frame.
for detection in out.reshape(-1, 7):
    confidence = float(detection[2])
    xmin = int(detection[3] * frame.shape[1])
    ymin = int(detection[4] * frame.shape[0])
    xmax = int(detection[5] * frame.shape[1])
    ymax = int(detection[6] * frame.shape[0])
    if confidence > 0.5:
        cv.rectangle(frame, (xmin, ymin), (xmax, ymax), color=(0, 255, 0))
# Save the frame to an image file.
cv.imwrite('out111.png', frame)

摄像头实时

#coding=utf-8
import cv2 as cv
import numpy as np

print("start!")
# Load the model.
net = cv.dnn.readNet('face-detection-adas-0001.xml',
                     'face-detection-adas-0001.bin')
# Specify target device.
net.setPreferableTarget(cv.dnn.DNN_TARGET_MYRIAD)
# Read an image.
#frame = cv.imread('/home/pi/Downloads/inference_engine_vpu_arm/deployment_tools/inference_engine/samples/cpp/build/1.jpeg')

#
cap = cv.VideoCapture(0)
while(1):
    ret, frame = cap.read()
    frame = cv.resize(frame,(480,320),interpolation=cv.INTER_CUBIC)
    # Prepare input blob and perform an inference.
    blob = cv.dnn.blobFromImage(frame, size=(672, 384), ddepth=cv.CV_8U)
    net.setInput(blob)
    out = net.forward()
    # Draw detected faces on the frame.
    for detection in out.reshape(-1, 7):
        confidence = float(detection[2])
        xmin = int(detection[3] * frame.shape[1])
        ymin = int(detection[4] * frame.shape[0])
        xmax = int(detection[5] * frame.shape[1])
        ymax = int(detection[6] * frame.shape[0])
        if confidence > 0.5:
            cv.rectangle(frame, (xmin, ymin), (xmax, ymax), color=(0, 255, 0))
    cv.imshow('capture',frame)
    if cv.waitKey(1) &0xFF==ord('q'):
        # Save the frame to an image file.
        cv.imwrite('out111.png', frame)
        print('save done')
cap.release()
cv.destroyAllWindows()

树莓派+openvino 人脸检测实时效果

openvino 树莓派 人脸实时检测测试效果_哔哩哔哩_bilibili 

问题小记录(其中涉及到一些我的机器人的具体问题,仅作为自己复习用)

  1.  手机要开启定位才能进入局域网连接,误操作长按KEY1进入直连模式再次尝试。
  2. 问题:cmake编译问题,重新换了一个终端可以了。

猜你喜欢

转载自blog.csdn.net/dujuancao11/article/details/123227771
今日推荐