Hello, Class!

Welcome to CSCI 353! This course is all about the fundamentals of computer vision. Together we'll learn how to manipulate and extract information from images. We'll study how the human brain "sees" the world, and then we'll use that knowledge to make computers do the same. But let's be real, we're all here to write code and make pretty pictures. Let's do this!

Lecture Time: 9:00-9:50am MWF
Location: King 227

Office Hours: 1:00-2:00pm M & 10:00-11:00am T
Location: King 229

schedule

Week Topic Journal Club Assignment
0 Welcome!
1 Sensing and Image Basics Keshav, 2007 Questionnaire due 3/2 at 5pm
2 Global and Local Image Operations Buades et. al, 2005
3 Filtering and Transformations Oliva et. al, 2006 Mini Project 1 due 3/25 at 11:59pm
4 Frequency Domain Duarte et. al, 2008
5 Image Features Dalal & Triggs, 2005
6 Guest Lecture: Stephen Mather
Corner Detection
Iozzio, 2016 Mini Project 2 due 4/22 at 11:59pm
Project Proposal due 4/1 at 5pm
7 Break
8 Edge and Contour Detection Kass et. al, 1988
9 Line, Circle, and Blob Detection Lowe, 2004
10 2D Transformations Fischler et. al, 1981 Mini Project 3 due 5/11 at 11:59pm
Project Check-In due 4/29 at 11:59pm
11 Image Alignment and Image Classification Turk & Pentland, 1991
12 Image Classification
Speaking Workshop
Krizhevsky et. al, 2012
13 Project Presentations - Project Presentations due 5/18-5/25
14 Wrap-up - Project Codebase due 5/26 at 11:59pm
Project Report
Wednesday, June 1 before 11:00am

syllabus

course overview

CSCI 353 provides an introduction to fundamental concepts, algorithms, and applications of computer vision. The course covers image formation, image processing, compressed sensing, registration, super-resolution, and object recognition. Students who do not have prior experience in linear algebra are expected to learn the necessary components as needed. Projects may be completed in any programming language; however, example code and debugging support will only be provided in Python and C++.

course objectives

In this course, you will:

course website and textbook

Information will be communicated through this website and Blackboard. Please check each regularly for announcements, class schedule, assignments, etc.

The recommended textbooks for this course are Digital Image Processing, 4th ed. by Rafael Gonzalez & Richard Woods and Computer Vision: Algorithms and Applications, 2nd ed. by Richard Szeliski. You can download an electronic version of Szeliski’s book through the library or from his website: https://szeliski.org/Book/. You may also benefit from referencing the following works:

A copy of each textbook has been placed on reserve or is available for download through the library.

questionnaire

There will be a short questionnaire during the first week of the course that gives you an opportunity to reflect on your initial thoughts about computer vision and this course, as well as to help me get to know each one of you better. The questionnaire will be graded based on participation — if you turn it in on time with every question answered, you will automatically receive full credit. There are no right or wrong answers to many of these questions, so please do not worry about correctness!

journal club

The best way to form a deep understanding of methods in computer vision is to read the research literature (i.e., peer-reviewed papers and preprints). We will hold a weekly Journal Club throughout the semester for you to practice reading and discussing landmark papers in computer vision.

For one class each week, you will meet in small groups to discuss a paper related to a topic being covered in lecture. You are required to read each paper in advance and come to Journal Club with at least one question about the material. You will select a leader for your group each week on a rotating basis. The leader is responsible for guiding the discussion and addressing the questions being asked. The leader is not expected to know the answer to every question, rather they should guide the group towards finding the answer. The previous week’s leader will serve as the current week’s notetaker. The notetaker is not required to prepare a question, but they are responsible for recording the questions being asked as well as the main points of conversation. The notetaker will be graded on whether they successfully record and upload notes by 5:00pm each Friday following a Journal Club. All other group members will be graded on whether they came prepared with a question. In the event that a group’s notes are not uploaded by the assignment deadline, the notetaker will receive a zero and all other group members will receive full marks.

