Personal tools
You are here: Home People Alumni Gyuri Dorko Advanced Programming Techniques in Computer Vision
 

Advanced Programming Techniques in Computer Vision (APTCV or APTiCV)

(Summer term 2007)

Course Description

This course covers many aspects of state-of-the-art programming techniques in practice, and their application to computer vision related problems. During the lectures we discuss several programming paradigms, address major technical problems, and typical mistakes. While many of the introduced techniques exist in several programming languages, here we focus only on C++. Our aim is that by the end of the course all participants have a very solid C++ knowledge including many advanced topics such as memory management, inlining, operators, namespaces, generic programming, etc. Moreover, since all exercises are from computer vision this course provides an excellent practical experience for students interested in this domain.
Click here for an incomplete list of topics.

Requirements

C++
This course introduces language elements that are considered to be advanced, and therefore we require students to know at least the basics of C++. If you are unsure about your knowledge click here for details.
Computer Vision
All assignments require some computer vision background. Even though we provide additional material when it is necessary for implementation details, we expect  that all participants have attended the Computer Vision course. Due to our time schedule, it is also possible to attend Computer Vision at the same time (SS 2007) as this course.

Structure & Grading

  • 3 SWS (about half lectures / half exercises)
  • Lectures are grouped together in 2-3-hour blocks. In the beginning of the semester there are on every week, while in the second part of the semester there are less frequent.
  • Assignments are given on a regular basis, but more effort is necessary during the second part of the semester.
  • Students are allowed to work on the assignments in pairs.
  • We have a 20 limit on the maximum number of students.
  • Final grades are based on a closing oral exam, and on the submitted assignments.
  • The course is given in English.

Exam location & requirements

  • Exam dates: July 23 & July 24, 2007 (time: 9:00 - 17:00)
  • Register for the exam: Send an email to dorko at mis.tu-darmstadt.de with a subject "aptcv exam registration". Let us know if you have a preference for the first or the second day. We will let you know your exact time by email.
  • You can download a series of questions that might help you to prepare for the exam. (Note: these questions are just for guidance; the main script for the exam is the slides and the references that can be found on the slides.)


Course specific newsgroup & forum

To receive course related announcements, please register for the newsgroup aptcv@mis.informatik.tu-darmstadt.de. For registration click on the link.

You can discuss the course content & assignment on the Fachschaftsforum of APTCV.

When & Where

Location: S2|02 C120
Dates: Thursdays 13:30 - 16:05. 

Lecture & Exercise Plan


DateLectureExercise
Apr 19Introduction
Compile & Link
Function Signatures
C++ Name Mangling
POD & non-POD types, variable initialization
Download Lecture #1 Handouts (pdf) (Last modified: 23.04.2007)
Exercise Sheet #1
Image Representation
Download Exercise Sheet 1 (pdf)
(no need to hand in)
For hints see the last few slides from the Lecture.
Apr 26Callbacks
Pointers
Const correctness
Namespaces
Download Lecture #2 Handouts (pdf) (Last modified: 27.04.2007)
Download Quiz 1 (pdf) (Discussion: May 3)
Download Quiz 2 (pdf) (Discussion: May 3)
Exercise Sheet #2
Linear Filtering & Gaussian Averaging
Convolution (part 1)
Measuring the time.
Download Exercise Sheet 2 (pdf)
(no need to hand in)
It is not necessary to hand in this exercise, however you can. Further assignments will make use of the developed code and will assume that you have this sheet solved.
May 3Memory Management
Construction & Destruction
Debugging & profiling
Download Lecture #3 Handouts (pdf) (Last modified: 02.05.2007)
Download Quiz 3 (pdf) (Discussion: May 10)
Download Quiz 4 (pdf) (Discussion: May 10)
Exercise Sheet #3
Working on multi-scale
Convolution (part 2)
Download Exercise Sheet 3 (pdf)
Assignment due May 10, 11am
May 10Important: The lecture is in S1|03 - 23
Download Lecture #4 Handouts (pdf) (Last modified 09.05.2007)
Temporaries
Inlining
Standard Template Library, part 1
Download Quiz 5 (pdf) (Discussion: May 24)
Exercise Sheet #4
Histograms
Download Exercise Sheet 4 (pdf)
Download Supplementary file #1 for Exercise 4 (genhists.tar.gz)
Download Supplementary file #2 for Exercise 4 (imclassify.tar.gz)

