This project is not a full review on RetinaNet or the PASCAL VOC dataset. Its primary purpose was to test out how to rapidly train a model using Google Colab. One of the major challenges of this project was how to work in an environment that would randomly stop training due to resource limitations. A solution was developed to store the weights after every epoch, storing the best weights. Another issue was a limitation of space due to a 15GB size limitation on a google drive account. To handle this limitation, measures were put into place to only store the last two epochs’ weights. This does cause some issues if during training it is later noticed that the model has begun to overfit and those weights are then lost.
For this project a RetinaNet model was trained on the PASCAL VOC dataset for object detection. The PASCAL VOC dataset contains images of objects and bounded boxes around those objects with labels. For example, there may be an image with a person and a cat, they both have boxes around them and are labeled as such. There are twenty categories in total. These include airplane, bicycle, bird, boat, bottle, bus, car, cat, chair, cow, diningtable, dog, horse, motorbike, person, pottedplant, sheep, sofa, train, and tv.
Another goal for this project was to build a streamlit web application that could interface with the trained weights. The trained model and streamlit interface are available at https://imgvoc.streamlit.app for viewing. Many adjustable parameters have been provided to tune. You may notice the model doesn’t give the best results when doing multi-object classification. It also doesn’t do well to identify many objects well. However, the dataset is limited and the primary purpose wasn’t to analyze this models performance or create a highly accurate detector.
M. Everingham, L. Van Gool, C. K. I. Williams, J. Winn, and A. Zisserman, “The PASCAL Visual Object Classes (VOC) Challenge,” International Journal of Computer Vision, vol. 88, no. 2, pp. 303–338, Jun. 2010, doi: 10.1007/s11263-009-0275-4.