Instructor: Bei Xiao, American University Location: DMTI Room 110 Office: DMTI Room 204 First Class: Jan 16th
Office hour: Tuesday, 2:30-3:30pm, Friday, 2:30-3:30pm or by Appointment
This course is an introduction to current algorithms used in computer vision and computational photography (automatic image editing and manipulations). We will start from low-level image processing (edges), and then move to mid-level feature analysis (texture, color, motion), and eventually to high-level image and video understanding (objects, faces, scene, human activity). The topics include basic image processing and image analysis, camera models, texture synthesis, motion analysis, automatic image editing, object and scene recognition, face and pose recognition and a gentle survey of deep learning methods for computer vision. We will develop the intuitions and mathematics of the methods in class, and then learn about the difference between theory and practice in projects. We will use Python 3 as our primary programming tool in this course. Codes written in C and MATLAB might be demoed if needed. Working models of computer vision will be demoed in class and homework will be programming exercises with tools such as Numpy, SciPy, and OpenCV.
Data Structure, Probability theory, Linear Algebra
Textbooks and references: (all books are in library reserve and in the bookstore)
-
(Required) R. Szeliski, Computer Vision: Algorithms and Applications available at (http://research.microsoft.com/en-us/um/people/szeliski/Book/)
-
(Recommended) Modern Approach to computer vision. (http://cmuems.com/excap/readings/forsyth-ponce-computer-vision-a-modern-approach.pdf)
-
OpenCV -Python tutorial (http://docs.opencv.org/trunk/doc/py_tutorials/py_tutorials.html)
Upon completion of this course, students should be able to:
- Recognize and describe both the theoretical and practical aspects of computing with images. Connect issues from Computer Vision to Human Vision.
- Knowing how to use programming tools (Python) to process, manipulate, and make simple inferences from images.
- Describe the foundation of image formation and image analysis. Understand the basics of 2D Computer Vision.
- Become familiar with the major technical approaches involved in computer vision.
- Get an exposure to advanced concepts leading to object and scene categorization from images.
- Build simple computer vision applications with existing tools and frameworks.
Homework assignments are usually individual programming projects. All assignments will be submitted electronically on Blackboard and will be due at 11:59 pm on the due date. No assignments are accepted via email.
Assignments must be submitted by the due date to receive full credits.
Each late homework will receive 5% automatic reduction for each late day. No homework is accepted 5 days after the due date.
60% homework projects, 10% mid-term written exam, 15% Final project, 10% in-class quiz, 5% attendances. We sometimes offer extra credits for additional features in homework and projects.
Programming projects will be typically graded as follows: 1.10% - Did you make a reasonable effort and submit something? 2.40% - Does it compile without errors? 3.10% - Does your code have sufficient and meaningful comments? 4.20% - Did you follow the appropriate structure? 5. 20% - Does your program work correctly and generate desirable results and did you present your results with efficient graphics and plots?
Anaconda 3, Opencv
Day | Lecture | Reading | Homeworks |
---|---|---|---|
Wed, Jan 16 | Lecture 1: Intro to computer vision | Chapter 1 | Warm-up exercises |
Wed, Jan 23 | Lecture 2:Linear Filtering | Chapter 3, Page 89-104 | Lecture 2 in-class Exercise |
Wed, Jan 30 | Lecture 3: Linear Algebra | Appendix A | Lecture 3 in-class Exercise |
Wed, Feb 6 | Lecture 4: Histogram Equalization, Gaussian filters | Chapter 3, page 94-101 | Lecture 4 in-class Exercise |