| --- |
| base_model: |
| - google/owlv2-base-patch16-finetuned |
| pipeline_tag: zero-shot-object-detection |
| tags: |
| - owlv2 |
| --- |
| # OWLv2 on AXERA NPU |
|
|
| 本仓库基于 [google/owlv2-base-patch16-finetuned](https://huggingface.co/google/owlv2-base-patch16-finetuned),面向 AXERA NPU 平台完成模型移植、量化部署与精度验证。 |
|
|
| 项目重点包括: |
|
|
| - OWLv2 模型适配与部署落地 |
| - 面向 AXERA 工具链的量化流程 |
| - 板端推理联调 |
| - 与原始框架结果的精度对齐与验证 |
|
|
| 详细使用方式请参考 [HOW_TO_USE.md](./HOW_TO_USE.md)。 |
|
|
| ## 1. 原始模型仓库简介 |
|
|
| [OWLv2](https://huggingface.co/google/owlv2-base-patch16-finetuned) 是 Google 提出的开放词汇目标检测模型。与传统只能识别固定类别的检测器不同,OWLv2 可以结合文本提示词完成零样本目标检测,适合需要灵活扩展类别的场景。 |
|
|
| `google/owlv2-base-patch16-finetuned` 是 Hugging Face 上发布的基础版本之一,通常用于: |
|
|
| - 文本条件目标检测 |
| - 开放词汇/零样本检测 |
| - 模型部署与效果验证 |
|
|
| 原始模型通常以“图像 + 文本查询”作为输入,输出候选框、类别匹配结果和对应置信度。 |
|
|
| ## 2. 本仓库说明 |
|
|
| 本仓库不是对 OWLv2 进行重新训练,而是围绕 AXERA NPU 平台打通从原始模型到端侧部署的完整链路,主要包含: |
|
|
| - 模型准备与格式转换 |
| - 量化与编译 |
| - 板端推理验证 |
| - 精度对比与结果分析 |
|
|
| 如果需要查看完整操作步骤、环境依赖、命令示例和验证流程,请直接阅读 [HOW_TO_USE.md](./HOW_TO_USE.md)。 |
|
|
| ## 3. 仓库结构 |
|
|
| 以下为本仓库核心内容示意,具体请以实际文件为准: |
|
|
| ```text |
| . |
| ├── README.md # 项目简介、目录说明与演示 |
| ├── HOW_TO_USE.md # 环境准备、模型转换、量化、部署与验证说明 |
| └── ... # 其余与 AXERA NPU 适配、量化和精度验证相关的脚本/资源 |
| ``` |
|
|
| 如果仓库中包含导出脚本、量化配置、测试样例或结果文件,通常可按以下职责理解: |
|
|
| - `export / convert`:原始模型导出与前后处理适配 |
| - `quantize / build`:量化、编译与部署产物生成 |
| - `demo / samples`:推理示例与可视化结果 |
| - `eval / test`:精度验证与结果对比 |
|
|
| ## 4. 使用流程概览 |
|
|
| 完整步骤请参考 [HOW_TO_USE.md](./HOW_TO_USE.md)。一般流程如下: |
|
|
| 1. 准备 Python、Transformers 与 AXERA 相关环境 |
| 2. 获取或导出 OWLv2 模型 |
| 3. 按 AXERA 工具链要求完成量化与编译 |
| 4. 在 AXERA NPU 平台运行推理 |
| 5. 对比原始框架与 NPU 输出,完成精度验证 |
|
|
| ## 5. 演示内容 |
|
|
| > 以下内容用于 README 展示,命令、日志与指标请以 `HOW_TO_USE.md` 和仓库实际结果为准。 |
|
|
| ### 5.1 文本提示词检测示意 |
|
|
| 输入图像中希望检测的目标类别: |
|
|
| ```text |
| ["person", "car", "bus"] |
| ``` |
|
|
| 示例输出: |
|
|
| ```text |
| [INFO] Detected: person | score=0.92 | bbox=[56, 43, 188, 420] |
| [INFO] Detected: car | score=0.88 | bbox=[210, 260, 472, 418] |
| [INFO] Detected: bus | score=0.81 | bbox=[489, 120, 910, 430] |
| ``` |
|
|
| ### 5.2 AXERA NPU 部署流程示意 |
|
|
| ```text |
| PyTorch / Transformers |
| │ |
| ├── 模型导出 |
| │ |
| ├── 量化校准 |
| │ |
| ├── AXERA 编译部署 |
| │ |
| └── 板端推理与精度验证 |
| ``` |
|
|
| ### 5.3 精度验证示意 |
|
|
| | 验证项 | 说明 | |
| |---|---| |
| | 框位置对齐 | 对比原始框架与 NPU 输出框坐标是否一致或接近 | |
| | 置信度对齐 | 关注量化前后 score 排序与数值偏移 | |
| | 类别匹配 | 检查文本提示词对应的检测类别是否正确 | |
| | 量化损失 | 评估 INT8 部署后精度下降是否在可接受范围内 | |
|
|
| ### 5.4 性能统计 |
|
|
| | 模型版本 | 平台 | 推理时间 (ms) | |
| |---|---|---| |
| | OWLv2 image 4cls | 650N | 205.8 | |
| | OWLv2 text 4cls | 650N | 2.16 | |
| | OWLv2 post 4cls | 650N | 34.38 | |
|
|
| ## 6. 说明 |
|
|
| - 本仓库聚焦于 `google/owlv2-base-patch16-finetuned` 在 AXERA NPU 平台上的移植与验证。 |
| - 详细环境、命令、量化参数和板端操作步骤请查看 [HOW_TO_USE.md](./HOW_TO_USE.md)。 |
| - 若需补充真实演示图、日志和精度表,可直接在本 README 的演示章节中追加。 |
|
|
| ## 7. 参考链接 |
|
|
| - Hugging Face 模型页:<https://huggingface.co/google/owlv2-base-patch16-finetuned> |
| - 使用说明:[`HOW_TO_USE.md`](./HOW_TO_USE.md) |