本文档记录 DamoYOLO TinyNAS 无人机检测模型在昇腾 NPU (Ascend 910B3) 上的迁移适配与精度验证结果。
本模型与同系列 DamoYOLO 模型(人头/人体/安全帽检测)共享相同的 TinyNAS + GiraffeNeckV2 + ZeroHead 架构,差异仅在于训练数据——本模型针对无人机空中目标检测场景进行训练。
相关获取地址:
参考文档:
cv_tinynas_head-detection_damoyolo-ascend/README.md| 组件 | 版本 |
|---|---|
CANN | 8.5.1 |
torch | 2.8.0 |
torch_npu | 2.8.0.post4 |
modelscope | 1.37.0 |
timm | latest |
opencv-python-headless | 4.13.0 |
Ascend 910B3,单卡推理[1, 3, 640, 640] RGB 图像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.commodelscope download --model damo/cv_tinynas_uav-detection_damoyolo \
--local_dir ./cv_tinynas_uav-detection_damoyolopython inference.py --image sky.jpg --device npufrom inference import run_inference
result = run_inference("sky.jpg", device="npu")
print(f"检测到 {len(result['boxes'])} 个无人机, 耗时 {result['time_ms']:.1f}ms")python evaluate.py验证结果:
[1, 128, 80, 80],正常测试条件:input [1, 3, 640, 640],10 轮取平均。
| 指标 | CPU | NPU (Ascend 910B3) |
|---|---|---|
| 平均耗时 (完整模型) | ~4200 ms | ~29 ms |
| 加速比 | — | 145x |
对比 CPU (PyTorch) 与 NPU (torch_npu) 在相同随机输入下骨干网络 (TinyNAS backbone) 的输出特征图。
| 指标 | 数值 |
|---|---|
| 特征图形状 | [1, 128, 80, 80] |
| 鲁棒平均相对误差 | 0.038% |
| 精度要求 | 平均相对误差 < 1% |
| 精度评测 | 通过 |
timm、thop、easydict,首次加载需 trust_remote_code=True--model_dirDetectionOutput 含 boxes/scores