I work a lot with object detection at my current role.
Would be cool to add Detectron 2, seems that this library that has some of the state of the art(SOTA) models in object detection. <a href="https://github.com/facebookresearch/detectron2" rel="nofollow">https://github.com/facebookresearch/detectron2</a><p>Also the TF Object Detection API has a suite of pretrained SOTA object detection models <a href="https://github.com/tensorflow/models/tree/master/research/object_detection" rel="nofollow">https://github.com/tensorflow/models/tree/master/research/ob...</a><p>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.
I've built several object detection systems and you definitely want to fine-tune your model to get good results, even if the object class you want to track is available in a pre-trained model (often it isn't).<p>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.<p>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):
<a href="https://towardsdatascience.com/how-to-train-your-own-object-detector-with-tensorflows-object-detector-api-bec72ecfe1d9" rel="nofollow">https://towardsdatascience.com/how-to-train-your-own-object-...</a><p>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.<p>It's also a fun exercise to implement the tracking yourself - here's a solid tutorial to get you started:
<a href="https://www.pyimagesearch.com/2018/08/13/opencv-people-counter/" rel="nofollow">https://www.pyimagesearch.com/2018/08/13/opencv-people-count...</a>
Have you tried using object attributes/features to enable tracking instead of IOU-based tracking? I suspect this tracker falls apart when there are significant obstructions. Thoughts on a Recurrent YOLO or DeepSORT based tracker?
Question for HN experts:
what would be the best approach for object-detection when the object I am trying to detect is a specific image (not a class of objects) printed on a 2D surface (therefore it could be partially folded / curved, but still more of a distorted 2D object than a complex 3D one)?