Körpersegmentierung

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche

(aus einer Arbeit von Jens Müller-Ali im SS 2004)


Körpersegmentierung und Verfolgung einzelner Körperteile in der Bildverarbeitung


Aufgabe

Im Rahmen der Arbeit sollten Verfahren zur Analyse menschlicher Bewegungen entwickelt werden. Dazu waren die zugrunde liegenden Verfahren zur Körpersegmentierung zu analysieren und die Möglichkeiten und Grenzen der Funktionen zur Verfolgung einzelner Körperteile darzustellen. Die Umsetzung der Verfahren sollte in EyesWeb erfolgen.


Ansatz

Ziel der Arbeit ist die Erkennung und Verfolgung einzelner Körperteile in der Bildverarbeitung. Anhand des Bildverarbeitungssystems EyesWeb soll mit den Stufen Bildaufnahme, Bildvorverarbeitung, Bildsegmentierung und Körpersegmentierung dies gelöst werden. Im Verlauf dieser Arbeit wird zur Veranschaulichung immer wieder Bezug zur Anwendung "Urschrei - Visualisierung von Schall" genommen, das im Rahmen einer Gruppenarbeit im SS2004 bearbeitet wurde. Im Rahmen dieses Projekts musste u.a. der Kopf einer Person innerhalb einer Bildsequenz detektiert und verfolgt werden.

Allgemeiner Aufbau bei der Bildverarbeitung:

Körpersegmentierung 1.png

Bildaufnahme

Grundlegend wird in dieser Arbeit vorausgesetzt, dass optimierte Verhältnisse in der Bildaufnahme herrschen. Es sollte aber jedoch kurz erwähnt werden, wie man sich dies vorzustellen hat.

• homogener Beleuchtung der Szene, somit ausreichend Kontrast im Bild

• fehlerarme Digitalisierungsverfahren

• homogener Hintergrund

Bildvorverarbeitung / Segmentierung

Die Aufgabe der Bildvorverarbeitung ist es, die relevante Information im Bild hervorzuheben und, im Sinne der Korrektur bekannter Fehlerquellen, zu verbessern. Dabei werden Bilder wieder zu Bildern verarbeitet. Bildoperationen der Bildvorverarbeitung dienen also sowohl zur Bildverbesserung als auch als Grundlage zur Bildsegmentierung, hier speziell für die Körpersegmentierung.

Körpersegmentierung 2.png

Hier ist klar zu erkennen, dass sich das Bild nach der Umwandlung in Graustufen, Hintergrundsubtraktion, Binarisierung und Anwendung des Medianfilters besser für die weitere Bildverarbeitung eignet.

Bei inhomogenen Hintergründen muss regionenbasiert gearbeitet werden, um die relevanten Bildinformationen zu extrahieren. Ausgehend von Regionen, die aufgrund von Hintergrundsubtraktion identifiziert wurden, muss nun im weiteren Verfahren geprüft werden, ob die gefundenen Regionen auch mit dem gesuchten Objekt, einer Person, übereinstimmen. Es muss nach charakteristischen Eigenschaften gesucht werden, die ein Objekt beschreiben und mit den Merkmalen der Regionen verglichen werden. Erfüllt eine Region die Anforderungen, so wird sie entsprechend markiert. Somit ist ein Extrahieren der personenbezogenen Regionen möglich. Werden diese relevanten Regionen zusammengefasst, kann das umschreibende Rechteck erste Aussagen über die Lage der Person liefern:

Körpersegmentierung 3.png

Bei der Konturanalyse ist das Ergebnis relativ unabhängig von Beleuchtungseinflüssen. Wichtig ist hier nur die Silhouette der zu betrachtenden Region. Bei der Detektion von Personen ist es zudem nicht notwendig, dass die Person frontal zur Kamera steht. Anhand von geometrischen Modellen (z.B. einer Ellipse zum Auffinden von Kopfregionen), wird versucht eine möglichst hohe Deckung zwischen Modell und Bild zu erreichen.

Körpersegmentierung 4.png

Weiter kann über die Pixelverteilung im Bild bestimmt werden, welche Körperhaltung die Person im Bild vermutlich einnimmt. Es kann unterschieden werden zwischen stehend, bückend, sitzend und liegend. Erreicht wird dies über die konvexe Hülle, die Extrempunkte auf der Kontur. Sämtliche Punkte, die auf einer Geraden zwischen je zwei Extrempunkten der konvexen Hülle liegen, werden ebenfalls bestimmt und bilden die konkave Hülle. Zudem wird der Mittelpunkt der Silhouette und die Hauptachse berechnet. Nun werden zwei Geraden in einem Winkel zur Hauptachse durch den Mittelpunkt gelegt. Auf diese Weise segmentieren die Geraden einen bestimmten Bereich aus der Silhouette. Sämtliche Punkte in diesem Bereich werden als potentielle Punkte des Kopfes angesehen. Der Punkt, der am weitesten vom Mittelpunkt entfernt ist, wird als Kopfpunkt definiert. Von diesem Punkt ausgehend kann nun noch eine entsprechend skalierte Ellipse in Richtung der Hauptachse angelegt werden, um den gesamten Kopf zu markieren.


