返回模型
说明文档
YOLOX-small 模型(在 COCO 上训练)
YOLOX-small 是在 COCO 目标检测数据集(118k 张标注图像)上以 640x640 分辨率训练的 YOLOX 模型的小型版本。该模型由 Zheng Ge 等人在论文 YOLOX: Exceeding YOLO Series in 2021 中提出,并首次在 此仓库 中发布。
我们开发了一个可由 AMD Ryzen AI 支持的修改版本。
模型描述
基于 YOLO 检测器,YOLOX 模型采用无锚框(anchor-free)检测头,并结合其他先进的检测技术,包括解耦头(decoupled head)和领先的标签分配策略 SimOTA,在各种规模的模型中实现了最先进的结果。该系列模型由旷视科技(Megvii Inc.)开发,并获得了 CVPR 2021 WAD 流媒体感知挑战赛(Streaming Perception Challenge)第一名。
预期用途与限制
您可以使用原始模型进行目标检测。请查看 模型中心 以获取所有可用的 YOLOX 模型。
如何使用
安装
按照 Ryzen AI 安装指南 为 Ryzen AI 准备环境。 运行以下脚本安装此模型的依赖项。
pip install -r requirements.txt
数据准备(可选:用于精度评估)
MSCOCO2017 数据集包含 118287 张训练图像和 5000 张验证图像。
下载 COCO 数据集的验证集(val2017.zip 和 annotations_trainval2017.zip)。 然后解压文件并将它们移动到以下目录(或创建软链接):
└── data
└── COCO
├── annotations
| ├── instances_val2017.json
| └── ...
└── val2017
├── 000000000139.jpg
├── 000000000285.jpg
└── ...
测试与评估
- 来自
infer_onnx.py的代码片段,展示如何使用
args = make_parser().parse_args()
input_shape = tuple(map(int, args.input_shape.split(',')))
origin_img = cv2.imread(args.image_path)
img, ratio = preprocess(origin_img, input_shape)
if args.ipu:
providers = ["VitisAIExecutionProvider"]
provider_options = [{"config_file": args.provider_config}]
else:
providers = ['CUDAExecutionProvider', 'CPUExecutionProvider']
provider_options = None
session = ort.InferenceSession(args.model, providers=providers, provider_options=provider_options)
# NCHW format
# ort_inputs = {session.get_inputs()[0].name: img[None, :, :, :]}
# NHWC format
ort_inputs = {session.get_inputs()[0].name: np.transpose(img[None, :, :, :], (0, 2 ,3, 1))}
outputs = session.run(None, ort_inputs)
outputs = [np.transpose(out, (0, 3, 1, 2)) for out in outputs] # for NHWC format
dets = postprocess(outputs, input_shape, ratio)
if dets is not None:
final_boxes, final_scores, final_cls_inds = dets[:, :4], dets[:, 4], dets[:, 5]
origin_img = vis(origin_img, final_boxes, final_scores, final_cls_inds,
conf=args.score_thr, class_names=COCO_CLASSES)
mkdir(args.output_dir)
output_path = os.path.join(args.output_dir, os.path.basename(args.image_path))
cv2.imwrite(output_path, origin_img)
- 对单张图像运行推理
python infer_onnx.py -m yolox-s-int8.onnx -i Path\To\Your\Image --ipu --provider_config Path\To\vaip_config.json
注意:vaip_config.json 位于 Ryzen AI 的安装包中(参考 安装)
- 测试量化模型的精度
python eval_onnx.py -m yolox-s-int8.onnx --ipu --provider_config Path\To\vaip_config.json
性能
| 指标 | IPU 上的精度 |
|---|---|
| AP@0.50:0.95 | 0.370 |
@article{yolox2021,
title={YOLOX: Exceeding YOLO Series in 2021},
author={Ge, Zheng and Liu, Songtao and Wang, Feng and Li, Zeming and Sun, Jian},
journal={arXiv preprint arXiv:2107.08430},
year={2021}
}
amd/yolox-s
作者 amd
object-detection
↓ 0
♥ 2
创建时间: 2023-12-04 08:26:31+00:00
更新时间: 2024-01-15 02:40:54+00:00
在 Hugging Face 上查看文件 (8)
.gitattributes
README.md
coco.py
demo_utils.py
eval_onnx.py
infer_onnx.py
requirements.txt
yolox-s-int8.onnx
ONNX