This course provides a comprehensive introduction to computer vision. Major topics include image processing, detection and recognition, geometry-based and physics-based vision and video analysis. Students will learn basic concepts of computer vision as well as hands on experience to solve real-life vision problems.
OFFICE HOURS SPREADSHEET
This course requires familiarity with linear algebra, calculus, basic probability, as well as programming. In particular, the following courses serve as prerequisite:
- "Mathematical Foundations of Electrical Engineering" (18-202) and "Principles of Imperative Computation" (15-122)
OR
- "Matrices and Linear Transformations" (21-241) and "Calculus in Three Dimensions" (21-259) and "Principles of Imperative Computation" (15-122)
Readings will be assigned from the following textbook (available online for free):
- Computer Vision: Algorithms and Applications, by Richard Szeliski.
Additional readings will be assigned from relevant papers. Readings will be posted on the website.
The following textbooks can also be useful references for different parts of the class, but are not required:
- Multiple View Geometry in Computer Vision, by Richard Hartley and Andrew Zisserman.
- Computer Vision: A Modern Approach, by David Forsyth and Jean Ponce.
- Digital Image Processing, by Rafael Gonzalez and Richard Woods.
Your final grade will be made up from:
- Six programming assignments (98%).
- Participation (2%) - includes class or Piazza participation.
Programming assignments: Programming assignments (PAs) will require implementing a significant computer vision algorithm. Some of them will also have a small theory component relevant to the implementation. Programming will be done in Python.
Participation: The 2% class participation grade can be achieved by asking questions in class, or by asking/answering questions on Piazza.
Late days:
- For the homework assignments, students will be allowed a total of six free late days to use throughout the semester.
- You can submit any assignment up to 4 days late. You can do this either by:
- Using up to 4 late days (you can use up to 4 free late on any assignment)
- If your late days are used up, you can submit it late (up to 4 days) for a 10% penalty per day.
- Only 4 late days can be used for each assignment; if you submit the assignment 5 days late then you will get a 0.
Submitting homework: We use the Gradescope menu link in Canvas for submitting and grading homeworks.
Accommodations for Students with Disabilities: If you have a disability and have an accommodations letter from the Disability Resources office, I encourage you to discuss your accommodations and needs with me as early in the semester as possible. I will work with you to ensure that accommodations are provided as appropriate. If you suspect that you may have a disability and would benefit from accommodations but are not yet registered with the Office of Disability Resources, I encourage you to contact them at access@andrew.cmu.edu.
We use Piazza for class discussion and announcements.
Students in 16-385 are absolutely encouraged to talk to each other, to the TAs, to the instructors, or to anyone else about course assignments. Any assistance, though, must be limited to discussion of the problems and sketching general approaches to a solution. Each student must write their own code and produce their own writeup. Consulting another student's solution, or solutions from the internet, is prohibited on assignments. These and any other form of collaboration constitute cheating. If you have any question about whether some activity would constitute cheating, just be cautious and ask the instructor before proceeding!
You may not supply code or assignment writeups you complete during 16-385 to other students in future instances of this course or make these items available (e.g., on the web) for use in future instances of this course (just as you may not use work completed by students who've taken the course previously). We encourage you to use public source control hosts like Github for your assignments, however please be sure to make your programming assignment repositories private.
We must treat every individual with respect. We are diverse in many ways, and this diversity is fundamental to building and maintaining an equitable and inclusive campus community. Diversity can refer to multiple ways that we identify ourselves, including but not limited to race, color, national origin, language, sex, disability, age, sexual orientation, gender identity, religion, creed, ancestry, belief, veteran status, or genetic information. Each of these diverse identities, along with many others not mentioned here, shape the perspectives our students, faculty, and staff bring to our campus. We, at CMU, will work to promote diversity, equity and inclusion not only because diversity fuels excellence and innovation, but because we want to pursue justice. We acknowledge our imperfections while we also fully commit to the work, inside and outside of our classrooms, of building and sustaining a campus community that increasingly embraces these core values.
Each of us is responsible for creating a safer, more inclusive environment.
Unfortunately, incidents of bias or discrimination do occur, whether intentional or unintentional. They contribute to creating an unwelcoming environment for individuals and groups at the university. Therefore, the university encourages anyone who experiences or observes unfair or hostile treatment on the basis of identity to speak out for justice and support, within the moment of the incident or after the incident has passed. Anyone can share these experiences using the following resources:
- Center for Student Diversity and Inclusion: csdi@andrew.cmu.edu, (412) 268-2150
- Report-It online anonymous reporting platform: reportit.net, username: tartans, password: plaid
All reports will be documented and deliberated to determine if there should be any following actions. Regardless of incident type, the university will use all shared experiences to transform our campus climate to be more equitable and just.