Skip to main content

Network flow based tracker with guided error correction

Project description

tracktour

License PyPI Python Version CI

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tracktour-0.0.3rc1.tar.gz (25.7 kB view details)

Uploaded Source

Built Distribution

tracktour-0.0.3rc1-py3-none-any.whl (25.9 kB view details)

Uploaded Python 3

File details

Details for the file tracktour-0.0.3rc1.tar.gz.

File metadata

  • Download URL: tracktour-0.0.3rc1.tar.gz
  • Upload date:
  • Size: 25.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for tracktour-0.0.3rc1.tar.gz
Algorithm Hash digest
SHA256 6d45610b3f34e9cb9d6c758d7bb2320bf6eae424742ffaad95738ba04387b732
MD5 d722a4b5e0c04c3b0a9d0af97a1cf9ee
BLAKE2b-256 cd89a314261d9e91adebb86cc0a752846fe1e37a6f7731e744b23375d328016c

See more details on using hashes here.

File details

Details for the file tracktour-0.0.3rc1-py3-none-any.whl.

File metadata

  • Download URL: tracktour-0.0.3rc1-py3-none-any.whl
  • Upload date:
  • Size: 25.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.0.0 CPython/3.12.2

File hashes

Hashes for tracktour-0.0.3rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 5c95dba2f6a27e64f6f5ead0158c8472bcfbea403d92b945a80104149bfc87d0
MD5 bb1f7448de66c09b400e25fa26aa5041
BLAKE2b-256 6bcba3d6ccc3736e6f1a5d8b49b1e9d9dd66edc966d54488c98077e92975ddcf

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page