demo_system_algorithm/docs/superpoint.md

4.3 KiB
Raw Permalink Blame History

SuperPoint — 自监督关键点检测与描述子

概述

SuperPoint 是一种端到端的自监督 / 半监督学习关键点检测与描述子提取网络,能够同时输出图像中关键点的位置与置信度以及每个关键点的局部描述子,在图像匹配和三维视觉任务中表现优异。

核心特性

特性 说明
模型类型 关键点检测 + 描述子提取
关键点输出 空间位置 + 置信度分数
描述子维度 256 维浮点向量
输入尺寸 120 × 160 灰度图
训练方式 自监督Synthetic → Homographic Adaptation

模型架构

graph LR
    A["输入灰度图<br/>120×160"] --> B["共享编码器"]
    B --> C["关键点头"]
    B --> D["描述子头"]
    C --> E["热力图 20×15×65"]
    D --> F["描述子 20×15×256"]
    E --> G["Softmax + 像素洗牌"]
    G --> H["关键点坐标"]
    F --> I["L2 归一化"]
    I --> J["256D 描述子"]
  • 关键点头Interest Point Head — 输出 20×15×65 热力图64 个网格单元 + 1 个 dustbin
  • 描述子头Descriptor Head — 输出 20×15×256 的半稠密描述子
  • 共享编码器 — 轻量 VGG 风格网络,降低计算量

目标应用场景

  • 视觉 SLAM — 实时定位与地图构建
  • 三维重建 — 多视图特征点匹配
  • 图像拼接 — 全景图像配准
  • 视觉定位 — 查询图像与数据库图像的匹配定位

参考来源


输入 / 输出规格

模型接口

方向 名称 数据类型 维度 尺寸 说明
输入 INPUT:0 UINT8 4D 1 × 1 × 120 × 160 输入灰度图 (H×W=120×160)
输出 OUTPUT:0 FP32 4D 1 × 65 × 15 × 20 关键点热力图
输出 OUTPUT:1 FP32 4D 1 × 256 × 15 × 20 描述子特征图

输出空间分辨率 20×15 为输入尺寸 160×120 经过 8 倍下采样1/8 分辨率)。


后处理流程

flowchart TD
    subgraph 关键点检测
        A["热力图 20×15×65"] --> B["Softmax + Refine"]
        B --> C["像素洗牌还原分辨率"]
        C --> D["阈值筛选"]
        D --> E["NMS 非极大抑制"]
        E --> F["稳定关键点坐标"]
    end

    subgraph 描述子匹配
        G["描述子 256D"] --> H["L2 归一化"]
        H --> I["最近邻匹配"]
        F --> J["匹配对筛选"]
        I --> J
        J --> K["RANSAC 几何验证"]
        K --> L["最终匹配结果"]
    end

    subgraph 可视化
        L --> M["绘制匹配连线"]
        F --> N["绘制特征点"]
    end

步骤说明

步骤 操作 说明
1 Softmax + Refine 对 65 通道热力图做 Softmax去除 dustbin 通道
2 像素洗牌 将 20×15×64 还原为 160×120 分辨率
3 阈值筛选 保留置信度超过阈值的关键点
4 NMS 非极大值抑制,确保关键点分布均匀
5 描述子匹配 使用最近邻进行跨图像匹配
6 RANSAC 几何一致性检查,去除外点

执行与性能

运行方式

python superpoint.py

性能指标

指标 数值
推理平台 边缘板卡NPU
推理时间 ~0.946 ms
输出 1 FE 均值误差 0.009975
输出 1 FE 最大误差 0.107160
输出 2 FE 均值误差 0.024283
输出 2 FE 最大误差 0.158191

SuperPoint 推理速度极快(不到 1ms非常适合实时特征点提取。


输出示例

特征点检测 & 匹配

图像 结果
第1张图 — 特征点 特征点1
第2张图 — 特征点 特征点2
匹配结果 匹配结果
  • 特征点图上的圆点表示检测到的关键点位置
  • 匹配图中连线表示两图之间的匹配点对
  • 结果保存路径:../resource/superpoint/