Fall 2026 CS543/ECE549 Projects

Proposals due Nov 16, progress reports due Nov 30, final reports due Dec 16

These dates will not slip!


C. Van Loo, Architecture, 1752

You cannot slip the due date using ANY mechanism

I will not grade any materials received after 16 Dec.

General

The goal of your project is to try something new and, perhaps, to contribute something to the field of computer vision. Projects should be done in groups of one to four people. Individual projects require the instructor's approval. Feel free to use the pinned "Project teammate search" topic on Campuswire to form teams. There is also a "project" tag for discussing project ideas. And of course, you're encouraged to discuss possible topics with us during office hours. Here are some ideas for getting started on projects:
  • Reimplementation Find a recent computer vision paper, reimplement and test its approach. This is harder than it sounds. We are not excited by (say) convolutional classifiers applied to MNIST. But many recent papers are very elaborate, and take a lot of reimplementation. Take care with this approach.
  • Break it Take some publicly available code and try to make it fail. To do this you'll need some ideas about what it should do well or badly, and you'll need to find datasets. One thought: for some procedures (like single image depth estimation) there are several strong codes. You could search for types of image where different codes behaved differently. These would be interesting. Just running existing code on the data provided by the authors is not sufficient -- you need to do more in-depth exploration along the lines suggested above.
  • Extend it Take some publicly available code and adjust it so that it now does something useful that it didn't do beforehand. To do this you'll need some ideas about what it should do well or badly. Just running existing code on the data provided by the authors is not sufficient -- you need to do more in-depth exploration along the lines suggested above.
  • Innovate Design and implement a solution to a problem that interests you. It is fine to pick a problem related to your RA or dissertation research, but be sure to formulate a clear short-term goal and desired outcome for the class project. Ideally, you should use the class project as an opportunity to try new techniques that you might not consider or have a chance to use otherwise.
  • Compete Find an interesting competition or dataset on Kaggle. It is not necessary to actually enter the competition -- just use however much of the data or problem definition or evaluation makes sense to you and is feasible in your circumstances.
For inspiration, feel free to browse the list of project titles from the last decade of this class. However, don't feel that you need to choose a popular topic -- in particular, there is no requirement to use deep learning!

