1. Class Information
Lectures: Tuesday and Thursday from 13:00 to 14:40
Location: Room 119 - Main Building
Instructor: Flávio Cardeal
Academic term: First-Semester 2018
Last update: February 19, 2018
2. Course Description
This course is an introduction to basic concepts in computer vision, a research field that aims to develop methods that
enable a machine to “understand” or analyze images and videos. In this course, we will
explore some fundamental topics in the area, which contribute to face challenging problems that could be stated by questions
suh as: could we interact with a computer in richer ways than a keyboard and mouse, perhaps with natural gestures or simply
facial expressions? How can a robot identify objects in complex environments, or navigate uncharted territory? How can a
video camera in the operating room help a surgeon plan a procedure more safely, or assist a radiologist in more efficiently
detecting a tumor? Given some video sequence of a scene, can we synthesize new virtual views from arbitrary viewpoints that
make a viewer feel as if they are in the movie? Given billions of images hosted publicly on the web, how can you find one
that “looks like” some image you are interested in?
This course is intended for graduate and upper-level undergraduate students. Students should know linear algebra (i.e.,
matrix operations, solution of linear equations), elementary statistics, and a programming language (e.g., Matlab and/or C).
- To understand the fundamental concepts, problems, and solution techniques in computer vision,
including image formation, object recognition, structure and motion estimation.
- To apply computer vision techniques to solve common problems in research and industrial
applications, such as image transformations, inspection, and recognition.
- To learn the use of image processing and image understanding software tools.
Image data. Image processing. Image analysis. Motion analysis. Image segmentation. Cameras,
Coordinates, and Calibration. 3D Shape Reconstruction. Stereo Matching. Feature Detection and
Tracking. Object Detection.
R. Klette. Concise Computer Vision: An Introduction into Theory and Algorithms, 1a Edition, Springer, 2014.
7. Complementary Reading Materials
1. R. Szeliski. Computer Vision: Algorithms and Applications, 1a Edition, Springer, 2010.
2. R. Hartley and A. Zisserman. Multiple View Geometry in Computer Vision, 1a Edition, Cambridge University Press, 2004.
3. D. A. Forsyth and J. Ponce. Computer Vision: A Modern Approach, 1a Edition, Prentice Hall, 2002.
8. Online Resources
1. Getting started with Matlab: basic tutorial by Stefan Roth.
2. Matlab Image Processing Toolbox.
3. Matlab Functions for Computer Vision and Image Processing by Peter Kovesi.
4. Open Source Computer Vision library (OpenCV).
5. Online documentation for the OpenCV Library.
9. Assessment and Grading
Students will be assessed with using the following elements.
- Problem Sets (Homework Assignments): 60%.
- Final Project: 40%.
There are no exams.
The assignments in this course are comprised of problem sets (PS) and a final project (FP). There are no exams or quizzes.
See the schedule for more details. Assignments will be posted online and are due in class by the end of the specified day of
the lecture. All assignments must be handed in.
The assignments are designed to give you both theoretical and practical experience with the material discussed in class. Since
computer vision is an applied research field, parts of the assignments will involve programming and experimentation. Although
it is allowed to use any coding environment that is convenient for you, I highly recommend MATLAB because it is the most popular
language used in computer vision research community. I care more about the report than the actual code.
You should submit a hard copy of your work in class, and when requested, send to firstname.lastname@example.org your code (and all
files needed to run it, images, etc).
Late Policy. You have up to 5 late days for all assignments in the semester and you can use them at your discretion (do not
use them needlessly). Any additional unapproved late submission will be considered as unsubmitted work. Late submission is
not allowed for the final project and proposal.
Collaboration Policy. I allow discussing problem sets with one or two classmates, but you must submit your own write-up
and list your collaborators. You are allowed to collaborate with one more students for the final project.
11. Final Project
The final project will allow you to explore in depth a topic covered in class which you found interesting and like to know more about.
During the semester I will propose ideas for projects in the problem sets and lectures, and I also encourage the students to come up
with their own ideas that entice them. The topic for the final project and its scope should be approved by myself previously.
Overall, the final project is comprised of (a) a project proposal, (b) a twenty-minute class presentation, and (c) a report documenting
your work, results and conclusions. More details on each of these milestones will be given as its deadline approaches.
11.1 Project Proposal - Due: April 19, 2018
The proposals should be just a page, and should describe what you plan to do (and who with, if appropriate). In the proposal,
persuade me that it will be feasible for you to do it: lay out the tasks, and give a timeline for when you will do each task. You
can work by yourself or in pairs. Projects by pairs should be correspondingly more substantial.
Regarding the project topics: it should be something you are excited about. Anything related to computer vision is fine. Important: it
must be something new that you do for this class, so you can not submit a project from another class. But something topically related
to your research (graduate students) is fine, and if it becomes a paper you submit for publication, that is ideal, of course.
11.2 Presentation - Due: June 19, 2018
The project presentation should be clear, informative, and short. You should briefly describe the problem you have chosen,
and present an overview of your approach and results. The time allotted to each presentation is 10 minutes. I will have to be
strict with the timing to accommodate all the students, so make sure your presentation fit within that time.
Submission: we will use one computer for the presentations in order to avoid the cost of everyone setting up their laptops.
You should send your presentation to email@example.com by the due time established as a single ppt or pdf file named
YOUR_LAST_NAME.ppt (or .pdf). If your presentation has additional files (e.g. videos), send them as a single zip file with the
same naming convention. Late submissions are not allowed, and no further editing will be possible after submission.
11.3 Report - Due: June 19, 2018
The report should be 5 - 8 pages (the upper limit of 8 pages is strict!) in
It should be structured like a research paper, with sections for Introduction, related work, the approach/algorithm,
experimental results, conclusions and references.
You should describe and evaluate what you did in your project, which may not necessarily be what you hoped to do originally.
A small result described and evaluated well will earn more credit than an ambitious result where no aspect was done well.
Be accurate in describing the problem you tried to solve. Explain in detail your approach, and specify any simplifications
or assumptions you have taken. Also demonstrate the limitations of your approach. When doesn’t it work? Why? What steps would
you have taken whether you continued working on it? Make sure to add references to all related work you reviewed or used.
You are allowed to submit any supplementary material that you think it is important to evaluate your work, however I do not
guarantee that I will review all of that material, and you should not assume that. The report should be self-contained.
Submission: submit your report to firstname.lastname@example.org as a pdf file named YOUR_LAST_NAME.pdf. Submit any
supplementary material as a single zip file named YOUR_LAST_NAME.zip. Add a README file describing the supplemental
content. Late submissions are not allowed.
|01-02||27/02||Course Introduction.||Slides-01||PS1-Release, FP-Guidelines|
|03-04||01/03||Images in the Spatial Domain: Pixels and Windows. Image Values and Basic Statistics.||Slides-02|| |
|05-06||06/03||Images in the Spatial Domain: Spatial and Temporal Data Measures. Step-Edges.|| || |
|07-08||08/03||Lab Class - Part 1: OpenCV Tutorial.||Tut-01a|
|09-10||13/03||Lab Class - Part 2: OpenCV Tutorial.|| || |
|11-12||15/03||Images in the Frequency Domain: Discrete Fourier Transform. Inverse Discrete Fourier Transform. The Complex Plane.||Slides-03|| |
|13-14||20/03||Images in the Frequency Domain: Image Data in the Frequency Domain. Phase-Congruency Model for Image Features.|| || |
|15-16||22/03||Color and Color Images: Color Definitions. Color Perception, Visual Deficiencies and Grey Levels. Color Representations.||Slides-04|| |
|17-18||27/03||Point, Local, and Global Operators: Gradation Functions. Local Operators. Fourier Filtering.||Slides-05||PS2-Release|
|--------||29/03||Recess.|| || |
|19-20||03/04||Three Procedural Components: Integral Images. Regular Image Pyramids. Scan Orders.|| ||PS1-Due|
|21-22||05/04||Classes of Local Operators: Smoothing. Sharpening. Basic Edge Detectors.||Slides-06|| |
|23-24||10/04||Classes of Local Operators: Basic Corner Detectors. Removal of Illumination Artefacts.|| || |
|25-26||12/04||Advanced Edge Detectors: LoG and DoG, and Their Scale Spaces. Embedded Confidence.||Slides-7|| |
|27-28||17/04||Basic Image Topology: 4- and 8-Adjacency for Binary Images. Border Tracing.||Slides-8||PS3-Release|
|29-30||19/04||Geometric 2D Shape Analysis: Area. Length. Curvature.||Slides-09||PS2-Due, FP-Proposal-Due|
|31-32||24/04||Image Value Analysis: Co-occurrence Matrices and Measures. Moment-Based Region Analysis. Detection of Lines and Circles: Lines. Circles.||Slides-10|| |
|33-34||26/04||3D Motion and 2D Optical Flow: Local Displacement Versus Optical Flow. Aperture Problem and Gradient Flow. The Horn–Schunck Algorithm: Preparing for the Algorithm. The Algorithm.||Slides-11|| |
|--------||01/05||Holiday.|| || |
|35-36||03/05||Basic Examples of Image Segmentation: Image Binarization.||Slides-12|| |
|37-38||08/05||Basic Examples of Image Segmentation: Segmentation by Seed Growing.|| ||PS3-Due, PS4-Release|
|39-40||10/05||Mean-Shift Segmentation: Examples and Preparation. Mean-Shift Model. Algorithms and Time Optimization.||Slides-13|| |
|41-42||15/05||Cameras: Properties of a Digital Camera. Central Projection.||Slides-14|| |
|43-44||17/05||Cameras: A Two-Camera System. Panoramic Camera Systems.|| || |
|45-46||22/05||Coordinates: World Coordinates. Homogeneous Coordinates. Camera Calibration: A User’s Perspective on Camera Calibration.||Slides-15|| |
|47-48||24/05||Coordinates: Rectification of Stereo Image Pairs.|| || |
|49-50||29/05||Invariance, Features, and Sets of Features: Invariance. Keypoints and 3D Flow Vectors. Sets of Keypoints in Subsequent Frames.||Slides-16|| |
|--------||31/05||Holiday.|| || |
|51-52||05/06||Examples of Features: Scale-Invariant Feature Transform. Speeded-Up Robust Features.||Slides-17||PS4-Due|
|53-54||07/06||Examples of Features: Oriented Robust Binary Features. Evaluation of Features.|| || |
|55-56||12/06||Tracking and Updating of Features: Tracking is a Sparse Correspondence Problem. Lucas-Kanade Tracker.||Slides-18|| |
|57-58||14/06||Localization, Classification, and Evaluation: Descriptors, Classifiers, and Learning. Performance of Object Detectors. Histogram of Oriented Gradients.||Slides-19|| |
|59-60||19/06||Project Presentation.|| ||FP-Report-Due|