返回模型
说明文档
YOLOv3 模型(基于 COCO 训练)
YOLOv3 在 COCO 目标检测数据集(118k 张标注图像)上以 416x416 分辨率训练完成。该模型发布于 https://github.com/ultralytics/yolov3/tree/v8。
我们开发了一个修改版本,可由 AMD Ryzen AI 支持。
模型描述
YOLOv3 🚀 是全球最受欢迎的视觉 AI,代表了 Ultralytics 对未来视觉 AI 方法的开源研究,融合了数千小时研发过程中积累的经验教训和最佳实践。
预期用途与限制
您可以使用原始模型进行目标检测。请访问 模型中心 查看所有可用的 YOLOv3 模型。
使用方法
安装
按照 Ryzen AI 安装指南 准备 Ryzen AI 环境。 运行以下脚本安装此模型的依赖项。
pip install -r requirements.txt
数据准备(可选:用于精度评估)
MSCOCO2017 数据集包含 118287 张训练图像和 5000 张验证图像。
- 下载 COCO 数据集
- 运行 general_json2yolo.py 生成 labels 文件夹和 val2017.txt
python general_json2yolo.py
最终,COCO 数据集应如下所示:
+ coco/
+ annotations/
+ instance_val2017.json
+ ...
+ images/
+ val2017/
+ 000000000139.jpg
+ 000000000285.jpg
+ ...
+ labels/
+ val2017/
+ 000000000139.txt
+ 000000000285.txt
+ ...
+ val2017.txt
测试与评估
- 来自
onnx_inference.py的代码片段,展示如何使用
onnx_path = "yolov3-8.onnx"
onnx_model = onnxruntime.InferenceSession(
onnx_path, providers=providers, provider_options=provider_options)
path = opt.img
new_path = os.path.join(opt.out, "demo_infer.jpg")
conf_thres, iou_thres, classes, agnostic_nms, max_det = 0.25, \
0.45, None, False, 1000
img0 = cv2.imread(path)
img = pre_process(img0)
onnx_input = {onnx_model.get_inputs()[0].name: img}
onnx_output = onnx_model.run(None, onnx_input)
onnx_output = post_process(onnx_output)
pred = non_max_suppression(
onnx_output[0],
conf_thres,
iou_thres,
multi_label=False,
classes=classes,
agnostic=agnostic_nms)
colors = [[random.randint(0, 255) for _ in range(3)]
for _ in range(len(names))]
det = pred[0]
im0 = img0.copy()
if len(det):
# Rescale boxes from imgsz to im0 size
det[:, :4] = scale_coords(img.shape[2:], det[:, :4], im0.shape).round()
# Write results
for *xyxy, conf, cls in reversed(det):
label = '%s %.2f' % (names[int(cls)], conf)
plot_one_box(xyxy, im0, label=label, color=colors[int(cls)])
# Stream results
cv2.imwrite(new_path, im0)
- 对单张图像运行推理
python onnx_inference.py --img INPUT_IMG_PATH --out OUTPUT_DIR --ipu --provider_config Path\To\vaip_config.json
注意:vaip_config.json 位于 Ryzen AI 的安装包中(参见安装)
- 测试量化模型的精度
python onnx_test.py --ipu --provider_config Path\To\vaip_config.json
性能
| 指标 | IPU 上的精度 |
|---|---|
| AP@0.50:0.95 | 0.389 |
@misc{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Joseph Redmon and Ali Farhadi},
year={2018},
eprint={1804.02767},
archivePrefix={arXiv},
primaryClass={cs.CV}
}
amd/yolov3
作者 amd
object-detection
↓ 0
♥ 2
创建时间: 2023-12-04 08:26:13+00:00
更新时间: 2024-08-13 09:11:59+00:00
在 Hugging Face 上查看文件 (11)
.gitattributes
README.md
coco.names
coco2017.data
general_json2yolo.py
onnx_inference.py
onnx_test.py
requirements.txt
utils.py
yolov3-8.onnx
ONNX
yolov3.cfg