Introduction to Graphics and Image Analysis (Spring 2016)
Description
The objectives of this course are to provide students with the fundamental knowledge, comprehension, and skills required to design, build, and evolve smaller computer vision (CV) and computer graphics applications (CG).
Computer vision (image analysis) and computer graphics play decisive roles in our society in relation to automated processes in industry and in our daily lives. The dramatic increase of cameras in mobile devices and other consumer products (QRCodes, Kinnect and many others) makes it evident that developing applications based on efficient and accurate techniques are needed to keep up with the large amounts of data produced by cameras.
2D and 3D compute graphics (CG) on the other hand has been an integral part of our daily interaction with computers and (obviously) has a huge application domain (games, displays etc.), but has also lead to the developments of GPU’s. While seemingly different, computer vision/image analysis and computer graphics have quite a lot in common. The basic commonalities and difference between CV and CG will be covered in the course.
The objectives of this course are to provide students with the fundamental knowledge, comprehension, and skills required to design and build smaller computer vision and computer graphics applications on e.g. a PC or a mobile phone.
Through the course the student should be able to use the technique in more advanced topics on game engines, graphics, computer vision and pervasive computing. The course is an introductory course to the basics of computer vision and computer graphics and the intention is that the student will have sufficient knowledge to follow more advanced courses on game engines, graphics, computer vision and object recognition.
Contents: The course gives an introduction to computer graphics, computer vision/image analysis, linear algebra and GPU programming. In the course we will present the fundamental models used for CV and CG as well as techniques to implement them. You will in the exercises and mandatory assignments be getting hands-on experience with the techniques described during the lectures. In the exercises we will use images from digital cameras and web cameras to illustrate the theory. Web cameras can be borrowed.
In particular we will describe:
- Pixel-based and local processing of images (smoothing, edges, conversion between color spaces) and color image processing.
- Segmentation and object recognition and a brief introduction to machine learning.
- Geometric transformations (2D and 3D).
- Cameras, Stereo, structured light (Kinnect).
- Texture-mapping, shadows, hidden surface removal and lighting.
- Basics of GPU programming.
Python will the main platform for the course yet students may chose to use C#.