Convolutional Neural Networks' Performance
on NU Robotics Competition Identification Task

Garrett Thomas
garrettthomas2018@u.northwestern.edu
EECS_349 Machine Learning - Northwestern University

In this project, I investigated the possibility of using a Convolutional Neural Network on an object detection task which was initially a component of the Northwestern Robotics Design Competition. Specifically, a TensorFlow CNN was trained to find and differentiate between metal cubes and cylinders used in the competition. Although the competition had passed by the conclusion of this study, identifying and differentiating between the two objects was a crucial component to the computer vision approach my team took.

For this task, I implemented two CNNs - one utilizing dropout, and the other without dropout - which were built out of the TensorFlow Object Detection API. In order to train these model out of the box, I implemented a custom data annotation, augmentation, cleaning, and preparation pipeline. The explicit features recorded for each object annotation were the class (CUBE or CYLINDER) and the bounding box location on the image. Other features learned by the models are implicitly contained within the networks’ hidden layers, and are inherently inaccessible to us to describe, but most likely include information such as edge types, shading characteristics, etc.

Both models performed well, given the training limits of not utilizing a GPU. They were both able to detect and classify 83% of the target objects in the test set. With more training data, I predict that the CNN utilizing dropout would perform exceptionally well in the NU Robotic Competition setting. As mentioned above, the important features learned by the models are inherently unavailable to us, since they are implicitly contained within the networks' hidden layers.

View the full report
Download the data pipeline utility files

Sample predictions made by the TensorFlow SSD-Inception_v2 network (w/ dropout) after 6024 training steps: