sst

Official repo for paper "Static Segmentation by Tracking: A Frustratingly Label-Efficient Approach to Fine-Grained Segmentation"

https://github.com/imageomics/sst

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
Last synced: 4 months ago · JSON representation ·

Repository

Official repo for paper "Static Segmentation by Tracking: A Frustratingly Label-Efficient Approach to Fine-Grained Segmentation"

Basic Info
  • Host: GitHub
  • Owner: Imageomics
  • License: mit
  • Language: Python
  • Default Branch: main
  • Homepage:
  • Size: 46.3 MB
Statistics
  • Stars: 7
  • Watchers: 4
  • Forks: 1
  • Open Issues: 3
  • Releases: 1
Created 12 months ago · Last pushed 10 months ago
Metadata Files
Readme License Citation

README.md

Static Segmentation by Tracking: A Frustratingly Label-Efficient Approach to Fine-Grained Segmentation

Imageomics Institute

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

[arXiv] [Dataset] [BibTeX]

main figure

🗓️ 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

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 (13) python (4) documentation (1)

Dependencies

requirements.txt pypi
  • 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
segment-anything-2/pyproject.toml pypi
segment-anything-2/setup.py pypi