kcg2015 / Vehicle-Detection-and-Tracking

Computer vision based vehicle detection and tracking using Tensorflow Object Detection API and Kalman-filtering
537 stars 193 forks source link

Error occur when using my own video #14

Closed zhangyuan1997 closed 5 years ago

zhangyuan1997 commented 5 years ago

Dear, Mr Kcg2015, How are you? Your project is very helpful and explanation is very detail so thanks for your efforts for developing this project. When I run main.py to test my own video, there is something wrong.(video information as follows, test file size about 1.5GB)

qq 20190130193440

When the first frame is detected, the program terminates. The results and errors of the first frame detection are as follows:

qq 20190130193615 qq 20190130193628

I would like to ask why there is such a mistake, thank you for your solution.

                                                                                                                                                             Best.
kcg2015 commented 5 years ago

@zhangyuan1997, thanks a lot for bringing this up. It could well be a bug. I will look into it. Meanwhile, could you try commenting out the line 147 to see if it works? Alternatively you can add if len(track_id_list) > 0: tmp_trk.id = track_id_lst.popleft() to avoid popping an empty list.

zhangyuan1997 commented 5 years ago

@zhangyuan1997, thanks a lot for bringing this up. It could well be a bug. I will look into it. Meanwhile, could you try commenting out the line 147 to see if it works? Alternatively you can add if len(track_id_list) > 0: tmp_trk.id = track_id_lst.popleft() to avoid popping an empty list.

Thanks a lot.I will try to debug with your method. The same error occurred (pop from an empty deque) when I used other video to test, but it happened at 198th frame. qq 20190131102951 Thanks a lot for your response. Have a good day! Best Yuan.

zhangyuan1997 commented 5 years ago

@zhangyuan1997, thanks a lot for bringing this up. It could well be a bug. I will look into it. Meanwhile, could you try commenting out the line 147 to see if it works? Alternatively you can add if len(track_id_list) > 0: tmp_trk.id = track_id_lst.popleft() to avoid popping an empty list.

Thank you very much! When I comment out the line 147, it works with no error.

zhangyuan1997 commented 5 years ago

@zhangyuan1997, thanks a lot for bringing this up. It could well be a bug. I will look into it. Meanwhile, could you try commenting out the line 147 to see if it works? Alternatively you can add if len(track_id_list) > 0: tmp_trk.id = track_id_lst.popleft() to avoid popping an empty list.

I wonder why there is an empty deque?

kcg2015 commented 5 years ago

@zhangyuan1997 I am wondering about this too. I have not encountered this situation before.

zhangyuan1997 commented 5 years ago

@zhangyuan1997 I am wondering about this too. I have not encountered this situation before.

Have you tried multiple different datasets before, including the ones you recorded?If you need the data set I recorded to help solve the bug, I will send it to you by email.

kcg2015 commented 5 years ago

@zhangyuan1997, I am lookining into my code and would let you know if I fix the bug. Thanks again.

kcg2015 commented 5 years ago

You can modify def draw_box_label(img, bbox_cv2, box_color=(0, 255, 255), show_label=True): in helper.py

Best

On Thu, Jan 31, 2019 at 12:12 AM 张元 notifications@github.com wrote:

Sorry to take up your time, how can I draw confidence label on each bounding box. Thanks a lot for your reply.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/kcg2015/Vehicle-Detection-and-Tracking/issues/14#issuecomment-459218201, or mute the thread https://github.com/notifications/unsubscribe-auth/AMNF0GcTtIeXD8wytTbpVJFeW5bz2EQGks5vIntQgaJpZM4aaCD5 .

zhangyuan1997 commented 5 years ago

Thanks a lot. I have added this label😄

zhangyuan1997 commented 5 years ago

You can modify def draw_box_label(img, bbox_cv2, box_color=(0, 255, 255), show_label=True): in helper.py Best

Hello, sorry to take up your time. I would like to ask the score in the scores obtained from this statement (line53: self.scores =self.detection_graph.get_tensor_by_name('detection_scores:0')) in the detector.py defaults to the highest score for each box? I found that each box corresponds to a score, corresponding to a category. The figure below shows 100 boxes, 100 categories, and 100 predicted scores (where the red line is drawn) in the first frame. qq 20190201171327 But in a general classification task should not be a box corresponding to multiple predicted categories and scores? Rather than the 1:1:1 relationship above.

zhangyuan1997 commented 5 years ago

In addition, what is the basis for the score threshold to be 0.3? qq 20190201172319

Thanks a lot for your response! Best.

zhangyuan1997 commented 5 years ago

In addition, why is the basis for the score threshold to be 0.3? qq 20190201172319

Thanks a lot for your response! Best.

kcg2015 commented 5 years ago

@zhangyuan1997, you have to tune this parameter based on the detector's performance on your images. If the value is too low, you would have false-positives. If the value is too high, you would have miss-detections. I choose 0.3 because it works the best for the images I tested.

zhangyuan1997 commented 5 years ago

Thanks a lot!Having a discussion with you has taught me a lot.😊😊😊Thank you very much. Happy New Year.

kcg2015 commented 5 years ago

Glad that I can be of some help. Let me close this issue for now.