Skip to main content

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

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

After installation, type dustrack at any shell prompt:

dustrack

A file picker opens — select one or more videos and DUSTrack launches on the first one. No Python code required.

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.

Scripting and resume

The same workflow is reachable from Python via dustrack.open(...), which auto-detects whether the path is a bare video (start fresh) or a DLC project (resume in place):

import dustrack
import datanavigator

# Zero-argument launch (same as the `dustrack` shell command):
dustrack.open()                                      # pops the file picker

# Start fresh on a specific video:
video_path = datanavigator.get_example_video()       # or use your own
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").

# Resume in place from a previous DLC project:
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

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

Metadata

Release files for dustrack 1.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dustrack 1.3.2
File Size Uploaded Provenance Actions
dustrack-1.3.2.tar.gz 1.4 MB Without provenance Details for dustrack-1.3.2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for dustrack 1.3.2
File Interpreter ABI Platform Actions
dustrack-1.3.2-py3-none-any.whl Python 3 none any Details for dustrack-1.3.2-py3-none-any.whl

Total release size: 1.7 MB

Release files / dustrack-1.3.2.tar.gz

Download URL dustrack-1.3.2.tar.gz
Size 1.4 MB
Tags Source
SHA-256 checksum
How to use checksums
65b621708f21219ff977cec8aa9471c0f7e96e71c4edfab971c5942900072a1f
BLAKE2b-256 checksum
How to use checksums
7b2b9f5e3685e1ce23e69b6cb8f328027e234d0514ea8ad441befe6193d00ec5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.34.2

Release files / dustrack-1.3.2-py3-none-any.whl

Download URL dustrack-1.3.2-py3-none-any.whl
Size 252.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
847e87aef9faead60c096d2f24345b177ce9c242444be6cbc07649338d0f6ad1
BLAKE2b-256 checksum
How to use checksums
9a52b15c8866834a227c66ac64574daf85c91c5a96f8fef60a89a7d53b298155
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-requests/2.34.2

Security for dustrack 1.3.2

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page