Computer Vision

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?

3. Prerequisites

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

4. Objectives

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

5. Syllabus

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.

6. Textbook

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.

10. Assignments

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 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 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 SIBGRAPI format. 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 as a pdf file named YOUR_LAST_NAME.pdf. Submit any supplementary material as a single zip file named Add a README file describing the supplemental content. Late submissions are not allowed.

12. Schedule

LecturesDateTopicsCourse MaterialsAssignments
27/02Course Introduction.
PS1-Release, FP-Guidelines
01/03Images in the Spatial Domain: Pixels and Windows. Image Values and Basic Statistics.
06/03Images in the Spatial Domain: Spatial and Temporal Data Measures. Step-Edges.
08/03Lab Class - Part 1: OpenCV Tutorial.
13/03Lab Class - Part 2: OpenCV Tutorial.
15/03Images in the Frequency Domain: Discrete Fourier Transform. Inverse Discrete Fourier Transform. The Complex Plane.
20/03Images in the Frequency Domain: Image Data in the Frequency Domain. Phase-Congruency Model for Image Features.
22/03Color and Color Images: Color Definitions. Color Perception, Visual Deficiencies and Grey Levels. Color Representations.
27/03Point, Local, and Global Operators: Gradation Functions. Local Operators. Fourier Filtering.
03/04Three Procedural Components: Integral Images. Regular Image Pyramids. Scan Orders.
05/04Classes of Local Operators: Smoothing. Sharpening. Basic Edge Detectors.
10/04Classes of Local Operators: Basic Corner Detectors. Removal of Illumination Artefacts.
12/04Advanced Edge Detectors: LoG and DoG, and Their Scale Spaces. Embedded Confidence.
17/04Basic Image Topology: 4- and 8-Adjacency for Binary Images. Border Tracing.
19/04Geometric 2D Shape Analysis: Area. Length. Curvature.
PS2-Due, FP-Proposal-Due
24/04Image Value Analysis: Co-occurrence Matrices and Measures. Moment-Based Region Analysis. Detection of Lines and Circles: Lines. Circles.
26/043D 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.
03/05Basic Examples of Image Segmentation: Image Binarization.
08/05Basic Examples of Image Segmentation: Segmentation by Seed Growing.
PS3-Due, PS4-Release
10/05Mean-Shift Segmentation: Examples and Preparation. Mean-Shift Model. Algorithms and Time Optimization.
15/05Cameras: Properties of a Digital Camera. Central Projection.
17/05Cameras: A Two-Camera System. Panoramic Camera Systems.
22/05Coordinates: World Coordinates. Homogeneous Coordinates. Camera Calibration: A User’s Perspective on Camera Calibration.
24/05Coordinates: Rectification of Stereo Image Pairs.
29/05Invariance, Features, and Sets of Features: Invariance. Keypoints and 3D Flow Vectors. Sets of Keypoints in Subsequent Frames.
05/06Examples of Features: Scale-Invariant Feature Transform. Speeded-Up Robust Features.
07/06Examples of Features: Oriented Robust Binary Features. Evaluation of Features.
12/06Tracking and Updating of Features: Tracking is a Sparse Correspondence Problem. Lucas-Kanade Tracker.
14/06Localization, Classification, and Evaluation: Descriptors, Classifiers, and Learning. Performance of Object Detectors. Histogram of Oriented Gradients.
19/06Project Presentation.

Department of Computing | CEFET-MG
Av. Amazonas, 7675 | CEP 30510-000 Belo Horizonte, MG, Brazil | Phone: 31 3319 6870 |