Computer Vision

Credits
6
Types
Elective
Requirements
This subject has not requirements, but it has got previous capacities
Department
ESAII
Computer vision is a discipline of computer science that tries to extract and analyze relevant information contained in an image or sequence of images. The application areas are growing every day, ranging from face recognition to early diagnosis of diseases, through the detection and location of objects and people, gestural interaction with systems, guiding robots or automated driving.
After completing the course the student will know how to analyze, design, develop and evaluate methods and image analysis techniques, under low time response, reliability and cost requirements.
The evaluation of the course will be based on partial controls, laboratory practices and group work, doing possible to pass the course without having to do a final exam.

Teachers

Person in charge

  • Joan Climent Vilaró ( )

Others

  • Joan Aranda López ( )
  • Manel Frigola Bourlon ( )

Competences

Technical Competences

Common technical competencies

  • CT1 - To demonstrate knowledge and comprehension of essential facts, concepts, principles and theories related to informatics and their disciplines of reference.
    • CT1.2A - To interpret, select and value concepts, theories, uses and technological developments related to computer science and its application derived from the needed fundamentals of mathematics, statistics and physics. Capacity to solve the mathematical problems presented in engineering. Talent to apply the knowledge about: algebra, differential and integral calculus and numeric methods; statistics and optimization.
  • CT2 - To use properly theories, procedures and tools in the professional development of the informatics engineering in all its fields (specification, design, implementation, deployment and products evaluation) demonstrating the comprehension of the adopted compromises in the design decisions.
    • CT2.5 - To design and evaluate person-computer interfaces which guarantee the accessibility and usability of computer systems, services and applications.
  • CT4 - To demonstrate knowledge and capacity to apply the basic algorithmic procedures of the computer science technologies to design solutions for problems, analysing the suitability and complexity of the algorithms.
    • CT4.1 - To identify the most adequate algorithmic solutions to solve medium difficulty problems.
    • CT4.3 - To demonstrate knowledge and capacity to apply the fundamental principles and the basic techniques of the intelligent systems and its practical application.
  • CT5 - To analyse, design, build and maintain applications in a robust, secure and efficient way, choosing the most adequate paradigm and programming languages.
    • CT5.2 - To know, design and use efficiently the most adequate data types and data structures to solve a problem.
    • CT5.5 - To use the tools of a software development environment to create and develop applications.
  • CT8 - To plan, conceive, deploy and manage computer projects, services and systems in every field, to lead the start-up, the continuous improvement and to value the economical and social impact.
    • CT8.1 - To identify current and emerging technologies and evaluate if they are applicable, to satisfy the users needs.

Transversal Competences

Autonomous learning

  • G7 [Avaluable] - To detect deficiencies in the own knowledge and overcome them through critical reflection and choosing the best actuation to extend this knowledge. Capacity for learning new methods and technologies, and versatility to adapt oneself to new situations.
    • G7.3 - Autonomous learning: capacity to plan and organize personal work. To apply the acquired knowledge when performing a task, in function of its suitability and importance, decide how to perform it and the needed time, and select the most adequate information sources. To identify the importance of establishing and maintaining contacts with students, teacher staff and professionals (networking). To identify information forums about ICT engineering, its advances and its impact in the society (IEEE, associations, etc.).

Technical Competences of each Specialization

Computer science specialization

  • CCO2 - To develop effectively and efficiently the adequate algorithms and software to solve complex computation problems.
    • CCO2.2 - Capacity to acquire, obtain, formalize and represent human knowledge in a computable way to solve problems through a computer system in any applicable field, in particular in the fields related to computation, perception and operation in intelligent environments.
    • CCO2.3 - To develop and evaluate interactive systems and systems that show complex information, and its application to solve person-computer interaction problems.
    • CCO2.4 - To demonstrate knowledge and develop techniques about computational learning; to design and implement applications and system that use them, including these ones dedicated to the automatic extraction of information and knowledge from large data volumes.

Objectives

  1. Understanding the mechanisms of digital imaging and their features thereof.
    Related competences: CT1.2A,
  2. Compare and select the proper tools for image preprocessing based on the problem to solve.
    Related competences: CT1.2A, CT4.1, CT5.2,
  3. Segment and label the parts of an image from its common characteristics and / or differences.
    Related competences: CT1.2A, CT4.1, CT5.2, CT4.3,
  4. Understand, design and implement in an efficient way the most suitable descriptors for the characterization of regions, singular points or edges of an image.
    Related competences: CT1.2A, CT5.2, CCO2.2,
  5. Detect and identify the presence of certain items in a picture.
    Related competences: CCO2.3, CT2.5, CT4.1, CCO2.2, CCO2.4, CT4.3,
  6. Successfully perform experiments designed to evaluate the chosen or proposed methods, their limitations and weaknesses, based on objective results .
    Related competences: CT1.2A, CT8.1, CT4.1, CT5.5, CCO2.2, CCO2.4, G7.3, CT4.3,
  7. Detect moving targets in a scene and tracking them.
    Related competences: CT1.2A, CT8.1, CCO2.3, CT2.5, CT4.1, CT5.2, CCO2.2, CT4.3,

