GrasphSeg provides state-of-the-art 3D segmentation from multi-view images, without depth information. This repository is the official implementation of the paper GraphSeg: Segmented 3D Representations via Graph Edge Addition and Contraction. It contains a combination of real world experiments we ran, instruction to run GraphSeg on some standard dataset, along with the implementation of method itself.
Please cite our work via the bibtex:
@article{tang2025graphsegsegmented3drepresentations,
title={GraphSeg: Segmented 3D Representations via Graph Edge Addition and Contraction},
author={Haozhan Tang and Tianyi Zhang and Oliver Kroemer and Matthew Johnson-Roberson and Weiming Zhi},
journal={arXiv preprint arXiv:2504.03129},
year={2025}
}It's recommended to use a package manager like conda to create a package environment to install and manage required dependencies, and the following installation guide assumes a conda base environment is already initiated. Our code is tested on Ubuntu 22.04.5 LTS (Jammy Jellyfish).
git clone --recursive https://github.com/tomtang502/graphseg.git graphseg
cd graphseg
# create conda env
conda create -n graphseg python=3.10 cmake=3.14.0 -y
conda activate graphseg
# install graphseg, this also download model checkpoints
sudo chmod +x installation.sh
./installation.sh
To download some sample data (RGB and RGB-D) used by GraphsSeg, you can download it directly via this google drive link or run the following script.
# install graphseg
sudo chmod +x download_sample_data.sh
./download_sample_data.shGraphSeg is designed for robot planning and manipulation on a tabletop, so we also conducted grasping experiments using Unitree Z1 Arm.
This repository is implemented based on the following dependencies.
Dust3r under CC BY-NC-SA 4.0 License
RoMa under MIT License and its dependency DINOv2 under Apache 2 License