Tudor-Alexandru Dobrila

Microsoft Certified Technology Specialist

Zend Certified Engineer

» Who I am

  • BSc. in Computing from the University of "Al. Ioan Cuza" in Iasi, Romania
  • Currently doing an MSc. in Computing (Software Engineering) at Imperial College London, UK
  • Many interests in the field of Computer Science
  • Hobbies include listening to trance music, playing basketball and DJing
  • Feel free to contact me at

» Interesting stuff on this website

  • Demonstration of my implementation of the Viola-Jones algorithm for face detection
  • Some notes and a short demo about my implementation of an image retrieval application
  • A short tutorial about how to implement a chatbot capable of learning new concepts by parsing public ontologies
  • Feel free to have a look at a paper where I am a coauthor, Methods for classifying videos by subject and detecting narrative peak points

» Tune of the moment

» About the Frontal Face Detection Implementation

This is a demo of the "Robust Real-Time Face Detection" algorithm proposed by Paul Viola and Michael Jones. The implementation was done in C# and the detection rate achieved is about 80% on images containing frontal faces.

Multi-threading programming was used in the training phase, reducing down the total time of to about 25% (by making use of all four cores on an Intel I5-750, 2.66Ghz processor) compared to the case when only one core was used.

Variance normalisation was also applied both during the training and the testing, as recommended in the original paper.

For a better implementation of this algorithm, please consult the OpenCV library.

» Insert image path

e.g. http://www.anzani.ch/files/portrait_1.jpg

» Original Image

» Image with Faces Detected

» About the Image Retrieval Application

This project was completed in collaboration with Ariel Chelsau. Four versions are available for download, each containing a different image database: [Version 1] [Version 2] [Version 3] [Version 4]. Java Runtime Environment 6 is needed to run the application.

Image Retrieval Application Screenshot
Fig. 1. Screenshot of the application

The Image Retrieval Application is a Java implementation of a part of the document Real-Time Computerized Annotation of Pictures proposed by Jia Li and James Z. Wang from The Pennsylvania State University, USA. It is an image retrieval by content software, meaning that it uses complex algorithms to return the best images from a database that match whatever the user searched for. Copyright of the demo images belongs to Jia Li (http://www.stat.psu.edu/~jiali/index.download.html).

We've developed this project to show that image retrieval by content is possible, that it provides fairly good results and that it can be applied to numerous fields (for instance, a WordPress plug-in could be developed to support image tags, allowing visitors to search not only by text, but by image too).

» Techniques Used

  • We compute the signature of an image, which is composed from two discrete distributions Discrete distribution, where v(j) is the mean vector and p(j) is the probability associated with the feature.
  • The first discrete distribution is the color segmentation of the image, which is done in the LUV color space, because it provides better results than RGB. So the first step is to convert all the pixels from RGB to LUV (with the XYZ color space as an intermediary). After that, the color histogram of the image is computed and fuzzy k-means clustering is applied to it, resulting a variable number of clusters.
  • The second discrete distribution is the texture segmentation of the image, which is done by applying a Daubechies-4 wavelet transformation to the L component (intensity) of each LUV color vector. After the image is decomposed in four frequency bands (LL, LH, HL, HH), we group the LH, HL and HH band wavelet coefficients corresponding to the same spacial position into 3D vectors. We again compute the histogram and apply the fuzzy k-means clustering algorithm, thus resulting the second color distribution.
  • To find the similarity between two images, we compute the Mallows distance between the corresponding color and texture distributions. The Mallows distance is formally defined as Mallows distance, where || . || in our case is the Eucledian distance between two 3D vectors, X and Y are two discrete distributions and Joint distribution is the the set of joint distributions over X and Y. The Mallows distance is computed by solving the Monge-Kantorovich transportation problem.
  • After computing the Mallows distance for both the color and texture segmentations, we will define the distance between the signatures of two images by the formula Distance between signatures.
  • At the moment, when the user enters a photo and searches the database, it first computes the signature of the photo and them calculates the distance between the seached photo and each image in the database. If this distance is below a threshold, it is marked as a valid result.
  • At the moment, the database is stored as a XML file and the signatures are serialized.

» Improvement Ideas

  • Implement D2-Clustering for the photos in the database.
  • Add the shape segmentation of an image to the signature to improve search results.
  • Implement the project in other programming languages (C#, PHP, etc.)
  • Improve the efficiency of the fuzzy k-means clustering algorithm (the signature of some photos may take up to 1 minute to be computed at the moment).
  • Apply the project in real world situations (perhaps as a WordPress plug-in).

» My own mix

Trance Is Life from AirTudor at Letsmix.com