Skip to main content Link Search Menu Expand Document (external link)

Project 3

Overview

The objective of this project is to gain experience building and training convolutional neural networks for classificaiton and detection. In this project you will implement a feed forward CNN for image classification and a version of Faster R-CNN for object detection.

The goals for this project are as follows:

  • Implement the forward and backward pass for a convolutional neural network.
  • Apply your network implementation to image classification.
  • Observe improved classification performance using convolutions.
  • Implement the Faster R-CNN architecture for object detection.
  • Understand the characteristics of neural network based object detection using the PROPS Detection Dataset.

Instructions

  1. Download the project starter code
  2. Unzip the starter code and upload to Google Drive
    • Once unzipped, you should find a root directory titled ‘P3’. The ‘P3’ directory contains all starter code and files needed to complete this project. Please upload the ‘P3’ directory to your Google Drive.
  3. Open the *.ipynb and *.py files and implement features
    • We recommend implementing the features in a Google Colab environment. The Colab development environment can be accessed by double-clicking on each *.ipynb and *.py file within your Drive. Instructions for each feature are included in the convolutional_networks.ipynb and two_stage_detector.ipynb files.

    • We suggest starting by implementing the required features as they appear in the convolutional_networks.ipynb notebook, which can be thought of as part 1 of the project. Then work through the two_stage_detector.ipynb notebook as part 2 of the project.

    • While working on the project, keep the following in mind:

      • The notebook and the python file have clearly marked blocks where you are expected to write code. Do not write or modify any code outside of these blocks.
      • Do not add or delete cells from the notebook. You may add new cells to perform scratch computations, but you should delete them before submitting your work.
      • Run all cells, and do not clear out the outputs, before submitting. You will only get credit for code that has been run.
      • To avoid experiencing Colab usage limits, save and close your notebooks once finished working.
  4. Submit your implementation for Autograder feedback
    • Once you have implemented a portion of the required features, you may submit your work for feedback from the Autograder. To receive feedback, download your *.ipynb and *.py files then upload them to the Project 3 Autograder. You may submit to the Autograder for feedback up to 5 times per day.
  5. Download final implementation
    • After implementing all features, save your work and download the completed *.ipynb and *.py files.
    • The last cell of the two_stage_detector.ipynb notebook will generate a uniqueid_umid_P3.zip file. The zip file should include convolutional_networks.ipynb, convolutional_networks.py, two_stage_detector.ipynb, two_stage_detector.py, one_minute_deepconvnet.pth, overfit_deepconvnet.pth, and rcnn_detector.pt for this assignment.
  6. Submit your python and notebook files for grading
    • Upload your files to the Autograder for grading consideration. Your highest score will be used for final grades.

Deadline

This project is due on Tuesday, March 21st at 11:59pm CT. We suggest starting as soon as possible.

Grading

This project will be graded by the Autograder


Institutional Teaching Collaborative