Computer Vision

2012-2013


Utrecht University






1. Description

The goal of computer vision is to make computers work like human visual perception, namely, to understand and recognize the world through visual information, such as, images or videos. Human visual perception, after millions of years of evolution, is extremely good in understanding and recognizing objects or scenes. To have similar abilities to human visual perception (or beyond), computer scientists have been attempting to develop algorithms by relying on various visual information, and this course is about these algorithms. In case you are wondering why we should care about computer vision, consider this: if you think your visual perception system is important and beneficial, so is computer vision.

The potential practical benefits of computer vision systems are immense. It is anticipated that computer vision systems will soon become commonplace and its technology will be applied for a broad range of products, such as, google search on images and videos, object/face recognition and tracking, human pose identification, 3D reconstruction from images, image/video enhancement, robot vision, medical imaging, computer graphics, computer gaming, surveillance, remote sensing, user interactions for mobile devices, intelligent vehicle systems (a car that can drive itself), etc.

To enroll for the course, programming skills in C/C++ are required. This course emphasizes more in the practicality of computer vision, meaning more projects, which are more fun.

Lecturer: Robby T. Tan
E-mail: r.t.tan (at) uu.nl
Official website: computer vision class

Samples from the previous year results: [ Result 1 | Result 2 | Result 3 ]





2. References

Main Reference: Computer Vision by R. Szeliski: free download.

Literatures (optional):

  • Online and free books related to computer vision [website]
  • G. Bradski, A. Kaehler, "Learning OpenCV: Computer Vision with OpenCV Library", O'Reilly Media 2008, ISBN: 0596516130.
  • D. Forsyth and J. Ponce, "Computer Vision: A Modern Approach", Prentice Hall 2003, ISBN: 0-13-191193-7. [old draft in pdf].
  • R. Hartley and A. Zisserman, "Multiple View Geometry in Computer Vision", Cambridge 2003, ISBN: 0-521-54051-8.
  • O. Faugeras, "Three-Dimensional Computer Vision: A Geometric Viewpoint", MIT Press, ISBN: 0-262-06158-9.


Programming Resources (computer vision libraries and functions):

  • OpenCV (the most popular computer vision library in C/C++, download). This is the standard library for this course.
  • OpenCV Reference Manual [pdf]

Also, you can search in google scholar for academic papers, by entering the title, the author's name, or the topic:

Google Scholar




3. Grading and Format

The final grade is average of the following assessments:
  • 40%: Assignments
  • 60%: Exam
The minimum final grade to pass the course is 6 (any number below 6 will not let you pass the course).


Retake exam:

To participate in the retake of the exam, the original grade must be no less than 4. Taking the retake exam should be discussed with the lecturer, particularly when the original score is 6 or above.




Assignments
During the course, students are expected to have a few assignments. Programming skills in C/C++ are required to accomplish the assignments. The deadlines of submitting the assignments are strict. One point (out of 10) is deducted if the submission is within 24 hours late. Two points if the submission is within 48 hours late. After 48 hours, the submission is rejected.

Written Exam
There is a written exam in the course.

Academic Honesty
Academic honesty is compulsory in accomplishing the assignment, projects, and the exam. Exchanging codes for different groups are not allowed. Using codes from the previous year or from the internet is prohibited, unless stated otherwise in the lectures. Copying texts of the reports from other groups is strictly prohibited. Generally, cheating, academic misconduct, plagiarism, and fabrication of any submitted material (including code and text) are not tolerated. We will use software to detect any code or text plagiarism. Any violation to the academic honesty will imply failure to pass the course.

4. Lecture Schedule

Notes:
  • The schedule was arranged as a rough guideline. The lectures will emphasize more on clarity rather than strictness in following the schedule.
  • Acknowledgements: major parts of the slides and materials used in the lecture are taken from various internet sources. The lecturer thanks those people who made the materials available.
  • The information from wikipedia must be read critically, since some of it might be inaccurate or simply wrong.

No
Date
Time
Topic
Slides
1 14-11-2012
(46)
15.15-17.00
ANDRO-C101

Logistics + Introduction (motivations, applications, and overview)

Reading Materials:
  • Text Book: Chapter 1

Additional Materials:
  • Visual Illusion [website]
  • List of some companies (world wide) focusing on computer vision applications [website]
Slide 1
Exercise 1
2 16-11-2012
(46)
09.00-10.45
MIN-208

