这里用到了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文件夹
安装依赖前需要先创建和激活虚拟环境,我这里已经创建了虚拟环境OAKenv,在终端中输入cd…退回到OAKenv的根目录,输入 OAKenv\Scripts\activate
激活虚拟环境
安装pip依赖项:
pip install numpy opencv-python depthai blobconverter --user
在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推理。
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()
将相对路径解析为绝