Contents

  1. The digital image
    Digital image properties. Discretization and quantification. Colour spaces
  2. Digital image processing
    Grey-level transformations.
    Geometric transformations
    Linear operators. Convolution. Image smoothing and enhancement
    Edge detection
    Non linear operators. Morphological filters.
    Scale space
  3. Image segmentation
    Binarization.
    Region based segmentation: region growing, split & merge, watershed, k-means, normalized cuts....
    Edge based segmentation: LoG, DoG, Canny...
    Connectivity analysis and labelling, adjacency graph
  4. Shape descriptors
    Edge based descriptors
    Region based descriptors
    Translation, rotation, illumination, affine transformation, and/or scale invariance
  5. Recognition
    Feature vectors classification.
    Clustering and learning.
    Distance functions.
    Classifiers: Bayes, Mahalanobis, Fisher, K-nearest,...
    Methods for evaluating a classification.
    PCA. Dimensionality reduction.
  6. Local features
    Histogram based descriptors: Colour histograms, HOGs.
    Hough transform.
    Keypoint detectors and descriptors: Harris, SIFT.
    Haar-like features. Face Detection using Viola-Jones
  7. Motion analysis
    Difference image. Optical flow. Keypoint correspondence. Tracking.

Activities

Activity Evaluation act


What is an image? What information does it contain?

Capturing digital images, properties and features. Image Formation.
Objectives: 1
Contents:
Theory
0h
Problems
4h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h

Digital image processing

Image histogram, modifications, enhancement. Spatial and frequency filtering. Morphological filters. Geometric transformations. Scale space
Objectives: 2
Contents:
Theory
0h
Problems
18h
Laboratory
0h
Guided learning
0h
Autonomous learning
20h

Image segmentation

Techniques based on regions: Binarization, watershed, mean-shift, normalized cuts .... Techniques based on contours: Gradients, LoG, DoG, Canny ... Connectivity and labeling analysis, adjacency graph.
Objectives: 3 6
Contents:
Theory
0h
Problems
8h
Laboratory
0h
Guided learning
0h
Autonomous learning
10h

Feature detection and description.

Local and global features. REgion descriptors, contours and keypoints. Concept of invariance in translation, rotation and scale
Objectives: 4 6
Contents:
Theory
0h
Problems
14h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h

Recognition

Basic concepts. Classification by means of descriptor vectors. Construction of classes (Clustering, learning ...) Distance functions. Types of classifiers: Bayes, Mahalanobis, Fisher, K-nearest, ... Identification of objects. Category recognition.
Objectives: 5 6
Contents:
Theory
0h
Problems
6h
Laboratory
0h
Guided learning
0h
Autonomous learning
6h

Motion detection and analysis

Image difference. Optical flow. Point correspondence. Object tracking.
Objectives: 5 6 7
Contents:
Theory
0h
Problems
4h
Laboratory
0h
Guided learning
0h
Autonomous learning
4h

Design and develop a simple computer vision application (short-project).

The student will have to choose and combine the methods and techniques that he finds more suitable to give solution to the presented problem. You will need to evaluate your work by designing test sets and delineating the scope of the proposed solution.
Objectives: 1 2 3 5 4 6
Contents:
Theory
0h
Problems
6h
Laboratory
0h
Guided learning
0h
Autonomous learning
28h

Goal achievement control.

Knowledge test.
Objectives: 1 2 3
Week: 7
Type: assigment
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
1h
Autonomous learning
1h

Monitoring control of the short-project

The student must present a partial report on the evolution of the mini-project: design decisions and initial tests if any, as well as a temporary planning of the missing work. This is a test to monitor the correct evolution of the mini-project. It also serves to re-orient the student if necessary.
Objectives: 2 3 4 6
Week: 14
Type: assigment
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
1h
Autonomous learning
1h

Presentation of the results of the short-project

The student makes a presentation of his short-project.
Objectives: 2 3 5 4 6
Week: 15
Type: assigment
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
3h
Autonomous learning
3h

Goal achievement test


Objectives: 3 5 4 6 7
Week: 15 (Outside class hours)
Type: final exam
Theory
0h
Problems
0h
Laboratory
0h
Guided learning
1h
Autonomous learning
1h

Teaching methodology

The teaching methodology will be in general deductive. Attempt to flee the classic lecture methodology. The approach is always the same
- to propose a problem
- trying to solve it
- add pieces of theory needed to solve the problem.
During practices we'll work also cooperative learning and independent learning by the resolution of a shortproject.

Evaluation methodology

Throughout the course, a series of exercises will be requested to evaluate the student. There will be no final exam.
NL will be obtained from the practices done compulsorily in class personally and the deliveries of the homework.
NT will be obtained from the partial exams.

The final mark of the subject will be calculated as follows: NF = 0'7NL+ 0'3NT

The evaluation of the transversal competence (Autonomous Learning) will be calculated taking into account the capacity of the student by :
. detect one's own lack of knowledge about the proposed problem
. look for possible solutions to the problem posed (search for bibliography-study of the state of the art) .
. know how to assess when you have enough information to solve the problem posed .
. choose the right solution (adapting or improving an existing one ) or know how to assess whether it is necessary to create a new one
. defend the chosen solution against other solutions based on objective arguments (results).

Bibliography

Basic:

Complementary:

Previous capacities

It is recommended that the student has passed the courses Probability and Statistics (PE) and Programming Project (PROP).