Bei der Anwendung "Urschrei - Visualisierung von Schall", bei der es auch um die Erkennung des Kopfes geht, mussten beim Einsatz des Blockes (The CentroidsCalc block) immer zusätzlich konstante Werte zu den gelieferten Werten Head (x) und Head(y) aufaddieren werden, um den Kopf der Person zu detektieren. In der "Modellierung" des Blockes könnte theoretisch eine Fehlerquelle liegen.

Körpersegmentierung 5.png

Hier sehen wir die Aufteilung des Bildes in Rechtecke, wobei die Kreuze die signifikanten Stellen einer Person darstellen. Diese Punkte sind laut EyesWeb eine reine Approximation an die Positionen von Kopf, Ellbogen, Schulter, Knie, etc. aufgrund eines 2D Modells. Somit kann der Fehler bei der Verwendung des Blockes erklärt werden. Die korrigierte Anwendung liefert nun folgendes Ergebnis:

Körpersegmentierung 6.png

Der entwickelte EyesWeb-Patch kopferkennung.eyw für die Anwendung "Urschrei - Visualisierung von Schall" beinhaltet weitere Funktionen. Hier wird der vorläufige Part für die Kopferkennung bzw. Munderkennung vorgestellt. Die beschriftete Szene veranschaulicht grob die eingesetzten Verfahren.

Körpersegmentierung 7.png

Auch die Kantendetektion ist ein häufig eingesetztes Mittel in der Bildverarbeitung. Die Anwendung detektiert Grauwertänderungen ("Kanten") im Bild. Mit Hilfe der Differentiation der Grauwertfunktion kann eine Änderung des Grauwertes bestimmt werden. Die erste Ableitung hat an einer Kante ein Maximum, die zweite einen Nulldurchgang. Beide Kriterien können zur Kantenbestimmung verwendet werden. Mit diesem Verfahren können Kanten und Konturen voneinander unterschieden werden, da bei Konturen die erste Ableitung eine Nullstelle und bei der zweiten ein Maximum besitzt.

Beim Sobel-Operator, der das Verfahren "Differenz von Mittelwerten" anwendet, werden mehrere Punkte, meist eine 8er Nachbarschaft, für die Berechnung der Ableitungen berücksichtigt. Bei weiteren Überlegungen, im Bezug zur Detektion der Kopfregion, stellte sich dieses Verfahren als praxistauglich dar. Als Ausgangspunkt für die Analyse wird der maximale Wert in y-Richtung definiert, der Punkt Headmax (y). Dieser Punkt wird bereits beim Erfassen der Kontur bestimmt. Vorausgesetzt wird, dass eine Person im Videobild aufrecht steht und der Kopf der höchsten Position einer Kontur entspricht. Somit muss Headmax (y) aufgrund seiner Position auf der Kopfdecke liegen.

Körpersegmentierung 8.png

Zur Verfolgung detektierter Körperregionen bietet EyesWeb eine Vielzahl von Blöcken an. Die Verfolgung mehrerer Punkte wird mit dem Block LK Tracker ermöglicht, der den Algorithmus von Lucas Kanade verwendet.

Körpersegmentierung 9.png

Die sogenannten Tracking Punkte können mit dem Block TrackerViewer in das Bild eingezeichnet werden, und so eine Visualisierung der zu verfolgenden Körperbereiche liefern.

Literaturverzeichnis

Bässmann, H. / Besslich, Ph.W Bildverarbeitung - Ad Oculos Springer-Verlag, Berlin; Heidelberg, 1993

Jähne, Bernd Digitale Bildverarbeitung Springer-Verlag Berlin Heidelberg, 1989

EyesWeb-Manuals:

  • EywMotionAnalysisReferenceManual.pdf
  • Imaging Library Quick Reference.pdf
  • Blob Anaysis.pdf


Weblinks:

http://www.eyesweb.org

http://www.techinfo.rwth-aachen.de

http://lmb.informatik.uni-freiburg.de

http://www.zgdv.de/zgdv/departments/z2/Z2Staff/schnaide/local_images/ME2003-01.pdf

http://www.zgdv.de/zgdv/departments/z2/Z2Staff/schnaide/local_images/ME2003-05.pdf