Computer Science 376
This is an intro course in computer vision. It is intended for upper-level undergraduate students.
Computer vision is an interdisciplinary field that deals with how computers can achieve high-level understanding from digital images or videos. From the practical perspective, it seeks to automate tasks that the human visual system can do. Popular computer vision tasks are concerned with the automatic extraction, analysis and understanding of useful information from a single image or a sequence of images. As a scientific discipline, computer vision is concerned with the theory behind artificial systems that extract information from images. The image data can take many forms, such as video sequences, views from multiple cameras, or multi-dimensional data from a medical scanner.
After covering the fundamentals for image processing, grouping, and multiple view geometry, we will emphasize machine learning-based methods, especially for supervised learning and classification. While we will motivate the concepts from the vision problems, the learning algorithms we will study are also useful tools for many other problems and beyond.
Basic knowledge of probability and linear algebra; data structures, algorithms; programming experience. Previous experience with image processing will be useful but is not assumed.
Assignments will consist largely of Matlab programming problems. There will be a warm-up assignment to get familiar with basic Matlab commands. We will recommend useful functions to check out per assignment. However, students are expected to practice and pick up Matlab on their own in order to complete the assignments. The instructor and TAs are happy to help with Matlab issues during office hours and via Piazza.
If you are unsure if your background is a good match for this course, please come talk to the instructor.
The course textbook is:
It is freely available online or may be purchased in hardcopy. Course lecture slides will be posted below and are also a useful reference.
You may also find the following books useful.
|January 23th||Introduction||A0 out, due Tues Jan 29th|
|January 28th||Linear filters||Reading: Sec 3.1.1-2, 3.2|
|January 30th||Gradients, edges||Reading: Sec 3.2.3, 4.2 Seam Carving||A1 out, due Friday Feb 15th 11.59 pm|
|February 4th||Binary image analysis||Reading: Sec 3.3.2-4|
|February 6th||Texture||Reading: Sec 10.5 Texture Synthesis|
|February 11th||Optical flow||Reading: Sec 8.4 (up until 8.4.1)|
|February 13th||Hough transform||Reading: Sec 4.3.2 Hough Transform(Wiki)|
|February 18th||RANSAC+Robust Fitting||Reading: Sec 6.4.1 Random Sample Consensus(Wiki) Iteratively Reweighted Least Squares(Wiki)||A2 out, due Friday Mar 8th|
|February 20th||Active Contours||Reading: Sec 5.1.1 Active Contour Models(Wiki)|
|February 25th||Segmentation I|
|February 27th||Segmentation II|
|March 4th||Local invariant features: detection||Reading: Sec 4.1 Harris Corner Detector(Wiki) Scale-Invariant Feature Transform|
|March 6th||Local invariant features: description and matching||Practice midterm handout before midnight on Canvas.|
|March 11th||Structure from Motion||Sec 11.1.1, 11.2-11.5|
|March 25th||Structure from Motion||Sec 11.2-11.5||A3 out, due Wednesday April 10th|
|March 27th||Stereo I||Sec 11.2-11.5|
|April 1st||Stereo II||Sec 11.2-11.5|
|April 3rd||Visual Recognition Overview||Section 14|
|April 8th||Machine Learning Basics||k-nearest neighbors algorithm Support-vector_machine|
|April 10th||Deep Learning Basics||A4 out (April 12th), due Friday April 26th|
|April 15th||Object Detection|
|April 17th||Semantic Segmentation|
|April 22th||Instance Segmentation|
|April 24th||Monocular Reconstruction||A5 out, due Wednesday May 6th|
|April 29th||3D Representations|
|May 1st||3D Understanding|
|May 6th||Course wrap-up and applications|
|May 8th||Final Exam|
Assignments: Assignments will be given approximately every two weeks. The programming problems will provide hands-on experience working with techniques covered in or related to the lectures. All code and written responses must be completed individually. Most assignments will take significant time to complete. Please start early, and use Piazza and/or see us during office hours for help if needed. Please follow instructions in each assignment carefully regarding what to submit and how to submit it.
Extension policy: If you turn in your assignment late, expect points to be deducted. Extensions will be considered on a case-by-case basis, but in most cases they will not be granted. The greater the advance notice of a need for an extension, the greater the likelihood of leniency. For programming assignments, by default, 10 points (out of 100) will be deducted for lateness for each day late. We will use the submission program timestamp to determine time of submission. One day late = from 1 minute to 24 hours past the deadline. Two days late = from 24 hours and 1 minute to 48 hours past the deadline. We will not accept assignments more than 4 days late, or once solutions have been discussed in class, whichever is sooner.
Exams: There is an in-class midterm and a comprehensive final exam. Both exams will be offered at the listed time only. The registrar will set our final exam date, which according to the published UT academic calendar could be as late as May 15 this year. Please account for this when making your summer plans. Neither exam will be offered at a different time to accommodate personal travel plans, internship start dates, interviews, etc.
Participation/attendance: Regular attendance is expected. If for whatever reason you are absent, it is your responsibility to find out what you missed that day. Note that attendance does factor into the final grade. (See Section II of the UTCS Code of Conduct regarding attendance expectations.)
General responsibilities: Beyond the above, your responsibilities in the class are:
Please note the following important dates and deadlines.
Assignments are due about every two weeks. The assignment deadlines below are tentative and are provided to help your planning. They are subject to minor shifts if the lecture plan needs to be adjusted slightly according to our pace in class.