Loading [MathJax]/jax/output/HTML-CSS/jax.js

Final Project: Propose your own Computer Vision project

Spring 2025, Rose-Hulman Institute of Technology

Instructor: Kyle Wilson

Overview

The final project is an opportunity to explore the field of computer vision in a direction that interests you. You will choose a topic according to the parameters below, write a proposal, and then carry out the proposed work.

I encourage teams of 2 for the final project. Larger teams may be approved if you can convince me that it’s a good idea. You may work solo if you prefer.

Learning Objectives

For a chosen topic in computer vision, this project will teach students to:

Grade Breakdown

The final projects will have four graded components:

Element Points Due Date
Proposal 20 pts 11:59pm Friday 5/02
Lightning Talk 5 pts in class Thursday 5/22
Writeup 50 pts 11:59pm Friday 5/23
Code Deliverable 25 pts 11:59pm Friday 5/23

Alternative Project Option

When I polled the class, most of you preferred a proposal-driven final project because you could choose a topic that matches your interests. A few of you had strong reservations about an open-ended project, and would prefer a typical canned class project. I am making such a project available.

If you do the canned project you will still need to upload a brief proposal. It will say something to the effect of “I will do the canned project”. This formality will help me with records keeping. I will also still require a lightning talk on the last day of class with everyone else. I expect that this project will be more work than most of the proposal-based projects.

Identifying Topics

The final project began with an in-class lesson orienting you to the computer vision literature. Begin your search with tips from this lesson.

A topic suitable for this project will usually look like this:

  1. An interesting problem in computer vision
  2. A research paper that purports to solve the problem
  3. Reference code that accompanies the paper
  4. Model weights (if applicable) that accompany the research code

If you find code, but no weights, or even no code at all, this would be a difficult project. Please talk to me for approval before you submit your proposal. I will consider reimplementation projects on a case-by-case basis. You’ll be signing up for a lot of work, so please consider carefully.

I’d advise you to stay away from Kaggle problems. Much of what you will find there is rehashing of older, general-purpose techniques for relatively straightforward supervised machine learning problems. Instead, try Papers with Code. You’ll find peer-reviewed work that is much closer to the bleeding edge of the field.

I keep a list of papers that have caught my eye, but that I haven’t had time to carefully read. You’re welcome to look them over and see if any appeal to you. I can’t guarantee that every paper on this topic will make a great project.

Writing a Good Proposal

Your proposal defines the scope of the work that you will do. I will grade your project according to how well you complete what you proposed, so don’t promise the world. Keep these proposals short and achieveable. If you must propose something very hard or very large, consider sequestering part of the work under the heading “Possible Extensions”, so that you can bail without tanking your grade.

I will grade your proposals according to this rubric:

Element Points
Do you show that your proposed topic meets all four elements of a good topic listed above under “Identifying Topics”? 4 pts
Does the proposed work address all five learning objectives listed at the top of this document? 4 pts
Is the scope of the work appropriate? 4 pts
Does the proposal convince me that the work is doable with the resources and hardware available? 4 pts
Clarity and mechanics in writing 4 pts

If you’re new to writing proposals, hear this advice: outside of college, proposals (grants, RFPs, Statements of Work) will typically be evaluated against some sort of public rubric. The best proposals address each point on the rubric directly. Proposal evaluators do not appreciate hunting through your entire proposal for each item, even if your version “flows better”.

Here’s a sample proposal.

Upload your proposals to Gradescope.

Deliverable: Writeup

I’m looking for two to three pages of double-spaced content addressing the questions below, plus figures. The writeup is where you explain the method, and where you critically evaluate its performance. I’ll grade your writeups per this rubric:

Element Points
Do you clearly name which method you have been studying? 5 pts
Do you clearly explain what problem this method is trying to solve? 5 pts
Do you correctly explain the main ideas of how the method works? 20 pts
Do you show lots of results from running the method on new input? 10 pts
Do you evaluate the performance of the method in light of your experiments? 5 pts

Upload your writeups to Gradescope.

Deliverable: Code

This project is based on finding open-source code for a problem and getting that code running on your hardware. I’m not expecting you to write a lot of code. Your code submission will be graded as follows:

Element Points
Did you turn in working code for the method that you studied? 5 pts
Did you include a file called INSTRUCTIONS.md or INSTRUCTIONS.txt with your code explaining all the necessary steps you had to take in order to get the code running, including installing packages, formatting image files, and running scripts? Can I reproduce your steps to get the code running for me too? 10 pts
Did you clearly document any code that you had to write, such as for preprocessing method inputs, and generating new outputs? 5 pts
Did you include sample output of the method on new inputs that you provided? 5 pts
Did you include the original license from the reference code if available, and did you document where you got this code from? if missing

There’s no starting code for this project. To submit your code provide me a web link to your repository on GitHub, and make sure that I have read access to it. I’ll clone your repo to grade it. There is an assignment on Gradescope for collecting these GitHub links.

Deliverable: Lightning Talk

Our last day of class is reserved for final project presentations. If you, or a member of your group, must miss the last day of class you will need to make arrangements to give your presentation in advance.

The format is 4-5 minutes for the talk and 1-2 minutes for answers. You are expected to come prepared with slides. The talks will be graded per this rubric:

Element Points
Did you clearly explain what problem you were studying? 1 pt
Did you show interesting output of the method you studied on your own data? 1 pt
Did you correctly explain, possibly at a high level, how the method that you studied works? 1 pt
After the talk, did your audience have a clear understanding of what the method does? 1 pt
Did you stay within the talk time limits? 1 pt
Did you have appropriate citations? -1 pt if missing

Upload your slides to Gradescope.