feat: export classifier with YOLO OpenVINO interface
This commit is contained in:
@@ -801,6 +801,34 @@ ultralytics 自己还会在 `runs/detect/film/` 下写:
|
||||
配置支持 `_base_` 继承与命令行 `--set a.b.c=value` 覆盖,见 [utils/config.py](utils/config.py)。
|
||||
新增骨架 / 数据集只需用注册表装饰器注册,再在 yaml 里按 `name` 引用。
|
||||
|
||||
## 分类模型复用 YOLO OpenVINO 接口
|
||||
|
||||
生产端只使用类别时,可以将分类器导出成与既有 YOLO IR 相同的输入输出接口:
|
||||
|
||||
```bash
|
||||
uv pip install openvino
|
||||
uv run python scripts/export_classifier_openvino.py \
|
||||
--checkpoint runs/classify/best.pth \
|
||||
--template runs/detect/models/film_128_20261013_0902_openvino_model/film_128_20261013_0902.xml \
|
||||
--out runs/classify/models/resnet18_128_yolo_adapter
|
||||
```
|
||||
|
||||
`--template` 请指定实际部署的 YOLO `.xml`,其同目录需要有 `metadata.yaml`。
|
||||
脚本读取分类检查点的配置和同目录 `eval_report.json` 中的类别顺序;也可用
|
||||
`--classes classes.txt` 或 `--classes eval_report.json` 明确指定分类器的类别顺序。
|
||||
两者类别集合不一致、训练预处理不受支持或输入尺寸不匹配时会拒绝导出。
|
||||
|
||||
产出的 XML/BIN 使用模板文件名,输入为 RGB float32 BCHW、值域 `[0,1]`。
|
||||
逐图标准化按训练配置嵌入模型,分类概率按 YOLO 类别顺序排列。
|
||||
输出保持 `[1,4+nc,anchors]`:仅第一个候选携带全图伪框及 Softmax 概率,其他候选为零。
|
||||
伪框是像素 `cx,cy,w,h`,不表示缺陷位置。脚本不进行 resize,图片必须已切为目标尺寸。
|
||||
|
||||
部署时成对替换 XML/BIN;使用元数据的程序也需同步 `metadata.yaml`。
|
||||
仓库的 `deploy/cpp` 解码器可直接读取适配模型,生产代码若有额外硬编码则需核对。
|
||||
Softmax 分数不同于 YOLO 置信度,需在实际数据上确认过滤阈值。
|
||||
`normal` 也作为普通分类结果返回;原图被切成多片时,每片各返回一个分类结果。
|
||||
输出目录必须是新目录,原有模型不会被覆盖。
|
||||
|
||||
## 开发
|
||||
|
||||
```bash
|
||||
|
||||
Reference in New Issue
Block a user