simon-hofmann.org

Welcome to my mind.
Watch your step, it's a bit messy around here!

Patterns and Pipelines

• frameworks,ml,pr

tl;dr Here’s my pattern recognition pipeline code on github

Back in the days of my first semester (this sounds like it was 20 years ago…) at the FAU Erlangen I did a project for my computer vision lecture at the Pattern Recognition Lab. During my time at the lab I got to know many talented and nice people whom I learned a lot from, so I continued to work there and later on also did my master’s project with them. (And right now my master’s thesis :))

I wrote a lot of code implementing new filters, features, clustering methods and a pattern recognition pipeline, which put all these elements into the right order to produce useful results. Fortunate enough, these results earned us a publication at the International Conference on Image Processing.

Anyways, the thing I noticed was, that I wrote a lot of boilerplate code to glue my pipeline together. There were already methods which I could reuse, but there were many things I implemented from scratch. Since I don’t think that I will be the last student who has to set up a pipeline like I did, just with a little different configuration, I came up with the idea of an modular framework which would allow one to get started more easily.

I started coding with the idea in mind to re-implement my (at that time WIP) pipeline used for text detection in historical document images. It was a spare-time project for me, so every now and then I wrote some code in the evenings.

Along the way I found more and more missing convinience features, and so right now the framework features different exceptions, a modular I/O system, file/console logging (not for parallel use right now) and an “application” subsystem.

This applicatin subsystem allows one to implement application code in separate CMake modules, making it possible to build the whole project with different applications enabled / disabled. Disabling / enabling of modules is also possible for different pipeline steps.

So, to sum things up, here’s an overview of what the framework is capable of at the moment:

You can find my code on github, feel free to use it.

If you have and questions, don’t hestiate to get in touch with me.

So long

Simon