FAQ

  • Can I do a project on my own? Yes, in principle, but I want to be sure this will work; check with a TA by email, using "SINGLETON PROJECT" in the header.
  • Can I do a project in a huge group Possibly, but you need to convince me that there won't be a hassle with dynamics in the group; usually groups of six or more melt down.
  • Can I hand in the final report early? Yes
  • Can I do something that I'm doing for my thesis? or for my RA work? or for another class? The principle that applies here is we must avoid double counting; you can't get two or more grades for the same piece of work. So I need to know which part of your activity counts toward CS543/ECE549 and which towards some other thing. Apart from that, great.
  • What if I try really hard but it doesn't work? That's life - explain what you tried and why it didn't work (to the extent you can).
  • What if I didn't try really hard and it doesn't work? You might be able to work the answer out for yourself; don't do this
  • Can I use other people's code? Sure; the principle that applies here is that I need to know what you did so you should declare that you used other people's code; otherwise, have fun.
  • I tried to use someone else's code but it didn't work (or I can't get it installed; or...); can you fix it? This sort of thing happens surprisingly often. Likely no, but if you try Canvas/Campuswire/TA's/your colleagues you might get lucky. Also, google it; sometimes other people have had this problem as well, and you can benefit from their experience. It's good manners and good practice to acknowledge help you received.
  • I had a brilliant project idea the day before projects were due and I did that, but there wasn't enough time; what will happen to me?You might be able to work the answer out for yourself; don't do this
  • I tried to use someone else's dataset, and I found something nasty; what to do? This sort of thing happens with datasets collected from the web. Consult me if absolutely essential.
  • Can I work on (controversial topic X)? Sure. Try not to stir up negative publicity without a good reason. If your project requires disturbing data, don't show it to people without some warning. Be aware that there are some kinds of data you can't legally possess (classified images; images of child abuse; etc), so avoid projects that require this kind of data.

What we look for in projects

  • A systematic approach Did you think about what are you trying to achieve and why? Did you think about how what you plan to do or have done will achieve this? Example: Imagine you wish to make a transformer more efficient. Randomly knocking out layers and hoping isn't that great a strategy. Ideally, you would think about the ways you might change the architecture and have reasons to try the changes you try.
  • Context Did you look up other things other people have done about your problem? Are you better at this problem than they are, or is your project new (most unusual)? Can you make what they did work for you and improve on it? Have you looked on Github or Huggingface or ArXiv or google scholar to see what others have done? Example: Your very ambitious project might be to make pictures of yourself wearing clothing that you take from other pictures. It turns out that lots of people want to do this. You would do well to poke around Github looking for such systems to see if you can (a) use them and (b) improve them.
  • Evaluation Have you tried to determine whether what you did is usable for what you want it for? Example: You want to build a system that sorts garbage using a detector. You report the accuracy of the detector. But what matters here is not the absolute accuracy; it's whether your thing is accurate enough to be used -- would the local garbage processor get cross with you?

Proposal

Each person must submit a project proposal. So if your group is four people, there will be four proposals (but they could be very largely the same). Your proposal will be by filling in a form on Canvas. This form will require you to declare:
  1. Your name(can't help you here)
  2. List of other group members.
  3. Informative project title.
  4. What the group wants to do: Describe the problem you plan to solve and give a basic outline of what you propose to implement. You can change later as you go along, but try to think this through as much as possible in advance. Identify the desired final outcome and pose maximum and minimum goals.
  5. How you will do it: A brief description of the mechanisms you will use.
  6. What you will do: (as opposed to what the other project members will do).
  7. What resources you will need: data, compute, disk space, etc.
  8. How you intend to get the resources you will need: No point in doing something that can't be done.
  9. What might go wrong: Try to anticipate which part of the implementation or testing may prove the most difficult. Possible stumbling blocks shouldn't necessarily prevent you from attempting a more ambitious project, but you should make sure that you have a realistic "minimum" goal that can be accomplished.

Progress report

Your progress report will be by filling in a form on Canvas. This form will require you to declare:
  1. Your name
  2. List of other group members.
  3. Informative project title.
  4. What you have done to date: Describe the problem you plan to solve and give a basic outline of what you propose to implement. You can change later as you go along, but try to think this through as much as possible in advance. Identify the desired final outcome and pose maximum and minimum goals.
  5. How you did it: A brief description of the mechanisms you have used.
  6. Changes to your intentions: You might have learned something that makes you change direction.
  7. What might go wrong: Try to anticipate which part of the implementation or testing may prove the most difficult. Possible stumbling blocks shouldn't necessarily prevent you from attempting a more ambitious project, but you should make sure that you have a realistic "minimum" goal that can be accomplished.
We intend that:
  1. the proposal will receive feedback
  2. No project without a proposal or a progress report will be in the top equivalence class.

Final report

The final report should be submitted in PDF format by one designated group member on Canvas. It should be (the equivalent of) at least six pages (single-spaced, 10 point font) and mimic the style of a research paper. Here is an outline to follow for the report:
  1. Introduction: Define and motivate the problem, discuss background material or related work, and briefly summarize your approach.
  2. Details of the approach: Include any formulas, pseudocode, diagrams -- anything that is necessary to clearly explain your system and what you have done. If possible, illustrate the intermediate stages of your approach with results images.
  3. Results: Clearly describe your experimental protocols. If you are using training and test data, report the numbers of training and test images. Be sure to include example output figures. Quantitative evaluation is always a big plus (if applicable). If you are working with videos, put example output on YouTube or some other external repository and include links in your report.
  4. Discussion and conclusions: Summarize the main insights drawn from your analysis and experiments. You can get a good project grade with mostly negative results, as long as you show evidence of extensive exploration, thoughtfully analyze the causes of your negative results, and discuss potential solutions.
  5. Statement of individual contribution: Required if there is more than one group member.
  6. References: including URLs for any external code or data used.
In addition to the report, please submit a zip file of your source code. We are looking for only the most important code that you wrote yourself for the project, not any external libraries. We do not plan to run the code, but want to see it to be able to verify that you actually did the work you claim to have done.

Grading

Grades will be based on the quality of the project (originality, thoroughness, extent of analysis, etc.) and the clarity of the written report and presentation. Ideally, you will try something new or apply ideas from class to your domain or research. More will be expected of larger groups. You can still get a good grade if your ideas do not work out, as long as your presentation and report show evidence of extensive analysis and exploration, and provides thoughtful explanations of the observed outcomes.