Fall 2023 CS543/ECE549 Projects

Proposals due October 18, progress reports due November 13, final reports due December 15


C. Van Loo, Architecture, 1752

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 two 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:
  • Find a previously published computer vision paper (either a recent or classic one), reimplement and test its approach. You may want to follow the spirit of the 2021 ML Reproducibility Challenge (if not necessarily consider submitting to it).
  • Take some publicly available code, apply it to an interesting dataset, explore various extensions and modifications, or compare multiple approaches. Note, however, that merely 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.
  • 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.
  • 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 me by email, using "SINGLETON PROJECT" in the header.
  • 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.

Proposal

Your proposal should consist of two to three pages and contain the following:
  1. List of group members.
  2. Informative project title.
  3. Project description and goals: 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.
  4. Member roles: Indicate which project component each group member will be responsible for and how the group will interact.
  5. Resources: Specify what data you plan to use -- include examples of images and any required annotations. What is your implementation platform? Do you plan to use any outside code and how do you plan to build on it? Do you have access to adequate computational resources if your project is computationally intenstive? Be specific and give pointers to all relevant resources.
  6. Reservations: 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.
  7. Relationship to your background: Describe how your proposed project relates to your background and current level of knowledge. Which techniques, software packages, etc., are you already familiar with, and which ones will be new to you? If the project is related to your dissertation or RA work, describe the relationship and the amount of overlap. 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. Grading of your project will be relative to your background and the size of your team.

The proposal in PDF format should be uploaded on Canvas by one designated group member (but make sure that everybody's names are on the document). The proposal will receive feedback but no separate score. Late days will be substracted from the three-day project budget (see class policies).

Progress report

The progress report should be two-four pages and should contain the following:
  1. An updated statement of the project definition and goals. If there are any changes, discuss them specifically, together with the reasons for these changes.
  2. Current member roles and collaboration strategy. Who is responsible for what? How are the code and data shared/maintained? How does the group interact -- e.g., are there regularly scheduled meetings?
  3. Proposed approach in the form of a detailed outline, pseudocode, or prose description. Be specific about how you plan to implement each step with references, pointers to external code, etc. One or more references are required at this stage.
  4. Data: specific description, including number of images, type of images and annotations, URL (if applicable), etc. Examples of your actual data are required.
  5. Initial results: brief description of which steps (if any) from #3 above you have already implemented. As a minimum, you should have collected your data (or have the collection process well underway) and compiled and tested any external code.
  6. Current reservations and questions (if any).

The progress report should be uploaded on Canvas by one designated group member (but make sure that everybody's names are on the document). The report will not receive a separate score, but its content and quality will contribute holistically to the overall project grade at the end of the semester.

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.