Skip to main content

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

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.
  • 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.).
  • 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. 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,
    4. 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,
    5. 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,
    6. 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,
    7. 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,

    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: 7 5
    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: 3 5
    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: 4 5
    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: 4 5 6
    Contents:
    Theory
    0h
    Problems
    2h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    2h

    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 7 4 3 5
    Contents:
    Theory
    0h
    Problems
    6h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    24h

    Goal achievement control.

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

    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 7 3 5
    Week: 14 (Outside class hours)
    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    0h

    Presentation of the results of the short-project

    The student makes a presentation of his short-project.
    Objectives: 2 7 4 3 5
    Week: 15 (Outside class hours)
    Theory
    0h
    Problems
    0h
    Laboratory
    0h
    Guided learning
    0h
    Autonomous learning
    0h

    Goal achievement test


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

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