Simplify FoveaVLA-Dual model card
Browse files
README.md
CHANGED
|
@@ -6,7 +6,6 @@ tags:
|
|
| 6 |
- robotics
|
| 7 |
- vision-language-action
|
| 8 |
- foveation
|
| 9 |
-
- metric-depth
|
| 10 |
- openpi
|
| 11 |
- pi05
|
| 12 |
- droid
|
|
@@ -15,90 +14,31 @@ tags:
|
|
| 15 |
|
| 16 |
# FoveaVLA-Dual
|
| 17 |
|
| 18 |
-
FoveaVLA-Dual is the dual-camera
|
| 19 |
|
| 20 |
-
|
|
|
|
|
|
|
|
|
|
| 21 |
|
| 22 |
-
|
| 23 |
-
|
| 24 |
-
## Model and observation contract
|
| 25 |
-
|
| 26 |
-
| Item | Value |
|
| 27 |
-
|---|---|
|
| 28 |
-
| Training/serving config | `foveavla_dual` |
|
| 29 |
-
| Exterior cameras | two exterior ZED stereo cameras, ordered physical-left then physical-right |
|
| 30 |
-
| RGB inputs | 4 streams: left full + ROI, right full + ROI |
|
| 31 |
-
| Depth inputs | 4 streams, aligned with the corresponding RGB inputs |
|
| 32 |
-
| Wrist camera | None |
|
| 33 |
-
| Robot actions | 7 absolute joint positions + 1 gripper command |
|
| 34 |
-
| Action prediction | 16 actions per query; execute 8 before observing again |
|
| 35 |
-
| Foveation prediction | Two ordered interaction boxes for t+8 |
|
| 36 |
-
| Model image resolution | 224 × 224 |
|
| 37 |
-
| Training data | DROID demonstrations with RoboInter interaction annotations |
|
| 38 |
-
| Checkpoint format | JAX/Orbax OCDBT |
|
| 39 |
-
|
| 40 |
-
The first query uses the full image as the ROI context. Later queries crop the newly captured image using the preceding t+8 prediction while retaining the full-image context. Crops use the released direct-rendering recipe with context scale 1.5.
|
| 41 |
-
|
| 42 |
-
Metric depth comes from the pinned Fast-FoundationStereo estimator on each ZED's own rectified stereo pair. Stereo input is 640 × 360; depth is left-imager-aligned optical-axis Z in meters, bounded to 0.2–3.0 m, with validity masks. Offline data preparation and online serving use the same conversion and crop geometry. The supported ZED SDK version is 5.1.2.
|
| 43 |
-
|
| 44 |
-
## Repository layout
|
| 45 |
-
|
| 46 |
-
The checkpoint is directly at the repository root:
|
| 47 |
|
| 48 |
```text
|
| 49 |
-
assets/
|
| 50 |
-
droid/norm_stats.json
|
| 51 |
params/
|
| 52 |
_CHECKPOINT_METADATA
|
| 53 |
-
README.md
|
| 54 |
```
|
| 55 |
|
| 56 |
-
|
| 57 |
|
| 58 |
-
##
|
| 59 |
|
| 60 |
-
|
| 61 |
|
| 62 |
```bash
|
| 63 |
-
uv venv --python 3.11
|
| 64 |
-
uv sync --locked
|
| 65 |
-
scripts/setup_fast_foundation_depth.sh
|
| 66 |
uv run --no-sync scripts/download_checkpoint.py --model=foveavla_dual
|
| 67 |
-
|
| 68 |
XLA_PYTHON_CLIENT_MEM_FRACTION=0.70 uv run --no-sync scripts/serve.py \
|
| 69 |
--model=foveavla_dual --checkpoint=checkpoints/foveavla_dual
|
| 70 |
```
|
| 71 |
|
| 72 |
-
|
| 73 |
-
|
| 74 |
-
For a direct Hub download:
|
| 75 |
-
|
| 76 |
-
```python
|
| 77 |
-
from huggingface_hub import snapshot_download
|
| 78 |
-
|
| 79 |
-
checkpoint_dir = snapshot_download(
|
| 80 |
-
repo_id="bingaochen/FoveaVLA-Dual",
|
| 81 |
-
local_dir="checkpoints/foveavla_dual",
|
| 82 |
-
allow_patterns=["assets/**", "params/**", "_CHECKPOINT_METADATA"],
|
| 83 |
-
)
|
| 84 |
-
```
|
| 85 |
-
|
| 86 |
-
Pass `checkpoint_dir` to `scripts/serve.py` with `--model=foveavla_dual`. Use the server entrypoint so that stereo depth is generated with the matching estimator. The checkpoint loads its own normalization statistics.
|
| 87 |
-
|
| 88 |
-
Before connecting the robot, check the software inference chain:
|
| 89 |
-
|
| 90 |
-
```bash
|
| 91 |
-
uv run --no-sync scripts/smoke_inference.py --host=127.0.0.1 --port=8000
|
| 92 |
-
```
|
| 93 |
-
|
| 94 |
-
See the [deployment guide](https://github.com/Stanford-TML/FoveaVLA/blob/main/docs/deployment.md) for the separate Python 3.10 DROID client, camera serials and ordering, supported robot embodiments, and real-robot commands.
|
| 95 |
-
|
| 96 |
-
## Intended use
|
| 97 |
-
|
| 98 |
-
This checkpoint supports research on foveation and robot manipulation with the released DROID deployment stack. Performance depends on camera placement, calibration, robot configuration, and task conditions. Camera alignment and physical task performance require validation on the target setup.
|
| 99 |
-
|
| 100 |
-
To train a new model, use `foveavla_dual` and the [data](https://github.com/Stanford-TML/FoveaVLA/blob/main/docs/data.md) and [training](https://github.com/Stanford-TML/FoveaVLA/blob/main/docs/training.md) guides. This inference archive cannot resume the original optimizer state.
|
| 101 |
-
|
| 102 |
-
## Acknowledgements
|
| 103 |
-
|
| 104 |
-
FoveaVLA builds on [OpenPI](https://github.com/Physical-Intelligence/openpi), [DROID](https://droid-dataset.github.io/droid/the-droid-dataset.html), [RoboInter](https://github.com/InternRobotics/RoboInter), and [Fast-FoundationStereo](https://github.com/NVlabs/Fast-FoundationStereo). See the code repository's license and Gemma notice; third-party models, datasets, and software retain their respective terms.
|
|
|
|
| 6 |
- robotics
|
| 7 |
- vision-language-action
|
| 8 |
- foveation
|
|
|
|
| 9 |
- openpi
|
| 10 |
- pi05
|
| 11 |
- droid
|
|
|
|
| 14 |
|
| 15 |
# FoveaVLA-Dual
|
| 16 |
|
| 17 |
+
FoveaVLA-Dual is the dual-camera variant of **FoveaVLA: Foveation Actions Replace the Wrist Camera in VLAs**. Built on π₀.₅, it uses two exterior RGB-D cameras with full images, predicted ROI crops, and matching depth. **No wrist camera is required.**
|
| 18 |
|
| 19 |
+
- **Inputs:** two exterior ZED stereo cameras in physical-left / physical-right order; robot state; language instruction.
|
| 20 |
+
- **Outputs:** 16 joint-position actions with gripper commands and two ordered interaction boxes for t+8. Execute 8 actions before the next query.
|
| 21 |
+
- **Training data:** DROID demonstrations with RoboInter interaction annotations.
|
| 22 |
+
- **Config:** `foveavla_dual`.
|
| 23 |
|
| 24 |
+
## Checkpoint
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 25 |
|
| 26 |
```text
|
| 27 |
+
assets/droid/norm_stats.json
|
|
|
|
| 28 |
params/
|
| 29 |
_CHECKPOINT_METADATA
|
|
|
|
| 30 |
```
|
| 31 |
|
| 32 |
+
The checkpoint is at the repository root. It includes inference weights and their normalization statistics; optimizer state is not included.
|
| 33 |
|
| 34 |
+
## Use
|
| 35 |
|
| 36 |
+
After setting up the [FoveaVLA server environment](https://github.com/Stanford-TML/FoveaVLA/blob/main/docs/deployment.md), run:
|
| 37 |
|
| 38 |
```bash
|
|
|
|
|
|
|
|
|
|
| 39 |
uv run --no-sync scripts/download_checkpoint.py --model=foveavla_dual
|
|
|
|
| 40 |
XLA_PYTHON_CLIENT_MEM_FRACTION=0.70 uv run --no-sync scripts/serve.py \
|
| 41 |
--model=foveavla_dual --checkpoint=checkpoints/foveavla_dual
|
| 42 |
```
|
| 43 |
|
| 44 |
+
See [Stanford-TML/FoveaVLA](https://github.com/Stanford-TML/FoveaVLA) for data preparation, training, and real-robot deployment. The deployment guide covers stereo-depth setup, GPU memory, camera calibration, and supported robot configurations.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|