Home

Awesome

3D Reconstruction with Computer Vision

CS 378 (53132), Fall 2014

Meetings: Tuesdays and Thursdays, 9:30-11am, WEL 2.256

Unique number: 53132

Instructor: Bryan Klingner

TA: Pengxiang Cheng

Course discussion on Piazza

Course aims and objectives

Projects like Photosynth, Kinect, and Tango have shown the incredible potential of using computer vision to construct immersive 3D environments from easily acquired imagery. In this lab-based class, we'll dive into practical applications of 3D reconstruction, combining hardware and software to build our own 3D environments from scratch.

We'll use open-source frameworks like OpenCV to do the heavy lifting, with the focus on understanding and applying state-of-the art approaches to geometric computer vision. Along the way, we'll use industry standard revision management tools like Git and Github. The class will culminate in a final project of your choice that puts your new 3D reconstruction skills to use.

Specific learning objectives

By the end of the class, you should be able to:

  1. Extract 3D information latent in 2D images and video.
  2. Apply state-of-the-art scientific libraries without needing a full grasp of their implementations.
  3. Use industry standard software engineering practices such as version control and peer code review.

Class format

The class will be heavily project-based. Projects will be completed in small groups. I'll assign early projects with specific goals and evaluations. Your group will design the final project, which will occupy roughly the last third of the semester.

We'll devote lots of in-class time to working on projects with the TA and I available to help. Each class may begin with a short presentation on a topic relevant to the current assignment. You should expect to spend time outside of class gaining additional background and practice with the topics covered by the projects.

Course Schedule

This schedule is a living thing and may change as needed to accomodate the class's progress.

#DateTopicDetailsReadingProjects
1Thursday 28 Aug<img width="400" src="https://raw.githubusercontent.com/ut-cs378-vision-2014fall/course-info/master/images/lena_pixels.png"/>Introductions and image basicsWe meet each other. I'll tell you what I hope cover, you'll tell me what you hope to learn.2.1, 2.3Project 0 out
2Tuesday 2 Sep<img width="400" src="https://raw.githubusercontent.com/ut-cs378-vision-2014fall/course-info/master/images/image_alignment.png"/>Image Alignment 1Image warping3.6.1
3Thursday 4 Sep<img width="400" src="https://raw.githubusercontent.com/ut-cs378-vision-2014fall/course-info/master/images/image_alignment.png"/>Image Alignment 2Fitting a model6.1.1, 6.1.4Project 0 due Project 1 out
4Tuesday 9 Sep<img width="400" src="https://raw.githubusercontent.com/ut-cs378-vision-2014fall/course-info/master/images/feature_match.png"/>Feature Matching 1What is an interest point? What is a feature?4.1.1-3
5Thursday 11 Sep<img width="400" src="https://raw.githubusercontent.com/ut-cs378-vision-2014fall/course-info/master/images/feature_match.png"/>Feature Matching 2Invariant features and feature matching4.1.1-3
6Tuesday 16 Sep<img width="400" src="https://raw.githubusercontent.com/ut-cs378-vision-2014fall/course-info/master/images/poisson_blend.png"/>Image BlendingHigh-level overview of blending3.5, 9.3, Burt & Adelson
7Thursday 18 Sep<img width="400" src="https://raw.githubusercontent.com/ut-cs378-vision-2014fall/course-info/master/images/stereo.png"/>Stereo 1Epipolar geometry11.1
8Tuesday 23 Sep<img width="400" src="https://raw.githubusercontent.com/ut-cs378-vision-2014fall/course-info/master/images/stereo.png"/>Stereo 2Epipolar review + Project 1 WorktimeProject 1 due
9Thursday 25 Sep<img width="400" src="https://raw.githubusercontent.com/ut-cs378-vision-2014fall/course-info/master/images/stereo.png"/>Stereo 3Computing disparity / Code ReviewProject 1 code reviews out
10Tuesday 30 Sep<img width="400" src="https://raw.githubusercontent.com/ut-cs378-vision-2014fall/course-info/master/images/sfm_thumb.png"/>Structure from Motion 1Project 1 recap, SfM intro, Project 2Project 2 out
11Thursday 2 Oct<img width="400" src="https://raw.githubusercontent.com/ut-cs378-vision-2014fall/course-info/master/images/sfm_thumb.png"/>Structure from Motion 2Street View SfMProject 1 code reviews due
12Tuesday 7 Oct<img width="400" src="https://raw.githubusercontent.com/ut-cs378-vision-2014fall/course-info/master/images/stereo_proj.png"/>Project 2 work week
13Thursday 9 Oct<img width="400" src="https://raw.githubusercontent.com/ut-cs378-vision-2014fall/course-info/master/images/stereo_proj.png"/>Project 2 work week
14Tuesday 14 Oct<img width="400" src="https://raw.githubusercontent.com/ut-cs378-vision-2014fall/course-info/master/images/video.png"/>Video 1MotionProject 2 due
15Thursday 16 Oct<img width="400" src="https://raw.githubusercontent.com/ut-cs378-vision-2014fall/course-info/master/images/video.png"/>Video 2Background Subtraction / Action RecognitionProject 2 code reviews due Friday 17 Oct
16Tuesday 21 Oct<img width="400" src="https://raw.githubusercontent.com/ut-cs378-vision-2014fall/course-info/master/images/video.png"/>Video 3TrackingProject 2 Revisions due. Project 3 out
17Thursday 21 OctApplications 1Street View indoor geometry reconstruction
18Tuesday 28 OctApplications 2Academic surveyFinal project groups and proposals due
19Thursday 30 Oct<img width="400" src="https://raw.githubusercontent.com/ut-cs378-vision-2014fall/course-info/master/images/lynx_labs.jpg"/>Geometric Computer Vision SystemsChris Slaughter, CEO, Lynx Labs
20Tuesday 4 NovFinal Project WorkOn-demand topics: NoneProject 3 due, Final project proposal evaluations back
21Thursday 6 NovFinal Project WorkOn-demand topics: VideoProject 3 code reviews due Friday 7 Nov.
22Tuesday 11 NovFinal Project WorkOn-demand topics: Structure from motionProject 3 final code revisions due.
23Thursday 13 NovFinal Project WorkOn-demand topics: Feature matchingFinal project progress report 1 due.
24Tuesday 18 NovFinal Project WorkOn-demand topics: Stereo
25Thursday 20 NovFinal Project WorkOn-demand topicsFinal project progress report 2 due
26Tuesday 25 NovFinal Project Presentations 1Group 13: Video overlays Group 1: Automatic climbing route detection Group 8: AR Globe
27Tuesday 2 DecFinal Project Presentations 2Group 2: Gesture control Group 11: AR Chess Group 6: Stereo 3D scanning Group 7: Kinect/Cardboard 3D modeling Group 9: 2D-to-3D camera poseFinal projects due
28Thursday 4 DecFinal Project Presentations 3Group 12: Motion tweening Group 3: Emotion detection Group 10: Hand tracking Group 4: Facial and gesture recognition Group 5: Hand gesture recognition

