Techn. Fakultät Willkommen am Institut für Informatik FAU-Logo


One of our test images for blurring and image noise.
One of our test images for sharpening.

Welcome to the Exercises for Introduction to Pattern Recognition!

The exercises start in the second week of the winter term. Most of the time, Opens internal link in current windowSimone Gaffling will hold the exercises. The topics are relatively closely related to the lecture. We will have theoretical exercises, where we aim to deepen our understanding of elements within the pattern recognition pipeline. Additionally, we have practical tasks, in order to observe the behavior of the methods on real-world data.


Please choose one of the two exercise sessions, either on Wednesday, 14:15-15:45h in room 02.134 (Martensstr. 3, "blue building") or on Friday, 10:15-11:45h in room 00.151 (exercise room, blue building). Both sessions cover the same content. A single session will typically take about 45-60 minutes.


The lecture video is available Opens external link in new windowhere (only accessible if you are inside the university network; if you want to watch the videos from home, consider to tunnel the connection).


Some remarks about programming

We will shortly go over the (Matlab) code for the practical exercises in the sessions. The solutions will be provided (password-protected) after another week. The password will be announced in the next sessions (week Oct.28 - Oct. 31), or by request (write me an Opens window for sending emailemail).


In general, we advise you to use Matlab (available in CIP-Pool, all toolboxes available, support can be offered, nice tutorials online, Initiates file downloadLME-Matlab-demo), but there are also other (OpenSource) possibilities:


- Opens external link in new windowWeka toolbox: Only for feature vectors, cannot handle images. Java-based. To extract features you might in some cases use:

- Opens external link in new windowFiji: General useful image processing tool with a lot of functionality (provided by research institutions based on plugins)

- Opens external link in new windowInsightToolkit (ITK): C++ based, more Image Processing and less pattern recognition.

- Opens external link in new windowOpenCV (CV = Computer Vision): C++-based. More pattern recognition/computer vision than image processing (basics are available, though). Nice examples, like tracking, included.


If using ITK and/or OpenCV, you can use the free express-editions of Visual Studio (google for download links).

In case of questions, contact me.

Work Sheets





Why is it important? Some thoughts.

  1. Even though one might think the numbers are independent, they are not. -> Statistics is not intuitive, so be careful when you have to use it!
  2. The numbers look good, but the chances are only ~33% that you really have the disease! But, actually, this is a desired result, because it is much worse to be 'missed' as sick person, than to get a false positive result.
  3. Classic. A must-see of statistics and should be part of any general education.
  4. What the lecture is all about. If you can't describe it, you don't know anything about it.
  5. Pattern Recognition is necessary, because we can't do template matching if we look for something, as template matching requires an exact match. The problem space, however, is so large that it isn't possible to save all the templates!
    Good example: A database that should recognize faces (e.g., from criminals). Saving images from all the criminals would be quite a lot of images, so instead the following is done:
    Use a sub-set of these faces to generate the eigenfaces, that is, one "mean face" (in the sense of average, not nasty), plus the eigenfaces, which are added to the mean face with certain weights to generate the original face. (Like any matrix can be described as weighted linear combination of its eigenvectors, which span the space). Therefore, each individual face has a certain set of weights that are needed to generate that face from the eigenfaces.
    Now, instead of saving the image, you just need to save the weights. Like that, the face database might even fit on a USB stick.
  6. General calculation whether a better sensor with higher quantization helps with the task at hand.
  7. To get more insight into the relationship between the probabilities of certain signal values and the quantization curve (which decides which values get mapped to which quantized value).
  8. (P) Get familiar with Matlab, get to know the popular and frequently used k-means clustering algorithm.
  9. To be aware of the bias of the ML-Estimate of the variance. Often the MLE is used as initialization for more complex and powerful algorithms, that are however dependent on a good initialization (otherwise they might get stuck in local minima).
  10. Typical problem: We need to find the optimal parameters for a classification. So, we have to set up the objective function (here: the error function) which has to be optimized (here: error small). To optimize, set derivative to zero.
  11. If you consider a career in academics, you will have to publish your methods. The laplace operator might be a part of it in preprocessing, and although it should be common knowlege, a reviewer of your article requests that you prove that your results do not change if the input is rotated.
  12. (P) We can generate nice images!
  13. Get familiar with convolution kernels and appropriate functionality in Matlab.
  14. When you work with real data and do stuff with it, there is mostly some interpolation involved. Once doesn't hurt.
    But if there is more stuff done and more interpolation involved, you will seriously corrupt your data if you are not aware of the smoothing effect of repeated interpolation!