CMSC 426: Computer Vision



Course Logistics


Welcome to CMSC426 Computer Vision class by Prof. Yiannis Aloimonos. The course was redesigned by Nitin J. Sanket and Chahat Deep Singh. The class has Kanishka Ganguly, Chethan M. Parameshwara, Chahat Deep Singh and Xiaomin Lin as the teaching assistants for this course. 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.
All the projects and homeworks will be coded in MATLAB programming language.

Current Members











Yiannis Aloimonos

Instructor








Kanishka Ganguly

Teaching Assistant








Chahat Deep Singh

Teaching Assistant








Chethan M. Parameshwara

Teaching Assistant








Xiaomin Lin

PH.D. Student


Pre-requisites


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


Office Hours


  • Teaching Assistants: TBA
  • Prof. Yiannis Aloimonos: By Appointment


Course Structure


This is a hands-on course, centered around four projects. There will be also a homework and an in-class midterm exam, to reinforce your understanding of underlying concepts. The grading breakdown is as follows:
  • Project 1: 15%
  • Project 2: 17.5%
  • Project 3: 17.5%
  • Project 4: 20%
  • Homework : 5%
  • In-Class Midterm Exam: 15%
  • Piazza participation: 10% (Help out your friends out with concepts!)
  • Piazza participation includes answering questions and taking part in discussions related to concepts only, needless to say there will be no points for "Private posts".
NOTE: The grading scheme may undergo variation depending on the speed and difficulty of the course, especially during COVID period.

Assignments


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

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 eight "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