Logo UAB
2022/2023

Computer Vision

Code: 102784 ECTS Credits: 6
Degree Type Year Semester
2502441 Computer Engineering OB 3 2
2502441 Computer Engineering OT 4 2

Contact

Name:
Felipe Lumbreras Ruiz
Email:
felipe.lumbreras@uab.cat

Use of Languages

Principal working language:
spanish (spa)
Some groups entirely in English:
No
Some groups entirely in Catalan:
No
Some groups entirely in Spanish:
Yes

Other comments on languages

some teaching materials are in catalan, spanish and english

Prerequisites

There are no prerequisites. This course is quite autonomous. However, this subject will address issues related to mathematical calculation, probability and signal theory, so knowledge is needed in these areas. On the other hand, related to programming, students must code in the practices and that means they need a good programming base. For all this it is advisable to have the courses "Programming Laboratory", "Programming Methodology" and "Fundamentals of Computing" made and, by affinity in the content, also "Artificial Intelligence".

 

Objectives and Contextualisation

The subject of Computer Vision is in the mention of "Computing" among the subjects of "Knowledge, Reasoning and Uncertainty", "Computational Learning" and "Robotics, Language and Planning" that are part of the subject called Cognitive Systems . Therefore, its contents are related in some way to the subject of Artificial Intelligence of the second year.

The objectives of the subject can be summarized in:

Knowledge:

  • Know, understand and know how to model the acquisition of images through a camera.
  • Understand the phenomenon of human visual perception.
  • Describe and relate the phases in which the solution is divided to a problem of image analysis.
  • Identify the advantages and disadvantages of the computer vision algorithms that are explained.
  • Solve real problems related to vision techniques to find a solution.
  • Understand the result and limitations of vision techniques in different case studies.
  • Know how to choose the most suitable image processing algorithm to solve a given task.
  • Knowing how to choose the most appropriate computer vision techniques to solve contextualized problems.


Skills:

  • Recognize situations in which the application of computer vision algorithms may be adequate to solve a problem.
  • Analyze the problem to solve and design the optimal solution applying the techniques learned.
  • Write technical documents related to the analysis and solution of a problem.
  • Program the basic algorithms to solve the proposed problems.
  • Evaluate the results of the implemented solution and evaluate the possible improvements.
  • Defend and argue the decisions made in the solution of the proposed problems.

Competences

    Computer Engineering
  • Acquire personal work habits.
  • Communication.
  • Have the capacity for in-depth knowledge of the fundamental principles and models of computation and know how to apply them to interpret, select, value, model and create new concepts, theories, uses and technological developments related with IT.
  • Have the capacity to acquire, obtain, formalise and represent human knowledge in a computable form to solve problems by means of a computer system in any field of application, particularly related with aspects of computation, perception and performance in intelligent environments.
  • Have the capacity to understand the fundaments, paradigms and techniques of intelligent systems and analyse, design and build computer systems, services and applications that use said techniques in any field of application.
  • Work in teams.

Learning Outcomes

  1. Apply the basic methods of image processing to specific problems.
  2. Communicate efficiently, orally or in writing, knowledge, results and skills, both in the professional environment and before non-expert audiences.
  3. Extract the form descriptors of the objects present in a scene.
  4. Implement knowledge representation methods for the identification of the objects present in a scene.
  5. Know of the different technological options for choosing the optimum image acquisition system for a specific purpose.
  6. Manage time and resources available. Work in an organized manner .
  7. Work cooperatively.
  8. Work independently.

Content

1. Image formation

     Light, scene, human visual system, color
     Optics and cameras

2. Image processing

     Images, sampling and quantization, type of images

3. Linear filtering

     Linear Systems, Fourier Transform

4. Non-linear filtering

     Binary and grayscale mathematical morphology

5. Geometric transformations

     Mapping, resampling, applications
     Camera model, homography

6. Characteristics

     Points, contours (grouping), regions
     Descriptors, applications

7. Segmentation

     Global, local
     Clusterization
     Labeled

8. Classification

     Recognition, learning, classification
     Dimension reduction
     Validation

9. Miscellany

     Bag of Words
     3D reconstruction
     Optical Flow

10. Deep Learning in Computer Vision

Methodology

The different activities that will be carried out in this course are organized as follows:

Master classes

The main concepts and algorithms of each theoretical subject will be exposed. These subjects represent the starting point in the work of the subject.

Problem seminars

They will be classes with small groups of students that facilitate the interaction. In these classes, practical cases will be considered that require the design of a solution in which the methods seen in the theory classes are used.

