Autoren: Helmut Kales, Christian Kruschitz und Daniel Laure
Einleitung
Im Rahmen der Lehrveranstaltung Image Processing wurden wir mit der Aufgabe betraut, ein Projekt zu realisieren, das einen möglichst großen Bereich der Bildver- und Bildbearbeitung abdecken sollte. Nach längeren Diskussionen innerhalb der Gruppe entschieden wir uns für ein Projekt, dessen Nutzen unbestritten nicht sehr groß ist, aber allein der Herausforderung halber wollten wir eine Möglichkeit finden auf völlig unkonventionellem Wege das Gewicht eines Menschen annähernd zu bestimmen. Das Projekt Visuelle Gewichtserkennung war geboren.
Grundidee
Zur Lösung dieses Problems überlegten wir uns folgende Variante: Durch drei zu den Raumebenen senkrecht stehenden Kameras sollen Bilder eines Menschen aufgenommen werden. Aus den drei erhaltenen Schnitt-bildern sollen nun die drei Ansichten des Körpers extrahiert werden. Aus diesen drei, nur noch aus Nullen und Einsen bestehenden Matrizen kann nun das Volumen berechnet werden, welches anschließend mit dem spezifischen Gewicht multipliziert, das annähernde Gewicht der Person ergibt.
Realisierung
Der erste Arbeitsschritt bestand in der Aufnahme von Leerbildern, also von der Arbeitsumgebung ohne darin befindlicher Person. Diese Bilder dienten als Maske für die spätere Subtraktion. Begibt sich nun eine Person in den von zuvor ausgewählten Bereich, wird ein Trigger-Event ausgelöst, wodurch zeitgleich drei Bilder dieser Person aufgenommen werden. Anschließend werden diese Bilder von den zuerst aufgenommen Leerbildern subtrahiert. Im nächsten Schritt werden aus den Subtraktionsbildern Binärbilder erzeugt. Dies erfolgt durch die Einstellung eines passendes Treshold-Levels. Diese Binärbilder werden im nächsten Schritt durch ent-sprechende Algorithmen so optimiert, dass nur noch die Schatten des Körpers vorhanden sind. Die fertig bearbeiteten Binärbilder werden nun in Matrizen umgewandelt und an das Programm MATLAB übergeben. MATLAB berechnet aus den drei Matrizen einen Körper und gibt die Anzahl der Voxel (Volumselemente), die mit einer 1 belegt sind aus. Durch eine Kalibrierung dieser Voxel ist ein Rückschluss auf das Gewicht der Person möglich.
Die Aufnahme der Leerbilder
Zuerst müssen die 3 Kameras entsprechend initialisiert werden. Nach Aufnahme der Leerbilder werden diese in einer Auflösung von 255x255 Pixel abgespeichert und zur Überprüfung der Qualität der Aufnahme auch am Bildschirm angezeigt.
Abbildung 1: Erzeugen der Leer- und der Objektbilder
Das Trigger-Event
In einem von uns ausgearbeiteten Algorithmus wird aus dem Bild einer von uns zuvor ausgewählten Kamera, die Standardabweichung des gesamten aufgenommenen Bildes ermittelt. Verlässt die Standardabweichung vom Benutzer definierte Grenzen, so wird das Trigger-Event nach einer definierten Zeitspanne ausgelöst. Dieses Trigger-Event führt zur Aufnahme von Bildern durch gleich-zeitige Exposition aller drei Kameras.
Subtraktionsbilder und Binärbilder
Eine weitere von uns erzeugte Funktion subtrahiert dieses Bild vom vorher aufgenommenen Leerbild und speichert es.
Abbildung 2: Subtraktion der Bilder und manuelle Threshold-Einstellung
Im nächsten Arbeitsschritt wird dieses Subtraktionsbild in 8-Bit Tiefe dem automatisch generierten Threshold-bild in 1-Bit Tiefe gegenübergestellt, um den Anwender die Möglichkeit zu geben, die Grenzen für den Threshold optimal einzustellen. Die Übergabe dieses Thresholdbildes an den nächsten Arbeitsschritt erfolgt durch Abspeichern dieses Bildes.
Es folgt eine Auffüllung eventuell vorhandener Defekte innerhalb des Körperschattens im binären Thresholdbild durch die Anwendung der vorhandenen Unterfunktion FillHoles und eine Eliminierung eventuell vorhandener Partikel, welche nicht durch den Körperschatten hervorgerufen werden, durch die Unterfunktion RemoveParticles. Weiters werden die Algorithmen für Dilation und Erosion in einer vom Benutzer zu wählenden Anzahl ausgeführt.Ermittlung des Gewichts
Das binäre Bild , das daraus hervorgeht, wird in ein Array umgewandelt und an MATLAB übergeben. MATLAB berechnet aus den einzelnen Arrays (Matrizen) einen Körper, dessen Voxel mit 1 oder 0 belegt sind. Die Anzahl der mit 1 belegten Voxel wird ausgegeben, und nach Multiplikation mit einen Kalibrierungsfaktor erscheint das annähernde Gewicht des Menschen.
Kontakte: Fachhochschule TECHNIKUM Kärnten, Studiengang Medizinische Informationstechnik, Primoschgasse 8, A-9020 Klagenfurt, Tel.: +43 463 90500-0, www.fh-kaernten.at
Autoren: Helmut Kales: 0099kahe@edu.fh-kaernten.ac.at, Christian Kruschitz: 0099krch@edu.fh-kaernten.ac.at, Daniel Laure: 0099lada@edu.fh-kaernten.ac.at