Difference between revisions of "Applied Computer Vision"
(→Content details) |
(→Content details) |
||
(34 intermediate revisions by the same user not shown) | |||
Line 13: | Line 13: | ||
<span style="color:#AB0000">Lecture/Lab/Rep hours/week: 4 hours lectures/week</span> | <span style="color:#AB0000">Lecture/Lab/Rep hours/week: 4 hours lectures/week</span> | ||
− | <span style="color:#AB0000">Semester: | + | <span style="color:#AB0000">Semester: Fall</span> |
<span style="color:#AB0000">Pre-requisites: programming skills </span> | <span style="color:#AB0000">Pre-requisites: programming skills </span> | ||
− | Students are expected to be | + | Students are expected to be proficient in programming in at least one programming language, ideally C/C++. |
==<span style="color:#AB0000">Course description</span> == | ==<span style="color:#AB0000">Course description</span> == | ||
Line 44: | Line 44: | ||
for information on course delivery, including lectures, labs, assignments, and exercises. | for information on course delivery, including lectures, labs, assignments, and exercises. | ||
− | The course will cover the following topics: | + | The course will cover the following topics (this list is provisional and will be finalized before the start of the course): |
# Overview of human and computer vision. | # Overview of human and computer vision. | ||
− | # Optics, sensors, image formation. | + | # OpenCV and software development tools for course work |
− | # Image acquisition | + | # Optics, sensors, and image formation. |
+ | # Image acquisition and image representation. | ||
# Image processing: point & neighbourhood operations, image filtering, convolution, Fourier transform. | # Image processing: point & neighbourhood operations, image filtering, convolution, Fourier transform. | ||
− | # Image processing: geometric operations, | + | # Image processing: morphological operations. |
− | # Segmentation: edge detection | + | # Image processing: geometric operations. |
− | # Hough transform: | + | # Segmentation: region-based approaches, binary thresholding, connected component analysis. |
− | # | + | # Segmentation: edge detection. |
− | # Object | + | # Segmentation: colour-based approaches; k-means clustering. |
− | # | + | # Image features: Harris and Difference of Gaussian interest point operators. |
− | # | + | # Image features: SIFT feature descriptor. |
+ | # Object recognition: template matching; normalized cross-correlation; chamfer matching. | ||
+ | # Object recognition: 2D shape features; statistical pattern recognition. | ||
+ | # Object recognition: Hough transform for parametric curves: lines, circles, and ellipses. | ||
+ | # Object recognition: generalized Hough transform; extension to codeword features. | ||
+ | # Object recognition: colour histogram matching and back-projection. | ||
+ | # Object recognition: Haar features and boosted classifiers. | ||
+ | # Object recognition: Histogram of Oriented Gradients (HOG) feature descriptor. | ||
+ | # Video image processing: background subtraction and object tracking | ||
# 3D vision: Homogeneous coordinates and transformations. Perspective transformation. Camera model and inverse perspective transformation. | # 3D vision: Homogeneous coordinates and transformations. Perspective transformation. Camera model and inverse perspective transformation. | ||
# Stereo vision. Epipolar geometry. | # Stereo vision. Epipolar geometry. | ||
− | |||
# Optical flow. | # Optical flow. | ||
− | #Visual attention. Saliency. Bottom-up and top-down attention. | + | # Visual attention. Saliency. Bottom-up and top-down attention. |
# Clustering, grouping, and segmentation. Gestalt principles. Clustering algorithms. | # Clustering, grouping, and segmentation. Gestalt principles. Clustering algorithms. | ||
− | # Object recognition in | + | # Object recognition in 3D. Object detection, object recognition, object categorisation. |
− | # | + | # Affordances. |
− | # | + | # Computer vision and machine learning. |
− | + | <!-- ''The detailed content for each of these topics follows.'' --> | |
− | ''The detailed content for each of these topics follows.'' | + | <!-- <span style="color:#AB0000">Optics, sensors, image formation</span><BR> --> |
− | + | <!-- * xyz --> | |
− | + | ||
− | <span style="color:#AB0000">Optics, sensors, image formation</span><BR> | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | < | + | |
− | * xyz | + | |
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
− | + | ||
==<span style="color:#AB0000">Lecture Schedule</span> == | ==<span style="color:#AB0000">Lecture Schedule</span> == | ||
− | Refer to the [[ | + | Refer to the [[Applied Computer Vision Lecture Schedule|Lecture Schedule]] for information on course delivery, including lectures, labs, assignments, and exercises. |
==<span style="color:#AB0000">Faculty</span> == | ==<span style="color:#AB0000">Faculty</span> == | ||
Line 128: | Line 88: | ||
==<span style="color:#AB0000">Student assessment</span> == | ==<span style="color:#AB0000">Student assessment</span> == | ||
− | This course includes several hands-on programming and analysis assignments. Students will program mainly in C/C++ | + | This course includes several hands-on programming and analysis assignments. Students will program mainly in C/C++ using OpenCV and other computer vision libraries. In addition to programming assignments, students will be assigned readings to support the lecture material. |
− | Marks will be awarded as follows. | + | Marks will be awarded as follows (yet to be finalized). |
− | + | Four individual assignments 60%. | |
− | Final examination | + | Final examination 40%. |
− | + | ||
==<span style="color:#AB0000">Software tools</span> == | ==<span style="color:#AB0000">Software tools</span> == | ||
Please follow the instructions provided in the [[ACV Software Development Environment|Software Development Environment]] installation guide. | Please follow the instructions provided in the [[ACV Software Development Environment|Software Development Environment]] installation guide. | ||
− | ==<span style="color:#AB0000">Course | + | ==<span style="color:#AB0000">Course text</span> == |
− | + | [http://szeliski.org/Book/drafts/SzeliskiBook_20100903_draft.pdf Szeliski, R. (2010). Computer Vision: Algorithms and Applications, Springer. ] | |
− | + | ==<span style="color:#AB0000">Recommended reading</span> == | |
− | A | + | [http://ilab.usc.edu/publications/doc/Borji_Itti13pami.pdf Borji, A. and Itti, L. (2013). "State-of-the-Art in Visual Attention Modeling", IEEE Transactions on Pattern Analysis and Machine intelligence, Vol. 35, No. 1, pp. 185-207. ] |
− | A | + | Dawson-Howe, K. (2014). ''A Practical Introduction to Computer Vision with OpenCV'', Wiley. |
+ | |||
+ | Hanbury, A. ''The Taming of the Hue, Saturation, and Brightness Colour Space'', Proc. Computer Vision Winter Workshop (CVWW), Austria, 2002. | ||
+ | |||
+ | Kragic, D. and Vincze, M. (2010). "Vision for Robotics", Foundation and Trends in Robotics, Vol 1, No 1, pp 1–78. | ||
+ | |||
+ | [http://homepages.inf.ed.ac.uk/rbf/BOOKS/VERNON/vernon.htm Vernon, D. (1991). ''Machine Vision: Automated Visual Inspection and Robot Vision'', Prentice-Hall.] | ||
==<span style="color:#AB0000">Acknowledgments</span> == | ==<span style="color:#AB0000">Acknowledgments</span> == | ||
− | + | The syllabus for this course drew inspiration from several sources. These include the following. | |
+ | |||
+ | * Course VO 4.0 376.054 Machine Vision and Cognitive Robotics given by Markus Vincze, Michael Zillich, and Daniel Wolf at Technische Universität Wien. | ||
+ | * Course 4BA10 Computer Vision given by David Vernon at Trinity College Dublin. | ||
+ | * Course 4BA10 Computer Vision given by Kenneth-Dawson Howe at Trinity College Dublin. | ||
+ | * Course on Computer Vision at VVV2017 by Francesca Odone, University of Genova. |
Latest revision as of 03:37, 5 July 2017
|CARNEGIE MELLON UNIVERSITY AFRICA|
04-800
Applied Computer Vision
Elective
Units: 12
Lecture/Lab/Rep hours/week: 4 hours lectures/week
Semester: Fall
Pre-requisites: programming skills
Students are expected to be proficient in programming in at least one programming language, ideally C/C++.
Course description
This course provides students with a solid foundation in the key elements of computer vision, emphasizing the practical application of the underlying theory. It focusses mainly on the techniques required to build robot vision applications but the algorithms can also be applied in other domains such as industrial inspection and video surveillance. A key focus of the course is on effective implementation of solutions to practical computer vision problems in a variety of environments using both bespoke software authored by the students and standard computer vision libraries.
Learning objectives
The course covers optics, sensors, image formation, image acquisition & image representation before proceeding to the essentials of image processing and image filtering. This provides the basis for a treatment of image segmentation, including edge detection, region growing, and boundary detection, the Hough transform, and colour-based segmentation.
Building on this, the course then proceeds to deal with object detection and recognition in 2D, addressing template matching, interest point operators, gradient orientation histograms, the SIFT descriptor, and colour histogram intersection and back-projection.
The problem of recovery of 3D information is then addressed, introducing homogeneous coordinates and transformations, the perspective transformation, camera model, inverse perspective transformation, stereo vision, and epipolar geometry.
The interpretation of visual information in unstructured environments poses many problems. To deal with these, the course then addresses visual attention, clustering, grouping, and segmentation, building on Gestalt principles, before proceeding to deal with object detection, object recognition, and object categorization in both 2D and 3D.
Outcomes
After completing this course, students should be able to:
- Apply their knowledge of image acquisition, image processing, and image analysis to extract useful information from visual images.
- Design, implement, and document appropriate, effective, and efficient software solutions for a variety of real-world computer vision problems.
- Exploit standard computer vision software libraries in the development of these solutions.
Content details
Refer to the Lecture Schedule for information on course delivery, including lectures, labs, assignments, and exercises.
The course will cover the following topics (this list is provisional and will be finalized before the start of the course):
- Overview of human and computer vision.
- OpenCV and software development tools for course work
- Optics, sensors, and image formation.
- Image acquisition and image representation.
- Image processing: point & neighbourhood operations, image filtering, convolution, Fourier transform.
- Image processing: morphological operations.
- Image processing: geometric operations.
- Segmentation: region-based approaches, binary thresholding, connected component analysis.
- Segmentation: edge detection.
- Segmentation: colour-based approaches; k-means clustering.
- Image features: Harris and Difference of Gaussian interest point operators.
- Image features: SIFT feature descriptor.
- Object recognition: template matching; normalized cross-correlation; chamfer matching.
- Object recognition: 2D shape features; statistical pattern recognition.
- Object recognition: Hough transform for parametric curves: lines, circles, and ellipses.
- Object recognition: generalized Hough transform; extension to codeword features.
- Object recognition: colour histogram matching and back-projection.
- Object recognition: Haar features and boosted classifiers.
- Object recognition: Histogram of Oriented Gradients (HOG) feature descriptor.
- Video image processing: background subtraction and object tracking
- 3D vision: Homogeneous coordinates and transformations. Perspective transformation. Camera model and inverse perspective transformation.
- Stereo vision. Epipolar geometry.
- Optical flow.
- Visual attention. Saliency. Bottom-up and top-down attention.
- Clustering, grouping, and segmentation. Gestalt principles. Clustering algorithms.
- Object recognition in 3D. Object detection, object recognition, object categorisation.
- Affordances.
- Computer vision and machine learning.
Lecture Schedule
Refer to the Lecture Schedule for information on course delivery, including lectures, labs, assignments, and exercises.
Faculty
Delivery
Face-to-face.
Student assessment
This course includes several hands-on programming and analysis assignments. Students will program mainly in C/C++ using OpenCV and other computer vision libraries. In addition to programming assignments, students will be assigned readings to support the lecture material.
Marks will be awarded as follows (yet to be finalized).
Four individual assignments 60%. Final examination 40%.
Software tools
Please follow the instructions provided in the Software Development Environment installation guide.
Course text
Szeliski, R. (2010). Computer Vision: Algorithms and Applications, Springer.
Recommended reading
Dawson-Howe, K. (2014). A Practical Introduction to Computer Vision with OpenCV, Wiley.
Hanbury, A. The Taming of the Hue, Saturation, and Brightness Colour Space, Proc. Computer Vision Winter Workshop (CVWW), Austria, 2002.
Kragic, D. and Vincze, M. (2010). "Vision for Robotics", Foundation and Trends in Robotics, Vol 1, No 1, pp 1–78.
Vernon, D. (1991). Machine Vision: Automated Visual Inspection and Robot Vision, Prentice-Hall.
Acknowledgments
The syllabus for this course drew inspiration from several sources. These include the following.
- Course VO 4.0 376.054 Machine Vision and Cognitive Robotics given by Markus Vincze, Michael Zillich, and Daniel Wolf at Technische Universität Wien.
- Course 4BA10 Computer Vision given by David Vernon at Trinity College Dublin.
- Course 4BA10 Computer Vision given by Kenneth-Dawson Howe at Trinity College Dublin.
- Course on Computer Vision at VVV2017 by Francesca Odone, University of Genova.