SuperPoint

DeTone 2017 · Paper

One-line summary — Self-supervised interest point detector and descriptor trained via Homographic Adaptation, producing keypoints and 256-dim descriptors for a full image in a single ~70 FPS forward pass.

Problem

Classical detectors and descriptors (SIFT, ORB) are hand-crafted and brittle under illumination and viewpoint change, while supervised learning of keypoints is blocked by an awkward fact: unlike human-body keypoints, the notion of an “interest point” is semantically ill-defined, so there is no ground truth to annotate. Patch-based learned descriptors also required cropping around detections, preventing efficient full-image inference. SuperPoint asks how to train a joint detector + descriptor on real images without any manual labels, in a fully-convolutional model that computes pixel-level keypoints and descriptors in one forward pass.

Method & architecture

Shared encoder, two heads. A VGG-style encoder (eight 3x3 conv layers, 64-64-64-64-128-128-128-128, with three 2x2 max-pools) maps an H×WH \times W image to a Hc×WcH_c \times W_c grid of “cells” with Hc=H/8H_c = H/8, Wc=W/8W_c = W/8. Two decoder heads share this representation:

Synthetic pre-training (MagicPoint). The detector pathway is first trained on Synthetic Shapes — rendered quadrilaterals, triangles, lines, ellipses whose corner locations are unambiguous by construction. On this data MagicPoint reaches 0.971 mAP under imaging noise, vs FAST 0.061, Harris 0.213, Shi-Tomasi 0.157.

Homographic Adaptation. To cross the synthetic-to-real gap, an ideal detector should be covariant with homographies, x=H1fθ(H(I)){\bf x}=\mathcal{H}^{-1}f_{\theta}(\mathcal{H}(I)). Since a real detector is not perfectly covariant, responses are aggregated over NhN_h random homographic warps:

F^(I;fθ)=1Nhi=1NhHi1fθ(Hi(I))\hat{F}(I;f_{\theta})=\frac{1}{N_{h}}\sum_{i=1}^{N_{h}}\mathcal{H}_{i}^{-1}f_{\theta}(\mathcal{H}_{i}(I))

Run with Nh=100N_h=100 (diminishing returns beyond: +21% repeatability at 100 warps, +22% at 1000) over 80k MS-COCO images at 240x320, twice iteratively, this produces pseudo-ground-truth keypoints for self-supervised training — no human labels anywhere.

Joint training loss. Pairs of warped images with known homography H\mathcal{H} supervise both heads at once:

L(X,X,D,D;Y,Y,S)=Lp(X,Y)+Lp(X,Y)+λLd(D,D,S)\mathcal{L}(\mathcal{X},\mathcal{X}',\mathcal{D},\mathcal{D}';Y,Y',S)=\mathcal{L}_{p}(\mathcal{X},Y)+\mathcal{L}_{p}(\mathcal{X}',Y')+\lambda\mathcal{L}_{d}(\mathcal{D},\mathcal{D}',S)

Lp\mathcal{L}_p is a per-cell cross-entropy over the 65 classes. The descriptor hinge loss uses correspondence labels shwhw=1s_{hwh'w'}=1 iff the warped cell centre lands within 8 pixels, and margins mp=1m_p=1, mn=0.2m_n=0.2:

ld(d,d;s)=λdsmax(0,mpdTd)+(1s)max(0,dTdmn)l_{d}({\bf d},{\bf d}';s)=\lambda_{d}\, s\,\max(0,m_{p}-{\bf d}^{T}{\bf d}')+(1-s)\max(0,{\bf d}^{T}{\bf d}'-m_{n})

with λd=250\lambda_d=250 balancing sparse positives against abundant negatives and λ=0.0001\lambda=0.0001 balancing the two losses.

Results

Why it matters for SLAM

SuperPoint became the learned local feature of the deep-SLAM era: robust to illumination and viewpoint changes where ORB fails, yet fast enough for real-time front-ends. It is the standard backbone under SuperGlue/LightGlue and the hloc localization ecosystem, and has been dropped into ORB-SLAM-style systems (e.g., DXSLAM uses learned features in a classical pipeline). Homographic Adaptation itself became a widely reused self-supervision recipe for geometric learning.

Hands-on