The fundamentals of image filtering and tracking, and how to apply those principles to face detection, mosaicking and stabilization
How to use geometric transformations to determine 3D poses from 2D images for augmented reality tasks and visual odometry for robot localization
How to recognize objects and the basics of visual learning and neural networks for the purpose of classification
How do robots “see”, respond to and learn from their interactions with the world around them? This is the fascinating field of visual intelligence and machine learning. Visual intelligence allows a robot to “sense” and “recognize” the surrounding environment. It also enables a robot to “learn” from the memory of past experiences by extracting patterns in visual signals.
You will understand how Machine Learning extracts statistically meaningful patterns in data that support classification, regression and clustering. Then by studying Computer Vision and Machine Learning together you will be able to build recognition algorithms that can learn from data and adapt to new environments.
By the end of this course, part of the Robotics MicroMasters program, you will be able to program vision capabilities for a robot such as robot localization as well as object recognition using machine learning.
Projects in this course will utilize MATLAB and OpenCV and will include real examples of video stabilization, recognition of 3D objects, coding a classifier for objects, building a perceptron, and designing a convolutional neural network (CNN) using one of the standard CNN frameworks.
Week 1: Camera Geometry and Color Sensing
Week 2: Fourier Transforms, Image Convolution, Edge Detection
Week 3: Image Convolution and Edge Detection Part 2, Image Pyramids
Week 4: Feature Detection: Filters, SIFT, HOG
Week 5: Geometrical Transformation, Affine, Protective and Ransac
Week 6: Optical Flow Estimation
Week 7: Image Morphing
Week 8: Image Blending
Week 9: Image Carving
Week 10: Probability and Statistics, Regression and Classification
Week 11: SVM and Object Recognition
Week 12: Convolutional Neural Network
College-level introductory linear algebra (vector spaces, linear systems, matrix decomposition)
College-level introductory calculus (partial derivatives, function gradients)
Basic knowledge of computer programming (variables, functions, control flow) is preferred, but students may also choose to learn it on their own. The class projects will be carried out MATLAB/Python, with C++ as an option.