pjreddie / darknet

Convolutional Neural Networks
http://pjreddie.com/darknet/
Other
25.69k stars 21.33k forks source link

Pedestrian Trajectory #264

Open hurkal opened 6 years ago

hurkal commented 6 years ago

Hello. I need to give each human an ID and extract human trajectories from a video file or on webcam. Is darknet Yolo suitable for this job?

TheMikeyR commented 6 years ago

YOLO is an object detector, so it can detect the objects you need (Humans), with X accuracy (depending on your data and training). If you want to get human trajectories you can use YOLO to detect objects and feed these into SORT https://github.com/abewley/sort, which can do the tracking of each object.

If you don't want to connect YOLO with Sort, this person did it for you https://github.com/bendidi/Tracking-with-darkflow the running speed (fps) is not as great as running YOLO and Sort individual though, I guess it is due to the tensorflow implementation.

What requirements do you have? Offline or Online approach?

hurkal commented 6 years ago

Thanks for quick answer. Planning online approach but I'm at the beginning of this task. So I have to test on offline data.

TheMikeyR commented 6 years ago

For an online approach I would try to train with tiny-yolo (much faster) and use SORT to do the tracking, just be aware that tiny-yolo is less precise compared to yolo.

arturioxas commented 6 years ago

I have implemented precisely that. What could I do to extract parameters needed for computing MOTA and MOTP?

ahsan856jalal commented 6 years ago

@TheMikeyR Just a small question apart from the discussion when you say tiny-yolo is less precise, does that mean classification only or detection of an object as well ?

TheMikeyR commented 6 years ago

@ahsan856jalal for object detection as well, the mAP is in general much lower than yolov2 and yolov3. The tiny-yolo cfg is made to push performance over precision. (less layers, smaller resolution etc.) You can achieve higher precision with increasing resolution on tiny-yolo but it will ofc. be costly in terms of performance.