Image Formation: Geometry and Radiometry

Reading Materials:
  • Text Book: Chapter 2: particularly Sect. 2.1.5, 2.16, and 2.2.
  • How digital cameras work [website]
  • Homogenous Coordinates: wikipedia

Additional materials:
Slide 2
Lecture note 2
Exercise 2
3 21-11-2012
(47)
15.15-17.00
WENT-GROEN

Silhouette-based Volume Reconstruction

Reading Materials:
  • Introduction to Volume Reconstruction [pdf]
Additional Materials:
  • Text Book: Chapter 11.6 (particularly, Chapter 11.6.2 and 11.6.1)
  • Real-time 3D Reconstruction [website]
  • Projective Visual Hulls [pdf]
  • Carved Visual Hulls for Image-Based Modeling [pdf]
  • A Theory of Shape by Space Carving [pdf]
Slide 3
Lecture note 3
Exercise 3
4 23-11-2012
(47)
09.00-10.45
RUPPERT-ROOD

Silhouette-based Volume Reconstruction: Part 2

Additional Materials:
  • Mesh Animation from Multi-view Silhouettes + Dataset: website

see Slide 3
5 28-11-2012
(48)
15.15-17.00
ANDRO-C101

Voxel-based Visual Tracking


Additional materials:
Slide 5
Lecture Note 5 Exercise 5
6 30-11-2012
(48)
09.00-10.45
MIN-208

Bayesian Inferences 1


Additional materials:
Slide 6
Lecture Note 6
Exercise 6
7 05-12-2012
(49)
15.15-17.00
ANDRO-C101

Bayesian Inferences 2


Additional materials:
see Lecture Note 6
8 7-12-2012
(49)
09.00-10.45
MIN-208

Bayesian Inferences in Tracking


Lecture Note 6b
9 12-12-2012
(50)
15.15-17.00
WENT-GROEN

Image Features and Matching: SIFT

Reading materials: Additional materials:
Slide 9
Lecture Note 9
Exercise 9
10 14-12-2012
(50)
09.00-10.45
MIN-208


Object Classification and Recognition

Additional materials:

Slide 10
Exercise 10
19-12-2012
(51)
No class
21-12-2012
(51)
No class
11 9-1-2013
(2)
15.15-17.00
ANDRO-C101

MRF + Graphcuts

Additional materials:
Slide 11
Lecture Note 11
Exercise 11
12 11-1-2013
(2)
09.00-10.45
MIN-208

Motion Analysis: Optical Flow

Additional materials:
Lecture Note 12
Del Operator
13 16-1-2013
(3)
15.15-17.00
ANDRO-C101

Image Editing: Image Inpainting

Reading materials:
  • Region filling and object removal by exemplar-based image inpainting: [pdf]
Additional materials:
Slide 13
Lecture Note 13
Exercise 13
14 18-1-2013
(3)
09.00-10.45
MIN-208

Image Editing: Gradient-based Image Editing

Additional materials:
Slide 14
Lecture Note 14
Exercise 14
15 23-1-23
(4)
15.15-17.00
ANDRO-C101


Physics-based Approaches: An Introduction

Additional materials:
  • Color constancy through specular highlights: [website]
  • Specular highlight removal: [website]
  • Visibility in bad weather: [website]
Slide 15
16 25-1-2013
(4)
09.00-10.45
MIN-208
30-1-2013
(5)
17.00-20.00
Final Exam





5. Important Dates

  • Assignment 1: 30/11/2012, at 23.00
  • Assignment 2: 19/12/2012, at 23.00
  • Assignment 3: 18/01/2013, at 23.00
  • Assignment 4: 01/02/2013, at 23.00
  • Bonus assignment: 3/2/2013, at 23.00
  • Final exam: 30/1/2013, at 17.00-20.00
  • Retake exam: 13/3/2013, at 14.00-17.00


