-
Notifications
You must be signed in to change notification settings - Fork 8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add multi-object tracker #3042
Comments
thanks for sharing @AlexeyAB . How can we use this, with yolo detection. secodly, how different is it to already exisiting (OPTFLOW AND KALMAN FILTERING) |
It's really great you are working on baking this into your YOLO fork, I had good results using a very simple one: https://github.com/bochinski/iou-tracker , paper: http://elvera.nue.tu-berlin.de/files/1547Bochinski2018.pdf I implemented a flaky node.js version: https://github.com/tdurand/node-moving-things-tracker |
Had good experience too. Overall, it's ultra-fast! |
Hi! |
@Nuzhny007 Hi, What is the most accurate multi-object tracker you could find and used? |
I'm working only with C++ code with real time systems. And Hungarian algorithm or version with bipartite graph is not bad. And also i'm used more simple algorithms but they are not robust. A good online algorithm is "FollowMe: Efficient Min-cost Flow Tracking with Bounded Memory and Computation": http://www.cvlibs.net/projects/online_tracking/ The good are "Lifted Multicut" (https://github.com/jutanke/cabbage) and LBM (Smorodov/Multitarget-tracker#125) but they are too slow. And also in plans SORT with YOLO: https://github.com/humoncy/YOLOv3-SORT-ReID |
Yes, it seems that SORT is very fast and enough accurate algorithm.
|
For example ( https://github.com/Smorodov/Multitarget-tracker/blob/master/example/examples.h#L177 ):
Here we use SORT: DistJaccard + Kalman + Hungarian. And we use CSRT tracker (TrackCSRT) for frames when object was undetected. |
So circles means, that the SSD-detector can't detect object there, and was used object tracker (KCF, CSRT, STAPLE or...). Is it this video? https://www.youtube.com/watch?v=Qssz6tVGoOc
Why SORT (Kalman + Hungarian) and CSRT can't solve this taks, even if these objects are clearly visible and almost do not overlap? |
Here was used not CSRT and classical KCF from OpenCV - it more faster but not so robust as CSRT. And KCF not robust for dynamic object like people, it tracks static background. |
Yes, you can transfer tracking part to this project by using Pull Requests
I think there can be added some or can be added |
Ok, I'l do it |
@Nuzhny007 Hi, Thanks for your work. I have merged this repo with your repo. I'm going to use for traffic sign detection and my camera is front of the car. Sometimes the signs are not recognized in some frames. I want to know, what is the best TrackerSettings for my case? Thanks |
@AlexeyAB What is the status of multi-object tracking in this repo? Was @Nuzhny007 tracker ever integrated? |
@LukeAI Not started yet. |
We have one problem: Multitarget-tracker has GPL license and I can't use it code in darknet. Smorodov (the owner of the Multitarget-tracker) starded a new project TrackerGenerator for generate tracker's code with new license. |
@zpmmehrdad CSRT tracker is better. |
If anyone is interested, I implemented an optimized (real-time) tracker based on Deep SORT that uses Darknet's YOLO models converted to TensorRT: https://github.com/GeekAlexis/FastMOT |
@GeekAlexis Great, thanks!
|
Thanks for your interest. I will support swish CSP weights. I have not tried to use SiamRPN++. Because my implementation uses KLT (optical flow) with DeepSORT, a possibility is to replace KLT with SiamRPN++. It should improve accuracy but a single object tracker probably doesn't scale well with the number of objects in a real-time MOT system. FairMOT is a faster extension of Deep SORT because it combines detection and ReID embedding in one network. I have plans to support it if I can convert its YOLOv5 backbone version to TensorRT. The author's implementation is not as optimized and its tracking framework is not as robust to camera motion and occlusion compared to mine. Also, combining FairMOT with a scaled-YOLOv4 backbone would be nice. |
Add multi-object tracker (dynamic array of single object trackers):
SORT-tracker:
cv::KalmanFilter
+ Hungarian algorithm https://en.wikipedia.org/wiki/Hungarian_algorithm and https://arxiv.org/abs/1602.00763 and https://github.com/mcximing/sort-cppcv::TrackerCSRT()
(CSRDCF++) - OpenCV-contirbObject detection task and appearance embedding task simutaneously in a shared neural network - source: https://github.com/Zhongdao/Towards-Realtime-MOT pdf: https://arxiv.org/abs/1909.12605v1
SiamRPN - first places in Real-time: https://arxiv.org/abs/1808.06048 and https://github.com/foolwood/DaSiamRPN
Accuracy:
Page 16: https://prints.vicos.si/publications/files/365
The text was updated successfully, but these errors were encountered: