Skip to content
プロジェクト

WangYuLin-SEU/WAPR has 75 GitHub stars and 2 forks. Star changes are not measured yet. Last checked 2026-11-14 14:12 UTC. Last push 2026-11-04.

この数値の測り方

計測したスター増加

24時間
履歴を収集中
7日間
履歴を収集中
15日間
履歴を収集中
1か月
履歴を収集中

期間ごとの純増数です。期間は重複しており、日別の値ではありません。未計測の値は空欄です。スター数は注目度の指標であり、品質の保証ではありません。

概要

[ECCV 2026] Wide-angle pose refinement for unseen objects from RGB-D, camera intrinsics, a metric mesh, and a mask or box.

機械学習

English   中文

WAPR

WAPR · Wide-Angle Pose Refinement

ECCV 2026

A foundation model for unseen-object 6D pose estimation

Yulin Wang*   ·   Mengting Hu*   ·   Hongli Li   ·   Jianghao Zhou   ·   Chen Luo

* Equal contribution. Affiliations are listed on the project page.

arXiv HuggingFace PyPI downloads

Docs Poster BOP

Large-angle correction · 12 initial hypotheses by default · Batched multi-object inference

 Awards    Gallery    Method    Get started    Citation & license


WAPR refines the 6D pose of an object absent from pose-model training. Provide RGB-D, camera intrinsics, a metric mesh, and a mask or box. Training covers candidate rotation errors up to 90°. The default recipe uses 12 hypotheses, three WAPR updates, two SAPR updates, and WBPS ranking. A metric mesh is still required at inference.

Capabilities

  • Wide-angle pose refinement: trained with rotation perturbations up to 90°; mask and box inputs, without per-object pose-model fine-tuning.
  • Batched RGB-D pose estimation: approximately 88–90 supplied instances/s on RTX 5090 with OpenGL + TensorRT FP16, 12 hypotheses per instance in the warmed pose stage; excludes 2D detection and NMS. Measurement conditions.
  • Large-motion 6D pose tracking: the stride-32 mustard comparison reaches 100% ADD recall / 4.6 mm mean ADD for WAPR versus 68.2% / 36.3 mm for FoundationPose, without pose reinitialization. These are sequence-specific results. Video and protocol.
  • Pose scoring and optional lost-track recovery: WBPS ranks pose candidates; the separate DINOv2 recovery example demonstrates candidate search and scoring, including failures. Tracking guide.
  • Four checkpoints: masked WAPR, mask-free WAPR, SAPR and WBPS; examples cover localization, detection, tracking, reconstruction and robot simulation. A metric mesh remains required for pose inference.

2025 challenge certificates

The certificates included in this repository are shown below; click to view the certificates. BPC Best One-shot Solution / 4th Place is from WAPR, and Second Place from FRTPose-WAPR. BOP certificates name FRTPose-WAPR system submissions with different 2D detectors.

Eight BOP and BPC challenge certificates

Award sources and system descriptions


Gallery

Wide-angle refinement: three objects, three methods

TUD-L dragon: WAPR / MegaPose / FoundationPose, five updates

The TUD-L dragon starts at 100°, with all five updates shown. Below: the LM-O driller starts at 80°, and the YCB-V clamp at 120°. All three methods use the same initial rotation with translation fixed to ground truth. The 100°/120° cases exceed WAPR’s 90° training perturbation range; these individual examples are not aggregate accuracy.

LM-O driller YCB-V clamp
LM-O driller: three-method rotation comparison YCB-V clamp: three-method rotation comparison
WAPR: 80° → 4° WAPR: 120° → 2°

Comparison protocol and results


6D pose estimation across seven BOP datasets

6D pose estimation across seven BOP datasets

Pose localization examples on LM-O, T-LESS, TUD-L, IC-BIN, YCB-V, HB and ITODD. Colored contours and 3D bounding boxes show the predicted poses.

Explore the interactive results and ground-truth comparison


Pose tracking across larger frame intervals

Mustard tracking comparison

Both methods initialize from the same predicted mask and update poses every 32 frames. This mustard sequence does not reinitialize poses. Tracking can lose the target; these recordings do not guarantee recovery on every sequence.

Cracker box · stride 1

Cracker-box tracking comparison

Sugar box · stride 32

Independent DINOv2 recovery comparison

Supplied initial mask with independent DINOv2 recovery; each method uses its own state and scorer.


TACO: roller and wooden box

TACO: WAPR estimates beside motion-capture reference poses

Frames 80–109: each tracking frame uses the final SAPR update. WAPR on the left and TACO motion-capture reference on the right. Image-contour overlap and 6D pose error are different metrics.


ROBI: positive and negative reflective-screw predictions

ROBI: WAPR, AAE, PPF and Line2D; blue positives and red negatives

Each annotation selects its nearest saved candidate by symmetry-aware ADD from all saved predictions. Blue denotes ADD < 0.1d; red denotes failures. This is a post-hoc nearest-candidate comparison, not one-to-one recall of normal outputs. Click to inspect each instance’s error and status.


White wedges: 6D pose predictions

White wedges in a bowl: predicted 6D poses

Open the wedge 3D viewer. HCCEPose frame 000003 shows nine saved candidates; select an object to highlight its pose. This frame has no ground-truth poses.


Reconstructed mesh for cross-scene pose estimation

Source image, reconstructed mesh, cross-scene 2D detection and 6D pose

Scene A image → reconstructed mesh → 2D detection in scene B → WAPR 6D pose. Blue highlights the highest-scoring prediction; gray marks the lower-scoring results.

