Network flow based tracker with guided error correction
Project description
tracktour
tracktour is a simple object tracker based on a network flow linear model. tracktour takes a dataframe of detected objects and solves a linear program (currently using Gurobi, but we will soon add an open source solver interface) to produce tracking results.
tracktour is rapidly changing and its API will change without deprecation warnings.
Usage
The Tracker
object is the interface for producing tracking solutions. Below is a toy example with explicitly defined detections.
coords = [
(0, 50.0, 50.0),
(0, 40, 50),
(0, 30, 57),
(1, 50, 52),
(1, 38, 51),
(1, 29, 60),
(2, 52, 53),
(2, 37, 53),
(2, 28, 64),
]
coords = pd.DataFrame(coords, columns=["t", "y", "x"])
# initialize Tracker object
tracker = Tracker(
im_shape=(100, 100), # size of the image detections come from. Affects cost of detections appearing/disappearing
k_neighbours=2 # number of neighbours to consider for assignment in the next frame (default=10)
)
# solve
tracked = tracker.solve(coords)
The Tracked
object contains a copy of the detections, potentially reindexed, and a dataframe of edges that make up the solution.
Columns u
and v
in tracked_edges
are direct indices into tracked_detections
.
print(tracked.tracked_detections)
print(tracked.tracked_edges)
You may want to convert the solution into a networkx graph for easier manipulation.
solution_graph = tracked.as_nx_digraph()
Extracting Detections
If you're starting from an image segmentation, you can use the get_im_centers
or extract_im_centers
functions.
If your segmentation is already loaded into a numpy array, use extract_im_centers
. The returned detections
DataFrame is ready for use with the Tracker
.
detections, min_t, max_t, corners = extract_im_centers(segmentation)
If your segmentation is in Cell Tracking Challenge format and lives in single tiffs per frame in a directory, use get_im_centers
. This will also return
the segmentation as a numpy array.
seg, detections, min_t, max_t, corners = get_im_centers('path/to/01_RES/')
CLI Tool - Cell Tracking Challenge
If you're working with Cell Tracking Challenge formatted datasets, you can use the CLI to extract detections, run tracktour, and save output in CTC format.
$ tracktour ctc /path/to/seg/ /path/to/save/ -k 8
Support
Please feel free to open issues with feature requests, bug reports, questions on usage, etc.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file tracktour-0.0.4.post2.tar.gz
.
File metadata
- Download URL: tracktour-0.0.4.post2.tar.gz
- Upload date:
- Size: 26.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 63c38b19b4f2b893c3c91901c21d01525db4a01d6f0ef5a32f643e2a591cf6f4 |
|
MD5 | 8fbec055ce9f60de949d10cae64fb820 |
|
BLAKE2b-256 | 256722af9dbb7bd0b373a5d4cab115244f51b666043e5dc9b7e3cb9a0aa06cb5 |
Provenance
File details
Details for the file tracktour-0.0.4.post2-py3-none-any.whl
.
File metadata
- Download URL: tracktour-0.0.4.post2-py3-none-any.whl
- Upload date:
- Size: 26.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/5.0.0 CPython/3.12.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d6a1a71551e428ba9e81a3f2493e089303fd420b293cad53703fbb3dd24f9fa |
|
MD5 | 9c93a678365f4f10ec34ecce1f0728e1 |
|
BLAKE2b-256 | 99c2a7a6b39895eb06d8a00a5e40e608ed69e332071a68e7fa7d34e96859ded4 |