Fachlicher Schwerpunkt dieses Freiberuflers

C++ C# Java Linux Embedded OpenCV Bildverarbeitung Algorithmik Kryptographie

verfügbar ab
01.01.2021
verfügbar zu
100 %
davon vor Ort
100 %
PLZ-Gebiet, Land

D0

D1

D2

D3

D4

D5

D6

D7

D8

D9

Österreich

Schweiz

Einsatzort unbestimmt

Remote-Einsatz
Remote jederzeit möglich
Kommentar

Weltweiter Einsatz möglich.

Position

Kommentar

Ich verfüge über umfangreiche Erfahrungen in der Softwareentwicklung mit C++, C#, Java und Matlab. Mein bisheriger Schwerpunkt liegt im Bereich Computer Vision und Bildverarbeitung. Ich habe mehrere Algorithmen für anspruchsvolle Bildverarbeitungs-Aufgabenstellungen konzeptioniert und implementiert. Darüber hinaus kann ich praktische Erfahrungen im Bereich Machine Learning und der Embedded Linux Entwicklung vorweisen. Ich verfüge über eine schnelle Auffassungsgabe und löse algorithmische Probleme empirisch auf kreative Art und Weise. Meine fundierten Kenntnisse ermöglichen es mir, mich schnell in neue Bereiche einzuarbeiten.

Projekte

10/2019 - Heute

1 Jahr 1 Monat

CUPS Druckerverwaltung embedded

Rolle
Embedded Software-Entwickler
Kunde
Minebea Intec GmbH
Einsatzort
Hamburg
Projektinhalte
  • Für ein Wäge-Terminal, mit einer Linux Yocto Distribution als Betriebssystem, wurde die CUPS Druckersystemsoftware in das User-Interface integriert.
  • Anpassung des Yocto-Rezeptes für CUPS und die verwendeten CUPS-Filter.
  • Implementierung/Wartung einer Software zur Erstellung von Etiketten (im XML-Format), welche auf dem Wäge-Terminal in ein druckbares PDF-Format konvertiert werden.
  • Implementierung eines embedded PDF-Renderers, welcher als Input ein proprietäres XML-Format hat und hieraus ein PDF-Dokument erstellt, welches mit Hilfe der CUPS-Druckersystemsoftware von beliebigen Druckern verarbeitet werden kann.
Kenntnisse

C++

Qt

Python

Produkte

Eclipse

Yocto

04/2019 - 10/2019

7 Monate

Überwachung eines 3D-Druckes

Rolle
Software-Entwickler
Kunde
Concept Laser GmbH
Einsatzort
Lichtenfels, Bayern
Projektinhalte

Implementierung einer QM-Software zur optischen Überwachung des Pulver-Bettes eines 3D-Metaldruckers mittels einer Kamera, um die einzelnen Prozessschritte zu dokumentieren. Zusätzlich wurden Bildverbesserungsmaßnahmen durchgeführt.

Kenntnisse

OpenCV

C++

Scrum

Jenkins

Produkte

Git

OPC UA

02/2018 - 02/2019

1 Jahr 1 Monat

ID-Card Reader

Rolle
Software-Entwickler
Kunde
Identt GmbH
Einsatzort
München
Projektinhalte

Implementierung eines Prototyps zur Auslesung einer ID-Karte mittels einer Kamera. Das aufgenommene Bild wird in einem ersten Schritt so aufbereitet, dass die Datenfelder mit einem üblichen OCR-Tool (Tesseract) ausgelesen werden können. Zusätzlich wird ein Tool implementiert, um den Algorithmus an unterschiedliche ID-Karten anzupassen.

Kenntnisse

OpenCV

Python

C++

C#

Produkte

Tesseract

06/2017 - 04/2018

11 Monate

Trouble-Shooter

Rolle
Software-Entwickler
Einsatzort
München
Projektinhalte

Für Teile eines komplexen verteilten Systems musste nachträglich eine Entwicklungsumgebung aufgesetzt werden, mit der der Code effizient debugged werden kann. Es haben sich Fehler eingeschlichen, die über loggen nur schwer identifiziert werden konnten. Die Applikation wurde in C#/Mono und PHP geschrieben und in einem Docker-Container gehosted.

  •  Entwicklung von Cloud-Services
  •  Datenbankentwicklung
  •  Entwicklung von automatisierten Tests
