{"id":13643920,"url":"https://github.com/obendidi/Tracking-with-darkflow","last_synced_at":"2025-04-21T06:32:05.602Z","repository":{"id":115471727,"uuid":"98413813","full_name":"obendidi/Tracking-with-darkflow","owner":"obendidi","description":"Real-time people Multitracker using YOLO v2 and deep_sort with tensorflow ","archived":false,"fork":false,"pushed_at":"2022-01-03T16:35:29.000Z","size":36,"stargazers_count":523,"open_issues_count":62,"forks_count":174,"subscribers_count":29,"default_branch":"master","last_synced_at":"2024-11-19T16:05:47.328Z","etag":null,"topics":["convolutional-neural-networks","darkflow","darknet","deep-learning","deep-neural-networks","image-processing","machine-learning","mobile-development","multitracker","object-detection","real-time","sort","tensorflow","tracker","yolo","yolo2"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/obendidi.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}},"created_at":"2017-07-26T11:05:56.000Z","updated_at":"2024-09-28T07:35:49.000Z","dependencies_parsed_at":null,"dependency_job_id":"501a914c-cc6c-4417-bb61-e1e7e67249cb","html_url":"https://github.com/obendidi/Tracking-with-darkflow","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obendidi%2FTracking-with-darkflow","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obendidi%2FTracking-with-darkflow/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obendidi%2FTracking-with-darkflow/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/obendidi%2FTracking-with-darkflow/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/obendidi","download_url":"https://codeload.github.com/obendidi/Tracking-with-darkflow/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250008230,"owners_count":21359951,"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":["convolutional-neural-networks","darkflow","darknet","deep-learning","deep-neural-networks","image-processing","machine-learning","mobile-development","multitracker","object-detection","real-time","sort","tensorflow","tracker","yolo","yolo2"],"created_at":"2024-08-02T01:01:54.862Z","updated_at":"2025-04-21T06:32:01.282Z","avatar_url":"https://github.com/obendidi.png","language":"Python","readme":"## Intro\n\nThe purpose of this little project is to add object tracking to yolov2 and achieve real-time multiple object tracking.\n\nThe current architecture is set to only track one type of objects, but it should be easy to generalise over all objects.\n\nCurrently support people tracking (as the provided weights for deep_sort were trained on people tracking)\n\n## Dependencies\n\n    python\n    numpy\n    opencv 3\n    tensorflow 1.0\n    Cython.\n    sklean.\n\nfor using sort :\n\n[`scikit-learn`](http://scikit-learn.org/stable/)\n\n[`scikit-image`](http://scikit-image.org/download)\n\n[`FilterPy`](https://github.com/rlabbe/filterpy)\n\n\n### Setup\n\n1 - Clone this repository : `git clone https://github.com/bendidi/Tracking-with-darkflow.git`\n\n2 - Initialize all submodules: `git submodule update --init --recursive`\n\n3 - Go to darkflow directory and do in place build: `python3 setup.py build_ext --inplace`\n\n## Getting started\n\nDownload the weights :\n\nRead more about YOLO (in darknet) and download weight files [here](http://pjreddie.com/darknet/yolo/),In case the weight file cannot be found, [thtrieu](https://github.com/thtrieu) has uploaded some of his [here](https://drive.google.com/drive/folders/0B1tW_VtY7onidEwyQ2FtQVplWEU), which include `yolo-full` and `yolo-tiny` of v1.0, `tiny-yolo-v1.1` of v1.1 and `yolo`, `tiny-yolo-voc` of v2.\n\nThe artchitecture I used/tested in this project is `cfg/yolo.cfg` with the weights `bin/yolo.weights`.\n\n~~Next you need to download the deep_sort weights [here](https://owncloud.uni-koblenz.de/owncloud/s/f9JB0Jr7f3zzqs8?path=%2Fresources) (networks folder), provided by [nwojke](https://github.com/nwojke)~~\n\nThe deep_sort weights provided by [nwojke](https://github.com/nwojke) has been cancelled. you can get them from [here](https://drive.google.com/open?id=1eXm0EB8r4BywqHJzaorXTSOkIfFdTq59) instead ( thanks to [@louxy126](https://github.com/louxy126) )\n\nextract the folder and copy it to `deep_sort/resources`\n\nEdit Flags in `run.py` following your configuration :\n\n- `demo` : path to video file to use, set to \"camera\" if you wish to use your camera\n- `model` : what model configuration to use for YOLO, you can get more information and .cfg files in [here](http://pjreddie.com/darknet/yolo/)(put them in darkflow/cfg/ folder)\n- `load` : The  corresponding weights to use with the chosen model (put them in darkflow/bin/) more info in [here](http://pjreddie.com/darknet/yolo/)\n- `threshold` : the confidance threshold of the YOLO detections\n- `gpu` : How much GPU to use, 0 means use cpu\n- `track` : to activate tracking or Not\n- `trackObj`: which objects to track as a list (notice that deep_sort's encoder was only trained on people , so you need train your own encoder, more information in [here](https://github.com/nwojke/deep_sort/issues/7))\n- `saveVideo` : whether to save video or not\n- `BK_MOG` : add opencv's MOG background subtraction module, only useful when YOLO can't detect people in a video (low quality, ...) use it to detect boxes around moving objects\n- `tracker` : which tracker to use : \"deep_sort\" or \"sort\"\n\n            **NOTE** : \"deep_sort\" only supports people tracking as it was only trained to track people(the code for training is not yet published)\n\n            **TODO** : add support for GOTURN tracker(tensorflow implementation)\n\n            **TODO** : add support for opencv trackers (MIL,KCF,TLD,MEDIANFLOW)\n\n- `skip ` : skip frames to increase fps, might decrease accuracy !\n- `csv` : save csv file of detections in the format (frame_id,object_id,x,y,w,h)\n- `display` : display video while processing or Not\n\nNext you just have to run `python run.py`, and enjoy !\n\n## Some numbers :\n\n`speed using yolo.cfg:\n\n    YOLO with track Flag set to False : 30fps\n\n    YOLO with track Flag set to True (deep_sort) : 14 fps\n\n    YOLO with track and background subtraction Flags set to True : 10.5 fps\n\nTests done on (1024, 1280, 3) resolution video on Nvidia GTX 1080\n\nskipping up to 3 frames allows for more speed up while keeping accuracy of tracking`\n\n\n\n## Disclamer :\n\nthis project is using code forked from:\n\n[thtrieu/darkflow](https://github.com/thtrieu/darkflow): for the real-time object detections and classifications.\n\n[nwojke/deep_sort](https://github.com/nwojke/deep_sort): for Simple Online Realtime Tracking with a Deep Association Metric.\n\nPlease follow the links to get an understanding of all the features of each project.\n\n## Citation\n\n### Yolov2 :\n\n    @article{redmon2016yolo9000,\n      title={YOLO9000: Better, Faster, Stronger},\n      author={Redmon, Joseph and Farhadi, Ali},\n      journal={arXiv preprint arXiv:1612.08242},\n      year={2016}\n    }\n\n### deep_sort :\n\n    @article{Wojke2017simple,\n      title={Simple Online and Realtime Tracking with a Deep Association Metric},\n      author={Wojke, Nicolai and Bewley, Alex and Paulus, Dietrich},\n      journal={arXiv preprint arXiv:1703.07402},\n      year={2017}\n    }\n\n### sort :\n\n    @inproceedings{Bewley2016_sort,\n      author={Bewley, Alex and Ge, Zongyuan and Ott, Lionel and Ramos, Fabio and Upcroft, Ben},\n      booktitle={2016 IEEE International Conference on Image Processing (ICIP)},\n      title={Simple online and realtime tracking},\n      year={2016},\n      pages={3464-3468},\n      keywords={Benchmark testing;Complexity theory;Detectors;Kalman filters;Target tracking;Visualization;Computer Vision;Data Association;Detection;Multiple Object Tracking},\n      doi={10.1109/ICIP.2016.7533003}\n    }\n","funding_links":[],"categories":["Object Detection Applications"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobendidi%2FTracking-with-darkflow","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fobendidi%2FTracking-with-darkflow","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fobendidi%2FTracking-with-darkflow/lists"}