eardoi/ufm-refine-npu
模型介绍
文件和版本
Pull Requests
讨论
分析

UFM-Refine - 昇腾 NPU 适配模型

UFM(UniFlowMatch)是 UniFlowMatch 团队开源的图像匹配/光流估计模型, 基于 DINOv2 编码器 + 光流/匹配头,输入图像对输出匹配结果。 本仓库为 华为昇腾 NPU(Ascend 910B 系列)推理适配版,支持 npu:0 一键推理。

模型简介

项目说明
模型infinity1096/UFM-Refine
架构UniFlowMatchClassificationRefinement(DINOv2 + 光流/分类细化头)
规模428.3 M 参数(FP32)
输入图像对 (1, 3, 448, 448) × 2
输出flow / confidence / covisible mask
任务图像匹配 / 光流估计
原始仓库UniFlowMatch/UFM
LicenseApache-2.0

环境要求

项目要求
硬件Ascend 910B 系列(≥1 卡,本仓库基于 910B4 验证)
CANN≥ 8.0
Python3.10 – 3.11
torch / torch_npu2.9.0 / 2.9.0.post2
依赖库uniflowmatch 源码 + UniCeption 子模块 + DINOv2 backbone

模型权重

注意:本仓库不包含模型权重文件(model.safetensors 约 1.8GB) 与 DINOv2 backbone(dinov2_vitl14_pretrain.pth 约 1.13GB)。

权重请从以下镜像获取:

curl -L -C - -A "Mozilla/5.0" -o model.safetensors \
  "https://hf-mirror.com/infinity1096/UFM-Refine/resolve/main/model.safetensors"

推理

python3 inference.py --device npu [--model_path ./model_src]

实测输出(昇腾 910B4)

$ python3 inference.py --device npu
[info] device = npu:0
[info] model arch     : UniFlowMatch (DINOv2 + 光流/匹配头)
      参数: 428.3 M
[info] input          : img1 (1, 3, 448, 448) + img2 (1, 3, 448, 448)
[info] inference done : 642.5 ms on npu
[info] 输出类型       : UFMOutputInterface
[info] 设备确认       : npu:0
[PASS] UFM-Refine NPU inference OK

适配说明

  • 模型为 UniFlowMatch 自定义架构(从 GitHub 源码获取 uniflowmatch + UniCeption),无 CUDA 特有 API。
  • DINOv2 backbone:需下载 dinov2_vitl14_pretrain.pth(1.13GB)至 ~/.cache/torch/hub/checkpoints/,uniflowmatch 会从 torch hub 缓存加载。
  • 输入结构:forward 接收 view1/view2 dict(含 img / symmetrized / data_norm_type 字段)。
  • 加载使用 local_files_only=True 完全离线。