目录
这里我们用到了mobilenet-ssd_openvino_2021.4_6shave.blob模型文件,需要下载并存储到本地文件夹,不会下载的小伙伴可以看我前面的博客,里面有介绍,这里直接使用,不介绍下载过程了。
Setup 1: 创建文件
- 创建新建13-object-tracker-on-rgb文件夹
- 用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 cv2
import depthai as dai
import numpy as np
import time
import argparse
pathlib
用于处理文件路径,sys
用于系统相关的操作,cv2
是OpenCV库用于图像处理,depthai
是depthai库用于深度计算和AI推理。time
用于处理时间,argparse
用于处理命令行参数。
time
库:用于处理和操作时间相关的功能和操作。提供了许多用于测量时间、获取当前时间、等待或延迟执行的函数。可用于计时、性能测试、调度任务等场景。例如,time.time()
可以获取当前的时间戳,time.sleep()
可以使程序休眠指定时间。
argparse
库:用于解析命令行参数以及生成用户友好的命令行界面。
- 允许定义程序所需的命令行参数,并自动解析和验证这些参数。
- 可以处理位置参数、可选参数、布尔标志等多种参数类型。
- 使用
argparse
可以实现灵活的命令行接口,使得程序可以方便地从命令行中获得输入。 - 例如,可以使用
argparse.ArgumentParser
创建一个解析器对象,定义参数后调用parse_args()
方法解析命令行参数。
Setup 4:定义和加载模型相关的路径和标签
labelMap = ["background", "aeroplane", "bicycle", "bird", "boat", "bottle", "bus", "car", "cat", "chair", "cow",
"diningtable", "dog", "horse", "motorbike", "person", "pottedplant", "sheep", "sofa", "train", "tvmonitor"]
nnPathDefault = str((Path(__file__).parent / Path('../models/mobilenet-ssd_openvino_2021.4_6shave.blob')).resolve().absolute())
parser = argparse.ArgumentParser()
parser.add_argument('nnPath', nargs='?', help="Path to mobilenet detection network blob", default=nnPathDefault)
parser.add_argument('-ff', '--full_frame', action="store_true", help="Perform tracking on full RGB frame", default=False)
args = parser.parse_args()
fullFrameTracking = args.full_frame
这段代码使用argparse
库解析命令行参数,并根据解析的结果设置对应的变量值。
-
定义
labelMap
为一个字符串列表,包含了针对图像分类任务的类别标签。每个元素代表一个类别,按照索引与模型预测结果相对应。 -
定义
nnPathDefault
字符串,指定了模型文件的路径,默认为mobilenet-ssd_openvino_2021.4_6shave.blob
文件的路径。 -
parser = argparse.ArgumentParser()
创建一个参数解析器对象。 -
parser.add_argument('nnPath', nargs='?', help="Path to mobilenet detection network blob", default=nnPathDefault)
定义一个位置参数nnPath
,该参数用于指定模型文件的路径,默认值为nnPathDefault
。 -
parser.add_argument('-ff', '--full_frame', action="store_true", help="Perform tracking on full RGB frame", default=False)
用于开启全帧追踪。该参数可以通过命令行中的-ff