Session

Vitaliy Bulygin
14 Oct 2018
15:00 - 16:40
Workshop

Object detector creation from scratch

Object detection problem appears in a lot of applications. Usage and improvement of the existing object detection approaches require their understanding.
The best way to understand how it works is to build a basic object detector by yourself.
Object detection problem is much harder than the classification problem. We consider how to implement each component of the object detector in detail. For this aim, we will teach the topics below.
1. Object detection preprocessing includes batch generation, data augmentation, and image normalization
2. Postprocessing requires non-maximum suppression algorithm and output filtering.
3. Feature extractor architecture choosing influences on speed/accuracy.
4. Detector Head transforms feature extractor output to the decoded bounding boxes and confidence probabilities. Playing with detector Head structure one could greatly increase detector accuracy.
5. Encoder transform ground truth bounding boxes into a suitable format to train detector
6. Decoder convert detector output to bounding box + class name list
7. Loss function works with encoded bouning boxes and confidence probabilities. Unlike the classification problem, there is no optimal loss function and engineer has to choose it depending on the task.
8. Mean Average Precision is the metric to measure the accuracy of object detectors. It is a really complicated algorithm and it has several modifications. We consider the theory and practical implementation of the mAP using only numpy.

The lecture materials include the code of each theoretical part implementation, dataset, and trained model.

Minimal requirements to the listener: basic Python knowledge and understanding of how convolution neural network works
Repository: https://github.com/bulygin1985/Object_Detector
Dataset: http://tiny.cc/1ugrzy
Pre-trained models: http://tiny.cc/9ugrzy

Presentation