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

目录

  • 模型文件下载
  • 代码实现
    • Setup 1: 创建文件
    • Setup 2: 安装依赖
    • Setup 3: 导入需要的包
    • Setup 4:定义和加载模型相关的路径和标签
    • Setup 5: 创建pipeline
    • Setup 6: 创建节点
    • Setup 7: 设置属性
      • 配置摄像头节点的参数
      • 配置深度图节点的参数
      • 配置图像处理节点的参数
      • 配置神经网络节点的参数
    • Setup 8: 建立链接
    • Setup 9: 连接设备并启动管道
    • Setup 10: 创建与DepthAI设备通信的输出队列
    • Setup11: 定义处理函数
    • Setup 12: 主循环
    • Setup 13:运行程序

模型文件下载

这里用到了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
一步一步学OAK之十:视差深度结果叠加运行MobileNetv2SD实现_第1张图片
在项目根目录下新建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()将相对路径解析为绝

你可能感兴趣的:(人工智能,python,ai,DepthAI,OAK,人工智能)