VANP: Learning Where to See for Navigation with Self-Supervised Vision-Action Pre-Training
Paper β’ 2403.08109 β’ Published
VANP is a Self-Supervised Vision-Action model for visual navigation pre-training. Instead of detecting salient objects that are beneficial for tasks such as classification or detection, VANP learns to focus only on specific visual regions that are relevant to the navigation task.
The VANP checkpoint includes both the image encoder and the end-to-end policy.
| Model Name | Download Link |
|---|---|
| VANP | π₯ download .pth |
| Policy Only | π₯ download .pth |
Usage:
from query_model import VANPInference
# Initialize inference engine
vanp = VANPInference("VANP/checkpoint/VANP.pth", device="cuda")
# Preprocess observation window (last 6 frames at 4Hz = 1.5s history)
frames_tensor = vanp.preprocess_images(["f1.jpg", "f2.jpg", "f3.jpg", "f4.jpg", "f5.jpg", "f6.jpg"])
# Query policy with target local goal (x_meters_forward, y_meters_left)
waypoints, score = vanp.predict_trajectory(frames_tensor, goal=(5.0, -0.5))
# Returns (20, 2) array: 20 future waypoints over 5.0 seconds at 4Hz
print("Immediate waypoint (0.5s):", waypoints[1])
print("Horizon waypoint (5.0s):", waypoints[-1])
# Optional: Compute Grad-CAM visual attention heatmap
attention_map = vanp.compute_attention_map(frames_tensor, waypoints) # (224, 224) in [0, 1]