C++ C# Java Linux Embedded OpenCV Bildverarbeitung Algorithmik OCR
- Verfügbarkeit einsehen
- 0 Referenzen
- 90€/Stunde
- 49088 Osnabrück
- Weltweit
- de | en
- 14.11.2024
Kurzvorstellung
Qualifikationen
Projekt‐ & Berufserfahrung
3/2018 – 3/2019
TätigkeitsbeschreibungImplementierung 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 QualifikationenC++
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
Scrum, C#, C++, Docker, Git, PL/SQL, Python
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
Embedded Linux, C++, Eclipse
10/2016 – 11/2016
Tätigkeitsbeschreibung
Entwicklung einer einfachen GUI für ein Test-Framework in C#.
- GUI mit Windows Forms entwickelt
C#
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
C++, Git
8/2015 – 12/2015
TätigkeitsbeschreibungEntwickeln einer GUI in WPF um die OCR zu konfigurieren.
Eingesetzte QualifikationenC#, C++, Git
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
C++, Git
5/2014 – 9/2014
TätigkeitsbeschreibungGUI-Design mit Microsoft Foundation Classes (MFC)
Eingesetzte QualifikationenC++
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
C++
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.
C++
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
Subversion, C++
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
Mathematica
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
C#, C++
1/2009 – 4/2009
Tätigkeitsbeschreibung
Ansteuerung und Integration von Industriekameras in ein Software-Projekt.
- Integration von AVT Kameras
C++
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
C++, Simulink
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
Ubuntu
4/2008 – 9/2008
TätigkeitsbeschreibungDefinition von Regressionstests.
Eingesetzte QualifikationenMS Office (Anwenderkenntnisse)
6/2007 – 8/2007
Tätigkeitsbeschreibung
Entwicklung des Internetauftritts für die [...] International GmbH.
Verwendete Technologien: Html, PHP, Javascript, CSS
CSS (Cascading Style Sheet), HTML, JavaScript, PHP
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.
Java SE, WSDL (Web Services Description Language), MTOM (SOAP Message Transmission Optimization Mechanism)
Zertifikate
Ausbildung
Braunschweig
Osnabrück
Über mich
Weitere Kenntnisse
Bildverarbeitung, Algorithmik
Linux Embedded
Kryptographie
Git, Subversion, TFS
Persönliche Daten
- Deutsch (Muttersprache)
- Englisch (Gut)
- Europäische Union
- Schweiz
Kontaktdaten
Nur registrierte PREMIUM-Mitglieder von freelance.de können Kontaktdaten einsehen.
Jetzt Mitglied werden