Assignment due May 21, 11pm 
May 17No lectureNo exercise
May 24Download Lecture #5 Handouts (pdf) (Last modified 23.05.2007)

Standard Template Library, part 2
Implementation of Local Image Descriptors


Exercise Sheet #5 - counts for final grade!
Local Features
Panoramas
Exercise is marked by:
- correctness
- speed
- programming style
- small presentation
Download Exercise Sheet 5 (pdf)
Links to related reading:
- Harris-Laplace detector. Relevant section: Section 2, pp. 4-6.
- SIFT descriptor. Relevant section: Section 6, most importantly Section 6.1 pp. 14-16.
- Example implementation of Image and Timer classes
Assignment due June 20, 11pm (There will be NO extensions!)
May 31No lecture
No exercise
June 7No lectureNo exercise
June 14Download Lecture #6 Handouts (pdf) (Last modified 15.06.2007)
Static objects & their initialization
Singletons
STL & efficiency
Software Efficiency

No exercise
June 21During the lecture there will be an announcement and discussion of the next exercise sheet.

Download exercise 6 (i.e. Lecture 7) presentation (pdf)
Exercise Sheet #6 - counts for final grade!
Grouping by appearance
Download Exercise Sheet 5 (pdf)
Exercise is marked by:
- correctness
- programming style
Assignment due July 11, 11pm
June 28Templates: instantiation & specialization
Download Lecture #8 & 9 & 10 Handouts (pdf) (Last modified 12.07.2007)
Discussion of Exercise Sheet #5 submissions
(short student presentations of exercise sheet 5)
July 5Templates:
  • Name resolution & lookup
  • Function objects revisited, Binders, Adaptors, boost::lambda
  • Trait classes
Download Lecture #8 & 9  & 10 Handouts (pdf) Last Modified (12.07.2007)
Download Quiz 6 (pdf) (July 12)
No exercise
July 12Templates:
  • Concept checking & Concept covering
  • Policy-based design
  • Typelists
  • Curiously recurring template pattern
  • Barton-Nackman trick

Download Lecture #8 & 9  & 10 Handouts (pdf) Last Modified (12.07.2007)
No exercise
July 19Available Image Libraries
Image Processing and Generic Programming: An introduction to GIL.
Future of C++

Download Lecture #11 Handouts (pdf) Last Modified (19.07.2007)
No exercise


Suggested reading & on-line resources


Assignments

Please find the links to the assignment sheets above in the Lecture & Exercise Plan.
There will be 6 assignment sheets altogether. The last 4 have to be submitted, and the last 2 will count for the final grade. You are allowed to work in pairs on the exercises.

Submission

To submit your solution please send an email to aptcv-exercises@mis.tu-darmstadt.de
The email should contain:
  • Your name(s). If you solved the exercise together with someone, submit the results once, and do not forget to write both names (and email addresses) in the email body or include them in From/CC.
  • Your group number
  • The exercise sheet number.
  • One archive (.tar.gz or .tar.bz2 or .zip) file with the compilable source code with a suitable Makefile. Double-check that you really attached the file!

Correction for your solution

When your submission is corrected you will receive a notification email with a link where you can on line access our corrections, suggestions, and your earned points. Each group will also receive a username and a password to access their solutions. Please do not give your password out to others.

Contact

Lectures are given by Gyuri Dorko (should you have any questions about the course, feel free to ask him)
The exercises are supervised by Michael Stark and Gyuri Dorko.
Office hours:
    Gyuri Dorko: Tuesdays, 13:30 - 15:30, S202 / B107  (or ask an appointment by email).
    Michael Stark: Wednesdays, 16:00-17:00, S202 / B104 (or ask an appointment by email).
by Gyuri Dorko last modified 2007-07-20 14:47