python调用OAK相机实现人脸检测的简单demo

本文介绍了如何在OAK-D-Pro设备上使用DepthAI进行环境配置,包括配置MonoCamera和StereoDepth,以及利用预训练模型进行人脸检测和深度测量。提供了test_depthai.py和test_model_depthai.py代码示例,展示了如何实现实时的图像处理和结果展示。

基本思想:学习oak双目相机的使用复现官网demo和简单的人脸检测

前言:

设备型号:OAK-D-Pro

一、环境配置参考

台式机ubuntu系统调用OAK相机_MFT小白的博客-优快云博客

二、测试

2.1 test_depthai.py

按下 t 键可实现图像切换,观察视差。

import depthai as dai
import cv2
import numpy as np


# # 实例化管道对象
# pipeline = dai.Pipeline()

# mono = pipeline.createMonoCamera()
# mono.setBoardSocket(dai.CameraBoardSocket.LEFT)

# xout = pipeline.createXLinkOut()
# xout.setStreamName("left")
# mono.out.link(xout.input)

# with dai.Device(pipeline) as device:
#     queue = device.getOutputQueue(name="left")
#     frame = queue.get()
#     imOut = frame.getCvFrame()
#     cv2.imshow("imOut", imOut)
#     cv2.waitKey()

def getFrame(queue):
    # Get frame from queue
    frame = queue.get()
    # Convert frame to OpenCV format and return
    return frame.getCvFrame()


def getMonoCamera(pipeline, isLeft):

    # Configure mono camera
    mono = pipeline.createMonoCamera()

    # Set Camera Resolution
    mono.setResolution(dai.MonoCameraProperties.SensorResolution.THE_400_P)

    if isLeft:
        # Get left camera
        mono.setBoardSocket(dai.CameraBoardSocket.LEFT)

    else :
        # Get right camera
        mono.setBoardSocket(dai.CameraBoardSocket.RIGHT)

    return mono


def getStereoPair(pipeline, monoLeft, monoRight):

    # Configure stereo pair for depth estimation
    stereo = pipeline.createStereoDepth()

    # Checks occluded pixels and marks them as invalid
    stereo.setLeftRightCheck(True)

    # Configure left and right cameras to work as a stereo pair
    monoLeft.out.link(stereo.left)
    monoRight.out.link(stereo.right)

    return stereo


def mouseCallback(event, x, y, flags, param):
    global mouseX, mouseY
    if event == cv2.EVENT_LBUTTONDOWN:
        mouseX = x
        mouseY = y


if __name__ == '__main__':
    
    # pipeline = dai.Pipeline()

    # # Set up left and right cameras
    # monoLeft = getMonoCamera(pipeline, isLeft = True)
    # monoRight = getMonoCamera(pipeline, isLeft = False)

    # # Set output Xlink for left camera
    # xoutLeft = pipeline.createXLinkOut()

    # xoutLeft.setStreamName("left")


    # # Set output Xlink for right camera
    # xoutRight = pipeline.createXLinkOut()

    # xoutRight.setStreamName("right")

    # # Attach cameras to output Xlink

    # monoLeft.out.link(xoutLeft.input)

    # monoRight.out.link(xoutRight.input)
    
    
    mouseX = 0
    mouseY = 640

    # Start defining a pipeline
    pipeline = dai.Pipeline()

    # Set up left and right cameras
    monoLeft = getMonoCamera(pipeline, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值