z
zkx_/cv_tinynas_uav-detection_damoyolo-ascend
模型介绍文件和版本Pull Requests讨论分析
下载使用量0

cv_tinynas_uav-detection_damoyolo on Ascend NPU

1. 简介

本文档记录 DamoYOLO TinyNAS 无人机检测模型在昇腾 NPU (Ascend 910B3) 上的迁移适配与精度验证结果。

本模型与同系列 DamoYOLO 模型(人头/人体/安全帽检测)共享相同的 TinyNAS + GiraffeNeckV2 + ZeroHead 架构,差异仅在于训练数据——本模型针对无人机空中目标检测场景进行训练。

相关获取地址:

  • 权重下载地址(ModelScope):https://modelscope.cn/models/damo/cv_tinynas_uav-detection_damoyolo
  • 权重下载地址(HuggingFace Mirror):https://hf-mirror.com/damo/cv_tinynas_uav-detection_damoyolo
  • DamoYOLO 论文:https://arxiv.org/abs/2211.15459

参考文档:

  • 同系列适配文档:cv_tinynas_head-detection_damoyolo-ascend/README.md

2. 验证环境

组件版本
CANN8.5.1
torch2.8.0
torch_npu2.8.0.post4
modelscope1.37.0
timmlatest
opencv-python-headless4.13.0
  • NPU:Ascend 910B3,单卡推理
  • 模型大小:约 16.3M 参数
  • 输入:[1, 3, 640, 640] RGB 图像

3. 推理启动

3.1 环境准备

pip install torch==2.8.0 torch_npu==2.8.0.post4 \
    -i https://mirrors.huaweicloud.com/repository/pypi/simple \
    --trusted-host mirrors.huaweicloud.com

pip install modelscope==1.37.0 opencv-python-headless numpy \
    timm thop easydict matplotlib \
    -i https://mirrors.huaweicloud.com/repository/pypi/simple \
    --trusted-host mirrors.huaweicloud.com

3.2 下载模型权重

modelscope download --model damo/cv_tinynas_uav-detection_damoyolo \
    --local_dir ./cv_tinynas_uav-detection_damoyolo

3.3 命令行推理

python inference.py --image sky.jpg --device npu

3.4 Python API

from inference import run_inference
result = run_inference("sky.jpg", device="npu")
print(f"检测到 {len(result['boxes'])} 个无人机, 耗时 {result['time_ms']:.1f}ms")

4. Smoke 验证

python evaluate.py

验证结果:

  • CPU 推理输出 backbone 特征图 [1, 128, 80, 80],正常
  • NPU 推理输出同形状特征图,正常

5. 性能参考

测试条件:input [1, 3, 640, 640],10 轮取平均。

指标CPUNPU (Ascend 910B3)
平均耗时 (完整模型)~4200 ms~29 ms
加速比—145x

6. 精度评测

6.1 评测方法

对比 CPU (PyTorch) 与 NPU (torch_npu) 在相同随机输入下骨干网络 (TinyNAS backbone) 的输出特征图。

6.2 评测结果

指标数值
特征图形状[1, 128, 80, 80]
鲁棒平均相对误差0.038%
精度要求平均相对误差 < 1%
精度评测通过

7. 注意事项

  1. 依赖项:需要 timm、thop、easydict,首次加载需 trust_remote_code=True
  2. 同系列模型:与人头/人体/安全帽检测共享适配代码,仅需修改 --model_dir
  3. 输入格式:RGB 三通道,640×640,像素范围 [0, 1]
  4. 后处理:NMS 在 CPU 执行,输出 DetectionOutput 含 boxes/scores
  5. 首次推理:有算子编译开销(约 15-30s),后续稳定在 ~29ms