2D detection 6D pose and reconstructed mesh
Cross-scene 2D detection Cross-scene 6D pose and reconstructed mesh

Source: the first YCBInEOAT mustard0 frame. Target: YCB-V scene 50, frame 1130. Target annotations are excluded from prediction. The reconstructed source mesh is used for pose estimation in the target frame; see the linked experiment for its configuration.

Cross-scene experiment and details


Robot simulation: table and wrist cameras

Table and wrist camera pose tracking in robot simulation

▶ Play the two-camera simulation · Website player and experiment details

Top: table camera on the left, wrist camera on the right. Bottom: their respective fields of view. Red contours show estimated poses; green shows simulator ground truth.

A saved temporal-tracking experiment; the wrist view can lose the target when visibility is limited. Blue side-grasp lines are visualizations, not new control commands at every frame.


Method overview

Region → 12 hypotheses → WAPR × 3 → SAPR × 2 → WBPS → 6D pose

WBPS selects the pose within each instance’s group; its public score is (100 - max(between_group)) / 200 over that complete group.

This is the current default estimation recipe, distinct from the five-update rotation comparison above. WAPR is trained with initial rotation perturbations up to 90°; SAPR handles smaller corrections, and WBPS ranks the candidates. Rendering and inference batch supplied instances while keeping each object's scoring group independent. Settings live in wapr/recipe.py.

A box can seed translation without segmentation. For seven-channel WAPR, the missing observed mask is zero; box depth and the network cue are separate. Choosing mask or box input.

The four SA6D-trained checkpoints are masked WAPR, unmasked WAPR, SAPR, and WBPS. Optional reconstruction examples prepare a mesh when CAD is unavailable; segmentation, mesh generation and robot planning are separate components, not outputs of the WAPR refiner itself.

Generated-mesh alignment defaults to gray geometry for WAPR/SAPR refinement and WBPS scoring. DINOv2 then ranks the retained refined views using the original mesh appearance; that appearance is also preserved for display. Reconstruction recipe.

2025 BOP/BPC awards and system results · Backend measurements and timing scope. See each comparison for its device, input configuration and timing scope.


Get started

Use Python 3.10 or newer on Linux or Windows with an NVIDIA GPU and CUDA-enabled PyTorch. OpenGL rendering requires the CUDA toolkit and a C++ compiler (MSVC on Windows). Install Git and make sure git --version works before preparing detection.

python -m pip install -U wapr
python -m wapr.bootstrap --feature core dinov2 det2d sam2
python -c "from wapr.bootstrap import export_examples; export_examples('wapr_examples')"
python wapr_examples/02_one_category_one_instance.py

This setup prepares 2D detection, segmentation and 6D pose estimation, including TensorRT and OpenGL. It retains your existing PyTorch installation and asks for confirmation before replacing other installed dependencies. NVIDIA CUDA inference requires Linux or Windows.

Add features when needed:

  • Reconstruction: see the reconstruction setup for SAM3D and RoMa. Language-guided examples also use Qwen and UniPose9D.
  • Robotics: follow the robot simulation setup.
  • Tracking with an existing CAD model: use the standard pose and tracking examples; reconstruction is optional.

The first setup downloads model resources and builds GPU components. Set WAPR_CACHE_DIR to an absolute path on a drive with sufficient space. Weights, environments and shared samples are stored in cache/weights/, cache/environments/ and cache/samples/; visualizations are saved separately in outputs/<number_task>/. Subsequent runs reuse the cache. See the installation guide for requirements and resource locations.

Read the first-pose walkthrough alongside this script; example 01 is not a prerequisite. The example's pose overlay is enabled by default; use visualize in wapr/recipe.py to enable or disable it. Example 02 uses a supplied annotated visible mask, not automatic 2D detection.

Your task Start here
Pose from a supplied region 02 · One object
Find objects, then estimate their poses 04 · Known counts / 05 · Unknown counts
Use your own RGB-D and CADs 06 · Custom scene
Track one or several objects 08 · Single instance / 09 · TACO
Reconstruct a mesh and reuse it 11 · Reconstruction / 12 · Cross-scene pose

All 17 examples · Input conventions · BOP export · Extension setup

Practical scope: unseen objects still require a metric mesh at inference. Depth, mesh scale and region quality affect alignment; symmetry and occlusion can leave ambiguity. Scores are ranking signals, not calibrated success probabilities.

See the Docs website for complete usage and input conventions.


Windows supports pose and detection examples 01–10. Examples 11–17 and the supplied SAM3D, robot and RoMa setups require Linux. Reconstruction and robot environments are prepared separately on request. Explicit requests for these unsupported setups stop with a platform message. Preparing GroundingDINO source requires the Git command-line tool on PATH; install Git and verify git --version before preparation.

Citation and license

@InProceedings{wang2026wapr,
    author    = {Wang, Yulin and Hu, Mengting and Li, Hongli and Zhou, Jianghao and Luo, Chen},
    title     = {WAPR: A Foundation Model for Wide-Angle Refinement in Unseen Object Pose Estimation},
    booktitle = {ECCV},
    year      = {2026},
    pages     = {221-239},
    volume    = {17016}
}

Authorship and rights · [email protected].

Code: LGPL-2.1-only. Four first-party checkpoints: CC BY-ND 4.0, allowing commercial use with its attribution and redistribution conditions; modified weights may not be publicly redistributed under this license. Third-party components retain their own terms: notices · acknowledgments.

Enterprise versions and customization: [email protected].

中文版本 · Back to top

関連プロジェクトを探す