ParticleTracking
ParticleTracking: A GUI and library for particle tracking on stereo camera images - Published in JOSS (2025)
Science Score: 98.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
Found 1 DOI reference(s) in JOSS metadata -
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Scientific Fields
Repository
Library and GUI for tracking (rod-like) particles on camera images in 2D and 3D
Basic Info
- Host: GitHub
- Owner: ANP-Granular
- License: gpl-3.0
- Language: Python
- Default Branch: main
- Homepage: https://particletracking.readthedocs.io/en/latest/
- Size: 86.1 MB
Statistics
- Stars: 3
- Watchers: 2
- Forks: 2
- Open Issues: 6
- Releases: 17
Topics
Metadata Files
README.md
ParticleTracking
ParticleTracking is a repository containing two Python packages for extracting 3D coordinate data from microgravity experiment image data. In these experiments a granular gas was observed with a stereo-camera system, specifically a granular gas of rod-like particles. The goal is to automatically extract the coordinate data and provide a Graphical User Interface (GUI) to correct mistakes manually in an efficient way.
The first part is the ParticleDetection package that enables: - the training of R-CNN models for detecting particles in stereo-camera images - the assignment of particle correspondences between both images of the stereo setup - the reconstruction of 3D coordinates for particles identified in both stereo images - the tracking of particles over the course of an experiment
The RodTracker package is a GUI encapsulating the most used functionality of the ParticleDetection package. It enables users to carry out the aforementioned tasks, except for training a model. Additionally, it provides the means to manually correct placement and assignment mistakes of the automated processes.
![]()
Please refer to the documentation for more detailed information.
Owner
- Name: ANP - Granular
- Login: ANP-Granular
- Kind: organization
- Repositories: 1
- Profile: https://github.com/ANP-Granular
JOSS Publication
ParticleTracking: A GUI and library for particle tracking on stereo camera images
Authors
Department of Nonlinear Phenomena, Institute of Physics, Otto von Guericke University Magdeburg, Germany
Department of Microgravity and Translational Regenerative Medicine, Medical Faculty, Otto von Guericke University Magdeburg, Germany, Research Group ‘Magdeburger Arbeitsgemeinschaft für Forschungunter Raumfahrt-und Schwerelosigkeitsbedingungen’ (MARS), Otto von Guericke University Magdeburg, Germany, Autonomous Multisensor Systems Group, Institute for Intelligent Cooperating Systems, Otto von Guericke University Magdeburg, Germany, Department of Nonlinear Phenomena, Institute of Physics, Otto von Guericke University Magdeburg, Germany
Department of Engineering, Brandenburg University of Applied Sciences, Germany, Department of Microgravity and Translational Regenerative Medicine, Medical Faculty, Otto von Guericke University Magdeburg, Germany, Research Group ‘Magdeburger Arbeitsgemeinschaft für Forschungunter Raumfahrt-und Schwerelosigkeitsbedingungen’ (MARS), Otto von Guericke University Magdeburg, Germany, Institute of Physics, Otto von Guericke University Magdeburg, Germany
Tags
physics object detection microgravityCitation (CITATION.cff)
cff-version: 1.2.0
title: ParticleTracking
message: >-
If you use this software, please cite it using the
metadata from this file.
type: software
authors:
- given-names: Adrian
family-names: Niemann
email: adrian.niemann@gmx.de
orcid: 'https://orcid.org/0009-0008-2025-1946'
- given-names: Dmitry
family-names: Puzyrev
orcid: 'https://orcid.org/0000-0002-9269-3224'
identifiers:
- type: url
value: 'https://github.com/ANP-Granular/ParticleTracking'
repository-code: 'https://github.com/ANP-Granular/ParticleTracking'
abstract: >-
ParticleTracking is a repository containing two Python
packages for extracting 3D particle coordinate data from
the experimental video footage.
In these experiments a granular gas (dilute ensemble of
macroscopic particles) was observed with a 2-view stereo
camera system.
The current version of the program is used for experiments
with rod-like particles. Each particle is parametrized by
2 endpoint coordinates.
ParticleTracking's goal is to automatically extract the
coordinate data and provide a Graphical User Interface
(GUI) to correct detection errors manually in an efficient
way.
Then, the corrected particle data can be tracked and
ensemble statistics (average velocity/kinetic energy,
local packing fractions, etc.) can be extracted.
The first part is the ParticleDetection package that
enables:
- training of Mask-RCNN models for detecting particles in
stereo-camera images
- assignment of particle correspondences between both
images of the stereo setup
- reconstruction of 3D coordinates and orientations for
particles identified in both stereo images
- tracking of particles over the course of an experiment
The RodTracker package is a GUI encapsulating the most
used functionality of the ParticleDetection package. It
enables users to carry out the aforementioned tasks,
except for training a model. Additionally, it provides the
means to manually correct object localization, 3D
assignment and tracking errors in the automatic detection
processes.
keywords:
- physics
- object-detection
- 3D-reconstruction
- microgravity
license: GPL-3.0
commit: 9e319201440b9c7fae455117b18023e7bf82beb7
GitHub Events
Total
- Create event: 8
- Release event: 5
- Issues event: 20
- Watch event: 1
- Delete event: 6
- Issue comment event: 40
- Push event: 20
- Pull request event: 6
Last Year
- Create event: 8
- Release event: 5
- Issues event: 20
- Watch event: 1
- Delete event: 6
- Issue comment event: 40
- Push event: 20
- Pull request event: 6
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 13
- Total pull requests: 4
- Average time to close issues: 9 months
- Average time to close pull requests: 1 minute
- Total issue authors: 2
- Total pull request authors: 1
- Average comments per issue: 2.69
- Average comments per pull request: 0.0
- Merged pull requests: 3
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 9
- Pull requests: 4
- Average time to close issues: 2 months
- Average time to close pull requests: 1 minute
- Issue authors: 1
- Pull request authors: 1
- Average comments per issue: 3.44
- Average comments per pull request: 0.0
- Merged pull requests: 3
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- mhubii (18)
- merrygoat (9)
- a-niem (7)
- aquilesC (2)
- saipreethamsata (1)
- dmitrypuzyrev (1)
Pull Request Authors
- dmitrypuzyrev (4)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 2
-
Total downloads:
- pypi 107 last-month
-
Total dependent packages: 0
(may contain duplicates) -
Total dependent repositories: 0
(may contain duplicates) - Total versions: 82
- Total maintainers: 1
pypi.org: rodtracker
GUI to track rod-like particles on multiple cameras
- Homepage: https://github.com/ANP-Granular/ParticleTracking
- Documentation: https://particletracking.readthedocs.io/
- License: GPL-3.0-only
-
Latest release: 0.6.7
published 9 months ago
Rankings
Maintainers (1)
pypi.org: particledetection
Tools to track particles with machine learning.
- Homepage: https://github.com/ANP-Granular/ParticleTracking
- Documentation: https://particletracking.readthedocs.io/
- License: gpl-3.0
-
Latest release: 0.4.3
published about 1 year ago
Rankings
Maintainers (1)
Dependencies
- actions/checkout v3 composite
- actions/setup-python v4 composite
- Pillow *
- detectron2 --- - !ruby/hash:ActiveSupport::HashWithIndifferentAccess git: https://github.com/facebookresearch/detectron2.git optional: true markers: sys_platform == 'linux' and extra == 'detectron'
- imgaug *
- importlib-resources >=1.4
- matplotlib ^3.6.1
- networkx ^2.8.7
- numpy ^1.23.4
- opencv-python-headless ^4.6.0.66
- pandas ^1.5.1
- protobuf ==3.20.1
- pulp ^2.6.0
- pytest >=7.1.2
- pytest-cov >=3.0.0
- python ^3.8
- scikit-image ^0.19.3
- scikit-learn ^1.1.3
- scipy ^1.9.3
- tensorboard *
- torch --- - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "^1.13.0" markers: sys_platform == 'win32' and (extra != 'detectron' and extra != 'gpu') - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "*" source: gpu-win markers: sys_platform == 'win32' and (extra == 'gpu' or extra == 'detectron') - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "^1.8" source: cpu-linux markers: sys_platform == 'linux' and (extra != 'detectron' and extra != 'gpu') - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "^1.8" markers: sys_platform == 'linux' and (extra == 'detectron' or extra == 'gpu')
- torchaudio --- - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "^0.13.0" markers: sys_platform == 'win32' and (extra != 'detectron' and extra != 'gpu') - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "*" source: gpu-win markers: sys_platform == 'win32' and (extra == 'gpu' or extra == 'detectron') - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "*" source: cpu-linux markers: sys_platform == 'linux' and (extra != 'detectron' and extra != 'gpu') - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "*" markers: sys_platform == 'linux' and (extra == 'detectron' or extra == 'gpu')
- torchvision --- - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "^0.14.0" markers: sys_platform == 'win32' and (extra != 'detectron' and extra != 'gpu') - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "*" source: gpu-win markers: sys_platform == 'win32' and (extra == 'gpu' or extra == 'detectron') - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "*" source: cpu-linux markers: sys_platform == 'linux' and (extra != 'detectron' and extra != 'gpu') - !ruby/hash:ActiveSupport::HashWithIndifferentAccess version: "*" markers: sys_platform == 'linux' and (extra == 'detectron' or extra == 'gpu')
- tqdm ^4.64.1
- trackpy ^0.5.0