Skip to main content

A toolkit for loading Unseen Object Instance Segmentation (UOIS) datasets.

Project description

uois_toolkit

CI PyPI Downloads Python PyTorch License Stars

One unified interface for 5 UOIS datasets.
Load, augment, train, and evaluate — in 3 lines of code.


Why uois_toolkit?

Problem Solution
Every UOIS dataset ships its own format and loader Unified API — one interface across all 5 datasets
Evaluation setup eats up research time Built-in metrics — F1, IoU, Precision, Recall in a single call
Mixing synthetic and real data takes custom wiring Multi-dataset DataModule with balanced sampling out of the box
Reproducing baselines means writing glue code Lightning-native — drop into any training loop

Quickstart

pip install uois-toolkit
from uois_toolkit import get_datamodule, cfg

dm = get_datamodule("ocid", "/path/to/OCID", batch_size=4, config=cfg)
dm.setup()
batch = next(iter(dm.train_dataloader()))
# batch["image_color"]  → [B, 3, H, W]
# batch["depth"]        → [B, C, H, W]
# batch["annotations"]  → per-image bboxes + RLE masks

Same API for all datasets — just swap the name: "tabletop", "osd", "robot_pushing", "iteach_humanplay".


Supported Datasets

Dataset Type Images Setting Source
Tabletop (TOD) Synthetic ~280K Rendered household scenes Xiang et al., CoRL 2020
OCID Real 2,390 Cluttered tabletop Suchi et al., ICRA 2019
OSD Real 111 Sparse tabletop Richtsfeld et al., IROS 2012
Robot Pushing Real 428 Robot pushing objects Lu et al., RSS 2023
iTeach-HumanPlay Real 14K+ Human-object interaction P et al., arXiv 2024

Usage

Load a single dataset

from uois_toolkit.datasets import OCIDDataset
from uois_toolkit import cfg

dataset = OCIDDataset(image_set="test", data_path="/path/to/OCID", config=cfg)
sample = dataset[0]
# Keys: file_name, image_id, height, width, image_color, depth, raw_depth, annotations

Evaluate predictions

import numpy as np
from uois_toolkit.metrics import compute_metrics

gt_mask = ...   # [H, W] binary
pred_mask = ... # [H, W] binary

results = compute_metrics(gt_mask, pred_mask, ["f1_score", "iou", "precision", "recall"])
# {'f1_score': 0.89, 'iou': 0.80, 'precision': 0.92, 'recall': 0.86}

Train with PyTorch Lightning

from uois_toolkit import get_datamodule, cfg

dm = get_datamodule("tabletop", "/data/tabletop", batch_size=8, config=cfg)
trainer = pl.Trainer(accelerator="auto", max_epochs=10)
trainer.fit(model, datamodule=dm)

Batch format

Key Shape Description
image_color [B, 3, H, W] RGB image (float)
depth [B, C, H, W] Depth map
annotations List[List[Dict]] Per-image object annotations

Each annotation: {"bbox": [x1,y1,x2,y2], "segmentation": <RLE>, "category_id": 1}


Installation from source

git clone https://github.com/jishnujayakumar/uois_toolkit.git
cd uois_toolkit
pip install -e .

Note: detectron2 is needed for mask utilities. Install a build that matches your PyTorch + CUDA version.


Testing

python -m pytest test/test_datamodule.py -v \
  --dataset_path tabletop=/data/tabletop \
  --dataset_path ocid=/data/OCID \
  --dataset_path osd=/data/OSD

CI runs on every push and PR via GitHub Actions.


Citation

@software{uois_toolkit,
  author = {Jishnu Jaykumar P and Aggarwal, Avaya and Maheshwari, Animesh},
  title = {uois_toolkit: A PyTorch Toolkit for Unseen Object Instance Segmentation},
  year = {2025},
  url = {https://github.com/jishnujayakumar/uois_toolkit}
}
Dataset citations (click to expand)

Tabletop (TOD) — Xiang et al., "Learning RGB-D Feature Embeddings for Unseen Object Instance Segmentation", CoRL 2020

OCID — Suchi et al., "EasyLabel: A Semi-Automatic Pixel-wise Object Annotation Tool for Creating Robotic RGB-D Datasets", ICRA 2019

OSD — Richtsfeld et al., "Segmentation of Unknown Objects in Indoor Environments", IROS 2012

Robot Pushing — Lu et al., "Self-Supervised Unseen Object Instance Segmentation via Long-Term Robot Interaction", RSS 2023

iTeach-HumanPlay — P et al., "iTeach: In the Wild Interactive Teaching for Failure-Driven Adaptation of Robot Perception", arXiv:2410.09072


Contributors

Built and polished by:

OnePunchMonk  Animesh Maheshwari

@OnePunchMonk@AnimeshMaheshwari22

PRs welcome! See open issues.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

uois_toolkit-0.1.3.tar.gz (21.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uois_toolkit-0.1.3-py3-none-any.whl (26.3 kB view details)

Uploaded Python 3

File details

Details for the file uois_toolkit-0.1.3.tar.gz.

File metadata

  • Download URL: uois_toolkit-0.1.3.tar.gz
  • Upload date:
  • Size: 21.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.14

File hashes

Hashes for uois_toolkit-0.1.3.tar.gz
Algorithm Hash digest
SHA256 5a6e0ae13e4e4ea2ddf3bc700c54f47a16b1a544c81b7114f721382bf51e8fd9
MD5 e13109e37bfd496fc53b5381ea426a1c
BLAKE2b-256 15821945075bb074fe2d2ad1bea517c0a1cae561497706d24d03eb5cfebd2ae5

See more details on using hashes here.

File details

Details for the file uois_toolkit-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: uois_toolkit-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 26.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.14

File hashes

Hashes for uois_toolkit-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 9e4506b9a251d5fef50a2e88e7ba4c849dfd83b86892727b6bcc2b73c743bc33
MD5 01113d5d47383a00e5e080efc5f995db
BLAKE2b-256 cdb5a9dcb1ad118ea067477ae3bc934141579130cfe5d1f9e37ee3941c442e98

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page