CMSC 426: Computer Vision



Course Logistics


Welcome to CMSC426 Computer Vision class by Prof. Yiannis Aloimonos and Nitin J. Sanket (Guest Lecturer). The course is redesigned by Nitin J. Sanket and Chahat Deep Singh (Teaching Assistant). The other two TAs: Jack Rasiel and Chethan M Parameshwara will be holding the office hours. This is an introductory course on computer vision and computational photography. This course will explore image formation, image features, image segmentation, image stitching, image recognition, motion estimation, and SLAM. The course is redesigned and is targeted towards getting jobs in companies like Google, Microsoft etc. as a computer vision scientist/engineer.
The course content and projects are available here: CMSC426
All the class announcements will be made through Piazza. Please use Piazza to contact TAs, rather than email.
All the projects and homeworks are to be submitted using ELMS.

Instructors and TAs











Yiannis Aloimonos

Instructor








Nitin J. Sanket

Guest Lecturer








Chahat Deep Singh

Teaching Assistant








Jack Rasiel

Teaching Assistant








Chethan M. Parameshwara

Teaching Assistant


Pre-requisites


Programming proficiency is the only hard pre-requisite. We recommend familiarity with Matlab and basic Linear Algebra.


Office Hours


  • Jack Rasiel: Wednesday 3.00-5.00 p.m.
  • Chethan M Parameshwara: Monday 3.00-5.00 p.m.
  • Prof. Yiannis Aloimonos: By Appointment


Course Structure


This is a hands-on course, centered around four projects. There are also three homeworks and an in-class midterm exam, to reinforce your understanding of underlying concepts. The grading breakdown is as follows:
  • Project 1: 12.5%
  • Project 2: 12.5%
  • Project 3: 15%
  • Project 4: 20%
  • Homework 1: 5%
  • Homework 2: 5%
  • Homework 3: 5%
  • In-Class Midterm Exam: 15%
  • Class Participation:
    1.   In-Class: 5%
    2.   Piazza: 5%

Assignments


All projects are intended to be done in groups of upto 3. However, homeworks MUST be done individually. However, we encourage you to discuss with your peers. For further details, read the "Collaboration Policy and Honor Code" below.

Class Participation


The class participation grade is based on participation in lecture and in the course piazza. To get a good participation grade, attend and be active in lectures, and be active (asking useful questions and/or providing useful answers) on the class Piazza.

Syllabus


Singular Value Decomposition, Linear Least Squares, Random Sample Consensus, Image Acquisition, Color Spaces, Gaussians, Color Segmentation, Expectation Maximization, Gaussian Mixture Model, Convolution, Filtering in images, Corner and Edge Detection, Projective Geometry, Camera Model, Feature Matching, Homography, Classifiers, Optical Flow, Fundamental and Essential Matrix, Epipolar Geometry, Perspective-n-points, Bundle Adjustment, Fiducial markers, Factor graphs, Pose Graph Optimization, Visual Odometry, Structure from Motion.

Software


We will use MATLAB as the programming platform throughout this course, available to UMD students through Terpware.

Late Policy


This course moves quickly, and concepts tend to build on top of each other. Therefore it's very important to keep up with the material. To encourage this, late assignments are docked 20% for the first day, and 10% per day after that. But life is unpredictable; we all need a break sometimes. So, we allow you four "late days", to spend on any assignment(s) except the final project and the midterm exam. You may submit an assignment late (after the due date) using a late day without any penalty. Think of a late day as pushing the deadline back by a day. So, to get full credit on a 2-days-late assignment, you'd need to use two late days. Late days can only be spent as full days (i.e., you can't use only half a late day for an assignment you submit 12 hrs late). If you are using a late day, mention it in the title of your submission as "USING X LATE DAY(S)"

Collaboration Policy and Honor Code


Collaboration is encouraged, but one should know the difference between collaboration and cheating. Cheating is prohibited and will carry serious consequences. Cheating may be defined as using or attempting to use unauthorized assistance, material, or study aids in academic work or examinations. Some examples of cheating are: collaborating on an in-class exam or homework unless explicitly allowed; copying homework; handing in someone else's work as your own; and plagiarism. You are welcome to collaborate with your peers on Piazza and in person. However it's important that the work you submit is an expression of your understanding, and not merely something you copied from a peer. So, we place strict limits on collaboration:
  • Firstly, you must clearly cite your collaborators by name at the top of your report. This includes Piazza posts referenced.
  • You may not share or copy each other's code. You can discuss how your code works, and the concepts it implements, but you can't just show someone your code.
  • For homeworks, when it comes to formulating or writing solutions, you must work alone. For example, if you're working with your peers on a common whiteboard, you may not simply copy from that whiteboard; you must write your answer separately, based on your own understanding of what you discussed.
You may use free and publicly available sources, such as books, journal and conference publications, and web pages, as research material for your answers. (You will not lose points for using external sources.) You may not use any service that involves payment, and you must clearly and explicitly cite all outside sources and materials that you made use of. We consider the use of uncited external sources as portraying someone else's work as your own, and as such it is a violation of the University's policies on academic dishonesty. Instances will be dealt with harshly and typically result in a failing course grade. Unless otherwise specified, you should assume that that the UMD Code of Academic Integrity applies.

Reference Books


All concepts will be covered in class lecture, and in the lecture notes. However, we also recommend the following books as good references:
  • Computer Vision: Algorithms and Applications, Springer, Richard Szeliski, 2010.
  • Computer vision: A Modern Approach, Prentice Hall, David Forsyth, and Jean Ponce, 2002.
  • Digital Image Processing, Prentice Hall, Rafael Gonzalez, and Richard Woods, 2008.
  • Multiple view geometry in computer vision, Cambridge university press, Richard Hartley, and Andre Zisserman, 2003.

           

 info[at]prg.cs.umd.edu