sst
Official repo for paper "Static Segmentation by Tracking: A Frustratingly Label-Efficient Approach to Fine-Grained Segmentation"
Science Score: 62.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
✓Academic publication links
Links to: arxiv.org -
○Academic email domains
-
✓Institutional organization owner
Organization imageomics has institutional domain (imageomics.osu.edu) -
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.9%) to scientific vocabulary
Repository
Official repo for paper "Static Segmentation by Tracking: A Frustratingly Label-Efficient Approach to Fine-Grained Segmentation"
Basic Info
Statistics
- Stars: 7
- Watchers: 4
- Forks: 1
- Open Issues: 3
- Releases: 1
Metadata Files
README.md
Static Segmentation by Tracking: A Frustratingly Label-Efficient Approach to Fine-Grained Segmentation
Zhenyang Feng, Zihe Wang, Saul Ibaven Bueno, Tomasz Frelek, Advikaa Ramesh, Jingyan Bai, Lemeng Wang, Zanming Huang, Jianyang Gu, Jinsu Yoo, Tai-Yu Pan, Arpita Chowdhury, Michelle Ramirez, Elizabeth G Campolongo, Matthew J Thompson, Christopher G. Lawrence, Sydne Record, Neil Rosser, Anuj Karpatne, Daniel Rubenstein, Hilmar Lapp, Charles V. Stewart, Tanya Berger-Wolf, Yu Su, Wei-Lun Chao