Kenntnisse

Docker

Git

Scrum

Python

SQL

C++

Eclipse

C#

10/2016 - 03/2017

6 Monate

Linux Embedded

Rolle
Software Architekt
Kunde
Securiton GmbH (Festanstellung)
Einsatzort
München
Projektinhalte

Aufgabe: Algorithmen zur automatisierten Überwachung werden auf Kameras verschiedener Hersteller (HikVision, Hanwha, Axis) portiert. Auf diesen Kameras läuft ein Linux Embedded mit unterschiedlicher Hardware-Architektur. Die Applikation zur Ausführung der Algorithmen soll auf den Kamera-Plattformen identisch sein. Entwickelt wurde nach SCRUM.

  • Konfigurieren von Eclipse für verschiedene Targets 
  • Erstellung von Shell-Skripten um Build-Prozesse zu automatisieren
  • Integration des TFS in die Linux Entwicklungsumgebung
  • Entwurf einer einheitlichen Architektur für verschiedene Kamerahersteller
  • Erstellung einer Plattformunabhängigen Library für die Targets (ARM, Intel, Linux, Windows)
  • Aufsetzen einer effizienten Desktop Entwicklungs- und Debugging-Umgebung
  • Streamen der Videos von der Kamera in die Desktop-Entwicklungsumgebung

Kenntnisse

Posix

TFS

Eclipse

C++

Video

Produkte

ARM

Embedded Linux

HTTP

10/2016 - 11/2016

2 Monate

CoreTester-GUI

Rolle
Software-Entwickler
Kunde
Securiton GmbH (Festanstellung)
Einsatzort
München
Projektinhalte

Entwicklung einer einfachen GUI für ein Test-Framework in C#.

  • GUI mit Windows Forms entwickelt
Kenntnisse

Microsoft Visual Studio

Produkte

Windows-Forms

01/2016 - 09/2016

9 Monate

Foto-Vergleich

Rolle
Software-Entwickler
Kunde
Mühlbauer AG (Festanstellung)
Einsatzort
München
Projektinhalte

Aufgabe: Es soll die Druckqualität von gelaserten Fotos überprüft werden. Besondere Anforderungen: Die Skalierung der Bilder schwankt, die Laser lasern die Bilder nicht in der gleichen Helligkeit.

  • Grauwert-Kalibrierung anhand eines bekannten Farbmustern durchführen
  • Foto durch Korrelator lokalisieren
  • Exakte Skalierung des gelaserten Fotos bestimmen
  • Foto entsprechend der errechneten Kalibrieren
  • Foto ggf. in einen anderen Farbraum transformieren (LBP, Canny, Sobel, HSV)
  • Referenz-Foto mit gelaserten Foto vergleichen
  • Gefundene Defekte klassifizieren
Kenntnisse

C++

OpenCV

08/2015 - 12/2015

5 Monate

OCR GUI

Rolle
Software-Entwickler
Kunde
privat
Projektinhalte

Entwickeln einer GUI in WPF um die OCR zu konfigurieren.

Kenntnisse

WPF

01/2015 - 12/2015

1 Jahr

Optical Character Recognition

Rolle
Software-Entwickler
Kunde
privat
Projektinhalte

Aufgabe: Entwicklung einer größen- und fontinvarianten OCR für normale Zeichen mit Hilfe einer Support Vector Machine. Der OCR-Algorithmus lässt sich in einen Einlern- und einen Erkennungsteil unterteilen.

Einlernen:

  • Es werden künstlich Zeichen mit unterschiedlichen Fonts erstellt
  • Die künstlichen Zeichen werden auf eine einheitliche Größe skaliert
  • Gradienten der Zeichen werden berechnet
  • Mit den errechneten Gradienten wird eine Support Vector Machine trainiert

Erkennung:

  • Es wird nach Blobs im Bild gesucht
  • Die gefundenen Blobs werden auf eine einheitliche Größe skaliert
  • Gradienten der Blobs werden berechnet
  • Die Gradienten der Blobs werden mit der Support Vector Machine als Buchstaben klassifiziert

