Project 4: Object detection

What is object detection?

Object detection is a computer technology related to computer vision and image processing that deals with detecting instances of semantic objects of a certain class (such as humans, buildings, or cars) in digital images and videos.

In this project, we will detect cells in images. Those were provided to me during a class at ITMO university.

The task was to use a Retinanet neural network in order to do onject detection. The objects were 10 classes of different kind of pollen.

A csv contains the path to the images while another had the class of the pollen class and its position. It was necessary to swap the columns of y and x axis in order to train correctly the neural network.

The model used is named retinanet. RetinaNet is a one-stage object detection model that utilizes a focal loss function to address class imbalance during training. Focal loss applies a modulating term to the cross entropy loss in order to focus learning on hard negative examples. It was taken there.

This model has been trained on 2000 images with 40 epochs of 100 steps. The images can be download here.

Results

Here are presented some results from the object detection. On the right is the class detected and on the left the probability that this object is from this class. Below, are the result from the images 0 & 612:

They are 3 different kind of pollen. The probability that is object is from this class is written at the top of the square containing the object detected.

You can find the code used for this project here as a python notebook.

To go further in the comprehension of the neural network used, you can read this.