Show HN: OpenCV based multi-object-tracker with various object detection models
github.com
github.com
Also the TF Object Detection API has a suite of pretrained SOTA object detection models https://github.com/tensorflow/models/tree/master/research/ob...
What makes object detection really valuable is being able to finetune a model to detect objects that are relevant to your problem. However collecting, labeling, takes a lot of time since the best way is to manually label. But 30-50 hrs of manual labeling can get you some great results when you are leveraging pretrained models. Building a tool to manage data labeling and training for finetuning object detection models would be very valuable.
Also, I would recommend this repo to better understand how object detection models are evaluated as well: https://github.com/rafaelpadilla/Object-Detection-Metrics
Something like recaptcha?
Initial intention of this project was to avoid direct dependency of any deep learning framework. I have only used pre-trained models and opencv for this project.
Making a tool for data labeling is an awesome idea. I will definitely like to work on it. We can collaborate on this if possible. You are also welcome to send in your pull requests.
For example, pre-trained models don't work too well at detecting people in surveillance footage when the camera is mounted on the ceiling and people are at an angle in the footage. Off-the-shelf object detection models also don't work well in poor lighting conditions but can work well if you fine-tune one of the pre-trained models for your dataset and lighting conditions.
Here's a great and fun tutorial on how to fine-tune an object detection model using TensorFlow (it's a surprisingly fiddly process but worth the headache): https://towardsdatascience.com/how-to-train-your-own-object-...
I suspect you can use your fine-tuned model with this repo by replacing the `get_ssd_model.sh` compiled graph with your fine-tuned model graph.
It's also a fun exercise to implement the tracking yourself - here's a solid tutorial to get you started: https://www.pyimagesearch.com/2018/08/13/opencv-people-count...
Yes, replacing the fine-tuned model with compiled graph should work. I tried to keep it simple and intuitive to change the model so as to allow the use of any other custom models.
I was referring the following papers:
1. https://ethz.ch/content/dam/ethz/special-interest/baug/igp/p...
2. https://zpascal.net/cvpr2018/He_A_Twofold_Siamese_CVPR_2018_...
3. http://openaccess.thecvf.com/content_ECCV_2018/papers/Yunhua...
Template Matching scans an image with your template, smaller image and finds the location with highest cross correlation: https://opencv-python-tutroals.readthedocs.io/en/latest/py_t...
Template matching assumes the example image wont deform or take on different orientations.
Popular Feature Extraction finds and derive more robust features that help find objects in the scenarios of distortion, orientation, and scale.
Link for feature detection and matching: https://opencv-python-tutroals.readthedocs.io/en/latest/py_t...
Pyimagesearch does a cool method where they enable template matching to work at different scales. It ignores color information (by using edge detection), which could be a critical feature if the object has specific color:
https://www.pyimagesearch.com/2015/01/26/multi-scale-templat...