Kenntnisse

OpenCV

Support Vector Machine

Machine Learning

05/2014 - 09/2014

5 Monate

GUI Design

Rolle
Software-Entwickler
Kunde
Mühlbauer AG
Einsatzort
München
Projektinhalte

GUI-Design mit Microsoft Foundation Classes (MFC)

Produkte

MFC

01/2013 - 06/2013

6 Monate

ISO 1831

Rolle
Software-Entwickler
Kunde
Mühlbauer AG (Festanstellung)
Einsatzort
München
Projektinhalte

Es soll sichergestellt werden, dass die Druckqualität der Machine Readable Zone (MRZ) in Reisepässen ISO 1831 entspricht. Die Vorlagen der Zeichen werden aus dem OCR-B TrueType Font generiert.

  • Überprüfung des Kontrastes des schwarzen Zeichenbereichs
  • Überprüfung der minimalen Strichbreite eines Zeichens
  • Überprüfung der maximalen Strichbreite eines Zeichens
  • Überprüfung des Kontrastes des Skeletts eines Buchstabens
  • Überprüfung auf Dreck im hellen Bereich eines Buchstabens
  • Überprüfung auf Flecken im schwarzen Bereich eines Buchtstabens
  • Überprüfung der korrekten Ausrichtung eines Buchstabens
  • Überprüfung der korrekten Größe eines Buchstabens

Kenntnisse

C++

OpenCV

Qt

01/2013 - 05/2013

5 Monate

Android Game

Rolle
Software-Entwickler
Kunde
privat
Einsatzort
München
Projektinhalte

Entwickelt wurde ein Retro-Spiel (Asteroids) für Android.

  • Einfache 2d-Darstellung der bewegten Objekte
  • Sound-Integration
  • Benutzer-Interaktion
Produkte

Android

Eclipse

01/2012 - 08/2012

8 Monate

Dotted OCR

Rolle
Software Entwickler
Kunde
Mühlbauer AG (Festanstellung)
Einsatzort
Oberhaching
Projektinhalte

Aufgabe: Ein vorhandener Algorithmus zur Erkennung einer Seriennummer bestehend aus perforierten (dotted) Zeichen, wie sie in Reispässen verwendet werden, erkennt oft falsche Zeichen. Es soll ein neuer Algorithmus konzeptioniert und implementiert werden. Der Algorithmus soll größen- und rotationsinvariant sein.

Der Algorithmus lässt sich in zwei Phasen aufteilen, der Einlernphase und der Erkennungsphase:

Einlernen:

  • Segmentierung der Dots mit einer adaptiven Schwelle
  • Normierung der Dots eines Buchstabens / Herausrechnen der Skalierung
  • Pro Zeichen existiert eine Menge an Koordinaten (normalerweise zwischen 5-10), welcher ein perforierten Buchstaben beschreibt

Erkennung:

  • Segmentierung der Dots mit einer adaptiven Schwelle
  • Clustern der Dots durch morphologische (dilate + erode) Operationen, um die Dots einzelner Buchstaben zusammenzufassen
  • Translation der Dots eines Buchstabens in den Koordinatenursprung
  • Normierung der Dots eines Buchstabens / Herausrechnen der Skalierung
  • Bestimmung einer Rotation, um den Buchstaben aus der Erkennungsphase auf den Buchstaben aus der Einlernphase zu matchen

Der neu entworfene Algorithmus ist skalierungs- und rotationsinvariant und hat keine Fehlerkennung. Des Weiteren kann er flexibel konfiguriert werden, mit Focus auf Performance oder Erkennungsgüte auch bei schlechter Bildqualität.

Kenntnisse

OpenCV

C++

01/2011 - 05/2011

5 Monate

ADTF

Rolle
Debugger
Kunde
Electrobit GmbH (Festanstellung)
Einsatzort
München
Projektinhalte

Aufgabe: Die Daten aus einer Kamera zur Verkehrszeichenerkennung werden mit den Daten aus einem Navigationssystem fusioniert. Im Display eines Fahrzeuges wird das erkannte/gültige Verkehrszeichen dargestellt. Wenn auf Testfahrten ein falsches Zeichen erkannt wird, wird das dazu aufgenommene Video zur Analyse an den Entwickler geschickt.

  • Szenen-Analyse mit ADTF