6. Old News

  1. [16/2/2013]: Those who need to retake, have to email me at least 1 week before the retake day (13-3-2013). Not doing this might cause you to be refused to participate (simply because we might not have enough exam sheets).
  2. [15/2/2013]: The exam grades and the final grades are now available on-line. Please check if your grades are correct. Note that, the final grades in the website are tentative (until they appear on OSIRIS).
  3. [15/2/2013]: The highest final grade is 9.5, the highest exam grade is 9.1, and almost all of you have done well in the course.
  4. [13/2/2013]: We expect to announce the assignment and final exam grades by Tuesday [19/2/2013].
  5. [29/01/2013]: The grades of assignment 2 are available on-line. If you cannot find your grade or think your grade is too low, email Marcelo (email address) and cc it to me.
  6. [22/01/2013]: The questions of the final exam are taken from the exercises, slides, lecture notes, and mandatory reading materials. Here is the final exam from the previous year [pdf]. Regarding the questions in the exercises and the previous final exam, no solutions or answers are provided. However, you are allowed to email your answers, and ask if they are correct.
  7. [18/01/2013]: Next Wednesday (23/1) is the last lecture. If there is remaining time, we will review all the topics in the course and discuss the final exam. For this, you might want to prepare some questions.
  8. [10/01/2013]: The deadline of assignment 3 is extended to January 18, 2013 at 23.00.
  9. [14/01/2013]: Lecture 12 (optical flow): I made a mistake in explaining the del operator in the lecture as well as in the lecture note. Regarding this, I have revised the pdf of lecture note 12, and will discuss the mistake in the next lecture on Wednesday (16/1).
  10. [21/12/2012]: The grades of assignment 1 is now available online. If you have questions regarding your grade, email me.
  11. [21/12/2012]: Submit (the university assignment submission system) has problem uploading large files (> 40MB). To avoid this problem, upload only the source code, and use an external server to send the other files.
  12. [13/12/2012]: Asssignment 2: The deadline is extended untill Wednesday (19/12) at 23.00. This extended deadline is strict, and no late submission is allowed.
  13. [11/12/2012]: Assignment 2: For those who want to capture data using the cameras in the motion capture lab, there are two slots available: Wednesday (12/12/) from 17.00 to 18.00, and Thursday (13/12) from 09.00 to 11.00. Note that, you have to contact the teaching assistant (Coert van Gemeren) by sending a message to [c.j.vangemeren @ uu.nl] for making an appointment.
  14. [29/11/2012]: The following link is an example of generated surface mesh (instead of voxels). If you are interested, you might want to try to use the data. In this case, you might need to modify the provided code. [Video | Data | Paper]
  15. [05/12/2012]: The last year final exam is available here.
  16. [05/12/2012]: The instructions of assignment 3 are now available on-line. In this assignment, you have the opportunity to implement the framework of the hidden Markov model for both tracking and labeling.
  17. [05/12/2012]: Assignment 2: the provided code is not perfect, hence you have to modify it whenever necessary.
  18. [03/12/2012]: Assignment 2: those who need webcams can borrow from me.
  19. [30/11/2012]: Assignment 2: to have the same origin of the world coordinates from multiple cameras, one of the solutions is to do the calibration semi manually by clicking the checkerboard's corners (more explanation: here). Or, you can draw the grid lines using an OpenCV function, and ensure that the starting position of the lines is the same for all views.
  20. [30/11/2012]: Regarding the lecture today, thanks to the feedback from a few students, I became aware that most of you already knew the basic probability theory. Thus, in the next lecture, I will directly discuss Bayes' theorem and inference techniques. Again, I really appreciate the feedback.
  21. [29/11/2012]: Assignment 1: if you use video in your submission, you should upload the output video to youtube or vimeo, and provide us with the link.
  22. [23/11/2012]: For assignment 2 and Assignment 3: If you add or change the provided code, you have to create your own files, and to provide some comments in the beginning of every function (about the purpose of the function). The point here is that I should be able to find and understand your code in an efficient way. If you fail to do this, your score might be affected.
  23. [22/11/2012]: Assignment 1: you will obtain a full score if using the explicit implementation of the equation: K [R|t].
  24. [16/11/2012]: Regarding assignment 1, start doing it as soon as possible. Since, installing OpenCV can be problematic, and obtaining the correct calibration data can be difficult.
  25. [16/11/2012]: The tentative instructions of the bonus assignment are available on-line.
  26. [15/11/2012]: The instructions for assignment 1 are already on-line.
  27. [15/11/2012]: If you cannot find a partner to complete the assignments, email me soon, so that I can pair you up.
  28. [15/11/2012]: Slides and exercises for the first and second lecture are available on the schedule. Try to answer the questions in the exercises, since almost all questions in the final exam will be taken from them.
  29. [15/11/2012]: If you later find that your assignment partner does not work properly, notify me.
  30. [15/11/2012]: If you need any help with regard to the assignments, contact Marcelo.