OverviewCourse description: In this class, students will learn the basics of modern computer vision. The first major part of the course will cover fundamental concepts such as image formation, image filtering, edge detection, texture description, feature extraction and matching, and grouping and fitting. The second part will focus on visual recognition. We will study state of the art approaches to object recognition and detection, examine the interplays between vision and language, and learn to model human pose and activity. We will cover recently popular techniques such as convolutional and recurrent neural networks. We will also discuss a few topics from the most recent computer vision conferences. The course format will include lectures, written homework assignments, programming homework assignments, and exams.
Piazza: Sign up for it here. Note that we will use Piazza primarily for classmate-to-classmate discussion of homework problems, etc. The instructor and TA will monitor it infrequently. The time when you should ask the instructor or TA questions is during office hours.
Programming languages: We will use Matlab, which is available for download for free using Software Downloads in My Pitt.
- Readings from:
- For reference:
GradingGrading will be based on the following components:
- Written homework (10 assignments x 1% each = 10%)
- Programming homework (10 assignments x 4.5% each = 45%)
- First exam (20%)
- Second exam (20%)
- Participation (5%)
Homework Submission MechanicsYou will submit your homework using CourseWeb. Navigate to the CourseWeb page for CS1674, then click on "Assignments" (on the left) and the corresponding homework ID. Your written assignments should be a single .pdf/.doc/.docx file. Comments will be provided in CourseWeb (load your last attempt as a PDF, and look for comments if points were subtracted). Your code should be a single zip file with .m files (and images/results if requested). Name the file YourFirstName_YourLastName.[extension]. Please comment your code! Homework is due at 11:59pm on the due date. Grades will be posted on CourseWeb.
ExamsThere will be two in-class exams. The second exam is not cumulative and will not cover material from the first exam. There will be no make-up exams unless you or a close relative is seriously ill!
ParticipationStudents are expected to regularly attend the class lectures, and should actively engage in in-class discussions. Attendance will not be taken, but keep in mind that if you don't attend, you cannot participate. You can actively participate by, for example, responding to the instructor's or others' questions, asking questions or making meaningful remarks and comments about the lecture, answering others' questions on Piazza, or bringing in relevant articles you saw in the news. The grading rubric will be as follows: 1 = you attended infrequently, 2 = you attended frequently but did not speak in class, 3 = you attended frequently and spoke a few times, 5 = you attended and participated frequently, 4 = in between 3 and 5.
Late PolicyOn your programming assignments only, you get 3 "free" late days counted in minutes, i.e., you can submit a total of 72 hours late. For example, you can submit one homework 12 hours late, and another 60 hours late. The 72-hour "budget" is total for all programming assignments, NOT per assignment. Once you've used up your free late days, you will incur a penalty of 25% from the total assignment credit possible for each late day. A late day is anything from 1 minute to 24 hours.
Collaboration Policy and Academic HonestyYou will do your work (exams and homework) individually. The work you turn in must be your own work. You are allowed to discuss the assignments with your classmates, but do not look at code they might have written for the assignments, or at their written answers. You are also not allowed to search for code on the internet, use solutions posted online unless you are explicitly allowed to look at those, or to use Matlab's implementation if you are asked to write your own code. When in doubt about what you can or cannot use, ask the instructor! Plagiarism will cause you to fail the class and receive disciplinary penalty. Please consult the University Guidelines on Academic Integrity.
Note on DisabilitiesIf you have a disability for which you are or may be requesting an accommodation, you are encouraged to contact both your instructor and Disability Resources and Services (DRS), 140 William Pitt Union, (412) 648-7890, firstname.lastname@example.org, (412) 228-5347 for P3 ASL users, as early as possible in the term. DRS will verify your disability and determine reasonable accommodations for this course.
Note on Medical ConditionsIf you have a medical condition which will prevent you from doing a certain assignment, you must inform the instructor of this before the deadline. You must then submit documentation of your condition within a week of the assignment deadline.
Statement on Classroom RecordingTo ensure the free and open discussion of ideas, students may not record classroom lectures, discussion and/or activities without the advance written permission of the instructor, and any such recording properly approved in advance can be used solely for the student's own private use.
|1/11||Matlab tutorial and linear algebra review||Szeliski Sec. 1.1-1.2||pptx pdf
|1/18||Low-level vision||Filtering and texture||Szeliski Sec. 3.2, 4.1.1, 10.5||pptx pdf demo|
|1/30||Feature detection and description||Szeliski Sec. 4.1, Grauman/Leibe
SIFT paper by David Lowe
|pptx pdf autocorr blobs||HW2W|
|2/13||Edges, lines, circles and segments||Szeliski Sec. 4.2, 4.3.2, 5.3-4;
Grauman/Leibe Ch. 5.2
|2/22||Transformations and multiple views||Szeliski Sec 2.1, 3.6.1, 7.2, 11.1.1; Grauman/Leibe Sec. 5.1||pptx pdf||HW4P|
|3/1||High-level vision||Intro to recognition||Grauman/Leibe Ch. 7, Sec. 8.1, 8.2, 9,
10.2.1.1, 10.3.3, 11.1,2,5; Szeliski
Sec. 14.1,4; Bishop PRML
Bishop PRML Sec. 7.1
|3/20||Convolutional neural networks||Karpathy's notes, Module 1, Module 2||pptx pdf||HW7W|
|4/5||Object recognition, detection, segmentation||Szeliski Sec. 14.1, 14.4;
Grauman/Leibe Sec. 8, 9,
Viola Jones CVPR 2001, Girshick CVPR 2014
|4/12||Sequential data: Language and motion||blog1,
Karpathy CVPR 2015
|4/19||Recent topics: Generative models, self-supervision||pptx pdf||HW10P|
ResourcesThis course was inspired by the following courses:
- Computer Vision by Kristen Grauman, UT Austin, Spring 2011
- Computer Vision by Derek Hoiem, UIUC, Spring 2015
- Matlab tutorial
- Linear algebra review by Fei-Fei Li
- Brief machine learning intro by Aditya Khosla and Joseph Lim
- Resources list (including code and data, tutorials, and other related courses) compiled by Devi Parikh
- Microsoft COCO (Common Objects in Context)
- SUN Database
- Animals with Attributes
- Caltech-UCSD Birds 200
- INRIA Movie Actions
- Recognition datasets list compiled by Kristen Grauman
- Human activity datasets list compiled by Chao-Yeh Chen