{"id":13468126,"url":"https://github.com/adipandas/multi-object-tracker","last_synced_at":"2025-03-26T03:31:45.522Z","repository":{"id":44569366,"uuid":"148338463","full_name":"adipandas/multi-object-tracker","owner":"adipandas","description":"Multi-object trackers in Python","archived":false,"fork":false,"pushed_at":"2023-10-10T18:57:39.000Z","size":89903,"stargazers_count":681,"open_issues_count":1,"forks_count":102,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-02-15T15:19:21.147Z","etag":null,"topics":["caffe","computer-vision","deep-learning","iou-tracker","multi-object-tracking","neural-network","object-detection","object-tracking","opencv","python","python3","ssd-mobilenet","tensorflow","tracker","yolo","yolov3"],"latest_commit_sha":null,"homepage":"https://adipandas.github.io/multi-object-tracker/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adipandas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-09-11T15:25:03.000Z","updated_at":"2025-02-11T09:27:24.000Z","dependencies_parsed_at":"2024-10-29T20:52:24.261Z","dependency_job_id":null,"html_url":"https://github.com/adipandas/multi-object-tracker","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adipandas%2Fmulti-object-tracker","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adipandas%2Fmulti-object-tracker/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adipandas%2Fmulti-object-tracker/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adipandas%2Fmulti-object-tracker/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adipandas","download_url":"https://codeload.github.com/adipandas/multi-object-tracker/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245585074,"owners_count":20639666,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["caffe","computer-vision","deep-learning","iou-tracker","multi-object-tracking","neural-network","object-detection","object-tracking","opencv","python","python3","ssd-mobilenet","tensorflow","tracker","yolo","yolov3"],"created_at":"2024-07-31T15:01:05.954Z","updated_at":"2025-03-26T03:31:45.510Z","avatar_url":"https://github.com/adipandas.png","language":"Python","readme":"[cars-yolo-output]: examples/assets/cars.gif \"Sample Output with YOLO\"\n[cows-tf-ssd-output]: examples/assets/cows.gif \"Sample Output with SSD\"\n\n# Multi-object trackers in Python\nEasy to use implementation of various multi-object tracking algorithms.\n\n[![DOI](https://zenodo.org/badge/148338463.svg)](https://zenodo.org/badge/latestdoi/148338463)   \n\u003c!-- [![Upload motrackers to PyPI](https://github.com/adipandas/multi-object-tracker/actions/workflows/python-publish.yml/badge.svg)](https://github.com/adipandas/multi-object-tracker/actions/workflows/python-publish.yml) --\u003e\n\n\n`YOLOv3 + CentroidTracker` |  `TF-MobileNetSSD + CentroidTracker`\n:-------------------------:|:-------------------------:\n![Cars with YOLO][cars-yolo-output]  |  ![Cows with tf-SSD][cows-tf-ssd-output]\nVideo source: [link](https://flic.kr/p/L6qyxj) | Video source: [link](https://flic.kr/p/26WeEWy)\n\n\n## Available Multi Object Trackers\n\n- CentroidTracker\n- IOUTracker\n- CentroidKF_Tracker\n- SORT\n\n\n## Available OpenCV-based object detectors:\n\n- detector.TF_SSDMobileNetV2\n- detector.Caffe_SSDMobileNet\n- detector.YOLOv3\n\n## Installation\n\nPip install for OpenCV (version 3.4.3 or later) is available [here](https://pypi.org/project/opencv-python/) and can be done with the following command:\n```\npip install motrackers\n```\n\nAdditionally, you can install the package through GitHub instead:\n```\ngit clone https://github.com/adipandas/multi-object-tracker\ncd multi-object-tracker\npip install [-e] .\n```\n\n**Note - for using neural network models with GPU**  \nFor using the opencv `dnn`-based object detection modules provided in this repository with GPU, you may have to compile a CUDA enabled version of OpenCV from source.  \n* To build opencv from source, refer the following links:\n[[link-1](https://docs.opencv.org/master/df/d65/tutorial_table_of_content_introduction.html)],\n[[link-2](https://www.pyimagesearch.com/2020/02/03/how-to-use-opencvs-dnn-module-with-nvidia-gpus-cuda-and-cudnn/)]\n\n## How to use?: Examples\n\nThe interface for each tracker is simple and similar. Please refer the example template below.\n\n```\nfrom motrackers import CentroidTracker # or IOUTracker, CentroidKF_Tracker, SORT\ninput_data = ...\ndetector = ...\ntracker = CentroidTracker(...) # or IOUTracker(...), CentroidKF_Tracker(...), SORT(...)\nwhile True:\n    done, image = \u003cread(input_data)\u003e\n    if done:\n        break\n    detection_bboxes, detection_confidences, detection_class_ids = detector.detect(image)\n    # NOTE: \n    # * `detection_bboxes` are numpy.ndarray of shape (n, 4) with each row containing (bb_left, bb_top, bb_width, bb_height)\n    # * `detection_confidences` are numpy.ndarray of shape (n,);\n    # * `detection_class_ids` are numpy.ndarray of shape (n,).\n    output_tracks = tracker.update(detection_bboxes, detection_confidences, detection_class_ids)\n    # `output_tracks` is a list with each element containing tuple of\n    # (\u003cframe\u003e, \u003cid\u003e, \u003cbb_left\u003e, \u003cbb_top\u003e, \u003cbb_width\u003e, \u003cbb_height\u003e, \u003cconf\u003e, \u003cx\u003e, \u003cy\u003e, \u003cz\u003e)\n    for track in output_tracks:\n        frame, id, bb_left, bb_top, bb_width, bb_height, confidence, x, y, z = track\n        assert len(track) == 10\n        print(track)\n```\n\nPlease refer [examples](https://github.com/adipandas/multi-object-tracker/tree/master/examples) folder of this repository for more details. You can clone and run the examples.\n\n## Pretrained object detection models\n\nYou will have to download the pretrained weights for the neural-network models. \nThe shell scripts for downloading these are provided [here](https://github.com/adipandas/multi-object-tracker/tree/master/examples/pretrained_models) below respective folders.\nPlease refer [DOWNLOAD_WEIGHTS.md](https://github.com/adipandas/multi-object-tracker/blob/master/DOWNLOAD_WEIGHTS.md) for more details.\n\n### Notes\n* There are some variations in implementations as compared to what appeared in papers of `SORT` and `IoU Tracker`.\n* In case you find any bugs in the algorithm, I will be happy to accept your pull request or you can create an issue to point it out.\n\n## References, Credits and Contributions\nPlease see [REFERENCES.md](https://github.com/adipandas/multi-object-tracker/blob/master/docs/readme/REFERENCES.md) and [CONTRIBUTING.md](https://github.com/adipandas/multi-object-tracker/blob/master/docs/readme/CONTRIBUTING.md).\n\n## Citation\n\nIf you use this repository in your work, please consider citing it with:\n```\n@misc{multiobjtracker_amd2018,\n  author = {Deshpande, Aditya M.},\n  title = {Multi-object trackers in Python},\n  year = {2020},\n  publisher = {GitHub},\n  journal = {GitHub repository},\n  howpublished = {\\url{https://github.com/adipandas/multi-object-tracker}},\n}\n```\n\n","funding_links":[],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadipandas%2Fmulti-object-tracker","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadipandas%2Fmulti-object-tracker","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadipandas%2Fmulti-object-tracker/lists"}