Course Syllabus
Welcome!
Computer vision asks how we can enable computers to make sense of the complex world through data provided by cameras, lasers, and other visual sensors. In order to achieve the field of computer vision draws on a diverse set of tools from the mathematics of geometry, the geometry of light, and data-driven machine learning techniques among many other fields. With the growing ubiquity of cameras on mobile devices and large scale internet image databases, the tools of computer vision have become more relevant across computing than ever before.
What does this course offer you?
In this course you will learn to develop and analyze the algorithms and mathematics for computer vision problems and applications. You will learn to implement vision algorithms efficiently for use in research or industry.
Learning Objectives
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
- Describe the foundation of image formation and image analysis. Understand the basics of 2D and 3D Computer Vision.
- Become familiar with the major technical approaches involved in computer vision. Describe various methods used for registration, alignment, and matching in images.
- Get an exposure to advanced concepts, including state of the art deep learning architectures, in all aspects of computer vision.
- Build computer vision applications with python and the pytorch framework.
Prerequisites
No prior experience with computer vision is assumed, although previous knowledge of visual computing, image processing, or signal processing will be helpful. The following skills are necessary for this class:
- Data structures: You’ll be writing code that builds representations of images, features, and geometric constructions.
- Programming: Projects are to be completed and graded in Python. All project starter code will be in Python. TA’s will support questions about Python. If you’ve never used Python that is OK, as long as you have programming experience.
- Math: Linear algebra, vector calculus, and probability. Linear algebra is the most important and students who have not taken a linear algebra course have struggled in the past.
How are you, exactly, going to achieve this?
We will have readings associated with most lectures. You should read this material and come prepared to class. We will have selected readings from Rick Szeliski's Computer Vision: Algorithms and Applications book available free online here: http://szeliski.org/Book/ and from the book Deep Learning available online here: http://www.deeplearningbook.org/ by Goodfellow, Bengio, and Courville.
Other readings will come from research papers or notes provided by the instructor.
Programming projects will provide you with an opportunity to implement algorithms studied in the course. You will implement these assignments independently to help improve your own skills in programming vision algorithms. You make work with other students at the level of "whiteboard discussion" to help understand the assignments, but all work turned in must be your own. Please list any individuals you worked with on assignments and correctly cite any other resources used.
We will have around 10 in-class quizzes, approximately one every week to help enhance and assess retention and understanding of the material. These are very short and straightforward quizzes to help prepare you by reviewing material we'll build on in class that should not take more than 10 or 15 minutes to complete.
How will you (and the teaching staff) know if you are making progress in your learning?
The best way to understand your progress is to actively engage in class and work to answer questions yourself. Each class you will be provided time to engage with the professor and your classmates to solve problems. If something isn't clear then ask about it! If you are confused then many others in the class likely are as well.
We will provide feedback on programming assignments quickly to aid in understanding. Office hours by the professor and TA also serve as a great time to go and get individual feedback on your progress if you are uncertain.
Course Time and Location
We will meet Monday and Wednesday (unless stated otherwise on the calendar) from 11:50AM to 1:10PM Mountain Time.
Location: LNCO 1110
Teaching Staff, Helps Hours, & Contact
Students can meet with the teaching staff during the office hours listed below or by appointment.
Instructor: Tucker Hermans; Help Hours: Mondays 1:30-2:30PM, MEB 2164
TA: Mingzhen Shao Office Hours: Tuesdays 3-5PM, location WEB 3760
Before sending a message to the teaching staff, please first look on the website for the information. If it is not found there or not clear, then think about asking a question on piazza. This will enable other students to get the same information and decrease the workload of both students and the teaching staff.
Also, please ask relevant questions in class!
If you think your question is better handled privately with the teaching staff, then please contact us using the piazza messaging system. Direct emails not through piazza will generally not be read or responded too. Additionally, you should by default include the instructor and TAs on the message to keep everyone on the same page and increase the timeliness of responses.
Grading
Grades will be assigned based on the scores received on programming projects comprising 90% and quizzes and possibly other short assignments making up the remaining 10%.
Final grades will be determined based on overall performance of students in the class. A minimum of 93% will guarantee an A, but this threshold may be moved to a lower value depending on overall performance on assignments.
Late Policy
Please let the teaching staff know as early as possible if you need an extension on any assignments to accommodate issues.
If you don't have extenuating circumstances you have a total of 3 extra days you can elect to use as you see fit to turn in assignments late (for example you could turn in assignments 1, 2, and 3 late by 1 day each or turn in assignment 3, 3 days late, etc). You need to notify in a comment on your submission if you are using one of your late days.
Any other late submissions will be discounted by 10% for being a day late up to a total of 30% off (i.e. at 3 days late). You have 3 days after the deadline to submit before the submissions close for good and you will receive a 0.
Regrade Requests
Any regrade requests must be submitted via gradescope within 1 week of the assignment being submitted. We will not address regrade requests made at the end of the semester for assignments that did not have the grade released within the last week.
Further Course Administrative Information
- Student Disability Accommodations: https://oeo.utah.edu/services/disability-access-accommodation.php
-
School of Computing Cheating Policy: http://www.cs.utah.edu/wp-content/uploads/2014/12/cheating_policy.pdf (Links to an external site.)
-
School of Computing Misconduct Acknowledgment Form: http://www.cs.utah.edu/wp-content/uploads/2014/12/SoC_ack_form.pdf
Course Summary:
Date | Details | Due |
---|---|---|