🗓️ TODO
- [x] Release inference code
- [x] Release beetle part segmentation dataset
- [ ] Release online demo
- [ ] Release one-shot fine-tuning (OC-CCL) code
- [x] Release trait retrieval code
- [x] Release butterfly trait segmentation dataset
🛠️ Installation
To use SST, the following setup must be ran on a GPU enabled machine. The code requires torch>=2.5.0, and python=3.10.14 is recommended. (Note: Make sure your system is using GXX and GCC compilers)
Example Conda Environment Setup: ```bash
Clone repo
git clone https://github.com/Imageomics/SST.git cd SST
Create conda environment
conda create --name sst python=3.10.14 conda activate sst
Download the version of PyTorch that matches the GPU's CUDA version, see https://pytorch.org/get-started/locally/
pip3 install torch torchvision torchaudio --index-url ...
Download and setup GroundingDINO
(git clone https://github.com/IDEA-Research/GroundingDINO.git && cd GroundingDINO/ && pip install -e .)
Install SAM 2
(cd segment-anything-2 && pip install -e .)
Download required python packages, ignore the conflicts message
pip install -r requirements.txt --no-dependencies
Download model checkpoints
(cd checkpoints && ./downloadckpts.sh) (cd checkpoints && wget -q https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdinoswint_ogc.pth) ```
🧑💻 Usage
Segmentation
For one-shot trait/part segmentation, please run the following demo code:
bash
python code/segment.py --support_image /path/to/sample/image.png \
--support_mask /path/to/greyscale_mask.png \
--query_images /path/to/query/images/folder \
--output /path/to/output/folder \
--output_format "png" # png or gif, optional
Trait-Based Retrieval
For trait-based retrieval, please refer to the demo code below:
bash
python code/trait_retrieval.py --support_image /path/to/sample/image.png \
--support_mask /path/to/greyscale_mask.png \
--trait_id 1 \ # target trait to retrieve, denote by the value in support mask \
--query_images /path/to/query/images/folder \
--output /path/to/output/folder \
--output_format "png" \ # png or gif, optional
--top_k 5 # n top retrievals to save as results
📊 Dataset
Beetle part segmentation dataset is available here.
Butterfly trait segmentation dataset can be accessed here.
The instructions and appropriate citations for these datasets are provided in the Citation section of their respective READMEs.
❤️ Acknowledgements
This project makes use of the SAM2 and GroundingDINO codebases. We are grateful to the developers and maintainers of these projects for their contributions to the open-source community. We thank LoRA for their great work.
📝 Citation
If you find our work helpful for your research, please consider citing using the following BibTeX entry:
bibtex
@misc{feng2025staticsegmentationtrackingfrustratingly,
title={Static Segmentation by Tracking: A Frustratingly Label-Efficient Approach to Fine-Grained Segmentation},
author={Zhenyang Feng and Zihe Wang and Saul Ibaven Bueno and Tomasz Frelek and Advikaa Ramesh and Jingyan Bai and Lemeng Wang and Zanming Huang and Jianyang Gu and Jinsu Yoo and Tai-Yu Pan and Arpita Chowdhury and Michelle Ramirez and Elizabeth G. Campolongo and Matthew J. Thompson and Christopher G. Lawrence and Sydne Record and Neil Rosser and Anuj Karpatne and Daniel Rubenstein and Hilmar Lapp and Charles V. Stewart and Tanya Berger-Wolf and Yu Su and Wei-Lun Chao},
year={2025},
eprint={2501.06749},
archivePrefix={arXiv},
primaryClass={cs.CV},
url={https://arxiv.org/abs/2501.06749},
}
Owner
- Name: Imageomics Institute
- Login: Imageomics
- Kind: organization
- Website: https://imageomics.osu.edu
- Twitter: imageomics
- Repositories: 4
- Profile: https://github.com/Imageomics
Citation (CITATION.cff)
abstract: "This repository provides the official implementation of 'Static Segmentation by Tracking: A Frustratingly Label-Efficient Approach to Fine-Grained Segmentation.' The method leverages a tracking-based approach for efficient fine-grained segmentation with minimal labeling effort. The code includes dataset preparation, inference, and training scripts."
authors:
- family-names: Feng
given-names: Zhenyang
- family-names: Wang
given-names: Zihe
- family-names: Bueno
given-names: Saul Ibaven
- family-names: Frelek
given-names: Tomasz
- family-names: Ramesh
given-names: Advikaa
- family-names: Bai
given-names: Jingyan
- family-names: Wang
given-names: Lemeng
- family-names: Huang
given-names: Zanming
- family-names: Gu
given-names: Jianyang
- family-names: Yoo
given-names: Jinsu
- family-names: Pan
given-names: Tai-Yu
- family-names: Chowdhury
given-names: Arpita
- family-names: Ramirez
given-names: Michelle
- family-names: Campolongo
given-names: Elizabeth G
- family-names: Thompson
given-names: Matthew J
- family-names: Lawrence
given-names: Christopher G.
- family-names: Record
given-names: Sydne
- family-names: Rosser
given-names: Neil
- family-names: Karpatne
given-names: Anuj
- family-names: Rubenstein
given-names: Daniel
- family-names: Lapp
given-names: Hilmar
- family-names: Stewart
given-names: Charles V.
- family-names: Berger-Wolf
given-names: Tanya
- family-names: Su
given-names: Yu
- family-names: Chao
given-names: Wei-Lun
cff-version: 1.2.0
date-released: "2025-01-12"
identifiers:
- description: "The GitHub release URL of tag v1.0.0."
type: url
value: "https://github.com/Imageomics/SST/releases/tag/v1.0.0"
keywords:
- imageomics
- biological vision
- trait segmentation
- computer vision
- machine learning
license: "MIT"
message: "If you find this software helpful in your research, please cite both the software and our paper."
repository-code: "https://github.com/Imageomics/SST"
title: "SST: Static Segmentation by Tracking"
version: v1.0.0
type: software
preferred-citation:
type: article
authors:
- family-names: Feng
given-names: Zhenyang
- family-names: Wang
given-names: Zihe
- family-names: Bueno
given-names: Saul Ibaven
- family-names: Frelek
given-names: Tomasz
- family-names: Ramesh
given-names: Advikaa
- family-names: Bai
given-names: Jingyan
- family-names: Wang
given-names: Lemeng
- family-names: Huang
given-names: Zanming
- family-names: Gu
given-names: Jianyang
- family-names: Yoo
given-names: Jinsu
- family-names: Pan
given-names: Tai-Yu
- family-names: Chowdhury
given-names: Arpita
- family-names: Ramirez
given-names: Michelle
- family-names: Campolongo
given-names: Elizabeth G
- family-names: Thompson
given-names: Matthew J
- family-names: Lawrence
given-names: Christopher G.
- family-names: Record
given-names: Sydne
- family-names: Rosser
given-names: Neil
- family-names: Karpatne
given-names: Anuj
- family-names: Rubenstein
given-names: Daniel
- family-names: Lapp
given-names: Hilmar
- family-names: Stewart
given-names: Charles V.
- family-names: Berger-Wolf
given-names: Tanya
- family-names: Su
given-names: Yu
- family-names: Chao
given-names: Wei-Lun
title: "Static Segmentation by Tracking: A Frustratingly Label-Efficient Approach to Fine-Grained Segmentation"
year: 2025
journal: "arXiv preprint"
doi: "10.48550/arXiv.2501.06749"
GitHub Events
Total
- Release event: 1
- Watch event: 7
- Delete event: 11
- Issue comment event: 9
- Member event: 1
- Push event: 13
- Pull request review event: 2
- Pull request event: 29
- Create event: 15
Last Year
- Release event: 1
- Watch event: 7
- Delete event: 11
- Issue comment event: 9
- Member event: 1
- Push event: 13
- Pull request review event: 2
- Pull request event: 29
- Create event: 15
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 0
- Total pull requests: 16
- Average time to close issues: N/A
- Average time to close pull requests: 14 days
- Total issue authors: 0
- Total pull request authors: 4
- Average comments per issue: 0
- Average comments per pull request: 0.19
- Merged pull requests: 3
- Bot issues: 0
- Bot pull requests: 13
Past Year
- Issues: 0
- Pull requests: 16
- Average time to close issues: N/A
- Average time to close pull requests: 14 days
- Issue authors: 0
- Pull request authors: 4
- Average comments per issue: 0
- Average comments per pull request: 0.19
- Merged pull requests: 3
- Bot issues: 0
- Bot pull requests: 13
Top Authors
Issue Authors
Pull Request Authors
- dependabot[bot] (13)
- wang2989 (1)
- egrace479 (1)
- DeFisch (1)
Top Labels
Issue Labels
Pull Request Labels
Dependencies
- Cython ==3.0.2
- GitPython ==3.1.43
- Jinja2 ==3.1.4
- Markdown ==3.7
- MarkupSafe ==2.1.5
- MultiScaleDeformableAttention ==1.0
- POT ==0.9.0
- Pillow ==9.4.0
- PySocks ==1.7.1
- PyWavelets ==1.7.0
- PyYAML ==6.0.1
- QtPy ==2.4.1
- Send2Trash ==1.8.3
- Shapely ==1.8.0
- Werkzeug ==3.0.4
- absl-py ==2.1.0
- accelerate ==0.23.0
- addict ==2.4.0
- aiofiles ==23.2.1
- aiohappyeyeballs ==2.4.0
- aiohttp ==3.10.5
- aiosignal ==1.3.1
- altair ==5.4.1
- antlr4-python3-runtime ==4.9.3
- anyio ==4.4.0
- appdirs ==1.4.4
- argcomplete ==3.5.0
- argon2-cffi ==23.1.0
- argon2-cffi-bindings ==21.2.0
- arrow ==1.3.0
- astunparse ==1.6.3
- async-lru ==2.0.4
- async-timeout ==4.0.3
- attrs ==24.2.0
- av ==12.3.0
- av2 ==0.2.1
- babel ==2.16.0
- backcall ==0.2.0
- beautifulsoup4 ==4.12.3
- black ==21.4b2
- bleach ==6.1.0
- cachetools ==5.5.0
- certifi ==2024.7.4
- cffi ==1.17.0
- charset-normalizer ==3.3.2
- click ==8.1.7
- cloudpickle ==3.0.0
- colored ==2.2.4
- coloredlogs ==15.0.1
- colorlog ==6.8.2
- contourpy ==1.2.1
- cycler ==0.12.1
- datasets ==3.0.2
- debugpy ==1.6.0
- deepspeed ==0.10.3
- defusedxml ==0.7.1
- descartes ==1.1.0
- diffdist ==0.1
- dill ==0.3.8
- distlib ==0.3.8
- docker-pycreds ==0.4.0
- easydict ==1.13
- einops ==0.7.0
- fairscale ==0.4.13
- fastapi ==0.115.0
- fastjsonschema ==2.20.0
- ffmpeg-python ==0.2.0
- ffmpy ==0.4.0
- filelock ==3.15.4
- fire ==0.6.0
- flatbuffers ==24.3.25
- fonttools ==4.53.1
- fqdn ==1.5.1
- frozenlist ==1.4.1
- fsspec ==2024.6.1
- ftfy ==6.1.1
- future ==0.18.2
- fvcore ==0.1.5.post20221221
- gast ==0.6.0
- gdown ==5.2.0
- gitdb ==4.0.11
- google-pasta ==0.2.0
- gradio ==3.32.0
- gradio_client ==0.2.5
- grpcio ==1.66.1
- h11 ==0.14.0
- h5py ==3.11.0
- hjson ==3.1.0
- httpcore ==1.0.5
- httpx ==0.27.0
- huggingface-hub ==0.26.2
- humanfriendly ==10.0
- hydra-core ==1.3.2
- idna ==3.7
- imageio ==2.35.1
- importlib_resources ==6.4.5
- infinibatch ==0.1.1
- iopath ==0.1.9
- ipython ==8.16.1
- ipywidgets ==8.1.5
- isoduration ==20.11.0
- joblib ==1.4.2
- json-tricks ==3.17.3
- json5 ==0.9.25
- jsonpatch ==1.33
- jsonpointer ==3.0.0
- jsonschema ==4.23.0
- jsonschema-specifications ==2023.12.1
- jupyter ==1.0.0
- jupyter-console ==6.6.3
- jupyter-events ==0.10.0
- jupyter-lsp ==2.2.5
- jupyter_server ==2.14.2
- jupyter_server_terminals ==0.5.3
- jupyterlab ==4.2.4
- jupyterlab_pygments ==0.3.0
- jupyterlab_server ==2.27.3
- jupyterlab_widgets ==3.0.13
- jupytext ==1.16.4
- kagglehub ==0.3.4
- keras ==3.6.0
- kiwisolver ==1.4.5
- kornia ==0.6.4
- lazy_loader ==0.4
- libclang ==18.1.1
- linkify-it-py ==2.0.3
- llvmlite ==0.43.0
- markdown-it-py ==2.2.0
- matplotlib ==3.6
- mdit-py-plugins ==0.3.3
- mdurl ==0.1.2
- mistune ==3.0.2
- ml-dtypes ==0.4.1
- more-itertools ==10.5.0
- mpmath ==1.3.0
- multidict ==6.1.0
- multiprocess ==0.70.16
- mup ==1.0.0
- mypy-extensions ==1.0.0
- namex ==0.0.8
- narwhals ==1.8.1
- nbclient ==0.10.0
- nbconvert ==7.16.4
- nbformat ==5.10.4
- networkx ==3.3
- ninja ==1.11.1.1
- nltk ==3.8.1
- notebook ==7.2.1
- notebook_shim ==0.2.4
- nox ==2024.4.15
- numba ==0.60.0
- numpy ==1.23.1
- nvidia-cublas-cu11 ==11.10.3.66
- nvidia-cublas-cu12 ==12.1.3.1
- nvidia-cuda-cupti-cu12 ==12.1.105
- nvidia-cuda-nvrtc-cu11 ==11.7.99
- nvidia-cuda-nvrtc-cu12 ==12.1.105
- nvidia-cuda-runtime-cu11 ==11.7.99
- nvidia-cuda-runtime-cu12 ==12.1.105
- nvidia-cudnn-cu11 ==8.5.0.96
- nvidia-cudnn-cu12 ==9.1.0.70
- nvidia-cufft-cu12 ==11.0.2.54
- nvidia-curand-cu12 ==10.3.2.106
- nvidia-cusolver-cu12 ==11.4.5.107
- nvidia-cusparse-cu12 ==12.1.0.106
- nvidia-nccl-cu12 ==2.21.5
- nvidia-nvjitlink-cu12 ==12.4.127
- nvidia-nvtx-cu12 ==12.1.105
- omegaconf ==2.3.0
- openai-whisper ==20230306
- opencv-python ==4.6.0.66
- opencv-python-headless ==4.10.0.84
- opt_einsum ==3.4.0
- optree ==0.13.0
- orjson ==3.10.7
- overrides ==7.7.0
- pandas ==2.0.3
- pandocfilters ==1.5.1
- pathspec ==0.12.1
- pathtools ==0.1.2
- peft ==0.12.0
- plotly ==5.23.0
- portalocker ==2.10.1
- progressbar ==2.5
- prometheus_client ==0.20.0
- protobuf ==4.25.5
- py-cpuinfo ==9.0.0
- pyarrow ==18.1.0
- pycocotools ==2.0.7
- pycparser ==2.22
- pydantic ==1.10.18
- pydot ==3.0.1
- pydub ==0.25.1
- pyparsing ==3.1.2
- pyproj ==3.6.1
- pyquaternion ==0.9.9
- python-json-logger ==2.0.7
- python-multipart ==0.0.9
- pytz ==2024.1
- qtconsole ==5.5.2
- referencing ==0.35.1
- regex ==2023.10.3
- requests ==2.32.3
- rfc3339-validator ==0.1.4
- rfc3986-validator ==0.1.1
- rich ==13.8.0
- rpds-py ==0.20.0
- safetensors ==0.4.5
- scann ==1.3.4
- scikit-image ==0.21.0
- scikit-learn ==1.3.1
- scipy ==1.11.4
- seaborn ==0.13.2
- segmentation-refinement ==0.6
- semantic-version ==2.10.0
- sentencepiece ==0.1.99
- sentry-sdk ==2.14.0
- setproctitle ==1.3.3
- slugify ==0.0.1
- smmap ==5.0.1
- sniffio ==1.3.1
- soupsieve ==2.6
- starlette ==0.38.5
- submitit ==1.5.1
- supervision ==0.23.0
- sympy ==1.13.1
- tabulate ==0.9.0
- tenacity ==9.0.0
- tensorboard ==2.17.1
- tensorboard-data-server ==0.7.2
- tensorboardX ==1.8
- tensorflow ==2.17.1
- tensorflow-io-gcs-filesystem ==0.37.1
- termcolor ==2.4.0
- terminado ==0.18.1
- thop ==0.1.1.post2209072238
- threadpoolctl ==3.5.0
- tifffile ==2024.8.30
- timm ==0.6.12
- tinycss2 ==1.3.0
- tokenizers ==0.14.1
- toml ==0.10.2
- tomli ==2.0.1
- torchmetrics ==0.11.0
- torchshow ==0.5.0
- tqdm ==4.66.3
- transformers ==4.34.0
- triton ==3.1.0
- types-python-dateutil ==2.9.0.20240821
- typing ==3.7.4.3
- tzdata ==2024.1
- uc-micro-py ==1.0.3
- ultralytics ==8.0.196
- uri-template ==1.3.0
- urllib3 ==2.2.2
- uvicorn ==0.30.6
- virtualenv ==20.26.3
- visdom ==0.2.4
- vision-datasets ==0.2.2
- wandb ==0.18.6
- webcolors ==24.8.0
- webencodings ==0.5.1
- websocket-client ==1.8.0
- websockets ==11.0.3
- widgetsnbextension ==4.0.13
- wrapt ==1.16.0
- xformers ==0.0.28.post3
- xxhash ==3.5.0
- yacs ==0.1.8
- yapf ==0.40.2
- yarl ==1.11.1