|
http://rubinghsoftware.de/projects/wt/
|
Projekt | |
Algorithmen-Entwicklung für Echtzeit-Bildverarbeitung auf DSPs eingebaut in industriellen Kameras. | |
Für | |
Wente-Thiedig GmbH, Braunschweig (als Angestellter) | |
Datum | |
Okt 2011 - Okt 2013 | |
Platforms | |
C++, TI TMS320C6000 DSP, matlab, doxygen | |
|
In diesem Job habe ich Algorithmen entwickelt und implementiert für Echtzeit-Bildverarbeitung auf DSPs eingebaut in industriellen Kameras. Aufgabe der Software war das visuell vermessen von Merkmalen von Schinken-Scheiben während deren maschinellen Verarbeitung.
Die Algorithmen wurden von erstem Konzept bis Kodierung abgezielt auf Laufzeit. Die Algorithmen wurden generell in matlab und C++ auf dem PC vorentwickelt, dann auf DSP portiert. Meine Algorithmen habe ich alle ausführlich dokumentiert (Doku-Plattform war das firmeninterne wiki).
Die Auftraggeber-Firma (Wente-Thiedig in Braunschweig) verkauft mit DSP ausgerüstete Kameras für
optische Messtechnik, und entwickelt selbst die Bildverarbeitungs-Software. Die Kameras
werden eingesetzt vor allem in der Lebensmittelindustrie, für visuell Vermessen von Käse-
und Schinken-Scheiben (oder -Portionen), in Echtzeit während der maschinellen Verarbeitung
(Schneiden).
Dass diese Naturprodukte eine "fliessende" Konsistenz haben ist eine Herausforderung für die
Robustheit der Bildverarbeitungssoftware. Größte Herausforderung war aber, gegeben
die hohe Verarbeitungsgeschwindigkeit der Maschinen, die geringe Zeit (ca. 50 ms) verfügbar
für die Bildverarbeitung der einzelnen Aufnahmen.
Meine Hauptaufgabe ist gewesen, die Bilderkennungs-Software der Firma zu erweitern um die Erkennung und Bewertung der "Qualität" von Schinken-Scheiben, zur Aussortierung in Qualitätsstufen (Englisch: grading). In jeder Schinken-Scheibe würden 4 Merkmale erkannt:
![]() |
Primary-Eye (Fleischauge).
Zur Erkennung hiervon habe ich habe ich den Canny Edge-Erkennungs-Algorithmus tiefgehend
adaptiert und optimiert auf die Aufgabe, um für diese spezielle Anwendung zu einer
robusten und schnelleren Verarbeitung zu kommen.
|
![]() |
Blutstellen.
Zur Erkennung hiervon habe ich eine neue spezialisierte und optimierte Art Maskenoperation
entwickelt (Octagon-Kreisfilter).
|
![]() |
Aussparungen in der Kontur, d.h. Stellen wo die Kontur stark konkav ist. Hierfür
habe ich das Konzept "konvexe Hülle" erweitert.
|
![]() | Fettanteil. Hierfür wurde "adaptive thresholding" eingesetzt. |
Die Erkennungsergebnisse für die 4 separaten Merkmale wurden konfigurabel zusammengerechnet zu einer normierten Gesamt-Qualitätszahl.
Neben der Schinken-Merkmalserkennung, sind weitere Aufgaben gewesen:
Verteilt über die Zeit dass ich bei der Firma beschäftigt gewesen bin, ist ein ständiges weiteres Projekt gewesen, das Thema Assertions und Unit Tests in der Firma neu zu beleben. Zusammen mit dem Softwareentwicklungsleiter (Stefan Quast) habe ich ein Konzept entworfen und eingeführt für den Einsatz von Assertions in der DSP-Software.
Ein Arbeitszeugnis des Auftraggebers kann ich Ihnen auf Anfrage gern senden.