Topic overview

Image basics

Image features

Multiple views of a scene

Stereo and Structure From Motion

Real-time 3D tracking

Course requirements

Prerequisites

Attendance and Participation

Classtime will be largely devoted to working in small groups, when you'll have access to me and the TA. While attendance is not required, it's to your advantage to come to collaborate with your group and stay abreast of developments in the course schedule.

Course materials

You'll find the following resources useful:

Grading

Grades will be based on a series of projects completed in small groups. Projects will be due about every two weeks. I'll assign different groups of three students for each of projects 0-3, and you can choose your own group of 3-4 students for the final project 4, which will be on a topic of your choosing.

Each project will be graded in three phases:

  1. Initial code submission (80%)
  2. Peer code review (10%)
  3. Revised code submission (10%)

See the project pages for details on submission and grading phases.

Here is a list of the five projects for the class, along with estimated due dates. Actual dates may vary to accomodate class progress.

NameDescriptionWeightDue date (estimated)
Project 0Account setup and image basics10%4 Sept
Project 1Stitching a panorama20%23 Sept
Project 2Dense stereo reconstruction20%14 Oct
Project 3Real-time tracking20%4 Nov
Project 4Choose your own adventure!30%2 Dec

Late policy

Submit your project by 11:59 PM on the day that its due according to the project's instructions.

You're allowed three late days to use at your discretion across the semester with no penalty to your grade. If you submit your assignment any later than 11:59 on its due date, you will consume a late day. After all three late days are consumed, you'll receive no credit for late assignments. If you submit an assignment late, notify the TA by email.

Programming Guidelines.

Assignments in this course will be completed in Python 2.7.

Code style should follow the guidelines established in PEP 8 and PEP 257.

Note: the course logo image is copyright flickr user Dominic Alves, used under Creative Commons license.