Course Motivation:
Computer vision is a field that involves the development of computer programs to automatically analyze and understand the content of images acquired from a sensor. The image data can take many forms, such as video sequences, views from multiple cameras, depth measurements from the Xbox Kinect, or multi-dimensional data from a medical scanner. The objective is to produce some form of numerical or symbolic representation of the contents of the scene. At times, the field has been concerned with duplicating the human visual system's procedure for visual perception. Often models used involve the development of mathematical tools, borrowed from the fields of geometry, probability and statistics, physics, machine learning, and others. As a scientific discipline, computer vision is concerned with the theory behind artificial systems that extract information from images. As a technological discipline, computer vision seeks to apply its theories and models to the construction of computer vision systems. This course will cover essential topics in the field of computer vision, providing students with background on some theoretical components of the field, as well as hands-on experience through practical and fun assignments. The course would complement existing courses in computer graphics, embedded systems, artificial intelligence and signal processing. It is important to note that computer vision is currently in a phase of high growth worldwide. Hardware companies (e.g. Intel, Samsung, Qualcomm), software companies (e.g. Google, Facebook), as well as car and entertainment companies (e.g. Disney, Microsoft: Xbox) are all currently heavily investing in these domains, and aggressively recruiting in the area. Many companies with products in the telecommunication area such as Apple, Blackberry, Google, Bell, Apple, and Nokia all have significant activities in developing vision and image manipulation apps for use in cellphones. Furthermore, a large number of startups in this area have recently enjoyed tremendous success due to the maturity and availability of the algorithms in the field as well as the ubiquitous nature of cameras today. The material covered in this course is aimed at senior undergraduates, both among those seeking employment the above application domains, and students considering the field as an area for graduate research.
Learning Outcomes:
During this course, the student will acquire a broad understanding of a variety of problems addressed by researchers in the field of computer vision. These include (but are not limited to): image formation, filtering and image enhancement, image matching, image features, feature alignment and stitching, grouping and matching, stereo, motion and optical flow estimation, segmentation, scene understanding, face detection and recognition, classifiers, deep learning and medical image analysis. Students will be given an overview of designing and programming in Python and OpenCV in the context of solving practical problems in the field of computer vision. By the end of the course, the students should be able to apply, in a design context, their acquired programming skills to address a wide variety of problems in computer vision.