Parallel Clustering Library

February 10, 2013

The Parallel Clustering library comprises a C++ k-means clustering implementation. Its main goals are the provision of a simple yet effective C++ interface, parallelization by means of multicore CPUs and GPUs, and simplified extensibility. Currently, only a standard single threaded k-means technique is implemented by now, though the software architecture is laid out to allow for straightforward parallelization. A Visual Studio Express 2008 project comprising the implementation source code can be found here.

Singular Value Decomposition Library

January 20, 2013

The Singular Value Decomposition (SVD) library is a subset of the CLAPACK library only containing the sources for determining the SVD of an arbitrary matrix with elements of type double. Currently, the library is based on CLAPACK 3.1.1 which implements two SVD approaches: dgesvd and dgesdd. As an option, the SVD package also provides an interface to the Eigen linear algebra library. Debug and release static libraries can be obtained here as well as a project file for Visual C++ 2008. A future release will be based on CLAPACK version 3.2.1 which gives access to dgesvj, a Jacobi-based SVD determination technique.

Stitching Your World Together

January 20, 2013

This project is a tribute for the Polaroid camera. Given a background and a foreground image, the latter image is cut into pieces and sticked onto the background image to create the impression that the foreground image was generated by various individual picture recordings. As one photo is worth a thousand words you better have a look on this and this picture.

Real-time Non-photorealistic Image Processing

January 20, 2013

I always had a passion for non-photorealistic rendering approaches. Hence, I decided to generate a non-photorealistic representation of myself. As for the ingredient, only a low-cost webcam and some standard machine learning and computer vision techniques are required. That is, pixel clustering in RGB space for the reduction of the employed color count as well as an edge detection approach for extracting the body and object contours. For a brief preview, you can have a look at this or this picture.

Real-time Number Detection and Classification

January 20, 2013

Some time ago, my colleagues and I took part in the SICK robot day competition. As a subtask, the aim was to detect and classify numbers printed on a poster. The approach implemented in this project uses a fast and adaptive binary thresholding technique, a (not so fast =) connected component labeling approach, and an optimized classification method based on a nearest neighbor scheme. For more information, I'd like to refer to the resulting paper Robust real-time number sign detection on a mobile outdoor robot. Therein, the mentioned technique is referred to as "The Accelerated k-Nearest Neighbor (kNN) Approach".

Pressure-based Detection of Engine States

January 20, 2013

Recently, the Beru AG (today: BorgWarner Beru Systems GmbH) introduced the Pressure Sensor Glow Plug which enables the acquisition of in-cylinder pressure curves. The aim of my cooperation project with BorgWarner BERU Systems was to verify whether these pressure curves can be used to predict the states of actuators within a turbocharged Diesel engine. Thereby, further sensors can be omitted which fulfil this task otherwise. In total, the state of four engine valves were estimated: the exhaust throttle EGR valve module, the high pressure EGR valve, the throttle valve, and the variable turbine geometry valve of a VTG system. As for the machine learning models, neural networks and support vector machines have been employed to predict actuator settings using the actual in-cylinder pressure curve only (further details can be obtained from the papers Towards real-time and memory efficient predictions of valve states in diesel engines and Control strategy optimization for hybrid EGR engines. Further studies focus on the prediction of other engine states such as the intake pressure, intake temperature, and the turbo charger speed.