kcg2015 / Vehicle-Detection-and-Tracking

Computer vision based vehicle detection and tracking using Tensorflow Object Detection API and Kalman-filtering

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Error occur when using my own video

zhangyuan1997 opened this issue · comments

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.

@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, 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, 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, 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?

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

@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.

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

Thanks a lot. I have added this label😄

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.

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

Thanks a lot for your response!
Best.

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

Thanks a lot for your response!
Best.

@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.

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

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