CS2770 (ISSP2180): Computer Vision, Spring 2019

Location: Sennott Square 5129
Time: Tuesday and Thursday, 11am-12:15pm
Instructor: Adriana Kovashka (email: kovashka AT cs DOT pitt DOT edu; use "CS2770" at the beginning of the subject line)
Office: Sennott Square 5325
Office hours: Tuesday and Thursday, 10:30am-11am and 12:30pm-2pm
TA: Narges Honarvar Nazari (email: nah114 AT pitt DOT edu; use "CS2770" at the beginning of the subject line)
TA's office hours: Wednesday 3pm-4pm, Thursday 2pm-3pm, Friday 1pm-2pm
TA's office: Sennott Square 5501

Overview

Course description: In this class, students will learn about modern computer vision. The first part of the course will cover fundamental concepts such as filtering, extracting features and describing images, grouping features, and matching features across multiple views. In the second part, we will cover techniques and approaches to classic tasks/topics such as object recognition, vision and language, and tracking, including tools such as support vector machines and convolutional neural networks. In the third part, we will overview recent and emerging topics such as self-supervised and embodied learning, visual reasoning, generative adversarial models, etc. The format will include lectures, homework assignments, exams, and a course project.

Prerequisites: CS1501 and MATH 0280 (or equivalent). The expectation is that you can program and analyze the performance of programs. Some experience with linear algebra (matrix and vector operations), basic calculus, and probability and statistics is strongly recommended.

Piazza: Sign up for it here. Note that we will use Piazza primarily for classmate-to-classmate discussion of homework problems, etc. The instructor will not monitor Piazza, and the TA will monitor it infrequently. The time when you should ask the instructor or TA questions is during office hours.

Programming languages: For homework assignments, you can use Matlab or Python. For the course project, you can use any language of your choice.

Textbooks: [top]

Policies

Grading

Grading will be based on the following components:

Homework Submission Mechanics

You will submit your homework using CourseWeb. Navigate to the CourseWeb page for CS2770, then click on "Assignments" (on the left) and the corresponding homework ID. Your source code should be a single zip file (also including 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.

Exams

There 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!

Participation

Students 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.

New this year: For each lecture, I will rely on a "panel" of experts who have gone through the readings for that lecture in detail, and are able to ask questions and address questions from their classmates. This "panel" will help me moderate the discussion. Please sign up for which lecture you want to help on as a panel member, here. Your help on a panel will count as part of your participation grade.

Late Policy

On 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. Note this policy does not apply to components of the project.

Collaboration Policy and Academic Honesty

You will do your work (exams and homework) individually. The only exception is the project, which can be done in pairs. 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 or Python'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 Disabilities

If 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, drsrecep@pitt.edu, (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 Conditions

If 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 Recording

To 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.

[top]

Project

Please enter your team information and topic here by March 1.

The project is expected to be a new method for an existing problem or an application of techniques we studied in class (or another method) to a new problem that we have not discussed in class. Below are some tips: Rules and logistics: Rubric for first presentation (all questions except the last one are scored on a scale of 1 to 5, with 5 being best):
  1. How well did the authors (presenters) explain what problem they are trying to solve?
  2. How well did they explain why this problem is important?
  3. How well did they explain why the problem is challenging?
  4. How thorough was the literature review?
  5. How clearly was prior work described?
  6. How well did the authors explain how their proposed work is different than prior work?
  7. How clearly did the authors describe their proposed approach?
  8. How novel is the proposed approach?
  9. How challenging and ambitious is the proposed approach? (1-10)
Rubric for second presentation (all questions except the first one are scored on a scale of 1 to 5, with 5 being best):
  1. To what extent did the authors develop the method as described in the first presentation? (1-10)
  2. How well did the authors describe their experimental validation?
  3. How informative were the figures used?
  4. Were all/most relevant baselines and competitor methods included in the experimental validation?
  5. Were sufficient experimental settings (e.g. datasets) tested?
  6. To what extent is the performance of the proposed method satisfactory?
  7. How informative were the conclusions the authors drew about their method’s performance relative to other methods?
  8. How sensible was the discussion of limitations?
  9. How interesting was the discussion of future work?
Some potential sources of ideas: [top]

Schedule

Date Chapter Topic Readings Lecture slides Due
1/8 Basics Introduction Szeliski Sec. 1.1-1.2 pptx pdf
1/10
1/15 Filters Szeliski Sec. 3.2, 10.5, 4.1.1 pptx pdf
1/17
1/22 Features Szeliski Sec. 4.1,
Grauman/Leibe Sec. 3, 4.2.1;
feature survey Sec. 1,3.2,7;
Lowe IJCV 2004
pptx pdf
1/24
1/29 Grouping and transformations Szeliski Sec. 2.1, 3.6.1, 4.2, 4.3.2, 5.3-4, 6.1.4, 7.2, 11.1.1; Grauman/Leibe Sec. 5.1, 5.2; pptx pdf
1/31
2/5
2/7 Classification,
support vector machines (SVMs),
convolutional neural networks (CNNs)
Bishop PRML Sec. 1.1,
Bishop PRML Sec. 7.1, Karpathy Module 1 and Module 2; Krizhevsky NIPS 2012, Zeiler ECCV 2014
pptx pdf
2/12 HW1
2/14
2/19 First exam
2/21 Classics Object detection Szeliski Sec. 14.1, 14.4; Grauman/Leibe Sec. 8, 9, 10.2.1.1, 10.3.3, 11.1,2,5; Felzenszwalb PAMI 2010, Girshick CVPR 2014, Ren NIPS 2015, Redmon CVPR 2016, Zhou CVPR 2016, Harwath ECCV 2018 pptx pdf proposal meetings
2/26
2/28
3/5 Vision, language and reasoning blog1, blog2,
Karpathy CVPR 2015, Venugopalan CVPR 2017,
Wu CVPR 2016, Narasimhan ECCV 2018
pptx pdf
3/7 HW2
3/19
3/21 Motion and tracking Laptev CVPR 2008 pptx pdf
3/26 First project presentations and discussion
3/28 No class
4/2 First project presentations and discussion (cont'd)
4/4 slides
4/9 Emergent etc. Self-supervised and embodied learning Doersch ICCV 2015, Jayaraman ICCV 2015, Pinto ECCV 2016, Mnih 2013, Caicedo ICCV 2015, Zhu ICRA 2017, Das CVPR 2018 pptx pdf
4/11
4/16 Generative models Goodfellow NIPS 2014, Radford NIPS 2016, Isola CVPR 2017, Zhu ICCV 2017, Ren ECCV 2018, Bansal ECCV 2018 pptx pdf HW3
4/18 Second exam
4/23 Second project presentations
4/25 slides

[top]

Resources

This course was inspired by the following courses: Tutorials: Some datasets: Some code/frameworks of interest: [top]