一步一步学OAK之十:视差深度结果叠加运行MobileNetv2SD实现

本文介绍了如何使用OAK设备和DepthAI库结合MobileNetv2SD模型进行目标检测和深度计算。文章详细阐述了从创建文件夹、安装依赖、导入包到设置模型路径、创建pipeline、配置各节点参数的过程,最终实现视差深度结果与运行MobileNetv2SD的融合。
摘要由CSDN通过智能技术生成

模型文件下载

这里用到了mobilenet-ssd_openvino_2021.4_6shave.blob模型文件,mobilenet-ssd_openvino_2021.4_6shave.blob 是一个已经训练好的模型文件,用于目标检测任务。该模型一共可以检测21种目标类型。包括:“background”, “aeroplane”, “bicycle”, “bird”, “boat”, “bottle”, “bus”, “car”, “cat”, “chair”, “cow”, “diningtable”, “dog”, “horse”, “motorbike”, “person”, “pottedplant”, “sheep”, “sofa”, “train”, “tvmonitor”。

可以从这个网站下载该文件:oak_models - Browse Files at SourceForge.net
在这里插入图片描述
在项目根目录下新建models文件夹,将上面下载的文件拷贝到models文件夹

代码实现

Setup 1: 创建文件

  • 创建新建12-mono-mobilenetSSD-depth文件夹
  • 用vscode打开该文件夹
  • 新建一个main.py 文件

Setup 2: 安装依赖

安装依赖前需要先创建和激活虚拟环境,我这里已经创建了虚拟环境OAKenv,在终端中输入cd…退回到OAKenv的根目录,输入 OAKenv\Scripts\activate激活虚拟环境

安装pip依赖项:

pip install numpy opencv-python depthai blobconverter --user

Setup 3: 导入需要的包

在main.py中导入项目需要的包

from pathlib import Path
import sys
import cv2
import depthai as dai
import numpy as np

pathlib用于处理文件路径,sys用于系统相关的操作,cv2是OpenCV库用于图像处理,depthai是depthai库用于深度计算和AI推理。

Setup 4:定义和加载模型相关的路径和标签

nnPath = str((Path(__file__).parent / Path('../models/mobilenet-ssd_openvino_2021.4_6shave.blob')).resolve().absolute())
if len(sys.argv) > 1:
    nnPath = sys.argv[1]

if not Path(nnPath).exists():
    import sys
    raise FileNotFoundError(f'Required file/s not found, please run "{sys.executable} install_requirements.py"')
 
labelMap = ["background", "aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow","diningtable", "dog", "horse", "motorbike", "person","pottedplant", "sheep", "sofa", "train", "tvmonitor"]
  • 使用Path(__file__).parent获取当前脚本的父目录,然后使用Path('../models/mobilenet-ssd_openvino_2021.4_6shave.blob')拼接上模型文件的相对路径,再使用resolve().absolute()将相对路径解析为绝对路径,并将结果转换为字符串类型。最终,得到了模型文件的完整路径并赋值给变量nnPath

  • 检查命令行参数(sys.argv)的数量,如果大于1(即有额外的命令行参数)则将第一个参数赋值给nnPath。这样可以在运行代码时通过命令行参数指定模型文件的路径。

  • 使用Path(nnPath).exists()检查模型文件是否存在,如果不存在则引发FileNotFoundError异常,同时提供错误消息指示缺少的文件。

  • 定义一个标签列表labelMap,其中包含了模型预测的类别名称。共包含了21个类别

Setup 5: 创建pipeline

pipeline = dai.Pipeline()

Setup 6: 创建节点

monoRight = pipeline.createMonoCamera()
monoLeft = pipeline.createMonoCamera()
stereo
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

九仞山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值