基于设备上解码的 Yolo 检测¶
该存储库 (
修改自 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
版本: -
YoloV5
,YoloV6
, 和YoloV7
:- 训练可参考原始仓库:
- 导出转换:
用法¶
depthai_yolo¶
Usage:
Options:
[APP]:[oak|lr|sr] Provide app name for inference [default:
oak]
-m, -w, --model, --weight PATH Provide model name or model path for
inference [required]
-c, -j, --config, --json PATH Provide config path for inference
-classes_id, --classes_id INTEGER
filter by class: --classes 0 or --classes 0
2 3
-classes_str, --classes_str TEXT
filter by class: --classes person or
--classes person cup
-usbs, --usbSpeed [UNKNOWN|LOW|FULL|HIGH|SUPER|SUPER_PLUS]
Force USB communication speed. [default:
SUPER_PLUS]
--color-res [THE_1080_P|THE_1200_P|THE_4_K|THE_5_MP|THE_12_MP|THE_4000X3000|THE_13_MP|THE_5312X6000|THE_48_MP|THE_720_P|THE_800_P|THE_1440X1080|THE_1352X1012|THE_2024X1520]
Color camera resolution, if using OAK-LR,
must be selected from `THE_720_P/THE_400_P`
(zoom from THE_1200_P). [default:
THE_1080_P]
--mono-res [THE_720_P|THE_800_P|THE_400_P|THE_480_P|THE_1200_P]
Mono camera resolution [default: THE_400_P]
-fps, --fps FLOAT Set capture FPS for all cameras. [default:
30]
--stereo_pair [LR|LC|CR] Stereo pair, current only for OAK-LR.
[default: LR]
-s, --spatial Display spatial information
-lr, --lr_check If to True, it will perform left-right check
on stereo pair, only for `spatial is True`
[default: True]
-e, --extended_disparity If to True, it will enable disparity, only
for `spatial is True`
-sub, --subpixel If to True, it will enable subpixel
disparity, only for `spatial is True`
-F, --full_fov / --no_full_fov If to False, it will first center crop the
frame to meet the NN aspect ratio and then
scale down the image [default: F]
-syncNN, --syncNN / --no_syncNN
Show synced frame [default: no_syncNN]
-high, --high_res / --no_high_res
Show synced frame [default: no_high_res]
-color, --color / --no_color Show lens as color, only for `sr`
[default: no_color]
-list, -ls, --list_models List all pre-defined models
-d, --download Download all pre-defined models
--install-completion Install completion for the current shell.
--show-completion Show completion for the current shell, to
copy it or customize the installation.
用法 1: 模块安装¶
- 安装
-
运行
可以使用
download_models
下载全部预定义模型shell > python3 -m depthai_yolo.download_models > # 或 > python3 -m depthai_yolo --download > # 或 > depthai_yolo --download >
```shell python3 -m depthai_yolo oak -m model_name -c config_json
或¶
depthai_yolo api -m model_name -c config_json ```
若使用
OAK_D_SR
请运行shell python3 -m depthai_yolo sr -m model_name -c config_json # 或 depthai_yolo sr -m model_name -c config_json
若使用OAK_D_LR
请运行shell python3 -m depthai_yolo lr -m model_name -c config_json # 或 depthai_yolo lr -m model_name -c config_json
用法 2: 源码运行¶
- 安装依赖
若使用
SDK
请运行shell > python3 -m pip install -r requirements-sdk.txt >
-
运行脚本 > 可以使用
download_models.py
脚本下载预定义模型 >若使用
OAK_D_SR
请运行shell python3 run.py sr -m model_name -c config_json
若使用OAK_D_LR
请运行`shell python3 run.py lr -m model_name -c config_json
用法 3: SDK (不推荐)¶
- 安装依赖
- 运行脚本
注意:
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
坐标。
或者
如果您对使用 Yolo 检测器的深度信息感兴趣, 请查看我们的 文档。