Kenntnisse

ADTF

C++

ADAS

01/2010 - 09/2010

9 Monate

Objekterkennung in Videos

Rolle
Software-Entwickler
Kunde
Masterarbeit
Einsatzort
Braunschweig
Projektinhalte

Implementierung modelbasierter Algorithmen zur Erkennung und Lagebestimmung von Objekten in Videos.

1. Algorithmus

  • Erstellung eines 3D-Modells
  • On the fly Berechnung von Key-Points auf dem 3D-Modell inklusive der 3D-Koordinaten
  • Zur Laufzeit wird nach Key-Points im Bild gesucht
  • In einer RANSAC Prozedur werden die Key-Points im aktuellen Bild auf die Key-Points des Modells gematched
  • Die Position relativ zur Position der Kamera wird berechnet

2. Algorithmus

  • Erstellung eines geometrischen Linien-Modells des zu erkennenden Objektes
  • Im Bild wird mit Hilfe der Hough-Transformation nach Linien gesucht
  • Es wird nach einer Transformation gesucht, die die Linien des Modells auf die Linien im Bild transformiert 
  • Es wird überprüft, ob die transformierten Linien zu den Linien im Bild passen
Kenntnisse

OpenCV

Mathematica

01/2009 - 12/2009

1 Jahr

Stereo-System

Rolle
Software-Entwickler
Kunde
Linearis3D GmbH
Einsatzort
Braunschweig
Projektinhalte

Entwicklung eines Videobasierten Stereo-Systems inklusive einer GUI in C#.

  • Erkennen von Markern in den Bildern zweier kalibrierter Kameras 
  • Zuordnen der Marker in den Bildern
  • Berechnung der 3D-Koordinaten durch Bündel-Ausgleichung
  • Live Darstellung der Kamera Bilder in einer GUI
  • Darstellung der 2D- und 3D-Koordinaten in einer Tabelle und als 3D-Modell mit OpenGL
Kenntnisse

C#

Windows Forms

OpenGL

10/2008 - 08/2009

11 Monate

Sparse Bundle Adjustment Speedup Strategies

Rolle
Software-Entwickler
Kunde
Projektarbeit / Paper
Einsatzort
Braunschweig
Projektinhalte

Mit Hilfe eines Tools (Bundler) werden Kameras ohne Verwendung von Markern kalibriert. Dieser Prozess wird durch Parallelisierung und Splitting der Videos beschleunigt.

  • Das Video der zu kalibrierenden Kamera wird in mehrere Teile zerlegt
  • Jedes Teilvideo enthält Bilder, die in allen Teilvideos enthalten sind
  • Mit Hilfe des Bundlers werden die externen Kameraparameter berechnet
  • Anhand der in allen Videos enthaltenen Bilder werden die verschiedenen Kamera-Positionen in ein Koordinatensystem transformiert
Produkte

Qt

11/2008 - 07/2009

9 Monate

Binär Codierte Marken

Rolle
Software-Entwickler
Kunde
Linearis3D GmbH
Einsatzort
Braunschweig
Projektinhalte

Implementierung eines Algorithmus zur Erkennung von binär codierten Marken (Kreise) für die Kalibrierung eines Photogrammetrie-Sytemes.

  • Im Bild werden mit Hilfe quadratischer Optimierung Kreise gesucht
  • Kreise mit einem geringen quadratischen Fehler werden auf eine binäre Kodierung untersucht
  • Hierzu wird relativ zum Kreisradius nach hellen Blobs gesucht
  • Blobs an bestimmten Stellen um den Kreis entsprechen einzelnen Bits
  • Die errechnete binäre Zahl wird durch eine Prüfsumme überprüft 

01/2009 - 04/2009

4 Monate

Ansteuerung von Industriekameras

Rolle
Software-Entwickler
Kunde
Linearis3D GmbH
Einsatzort
Braunschweig
Projektinhalte

Ansteuerung und Integration von Industriekameras in ein Software-Projekt.

  • Integration von AVT Kameras

04/2008 - 09/2008

6 Monate

