Lecture notes
This course introduces students to computer vision – the science and technology to make computers "see." The goal of computer vision is to develop computational machinery to extract useful information from images and videos. The course will study various steps of the overall image analysis pipeline. Topics covered will include: image formation, image representation, segmentation, feature extraction, motion analysis, object detection, camera calibration, and 3D visual reconstruction.
Email: faisal.qureshi@ontariotechu.ca
Web: http://vclab.science.ontariotechu.ca
Doing well in a computer vision course requires developing both mathematical and computational skills. Poor grasp of undergraduate level linear algebra or calculus will surely be an impediment. Strong programming skills are also needed to design "useful" computer vision systems. There are many great resources---books, tutorials, lecture notes, videos, etc.---that will help you learn computer vision theory and methods. Often times, however, these resources either assume strong programming skills or leave it up to the students to develop the needed skill. The lecture notes included below are aimed at individuals who may benefit from seeing computer vision theory and methods in action. I have attempted to provide Python code examples that make computer vision theory tangible.
Python is now de facto scientific computing language. There are of course many situations where Python perhaps is a poor choice for system development; studying computer vision at an undergraduate level is not one of those situations. Even if scientific computing is not your primary focus, it is probably a good idea that you have an above average working knowledge of Python.
Yes, even in the age of deep learning, it is important for you to learn computer vision fundamentals. This is especially true if you want to work at the edge of discovery. Many recent computer vision papers leverage "old computer vision knowledge" to develop deep learning systems that achieve state-of-the-art performance on some very challenging computer vision tasks. Knowing computer vision fundamentals will be your competetive advantage when it comes time for you to interview for a job.
You can reach me via e-mail with suggestions, comments, corrections, etc.
This notebook focuses on interest point detection. We leave feature descriptors and feature matching for an other time.
Sam Roweis was a Canadian computer scientist specializing in Machine Learning. He is sadly no longer with us. In addition to being a superlative machine learning researcher, Sam was a passionate educator. Below I include his notes on linear algebra and probability. I re-discovered these notes thanks to Inmar Givoni.
© Faisal Z. Qureshi
This
work is licensed under a
Creative
Commons Attribution-NonCommercial 4.0 International License.