freiberufler C++ C# Java Linux Embedded OpenCV Bildverarbeitung Algorithmik OCR auf freelance.de

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

zuletzt online vor wenigen Stunden
  • 90€/Stunde
  • 49080 Osnabrück
  • Weltweit
  • de  |  en
  • 14.01.2022

Kurzvorstellung

Ich verfüge über umfangreiche Erfahrungen in der Softwareentwicklung mit C++, C#, Java und Matlab. Mein bisheriger Schwerpunkt liegt im Bereich Bildverarbeitung. Ich konzipiere und implementiere Algorithmen für anspruchsvolle Computer Vision Tasks.

Ich biete

  • Agile Entwicklung
  • C#
  • C++
  • Embedded Linux
  • Informatik
  • ISTQB
  • Java (allg.)
  • Machinelles Lernen (allg.)

Projekt‐ & Berufserfahrung

ID-Card Reader
Identt GmbH, München
3/2018 – 3/2019 (1 Jahr, 1 Monat)
Banken
Tätigkeitszeitraum

3/2018 – 3/2019

Tätigkeitsbeschreibung

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

Eingesetzte Qualifikationen

C++

Trouble-Shooter
Digital Aman Media, München
8/2017 – 4/2018 (9 Monate)
Telekommunikation
Tätigkeitszeitraum

8/2017 – 4/2018

Tätigkeitsbeschreibung

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

Eingesetzte Qualifikationen

SCRUM, C#, C++, Docker, Git, PL/SQL, Python

Software-Architekt C++
Securiton GmbH, München
10/2016 – 3/2017 (6 Monate)
Dienstleistungsbranche
Tätigkeitszeitraum

10/2016 – 3/2017

Tätigkeitsbeschreibung

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

Eingesetzte Qualifikationen

Embedded Linux, C++, Eclipse

Software-Entwickler C# (Festanstellung)
Securiton GmbH, München
10/2016 – 11/2016 (2 Monate)
Dienstleistungsbranche
Tätigkeitszeitraum

10/2016 – 11/2016

Tätigkeitsbeschreibung

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

- GUI mit Windows Forms entwickelt

Eingesetzte Qualifikationen

C#

Software-Entwickler C++ (Festanstellung)
Mühlbauer AG, München
1/2016 – 9/2016 (9 Monate)
Maschinen-, Geräte- und Komponentenbau
Tätigkeitszeitraum

1/2016 – 9/2016

Tätigkeitsbeschreibung

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

Eingesetzte Qualifikationen

C++, Git

Software-Entwickler C# (Festanstellung)
Privat, München
8/2015 – 12/2015 (5 Monate)
Dienstleistungsbranche
Tätigkeitszeitraum

8/2015 – 12/2015

Tätigkeitsbeschreibung

Entwickeln einer GUI in WPF um die OCR zu konfigurieren.

Eingesetzte Qualifikationen

C#, C++, Git

Software-Entwickler C++
Privat, München
1/2015 – 12/2015 (1 Jahr)
Dienstleistungsbranche
Tätigkeitszeitraum

1/2015 – 12/2015

Tätigkeitsbeschreibung

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

Eingesetzte Qualifikationen

C++, Git

Software-Entwickler C++ (Festanstellung)
Mühlbauer AG, München
5/2014 – 9/2014 (5 Monate)
Maschinen-, Geräte- und Komponentenbau
Tätigkeitszeitraum

5/2014 – 9/2014

Tätigkeitsbeschreibung

GUI-Design mit Microsoft Foundation Classes (MFC)

Eingesetzte Qualifikationen

C++

Software-Entwickler C++ (Festanstellung)
Mühlbauer AG, München
1/2013 – 6/2013 (6 Monate)
Maschinen-, Geräte- und Komponentenbau
Tätigkeitszeitraum

1/2013 – 6/2013

Tätigkeitsbeschreibung

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

Eingesetzte Qualifikationen

C++

Software-Entwickler Java
Privat, München
1/2013 – 5/2013 (5 Monate)
Dienstleistungsbranche
Tätigkeitszeitraum

1/2013 – 5/2013

Tätigkeitsbeschreibung

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

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

Eingesetzte Qualifikationen

Android

Software-Entwickler C++
Mühlbauer AG, München
1/2012 – 8/2012 (8 Monate)
Maschinen-, Geräte- und Komponentenbau
Tätigkeitszeitraum

1/2012 – 8/2012

Tätigkeitsbeschreibung

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 Einlern-Phase und der Erkennungs-Phase:

Einlernen:
- Segmentierung der Dots mit einer adaptiven Schwelle
- Normierung der Dotts 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 Dotts eines Buchstabens / Herausrechnen der Skalierung
- Bestimmung einer Rotation, um den Buchstaben aus der Erkennungs-Phase auf den Buchstaben aus der Einlern-Phase 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.

Eingesetzte Qualifikationen

C++

Debugger ADTF (Festanstellung)
Elektrobit GmbH, München
1/2011 – 5/2011 (5 Monate)
Automobilindustrie
Tätigkeitszeitraum

1/2011 – 5/2011

Tätigkeitsbeschreibung

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

Eingesetzte Qualifikationen

Apache Subversion (SVN), C++

Software-Entwickler C++
Masterarbeit, Braunschweig
1/2010 – 9/2010 (9 Monate)
Hochschulen und Forschungseinrichtungen
Tätigkeitszeitraum

1/2010 – 9/2010

Tätigkeitsbeschreibung

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 inklusiver 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 gemachted
- 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

Eingesetzte Qualifikationen

Mathematica

Software-Entwickler C#
Linearis3D GmbH, Braunschweig
1/2009 – 12/2009 (1 Jahr)
Dienstleistungsbranche
Tätigkeitszeitraum

1/2009 – 12/2009

Tätigkeitsbeschreibung

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

- C# Integration von AVT Kameras
- C# / C++ Datenaustausch
- 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

Eingesetzte Qualifikationen

C#, C++

Software-Entwickler C++
Linearis3D GmbH, Braunschweig
1/2009 – 4/2009 (4 Monate)
Dienstleistungsbranche
Tätigkeitszeitraum

1/2009 – 4/2009

Tätigkeitsbeschreibung

Ansteuerung und Integration von Industriekameras in ein Software-Projekt.

- Integration von AVT Kameras

Eingesetzte Qualifikationen

C++

Software-Entwickler C++
Linearis3D GmbH, Braunschweig
11/2008 – 7/2009 (9 Monate)
Dienstleistungsbranche
Tätigkeitszeitraum

11/2008 – 7/2009

Tätigkeitsbeschreibung

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

Eingesetzte Qualifikationen

C++, MATLAB / Simulink

Software-Entwickler C++
Projektarbeit, Braunschweig
10/2008 – 9/2009 (1 Jahr)
Hochschulen und Forschungseinrichtungen
Tätigkeitszeitraum

10/2008 – 9/2009

Tätigkeitsbeschreibung

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

Eingesetzte Qualifikationen

Ubuntu

Tester (Festanstellung)
David GmbH, Braunschweig
4/2008 – 9/2008 (6 Monate)
Dienstleistungsbranche
Tätigkeitszeitraum

4/2008 – 9/2008

Tätigkeitsbeschreibung

Definition von Regressionstests.

Eingesetzte Qualifikationen

MS Office (Anwenderkenntnisse)

Web-Designer
[...] International GmbH, Düsseldorf
6/2007 – 8/2007 (3 Monate)
Dienstleistungsbranche
Tätigkeitszeitraum

6/2007 – 8/2007

Tätigkeitsbeschreibung

Entwicklung des Internetauftritts für die [...] International GmbH.

Verwendete Technologien: Html, PHP, Javascript, CSS

Eingesetzte Qualifikationen

CSS (Cascading Style Sheet), HTML, JavaScript, PHP

Software-Entwickler Java
Privat, Osnabrück
1/2006 – 9/2006 (9 Monate)
Hochschulen und Forschungseinrichtungen
Tätigkeitszeitraum

1/2006 – 9/2006

Tätigkeitsbeschreibung

- 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.

Eingesetzte Qualifikationen

J2SE (Java SE), WSDL (Web Services Description Language), MTOM (SOAP Message Transmission Optimization Mechanism)

Zertifikate

ISTQB: Certified Tester
Juli 2008

Ausbildung

Informatik
(MSc Informatik)
Jahr: 2010
Ort: Braunschweig
Mathematik/Informatik
(BSc Mathematik/Informatik)
Jahr: 2006
Ort: Osnabrück

Qualifikationen

C++, C#, Java, Matlab
Bildverarbeitung, Algorithmik
Linux Embedded
Kryptographie
Git, Subversion, TFS

Über mich

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.

Persönliche Daten

Sprache
  • Deutsch (Muttersprache)
  • Englisch (Gut)
Reisebereitschaft
Weltweit
Arbeitserlaubnis
  • Europäische Union
  • Schweiz
Profilaufrufe
3867
Alter
41
Berufserfahrung
14 Jahre und 8 Monate (seit 05/2007)

Kontaktdaten

Nur registrierte PREMIUM-Mitglieder von freelance.de können Kontaktdaten einsehen.

Jetzt Mitglied werden