Smorodov / Multitarget-tracker

Multiple Object Tracker, Based on Hungarian algorithm + Kalman filter.
Apache License 2.0
2.17k stars 649 forks source link

FaceTracker & FairMot #347

Open MyraBaba opened 2 years ago

MyraBaba commented 2 years ago

Hi,

What would you suggest to tracking faces ? have you looked the FairMOT tracker.

Nuzhny007 commented 2 years ago

Hi! I know about FairMOT and want to move it ideas to this project. Now I'm working on Python API, second goal - make multi camera tracking. And after - FairMOT. This project uses only C++ code, so it not so simple to implement all modern approaches from Python.

For face tracking you can use classical tracking algorithms. For advanced quality it can use embeddings from face recognition projects (like DeepSORT)

Nuzhny007 commented 2 years ago

And I will test ByteTrack: https://github.com/ifzhang/ByteTrack

MyraBaba commented 2 years ago

@Nuzhny007 Hi friend,

First of all thanks for your quick and informative answers. Not so many people that respects their work and communication.

I have a project that analyze 500 hundred hours event video to detect anomalies.

I want to track detected faces fast and accurately so I can assign tracked faces to same person-ID I m using mtcnn or ultra face detection. SO I have object bounding boxes.

Nuzhny007 commented 2 years ago
  1. Build OpenCV with Intel OpenVINO

  2. You can take face reidentification model from OpenVINO: https://docs.openvinotoolkit.org/2020.2/_models_intel_face_reidentification_retail_0095_description_face_reidentification_retail_0095.html

  3. Set bool useDeepSORT = true; And use Multitarget-tracker with this model as metric for assignment problem: https://github.com/Smorodov/Multitarget-tracker/blob/master/example/examples.h#L692

  4. Use some face detection neural network - for example from OpenVINO or anything else

MyraBaba commented 2 years ago

@Nuzhny007 Hi,

Thanks for helpfull feedback.

We have our own face detector and recognizer . Do we need still openvino toolkit ?

Nuzhny007 commented 2 years ago

Hi! It depends from your detector. I have builded OpenCV with OpenVINO backend and run re-id from opencv_dnn:

net.setPreferableBackend(cv::dnn::DNN_BACKEND_INFERENCE_ENGINE); net.setPreferableTarget(cv::dnn::DNN_TARGET_CPU);

MyraBaba commented 2 years ago

@Smorodov @Nuzhny007

Hi Gentlemen , We have a test project which is related to the city traffic data collection / management . You can look https:// trafficdata . ru/ remove spaces.

This will be very similar to the above site solution. This test would be transferable to sellable product soon .

I would love to have your suggestion :

1 - Which tacker and methods is the best approach this solution (car , human , vehicles , bicycle etc tract with ID and speed)

2 - Would you like to be a part of this project

Best

Nuzhny007 commented 2 years ago
  1. I think that you can test first a current SOTA: YOLOv5 + some tracke like FairMOT, ByteTrack etc. For traffic they a good.

  2. I don't sure. It's my hobby but I can consult you in my free time.