Introduction to Computer Vision

CS152-02 DS-153 | Spring 2024

This course is an introduction to low and intermediate level of classic and modern Computer Vision. We will learn how to design algorithms that process visual scenes to automatically extract information. The course will cover fundamental principles and important applications of computer vision, including image formation, processing, detection and matching features, image segmentation, and multiple views. We will also cover the basics of machine learning and deep learning for computer vision. The course will include a mix of lectures, paper readings, and hands-on Python programming assignments.

Cover photo hallucinted by ChatGPT

Course Information

Hours: Monday & Wednesday, 4:30PM – 5:45PM

Location: Joyce Cummings Center, room 160

Instructor: Dr. Roy Shilkrot roy.shilkrot@tufts.edu | roy@cs.tufts.edu | LinkedIn | GitHub | Twitter/X | YouTube

Office hours: Schedule online with Prof. Roy: https://calendly.com/royshilkrot/15min

Prerequisites: Algorithms and data structures, linear algebra (I or II), statistics and probability theory (I), calculus (I), working knowledge of Python

Teaching assistant:

TA Office hours: TBD

Piazza: https://piazza.com/tufts/spring2024/sp24cs015202ds0153/home

Canvas: https://canvas.tufts.edu/courses/54844

Course Goals

By the end of the semester, students should be able to:

Textbooks

We will follow chapters from the books below:

As well as reference videos from Prof. Shree Nayar's lecture series First Principles of Computer Vision (https://www.youtube.com/@firstprinciplesofcomputerv3258)

Syllabus

Class Content Links Assignment
1 Introduction: Class, Computer Vision, Math slides video
2 Image Formation: Human Vision, Optics, Physics, Cameras slides video
3 Image Formation cont.: Perspective projection, Pinhole camera model, Digital Imaging, Colorspaces slides video HW1: Hello Vision World
4 Image Processing: Sampling, Filters, Edges: Convolutions, Separability, Local operators, Frequency domain and Fourier Transform, Histograms, non-linear (median, bilateral), Pyramids slides video
5 Features: Interests points, Corners, Harris, Blobs, FAST, Multiscale slides video HW2: Pyramid blending, Corners & Blobs, Key points
6 Features: Descriptors, Gradient Histograms, Edges & Contours, Binary Images slides video
7 Geometric / Planar Transforms Parameterization, Feature Matching, Least Squares optimization slides HW3: Feature Extraction & Matching, Binary Images
8 Image Alignment, RANSAC, Stitching, Panoramas, Cylindrical coordinates, Global optimization / Bundle Adjustment, Blending slides video
9 Tracking: Meanshift, Motion estimation parameterizations slides video HW4: Panorama Stitching
10 Tracking: Correlation Filters, Optical flow, Lucas-Kanade, Shi-Tomasi slides video
11 Multiview 1: Intro, Camera Calibration, Calibration and Projection Matrices slides video
12 Multiview 2: Parallel Motion Stereo, Depth and Disparity, Epipolar Geometry, Essential and Fundamental Matrices slides video
13 Multiview 3: Triangulation, Camera Pose Estimation, Augmented Reality slides video HW5: Tracking
14 Mid-term (in class)
15 Bundle Adjustment, Intro to Visual Machine Learning slides video
16 Linear Models, Linear Regression and Classification, Logistic Regression slides video HW6: MVG, Bundle Adjustment
17 Linear SVMs, Neural Networks, Gradient descent, Backpropagation and Learning Practices slides video
18 Convolutional Neural Networks, Deep Learning slides video HW7: Hello CNNs, Classification
19 Object detection 1: V-J, Intro to CNN object detection slides video
20 Object detection 2: Region Proposals Nets, R-CNN, SPP, Fast-RCNN, YOLO, SSD slides
21 Segmentation slides HW8: Object Detection
22-24 TBD (Vision & Language / Pose Estimation / Depth Estimation) HW9: TBD
25 Final class. What have we missed? Further reading, final exam prep
Final exam (timing TBD)

Problem Sets, Tests

Problem sets: Eight (8) (or Nine (9)) problem sets will be given during the class. Any material regarding the set solution will be submitted electronically. Homework will be due up to one or two weeks from the assigned date at midnight. Late assignments are penalized at 20% for each 24 hours’ delay. No homework will be accepted one week after the deadline. If a serious illness or another major life event prevents you from completing a homework assignment on time, you should report the event to your instruction team, after which alternate arrangements can be made. Reporting must be done before the assignment in question is due.

Tests: There will be two (2) tests over the course of the semester. The tests will be a combination of multiple choices and open-ended answers. If, for any serious illness or major life event you must miss a test, you must inform me before the day of the exam so we can work out an arrangement. Please Note: If you wish to dispute a grade, it is mandatory that you do so within one week of receiving the grade. After such a term, the grade will be considered final. Note: Grading is generous, re-grading is strict.

Final grades: You must show proficiency in all grading areas to pass the class. A failing average (below 50%) in any of the grading areas (problem sets, tests, attendance) will result in a failing grade in the class. Your final grade will be determined using the following percentage breakdown:

Grading Area Percentage
Problem Sets 50%
Tests 40% (mid 13%, final 27%)
Attendance, Behavior, Attitude, Decorum 10%

Communications

Piazza will be our primary means of communication. All course announcements will also be made through Piazza. Rather than emailing questions to the teaching staff, we encourage you to post your questions as a public discussion. You are also encouraged to help each other, as long as the question does not contain any code or portion of a problem set answer. In such a case, the question must be made private (please, refer to the section Academic Honesty below). To schedule office hours outside the posted times, please email any of the teaching staff or post a private message on Piazza.

Academic Honesty

Science is, to its core, a collaborative effort. The advantages of coming together for examination or comparison, sometimes even just to explain the problem, are well known. I strongly encourage students to discuss course material, problems, and applications outside the classroom with the teaching staff and other students. You are also encouraged to form study groups for the tests.

Having said that, integrity and honesty are equally important qualities of any future academic, scientist or engineer. We take plagiarism very seriously. You must do homework, the problem sets and the final projects on your own. If you need help, the teaching staff will be more than happy to help you!

Using AI. We encourage and expect you to use AI tools such as GitHub Copilot and ChatGPT to aid you in this class, as would be expected of you by your future employers or colleagues. However, understand the risks of using these tools without a solid understanding of their inner workings. Research hallucinations and AI plagiarism before using any products of AI tools as submissions in this class. OpenAI has helpful information on the topic, as well as the faculty in Wharton.

Academic Integrity Policy

Tufts holds its students strictly accountable for adherence to academic integrity. The consequences for violations can be severe. It is critical that you understand the requirements of ethical behavior and academic work as described in Tufts’ Academic Integrity handbook. If you ever have a question about the expectations concerning a particular assignment or project in this course, be sure to ask me for clarification. The Faculty of the School of Arts and Sciences and the School of Engineering are required to report suspected cases of academic integrity violations to the Dean of Student Affairs Office. If I suspect that you have cheated or plagiarized in this class, I must report the situation to the dean.