Definition von Softwaretests

Rolle
Tester
Kunde
David GmbH (Hiwi)
Einsatzort
Braunschweig
Projektinhalte

Definition von Regressionstests.

01/2006 - 09/2006

9 Monate

Börsendaten per DAB

Kunde
Bachelorarbeit
Projektinhalte
  • Implementierung des DAB-MOT Protokolls und einer GUI zur Visualisierung von Börsendaten in Java.
  • Über einen Web-Service werden in Echtzeit Börsendaten abgefragt. Die Börsendaten werden auf einen Server des NDR hochgeladen, von wo sie in das DAB Signal eingespeist werden.
Kenntnisse

Java 1.5

Axis

Web Services

SOAP

Branchen

- Maschinenbau

- Automotive

- Messtechnik

- IT

Kompetenzen

Programmiersprachen
C
C#
C++
C++17
Java
Java 1.5
Lua
MATLAB
Python
Scade
Tesseract

Schwerpunkte
Algorithmen
Bildverarbeitung
Kryptographie
OpenCV
Optical Character Recognition

In meinem Studium und bisherigen Projekten habe ich den Schwerpunkt auf den Bereich Bildverarbeitung gelegt. Ich habe mehrere Algorithmen konzipiert und entwickelt, darunter einen größen- und fontinvarianten OCR Algorithmus. Ich verfüge über sehr tiefgehende Kenntnisse in der Open Source Bibliothek OpenCV, die ich seit 9 Jahren bei der Entwicklung von innovativen Algorithmen verwende.


Sprachkenntnisse
Deutsch: Muttersprache
Englisch: gut

Betriebssysteme
Android
Docker
Embedded Linux
OPC UA
Windows

Ich verfüge über Kenntnisse in der Linux Embedded Entwicklung. Ich habe für ein Embedded Linux Projekt eine sehr effiziente Entwicklungsumgebung aufgesetzt. Entwickelt wurde eine Applikation für die automatische Video Analyse. Die Applikation läuft auf Kameras mit unterschiedlichen Ziel-Architekturen (ARM).


Design / Entwicklung / Konstruktion
Design Patterns
OOP
UML

Ich habe Erfahrungen im Design von Softwareprojekten beginnend von Scratch. Ich lege Wert auf einen modularen minimalistischen Entwurf und wende dabei agile Methoden an. Des Weiteren ist es mir wichtig, Grundlagen zu schaffen, die ein effizientes Entwickeln ermöglichen.


Aufgabenbereiche
Video

Meine bisherigen Aufgabenbereiche liegen im Bereich:

- Algorithmen Entwicklung

- Software Design

- GUI Entwicklung

- Debugging

- Testen

- Schulungen

- Inbetriebnahme von Maschinen


Produkte / Standards / Erfahrungen
ADAS
ADTF
Axis
Boost
Eclipse
Git
Jenkins
Kryptographie
Machine Learning
Mathematica
MFC
Microsoft Visual Studio
OpenCV
OpenGL
Posix
Qt
Scrum
SOAP
STL
Support Vector Machine
TFS
Web Services
Windows Forms
Windows-Forms
WPF
Yocto

Datenkommunikation
HTTP

Hardware
ARM

Datenbanken
SQL

Bemerkungen

Ich bin sehr wissbegierig und arbeite mich sehr gerne in neue Technologien ein.


Aus- und Weiterbildung

10/2006 - 09/2010

4 Jahre

Informatik

Abschluss
MSc Informatik
Institution, Ort
Technische Universität Braunschweig
Schwerpunkt

- Vertiefung: Robotik, Verteilte Systeme, Programmierung und Reaktive Systeme

- Schwerpunkt im Bereich Bildverarbeitung und Computer Vision / Sehen

07/2008 - 07/2008

1 Monat

ISTQB: Certified Tester

Abschluss
ISTQB: Certified Tester
Institution, Ort
Technische Universität Braunschweig

10/2002 - 09/2006

4 Jahre

Mathematik/Informatik

Abschluss
BSc Mathematik/Informatik
Institution, Ort
Universität Osnabrück
Schwerpunkt

Allgemeine, praktische und theoretische Informatik

Grundlagen der Mathematik