Daoxin Zhong, Jun Li, Michael Chuah
TLDR: Given an depth image with known intrinsics, find an ordered list of planes that represents the most likely model by minimising model information.
root_dir/
├── rgb/
│ ├── 0.png
│ ├── 1.png
│ └── ...
├── depth/
│ ├── 0.png
│ ├── 1.png
│ └── ...
Get the NYU dataset and all predicted planes from here.
Build the docker image using the following command:
docker build \
--ssh default=$SSH_AUTH_SOCK \
-t info_opt .
Run the docker image using the following command:
docker run \
-it \
-v <path_of_scratchdata>:/scratchdata \
--gpus all \
--shm-size 16g \
-d \
--network=host \
--restart unless-stopped \
--env="DISPLAY" \
--env="QT_X11_NO_MITSHM=1" \
--volume="/tmp/.X11-unix:/tmp/.X11-unix:rw" \
--device=/dev/ttyUSB0 \
-e DISPLAY=unix$DISPLAY \
--privileged \
info_opt
git clone https://github.com/tauzn-clock/InformationOptimisation
pip3 install -r requirements.txt
git clone https://github.com/tauzn-clock/InformationOptimisation
cd InformationOptimisation/cpp
chmod +x ./requirements.sh
./requirements.sh
mkdir build && cd build
cmake ..
make
The C++ implementation does not allow for image segmentation via SAM, so planes are found from the full depth image directly.
From python directory, run:
python3 demo.py ./nyu.yaml
The noise function can be changed at line 53 of python/demo.py.
From cpp/build directory, run:
./main ../src/nyu.yaml
The noise function can be changed at line 93 of cpp/src/information_optimisation.cpp.
YAML Parameters:
-
file_path: Path to data. -
img_count: Number of images to process. -
camera_params: Camera parameters, includes focal lengths (fx, fy), principal point (cx, cy). -
depth_max: Maximum depth value (in meters). -
resolution: Depth image resolution (in meters) -
conf: Confidence level for plane fitting. -
inlier_th: Assumed Inlier threshold for plane fitting. -
max_plane: Maximum number of models to test. -
use_sam: Use Segment Anything Model (SAM) for plane segmentation. -
sam_conf: Confidence level for plane fitting in each SAM region. -
sam_inlier_th: Assumed Inlier threshold for plane fitting in each SAM region. -
sam_max_plane: Maximum number of models to test in each SAM region.
@inproceedings{zhong2025infoopt,
author = {Zhong, Daoxin and Li, Jun and Chuah, Meng Yee Michael},
title = {Plane Detection and Ranking via Model Information Optimization},
booktitle = {Proceedings of the IEEE/RSJ International Conference on Intelligent Robots and Systems (IROS)},
publisher = {IEEE},
year = {2025},
doi = {10.48550/ARXIV.2508.09625},
url = {https://arxiv.org/abs/2508.09625},
}