Neural Map Compression: Shrinking 3D Maps 100x

Using neural representations to dramatically compress 3D maps - enabling device-side map storage and faster queries.

Evyatar Bluzer
3 min read

Every conversation about scaling VPS eventually hits the same wall: map size. A city block runs around 100MB of point clouds and features, which is how the original architecture got to petabytes. Neural compression can shrink that dramatically while keeping localization accuracy close to the original. It was the first technical bet on the 2022 list, and it is what we have been working on.

Why compress maps at all?

A traditional map stores explicit 3D points plus descriptors - roughly 100MB per city block - and a query means searching through all of those points. A neural map replaces that with a learned implicit representation, about 1MB of network weights, queried by running inference. That is a 100x reduction, and it buys three concrete things: maps small enough to live on device with no cloud query, faster retrieval because the search space shrinks, and less data over the wire.

NeRF-Based Approaches

Neural Radiance Fields (NeRF) learn a scene representation:

(x, y, z, direction) → Network → (color, density)

For localization the requirements are different from rendering. Features need to stay consistent across viewpoints, be distinctive enough for matching, and pack into a compact representation. So we are adapting NeRF for localization rather than rendering, which changes what the network has to be good at.

Implementation

Training

We start from the images and poses produced by mapping and learn a network that encodes the scene:

Scene Images → Encoder → Compact Representation → Decoder → Synthesized Views

Trained to minimize reconstruction error.

Localization

Given a query image, find the pose that best explains it under the neural map:

Query + Neural Map → Optimization → Best Pose

The pose gets refined iteratively until the synthesized view matches the query.

Results

On the VPS benchmark, the traditional map gives 73% recall@1m at 100MB. The neural version gives 68% recall@1m at 1MB, and growing the network to 2MB recovers 71%. A few points of recall for two orders of magnitude in storage. Often an acceptable trade.

Hybrid Approaches

Pure neural representations lose some of the distinctive features that matching relies on. The hybrid keeps a neural representation for most of the scene and explicit features for distinctive landmarks, which gets you small and accurate at the same time. Our current best hybrid sits at 5MB and hits 72% recall@1m, against the 100MB baseline's 73%.

Map size against recallA scatter of four labeled points on a log axis of map size against recall at one meter; a dashed line marks the baseline recall and the hybrid point is highlighted.125102050100Map size per city block (MB, log scale)6668707274recall@1m (%)Traditional map: 100 MB, 73%Neural: 1 MB, 68%Neural: 2 MB, 71%Hybrid: 5 MB, 72%
Recall at 1 m against map size per city block on the VPS benchmark: the hybrid gives up one point of recall for a twentieth of the storage.

Challenges

None of this is free. Training time is the big one: each location needs individual training, hours of GPU time apiece. Update latency follows from that - we cannot quickly refresh a neural map when the scene changes, and scenes change constantly. And neural interpolation can fail at unusual viewpoints in ways explicit maps do not.

Deployment Path

The rollout has three stages: offline compression, where maps get compressed before deployment; hybrid serving, neural for the bulk of the scene with explicit features for disambiguation; then device-side maps, downloaded once and used without connectivity. The target for that last stage is Quest 3. Whether we can retrain neural maps fast enough when the world changes underneath them is the question that decides it.

Comments