Skip to main content

DUSTrack: Semi-automated point tracking in ultrasound videos.

Project description

DUSTrack

src PyPI - Version Documentation Status GitHub license

Semi-automated point tracking in videos. Designed for ultrasound videos, but works with natural videos as well.

DUSTrack (Deep learning and optical flow-based toolkit for UltraSound Tracking) is a semi-automated framework for tracking arbitrary points in B-mode ultrasound videos. It combines deep learning with optical flow to deliver high-quality, robust tracking across diverse anatomical structures and motion patterns. The toolkit includes a graphical user interface that streamlines the generation of high-quality training data and supports iterative model refinement. It also implements a novel optical-flow-based filtering technique that reduces high-frequency frame-to-frame noise while preserving rapid tissue motion.

Features

  • Hybrid approach: Combines deep learning with optical flow for accurate tracking
  • User-friendly GUI: Streamlines training data generation and model refinement
  • Noise reduction: Novel optical-flow-based filtering preserves rapid motion while reducing frame-to-frame noise
  • Versatile: Works with ultrasound and other video types
  • Flexible installation: Use GUI + optical flow only, or add deep learning capabilities

Learn more about DUSTrack in our paper in Scientific Reports.

Installation

Option 1: GUI + Optical Flow Only (Recommended for Short Videos)

For tracking points in videos with a few hundred frames, this lightweight installation is sufficient:

pip install DUSTrack

Troubleshooting dependencies: If you encounter dependency issues, use conda with the provided requirements.yml file:

conda env create -n env-dustrack -f https://github.com/praneethnamburi/DUSTrack/raw/main/requirements.yml
conda activate env-dustrack
pip install DUSTrack

Option 2: Full Installation (Including Deep Learning)

For longer videos or ultrasound videos with repetitive motions, deep learning significantly reduces manual effort and improves tracking quality:

  1. Create a conda environment and install DeepLabCut by following these instructions
  2. Activate your DeepLabCut environment and install DUSTrack:
    conda activate <your-dlc-env>
    pip install DUSTrack
    

Quick Start

import dustrack
import datanavigator

# Launch the GUI with an example video
video_path = datanavigator.get_example_video()  # or use your own video path
d = dustrack.open(video_path, "pn")
# The second argument is the name of the "layer" for storing tracking annotations.
# If you omit it, DUSTrack defaults to "iteration-0" -- the canonical seed name
# for the DLC training pipeline (next iteration lands as "iteration-1").

# To resume later, `dustrack.open(...)` auto-detects whether the path is a
# bare video (start fresh) or a DLC project (resume in place):
#   dustrack.open('video.mp4')                          # fresh, single video
#   dustrack.open('path/to/project/')                   # resume from project root
#   dustrack.open('path/to/project/config.yaml')        # resume from config
#   dustrack.open('path/to/project/videos/video.mp4')   # resume on a specific video

Next steps:

  • Use the GUI to mark points of interest in your video (see Keyboard shortcuts)
  • Track points using optical flow and/or train a deep learning model
  • Export tracking results as a .json file for further analysis

For detailed tutorials and examples, see the documentation.

Documentation

Full documentation is available at DUSTrack.readthedocs.io.

Citation

If you use DUSTrack in your research, please cite our paper:

@article{namburi2026dustrack,
  title={DUSTrack: Semi-automated point tracking in ultrasound videos},
  author={Namburi, Praneeth and Pallar{\`e}s-L{\'o}pez, Roger and Rosendorf, Jessica and Folgado, Duarte and Anthony, Brian W},
  journal={Scientific Reports},
  volume={16},
  pages={13340},
  year={2026},
  doi={10.1038/s41598-026-42795-3}
}

Contributing

Contributions are welcome! Please feel free to:

  • Submit a Pull Request with improvements or bug fixes
  • Share your use cases and feedback (contact)

License

This project is licensed under the MIT License. See the LICENSE file for details.

Contact

Praneeth Namburi

Project Link: https://github.com/praneethnamburi/DUSTrack

Acknowledgments

MIT.nano Immersion Lab

NCSOFT

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

dustrack-1.1.0.tar.gz (1.1 MB view details)

Uploaded Source

Built Distribution

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

dustrack-1.1.0-py3-none-any.whl (70.2 kB view details)

Uploaded Python 3

File details

Details for the file dustrack-1.1.0.tar.gz.

File metadata

  • Download URL: dustrack-1.1.0.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for dustrack-1.1.0.tar.gz
Algorithm Hash digest
SHA256 71a3308bda20345e9c31a448b7f5b425999d8a082418e074e3562f55545d13a6
MD5 d3ff17300e2eea81bf0ab11ef19e1fc9
BLAKE2b-256 b407eb8b643df0ffeeeb8e532c37a99a12cc8d088141b5ee9f2eb8dd217779fb

See more details on using hashes here.

File details

Details for the file dustrack-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: dustrack-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 70.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-requests/2.31.0

File hashes

Hashes for dustrack-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a14482aa9a8b4669bc12d0ac984001c3b3c3620c5644aeae06bfb134fd47d7cd
MD5 da74562c5e713b51196dc4ae4bb34aa0
BLAKE2b-256 90c2a0f7020aedc655c194270a9c7bdb202aee9f813d1e1300002bf9aca78510

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