什么是NDVI?
- 该存储库 ( 修改自 device-decoding) 包含直接使用 DepthAI SDK (main_sdk.py) 或 DepthAI API (main_api.py) 在设备上解码运行 Yolo 目标检测的代码。目前,支持的版本有:
- YoloV3 & YoloV3-tiny,
- YoloV4 & YoloV4-tiny,
- YoloV5,
- YoloV6,
- YoloV7,
- YoloV8,
- YoloV9,
- YoloV10
- 我们在 main_sdk_v*.py(不推荐) 和 main_api.py 中使用相同样式的 JSON 解析,但您也可以在代码中手动设置这两种情况下的值。
导出模型
- 由于模型必须以某种方式导出转换到 OpenVINO IR,我们提供了关于训练和导出的教程:
- YoloV3, YoloV4, 和它们的 tiny 版本:
训练:
YoloV3_V4_tiny_training.ipynbhttps://github.com/luxonis/depthai-ml-training/blob/master/colab-notebooks/YoloV3_V4_tiny_training.ipynb
https://github.com/AlexeyAB/darknethttps://github.com/AlexeyAB/darknet
导出转换:
https://github.com/luxonis/yolo2openvinohttps://github.com/luxonis/yolo2openvino
2. YoloV5, YoloV6, 和 YoloV7 :
训练可参考原始仓库:
-
-
- YoloV5,
- YoloV6,
- YoloV7
- YoloV8,
- YoloV9, YoloV9_ultralytics,
- YoloV10,
- YoloV5_training.ipynb
- YoloV6_training.ipynb
- YoloV7_training.ipynb
- YoloV8_training.ipynb
-
导出转换
-
-
- DepthAI Tools 网页在线转换,
- 参考 tools/yolo at master · luxonis/tools · GitHub 和 tools/yolov7 at master · luxonis/tools · GitHub 进行本地转换
- OAK 相机如何将 YOLO 系列模型转换成 blob 格式?
-
用法
-
::: mkdocs-typer :module: depthai_yolo.cli :command: app :prog_name: depthai_yolo :depth: 4
- 用法 1: 模块安装
- 安装
-
python3 -m pip install .
- 运行
- 可以使用 download_models 下载全部预定义模型
-
python3 -m depthai_yolo.download_models # 或 python3 -m depthai_yolo --download # 或 depthai_yolo –download
-
python3 -m depthai_yolo oak -m model_name -c config_json # 或 depthai_yolo api -m model_name -c config_json
- 若使用 OAK_D_SR 请运行
-
python3 -m depthai_yolo sr -m model_name -c config_json # 或 depthai_yolo sr -m model_name -c config_json
- 若使用 OAK_D_LR 请运行
-
python3 -m depthai_yolo lr -m model_name -c config_json # 或 depthai_yolo lr -m model_name -c config_json
- 用法 2: 源码运行
- 安装依赖
-
python3 -m pip install -r requirements.txt
- 若使用 SDK 请运行
-
python3 -m pip install -r requirements-sdk.txt
- 运行脚本
- 可以使用 download_models.py 脚本下载预定义模型
-
python3 -m src/depthai_yolo/download_models.py # 或 python3 run.py –download python3 run.py oak -m model_name -c config_json
- 若使用 OAK_D_SR 请运行
-
python3 run.py sr -m model_name -c config_json
- 若使用 OAK_D_LR 请运行
-
python3 run.py lr -m model_name -c config_json ``
- 用法 3: SDK (不推荐)
- 安装依赖
-
python3 -m pip install -r sdk_scripts/requirements-sdk.txt
- 运行脚本
-
python3 sdk_scripts/main_sdk_v1.2.py -m model_name -c config_json python3 sdk_scripts/main_sdk_v1.9.py -conf config_json
- 注意:
- model_name 是来自 DepthAI 模型库 (https://zoo.luxonis.com) 的模型名称或 blob 文件的相对路径。 请查看我们的模型库以查看可用的预训练模型,或使用 -ls/--list_models 参数查看可用模型。
- config_json 是带有 Yolo 模型元数据(输入形状、锚点、标签等)的 JSON 的相对路径。
-
JSONs
- 我们已经为常见的 Yolo 版本提供了一些 JSON。您可以编辑它们并为您的模型设置它们,如上述教程中的后续步骤部分所述。如果您要更改教程中的某些参数,则应编辑相应的参数。一般来说,JSON 中的设置应该遵循模型的 CFG 中的设置。对于 YoloV5,默认设置应与 YoloV3 相同。
- Note:值必须与训练期间在 CFG 中设置的值相匹配。如果您使用不同的输入宽度,您还应该将 side32 更改为 sideX 并将 side16 更改为 sideY,其中 X = width16 和 Y = width32。如果您使用的是非微型模型,则这些值为 width8、width16 和 width32。
- 您还可以更改 IOU 和置信度阈值。如果多次检测到同一个目标,则增加 IOU 阈值。如果没有检测到足够的目标,则降低置信度阈值。请注意,这不会神奇地改善您的目标检测器,但如果某些目标由于阈值太高而被过滤掉,则可能会有所帮助。
-
Depth 信息
- DepthAI 使您能够利用深度信息并获取检测到的对象的 x、y 和 z 坐标。
-
python3 run.py api -m model_name -c config_json –spatial
或者
-
python3 main_sdk_v1.2.py -m model_name -c config_json –spatial python3 main_sdk_v1.9.py -conf config_json –spatial
如果您对使用 Yolo 检测器的深度信息感兴趣, 请查看我们的 文档。