返回模型
说明文档
在 COCO 上训练的 YOLOv5s 模型
YOLOv5s 是 YOLOv5 模型的小型版本,在 COCO 目标检测数据集(118k 张标注图像)上以 640x640 分辨率训练而成。该模型发布于 https://github.com/ultralytics/yolov5。
我们开发了一个修改版本,可由 AMD Ryzen AI 支持。
模型描述
YOLOv5 🚀 是全球最受欢迎的视觉 AI,代表了 Ultralytics 对未来视觉 AI 方法的开源研究,融合了数千小时研发过程中积累的经验和最佳实践。
预期用途与限制
您可以使用原始模型进行目标检测。请查看 模型中心 以寻找所有可用的 YOLOv5 模型。
如何使用
安装
按照 Ryzen AI 安装指南 准备 Ryzen AI 环境。 运行以下脚本安装此模型的依赖项。
pip install -r requirements.txt
数据准备(可选:用于精度评估)
MSCOCO2017 数据集包含 118287 张训练图像和 5000 张验证图像。
下载 COCO 数据集并在您的代码中创建如下目录结构:
└── datasets
└── coco
├── annotations
| ├── instances_val2017.json
| └── ...
├── labels
| ├── val2017
| | ├── 000000000139.txt
| ├── 000000000285.txt
| └── ...
├── images
| ├── val2017
| | ├── 000000000139.jpg
| ├── 000000000285.jpg
└── val2017.txt
- 将 val2017 图像文件夹放在 images 目录下,或使用软链接
- 上方的 labels 文件夹和 val2017.txt 由 general_json2yolo.py 生成
- 按如下方式修改 coco.yaml:
path: /path/to/your/datasets/coco # 数据集根目录
train: train2017.txt # 训练图像(相对于 'path')118287 张图像
val: val2017.txt # 验证图像(相对于 'path')5000 张图像
测试与评估
- 来自
infer_onnx.py的使用示例代码
args = make_parser().parse_args()
onnx_path = args.onnx_model
onnx_weight = onnxruntime.InferenceSession(onnx_path)
grid = np.load(\"./grid.npy\", allow_pickle=True)
anchor_grid = np.load(\"./anchor_grid.npy\", allow_pickle=True)
path = args.image_path
new_path = args.output_path
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_weight.get_inputs()[0].name: img}
onnx_output = onnx_weight.run(None, onnx_input)
onnx_output = post_process(onnx_output)
pred = non_max_suppression(
onnx_output[0], conf_thres, iou_thres, classes, agnostic_nms, max_det=max_det
)
colors = Colors()
det = pred[0]
im0 = img0.copy()
annotator = Annotator(im0, line_width=2, example=str(names))
if len(det):
# 将边界框从 img_size 缩放到 im0 尺寸
det[:, :4] = scale_coords(img.shape[2:], det[:, :4], im0.shape).round()
# 写入结果
for *xyxy, conf, cls in reversed(det):
c = int(cls) # 整数类别
label = f\"{names[c]} {conf:.2f}\"
annotator.box_label(xyxy, label, color=colors(c, True))
# 输出结果
im0 = annotator.result()
cv2.imwrite(new_path, im0)
- 对单张图像运行推理
python infer_onnx.py --onnx_model ./yolov5s.onnx -i /Path/To/Your/Image --ipu --provider_config /Path/To/Your/Provider_config
注意:vaip_config.json 位于 Ryzen AI 的安装包中(参考 安装)
- 测试量化模型的精度
python eval_onnx.py --onnx_model ./yolov5s.onnx --ipu --provider_config /Path/To/Your/Provider_config
性能
| 指标 | IPU 上的精度 |
|---|---|
| AP@0.50:0.95 | 0.356 |
@software{glenn_jocher_2021_5563715,
author = {Glenn Jocher et. al.},
title = {{ultralytics/yolov5: v6.0 - YOLOv5n 'Nano' models,
Roboflow integration, TensorFlow export, OpenCV
DNN support}},
month = oct,
year = {2021},
publisher = {Zenodo},
version = {v6.0},
doi = {10.5281/zenodo.5563715},
url = {https://doi.org/10.5281/zenodo.5563715}
}
amd/yolov5s
作者 amd
object-detection
↓ 0
♥ 3
创建时间: 2023-12-04 08:25:34+00:00
更新时间: 2024-01-26 08:29:01+00:00
在 Hugging Face 上查看文件 (12)
.gitattributes
README.md
anchor_grid.npy
coco.yaml
demo.jpg
eval_onnx.py
general_json2yolo.py
grid.npy
infer_onnx.py
requirements.txt
utils.py
yolov5s.onnx
ONNX