Skip to content
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

not tracking #1

Closed
3073 opened this issue Feb 25, 2018 · 38 comments
Closed

not tracking #1

3073 opened this issue Feb 25, 2018 · 38 comments

Comments

@3073
Copy link

3073 commented Feb 25, 2018

the tacker is not tracking the sequence of images in "test_mages" folder.
the position of the bounding boxes do not change. it well track the "frame003" image

@kcg2015
Copy link
Owner

kcg2015 commented Feb 25, 2018

Could you provide more detail (error messages or images?)? I assume that you ran the main.py. I ran the example again. It seems to work fine. There could be a few occations that the detector could miss detecting the car. In these cases, the most recently updated bounding box would be used for tracking (e.g., Frame 5). Was this the situation that you encountered?

Here are a few examples from my end:

  1. measurement and update for Frame 4, respectively:
    frame4_measurement
    frame4_update
  2. measurement and update for Frame 8, respectively:
    frame8_measurement
    frame8_update

Let me know if this would help.

Best,
Kyle

@3073
Copy link
Author

3073 commented Feb 26, 2018 via email

@3073
Copy link
Author

3073 commented Feb 26, 2018 via email

@3073
Copy link
Author

3073 commented Feb 26, 2018 via email

@3073
Copy link
Author

3073 commented Feb 26, 2018

image

@kcg2015
Copy link
Owner

kcg2015 commented Feb 26, 2018

@3073 , thanks for your comments and feedback.

  1. The code in tracker.py is meant to quickly illustrate the impact noise covariance matrix of an measurement. You can modify the code:
    127 images = [plt.imread(file) for file in glob.glob('./test_images/*.jpg')]
    128 img=images[3]
    to suit your purpose.

  2. I agree with you that the detection (localization) quality of SSD-Mobilenet architecture is far from perfect. I use it mainly because the fast inference time (<200 ms on a CPU only laptop). Of course, you can use other detection architectures/APIs, subject to the trade-off between accuracy and inference time. In my experience, there will always be cases that a general-purpose object detection API could fail. Thus I plan to optimize SSD-Mobilenet for vehicle detection only with new training images. I will keep you posted on the progress.

  3. I am not quite sure about your question "do you have SSD with a tracker like kalman filter". From my experience, SSD only provides the measurement part (by outputing the bounding box in a frame) for Bayesian filtering (could be KF, UKF, or EKF). I don't believe SSD, in its most basic design, has a built-in predict and update processes. I could be wrong.

Hope these could be helpful.

Best, Kyle

@3073
Copy link
Author

3073 commented Feb 26, 2018 via email

@kcg2015
Copy link
Owner

kcg2015 commented Feb 26, 2018

@3073 , I am only aware of Simple, online, and realtime tracking (SORT) for multi-object tracking in this repo: https://github.com/abewley/sort. Also if you want to dig deep into the concepts/techniques of varios Bayesian filters for tracking, the following repo is a very good source: https://github.com/rlabbe/Kalman-and-Bayesian-Filters-in-Python

Hope these would help.

Best,
Kyle

@3073
Copy link
Author

3073 commented Feb 27, 2018 via email

@kcg2015
Copy link
Owner

kcg2015 commented Feb 27, 2018

I have no idea either. The best way is to contact the author/developer of the repo directly.

@3073
Copy link
Author

3073 commented Feb 28, 2018 via email

@kcg2015
Copy link
Owner

kcg2015 commented Mar 1, 2018

I have not worked on webcam capturing yet. You can check out this YouTube video and the code for more information. https://www.youtube.com/watch?v=MyAOtvwTkT0. Hope this would help.

@3073
Copy link
Author

3073 commented Mar 1, 2018 via email

@kcg2015
Copy link
Owner

kcg2015 commented Mar 2, 2018

@3073 , please give me some time to update the Readme file of the repo. I will provide more details about these three code blocks.

@3073
Copy link
Author

3073 commented Mar 2, 2018 via email

@3073
Copy link
Author

3073 commented Mar 4, 2018 via email

@kcg2015
Copy link
Owner

kcg2015 commented Mar 5, 2018

Yes. The number of tracked persons equals to matched detections.

@3073
Copy link
Author

3073 commented Mar 5, 2018 via email

@3073
Copy link
Author

3073 commented Mar 5, 2018 via email

@kcg2015
Copy link
Owner

kcg2015 commented Mar 5, 2018

@3073, no worry. Because the matching between the detection and the track is one-to-one, i.e, a detection can be matched to only (at most) one track, and a track can have only (at most) one associated detection, I doubt that a tracked detection will be double-counted. Does it sound reasonable to you? Let me know.

@3073
Copy link
Author

3073 commented Mar 5, 2018 via email

@kcg2015
Copy link
Owner

kcg2015 commented Mar 5, 2018

@3073 , I am glad this repo can be helpful to you. Thanks for the star. Again, please bear with me as it takes some time to update README file and some code blocks. This is not my day-job, so progress could be slow.

@3073
Copy link
Author

3073 commented Mar 5, 2018 via email

@3073
Copy link
Author

3073 commented Mar 11, 2018 via email

@kcg2015
Copy link
Owner

kcg2015 commented Mar 11, 2018

Hi, @3073, I have never implementd object-counting feature before, so I have don't have any first-hand experience. So my guess is (still) counting the number of matched tracks (or detections) for a given frame. Also could you post your code (block) on github (public or private at your own choice)? Without going through your code, it is very hard to pinpoint the what happened.

@3073
Copy link
Author

3073 commented Mar 11, 2018 via email

@3073
Copy link
Author

3073 commented Mar 12, 2018 via email

@kcg2015
Copy link
Owner

kcg2015 commented Mar 13, 2018

@3073, could you show me an image of multiple boxes on the same object?

@3073
Copy link
Author

3073 commented Mar 13, 2018 via email

@kcg2015
Copy link
Owner

kcg2015 commented Mar 14, 2018

For some reason, I can not see your video. See if you can upload it on YouTube and send me a link?

@3073
Copy link
Author

3073 commented Apr 24, 2018

Dear my friend
do you have some time to show me How the Main.py works in your repo?
I did not understand the codes in:

Deal with matched detection

Deal with unmatched detection

Deal with unmatched tracks

Lat time you promised to help me understand me all these thing.
off course I understand them nearly. could you be online to show me please?

Thank you

@kcg2015
Copy link
Owner

kcg2015 commented Apr 25, 2018

@3073 , I just update the readme file in the repo. It should be very clear the functionalities of these three code blocks.

@3073
Copy link
Author

3073 commented Apr 26, 2018

very nice

@kcg2015
Copy link
Owner

kcg2015 commented Apr 26, 2018

Cool! I am going to close this issue.

@kcg2015 kcg2015 closed this as completed Apr 26, 2018
@3073
Copy link
Author

3073 commented May 31, 2018 via email

@kcg2015
Copy link
Owner

kcg2015 commented Jun 1, 2018

@3073 , I am afraid that I can not be of much help to you. I am not familiar with dlib tracker at all. Also, from your description, it is very hard to pinpoint what the problem is let alone to fix it. All I can say is that if the performance of SSD Moblenet is not up to your task, consider using a different one in Tensorflow Object Dection API.

@3073
Copy link
Author

3073 commented Jun 1, 2018 via email

@3073
Copy link
Author

3073 commented Jul 6, 2018

Hi how are you!!! have you check any possibility to run this code on raspberry pi? image classification on raspberry pi using SSD Moblenet .....

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants