Mike Terekhov

Goose Chaser

Objective & Background:

Worked on a group for our senior capstone project creating a goose repelling drone that is able to perform autonomous flight and recognize geese using image recognition software. Our group split of four split up into a physical drone building team and a software/image recognition team. I led the image recognition team to creating a fully functioning software model that was able to identify multiple geese in an image and draw a bounding box around the indentified geese.

Initial Software Design - Simple CNN:

- Initial approach was to use a convolutional neural network that returns a boolean value of whether the image contains a goose or not

- Image above shows a sample of our data set that we collected using google images of geese as well as real images that took around Boston

Final Software Design - YOLOv5 Model:

- Realized we needed the location of the goose and a method of detecting multiple geese in a single image

- Decided to utilize YOLOv5 image recognition software with our own trained class of goose

- Used the YOLOv5s model which is the second smallest model

- Due to the fact that we are training locally on a macbook, we decided to use the smallest model so that we can train as many models as fast as possible so that we can experiment with varying training teachniques

Training Process:

- Selected 20 images from our dataset that included geese from all angles, and also included varying amounts of geese in each image

- Used a prebuilt image labeling software called LabelImg to go through our dataset and draw bounding boxes around each instance of a goose in each image

- Export all images and their labels in YOLO format to the model and train it for varying number of epochs

- Tested our model on training images, new images that were not a part of our dataset, live camera footage from our laptop camera

- Image above shows the differences we encountered when experimenting with varying training techniques

Model Results with 20 training images trained for 250 epochs:

- Reached the conclusion that there is not much benefit to training our model for more than around 100 epochs

- Increasing the dataset size for training is the most optimal way of improving the accuracy of the model

Our Final Drone: