home
projects
    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


Page contents
Kurzbeschreibung
Hintergrund
Grading (Hauptaufgabe)
Weitere Aufgaben
Documentation samples
Zeugnis

Kurzbeschreibung

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


Hintergrund

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. 


Grading (Hauptaufgabe)

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.


Weitere Aufgaben

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. 


Documentation samples


Zeugnis

Arbeitszeugnis des Auftraggebers


As soon as time allows, this project description will be extended by the following:
  • Fuller descriptions of the image processing and optimizations in each of the four grading subprojects, with images
  • Brief description of the test approach and assert design used in the project