If you are unable to attend Journal Club, you may receive credit by submitting a one-page summary of the paper and your perspectives on the content. The one-page summary is due the same day and time as the Journal Club notes.

mini projects

You will have the opportunity to practice the course material in three (3) hands-on mini projects. Each mini project will ask you to reason about a collection of algorithms, implement those algorithms, and discuss your results. For some mini projects, you will have the option to acquire your own test data. I will always provide you with a standard set of test data that is known to work for the given problem case. Each mini project must be completed on your own.

semester project

In place of exams, you will complete a semester-long project aimed at exploring your interests in computer vision. You have the choice to work individually or in a group of up to four (4) students. If you choose to work in a group, each member is expected to make equal contributions. Over the course of the semester, you will complete a project proposal, presentation, and report.

Your proposal will be due at midterm and will outline your project goals, timeline, and any software/hardware requirements. Each group is expected to complete the practical portion of their project before delivering an oral presentation during the last two weeks of class. The presentation is your chance to share your work with your peers — successes as well as failures. Your project report will be a conference-style paper due Wednesday, June 1 before 11:00am.

grading

Final grades will be determined based on your scores on the semester project, mini projects, journal club, and questionnaire as follows:

Component Percentage
Questionnaire 2%
Journal Club 20%
Mini Projects 33%
Project Proposal 10%
Project Presentation 15%
Project Report 20%

late work policy

Late submissions are strongly discouraged, and in many cases, late work is not accepted. It is important to speak with me early if you require an extended deadline.

The deadline for each mini project will be announced prior to its release. To account for unforeseen circumstances, you are allotted three (3) bonus days, total for the semester (more than one may be used per mini project). Bonus days will be automatically deducted until they have been used up. At which point, late submissions will be penalized 25% in the first 24 hours after the deadline, and an additional 25% for each additional day late after that.

accessibility

I am committed to making this class accessible to all students. If you have a disability that may impact your work in this class and require accommodations, please see me. Please also visit Student Accessibility Services at the Center for Student Success so that we may arrange appropriate accommodations.

code of conduct

Both Oberlin College and I personally value the diversity of perspectives that each of you bring to this classroom and our joint study of computer science. In this class, we must all commit to fostering a safe, inclusive, and welcoming environment which will allow all of us to learn. Please respect the competence and hard work of your colleagues in this classroom. If you are made to feel uncomfortable in class or while working on class material, please notify me so we can take steps to address the situation. Students who are disruptive to class and our learning community will face consequences, including potentially being removed from the course.

expectations

In this class, you will be expected to work actively to construct your own understanding of the topics at hand, with the readily available help of me and your classmates. Many of the concepts you learn and problems you work will be new to you and ask you to stretch your thinking. It is completely natural and common to experience frustration and failure before you experience understanding. This is part of the normal learning process. You are supported on all sides by me and your classmates. But no student is exempt from the process and the hard work that it entails.

academic honesty

You are expected to adhere to the Oberlin College Honor Code. Any violations will be reported to the Honor Code Committee.

Different assignments in this course will have different expectations with respect to the Honor Code. These expectations will be outlined in the assignment instructions. In general, collaboration and co-working is encouraged for all assignments except for the questionnaire and mini projects, which must be completed on your own. You are allowed to discuss mini projects with your peers, but you are not allowed to share code with another student nor discuss implementation details (discussions should be kept at a high level). You are always allowed to use the textbook and any resources provided by me. You are not allowed to use any other sources except when specified in the assignment. If you have any questions about what is permitted and what is not, please feel free to ask.

For every assignment, you must indicate whether you followed the Honor Code in completing the assignment. If so, you should end each assignment by writing:

I have adhered to the Honor Code in this assignment.

acknowledgments

The material in this course was built upon the amazing work of many others in the computer vision community. I am grateful for those who have kindly made their content open and accessible.


Last updated 2022-04-02