Perceive-then-Plan: Layout-as-Policy for Monocular 3D Scene Layout Estimation
Paper • 2605.25326 • Published
How to use Colezwhy/Perceive-then-Plan with Transformers:
# Use a pipeline as a high-level helper
from transformers import pipeline
pipe = pipeline("image-text-to-text", model="Colezwhy/Perceive-then-Plan") # pip install -U transformers accelerate
# Load model directly
from transformers import AutoModel
model = AutoModel.from_pretrained("Colezwhy/Perceive-then-Plan", device_map="auto")How to use Colezwhy/Perceive-then-Plan with vLLM:
# Install vLLM from pip:
pip install vllm
# Start the vLLM server:
vllm serve "Colezwhy/Perceive-then-Plan"
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:8000/v1/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "Colezwhy/Perceive-then-Plan",
"prompt": "Once upon a time,",
"max_tokens": 512,
"temperature": 0.5
}'docker model run hf.co/Colezwhy/Perceive-then-Plan
How to use Colezwhy/Perceive-then-Plan with SGLang:
# Install SGLang from pip:
pip install sglang
# Start the SGLang server:
python3 -m sglang.launch_server \
--model-path "Colezwhy/Perceive-then-Plan" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "Colezwhy/Perceive-then-Plan",
"prompt": "Once upon a time,",
"max_tokens": 512,
"temperature": 0.5
}'docker run --gpus all \
--shm-size 32g \
-p 30000:30000 \
-v ~/.cache/huggingface:/root/.cache/huggingface \
--env "HF_TOKEN=<secret>" \
--ipc=host \
lmsysorg/sglang:latest \
python3 -m sglang.launch_server \
--model-path "Colezwhy/Perceive-then-Plan" \
--host 0.0.0.0 \
--port 30000
# Call the server using curl (OpenAI-compatible API):
curl -X POST "http://localhost:30000/v1/completions" \
-H "Content-Type: application/json" \
--data '{
"model": "Colezwhy/Perceive-then-Plan",
"prompt": "Once upon a time,",
"max_tokens": 512,
"temperature": 0.5
}'How to use Colezwhy/Perceive-then-Plan with Docker Model Runner:
docker model run hf.co/Colezwhy/Perceive-then-Plan
Checkpoints for Perceive-then-Plan: Layout-as-Policy for Monocular 3D Scene Layout Estimation (NeurIPS 2026).
Paper · Project page · Code
| Folder | Model | Built on |
|---|---|---|
perceiver-2b/ |
Stage 1 Perceiver (2B) | Qwen3-VL-2B-Instruct, VGGT-1B |
git clone https://github.com/Colezwhy/Perceive-then-Plan
cd Perceive-then-Plan/perceiver
pip install -r requirements.txt
python tools/infer.py --eval-json data/omni3d/eval.json --image-root $OMNI3D/datasets \
--output results/predictions.json --limit 1000
from transformers import AutoProcessor
from ptp_perceiver.model import PerceiverForConditionalGeneration
model = PerceiverForConditionalGeneration.from_pretrained(
"Colezwhy/Perceive-then-Plan", subfolder="perceiver-2b", dtype="auto",
geometry_encoder_path="facebook/VGGT-1B")
processor = AutoProcessor.from_pretrained("Colezwhy/Perceive-then-Plan", subfolder="perceiver-2b")
The language and vision weights are derived from Qwen3-VL (Apache-2.0). The geometry encoder weights come from VGGT-1B and are distributed under the VGGT License (LICENSE_VGGT.txt).
@inproceedings{zhou2026perceivethenplan,
title={Perceive-then-Plan: Layout-as-Policy for Monocular 3D Scene Layout Estimation},
author={Zhou, Junwei and Tai, Yu-Wing},
booktitle={Advances in Neural Information Processing Systems},
year={2026}
}
Base model
Qwen/Qwen3-VL-2B-Instruct