Laboratory practices

There will be a series of common practices that will allow you to acquire basic skills in terms of vision. First delivery to know the tools. Three thematic practices closely related to the theory that is being given at the same time or before. Finally a project chosen by the students themselves. In the second part of the semester they will have to analyze this problem, design and implement solutions based on different process and vision algorithms seen in class, analyze the results obtained in each one of the methods, defend their solution and make the results publicly available .

The work groups will be formed by groups of 1 to 3 students formed in the second week of the course. These work groups must be maintained until the end of the course and they must be self-managed: role play, work planning, assignment of tasks, management of available resources, conflicts, etc. Although the teacher will guide the learning process, his intervention in the management of the groups will be minimal.

In order to develop the project, the groups will work independently and the practice sessions will be devoted mainly to solving doubts with the teacher that will monitor the project status, indicate errors to correct, propose improvements, etc.

Some of the sessions will be marked as control sessions where a practice should be handed out. In these sessions the groups will have to explain the work done and the teacher will ask questions to all the members of the group to evaluate the work done. Attendance at these sessions is mandatory.

In the final delivery, the groups will present a presentation of the project explaining the project developed, the solution adopted and the results obtained. In this presentation each member of the group will have to do a part of the presentation.

The code of common practices will be developed in Matlab and Python language. The part of the project will be free to choose by the students.

Transversal competences:

    T02.01 - Work autonomously.
    T02.03 - Manage time and resources available. Work in an organized way.
    T03.01 - Work cooperatively.
    T04.01 - Communicate efficiently, orally and / or written, knowledge, results and abilities, both in professional environments and in non-expert public.

The Transversal Competences linked to T02 are evaluated in theory and problems classes. There is no specific part of the mark for autonomous work and time management because it is implicit in how to work. Both the theory and the problems, such as Lab0, are the parts of the subject that the student has to do individually (T02.01) and the problems and the Lab0 have associated goals and delivery dates that would be in the Line marked at (T02.03). Those linked to T03 and T04 work and are evaluated in the practical part. A part of the final project note reflects how the student is expressed in public when transmitting the results of his work (T04.01), another part of the note in this final project evaluates the writing of the project support material (T04.01). The Lab1, Lab2, Lab3 and Project are grouped and reinforce the cooperative work competencies (T3.01).

Annotation: Within the schedule set by the centre or degree programme, 15 minutes of one class will be reserved for students to evaluate their lecturers and their courses or modules through questionnaires.

Activities

Title Hours ECTS Learning Outcomes
Type: Directed      
Laboratori classes 10 0.4 1, 2, 5, 3, 6, 4, 7, 8
Master class 20 0.8 1, 5, 8
Problem seminars 11.5 0.46 1, 5
Type: Supervised      
Analysis and design of the project 12 0.48 1, 5, 3, 6, 4
Project documentation 6 0.24 1, 5
Type: Autonomous      
Individual study 45 1.8 1, 5, 3, 4, 8
Oral presentation 12 0.48 1, 2, 5, 6, 7, 8
Project programming 25 1 1, 5, 3, 4

Assessment

   
Activities and evaluation instruments:

Continuous assessment. The student sees at all times his evolution to the subject and how to reach the different objectives of practices, problems and theory.

- Theoretical knowledge

The final theory grade will be calculated from the score of two tests:

               Theory grade = 0.5 Block1 + 0.5 Block2

These tests aim at an individualized evaluation of the student with his abilities to solve problems using the techniques explained in class as well as to evaluate the level of conceptualization that the student has made of the techniques seen.

Recovery (theory). If the student wants to upload a grade or recover, he / she can take the final exam divided into two blocks.

- Problems

The problems will be evaluated along with the theory tests, since the problems complement the theory. The recovery of this part will be done together with the theory. Recovery exam.
Recovery (problems). If the student wants to upload a grade or recover, he / she can take the final exam divided into two blocks.

              Problem grade = 0.5 Block1 + 0.5 Block2

- Practices

The practical part is a series of small projects. The evaluation of this part will include:

    Individual evaluation of the Lab0 that introduces the work tools that will be used in the practices. Also the exhibition parts of the final project are evaluated individually.
    Joint evaluation of the practices: single marks for all members of the working group that will assess the results obtained and the quality of the code.
    Evaluation of the project that will assess, the objectives achieved both by the group and individually, the results obtained and the presentation.

The grade of this part will be calculated according to the formula:

            Practices grade = (1/20) Lab0 + (3/20) Lab1 + (3/20) Lab2 + (3/20) Lab3 + (10/20) Project

Recovery (practices). The recovery of this part will consist in the delivery of the material not delivered before but with a multiplying factor of 0.8.

- Final evaluation

The Final Grade of the subject is obtained by combining the evaluation of these activities in the following way:

            Final grade = 0.3 Theory grade + 0.3 Problems grade + 0.4 Practice grade

The final grade that will appear in the expedient file, except for specific cases of copying and plagiarism or "Not evaluable", will be the result of applying the formula Final grade, also for cases of fail.

Grad with honors (MH) will be given to the people with the best grade above 9, ordered in order of arrival to that mark and there will be as many as can be given by the enrollment ratio.

Students who do not participate in any of the different evaluable elements (tests, challenges, exams, practices) will receive a "Not Evaluable" grade.



Terms:

If the student presents a partial exam or if he / she presents himself / herself to a practice control session, he / she can no longer be evaluated as "Not evaluable" in case he / she does not attend the other evaluations, but the note will be calculated. final from those continuous evaluations to which it has been submitted.

Clarifications:

    5.00 is the mark to pass. 4.99 or lower is suspended.

    In the case of repeating students, the practices of the previous year, if the theme is maintained, may be resubmitted. This means not a direct validation but they have to defend themselves in a single interview with the internship teacher. The rest of the evaluation activities (theory and problems) have to be re-evaluated in the established way.

    The dates for continuous evaluation and submission of papers will be published on the web page of the subject or in Catonte and may be subject to programming changes for reasons of adaptation to possible incidents; always be informed on the web page of the subject or Caront on these changes, since it is understood that the website of the subject or Caronte are the usual mechanisms of exchange of information between teacher and students.

    For each evaluation activity, a place, date and time of revision in which the student can review the activity with the teacher will be indicated. In this context, claims may be made on the activity grade, which will be evaluated by the faculty responsible for the subject. If the student does not appear in this review, this activity will not be reviewed later.

    Without prejudice to other disciplinary measures deemed appropriate, and in accordance with current academic regulations, irregularities committed by a student that may lead to a variation of the grade will be scored with a zero (0). The evaluation activities qualified in this way and by this procedure will not be recoverable. If it is necessary to pass any of these evaluation activities to pass the subject, this subject will be suspended directly, without the opportunity to recover it in the same course. These irregularities include, among others:    
     - the total or partial copy of a practice, report, or any other evaluation activity;
     - let copy;
     - present a group work not done entirely by the members of the group;
     - presentation materials prepared by a third party, even if they are translations or adaptations, and in general works with non-original and exclusive elements of the student;
     - have communication devices (such as mobile phones, smart watches, etc.) accessible during the theoretical evaluation-individual practices (exams).
     The numerical note of the file will be the lower value between 3.0 and the weighted average of the marks in case the student has committed irregularities in an evaluation act (and therefore the approval by compensation will not be possible).
     In summary: copy, leaving a copy or plagiarising in any of the evaluation activities is equivalent to a FAIL with a grade lower than 3.5.

Assessment Activities

Title Weighting Hours ECTS Learning Outcomes
Group evaluation 10% 0.25 0.01 1, 2, 5, 8
Individual theoretical tests 60% 6 0.24 1, 2, 5, 3, 6, 4, 8
Labs 20% 2 0.08 1, 2, 5, 3, 6, 4, 7
Project presentation 10% 0.25 0.01 1, 2, 7

Bibliography

  • Simon J.D. Prince, Computer Vision: Models, Learning, and Inference, Cambridge University Press, 2012.(http://www.computervisionmodels.com/)
  • David A. Forsyth and Jean Ponce, Computer Vision: A Modern Approach (2nd Edition), Prentice Hall 2011.
  • Rafael C. Gonzalez and Richard E. Woods, Digital Image Processing (3rd Edition), Prentice Hall 2007.
  • Richard Szeliski, Computer Vision: Algorithms and Applications, Springer (Texts in computer Science) 2011. (http://szeliski.org/Book/)
  • Ian Goodfellow and Yoshua Bengio and Aaron Courville, Deep Learning, MIT Press, 2016. (http://www.deeplearningbook.org)
  • Aurélien Géron, Hands-On Machine Learning with Scikit-Learn & TensorFlow, O'Reilly, 2017.
  • Joan Serrat, Llibre d'apunts de Processament d'imatges, 2006. (book)

Similar and complementary online courses

Software

MatLab

Python