Lageerkennung

Aus toolbox_interaktion
Wechseln zu: Navigation, Suche

Lageerkennung eines Löffels

Annahmen und Randbedingungen

Bei der Lösung sollte man davon ausgehen, dass nur ein Löffel gleichzeitig auf dem Bild zu sehen ist. Weiterhin geht man davon aus, dass Untergrund auf dem der Löffel liegt einfarbig ist und sich deutlich von der Farbe des Löffels unterscheidet. Dadurch kann ein einfache Binarisierung des Bildes sichergestellt werden. Da ein gewönlicher Löffel nur zwei stabile Lagen hat, in denen er sich in Ruhe befinden kann und diese in binarisierter Form (die ja keine 3D Information mehr enthält) nahezu gleich aussehen, muss nicht zwischen verschiedenen Lagen des Löffels unterschieden werden.


Binarisierung der Bilddaten

Nachdem evtl. das Rauschen im Kamerabild durch die Glättungsoperatoren verringert wurde, können die Bilddaten binarisiert werden. Das bedeutet, dass das Bild danach nur noch zwei Farbwerte hat, weiß und schwarz. Die Binarisierung bietet den Vorteil, dass alle noch im Bild befindlichen Störungen (wie z. B. Lichtreflektionen auf dem Löffel) beseitigt werden und nur noch die reine Form des Löffels für die spätere Analyse übrig bleibt.

Binarisierung.jpg

In diesem Beispiel wurde ein Schwellwert von 79 gewählt. Alle Pixel mit einem Grauwert kleiner als 79 werden weiß. Die binarisierte Darstellung enethält jetzt nur noch die wirklich wichtigen Informationen und kann weiter verarbeitet werden, um die Lage und Position des Löffels zu bestimmen.

Man könnte jetzt noch das Closing-Verfahren auf das binarisierte Bild anwenden, um Ausfransungen am Rand und kleine Löcher innerhalb des Objektes zu neutralisieren. Da das für die Genauigkeit der folgenden Schwerpunkt- und Rotationslagemittelung, aber nicht von Bedeutung ist, geht man auf dieses Verfahren nicht näher ein.

Attribute

Momente

Um die Attribute "Schwerpunkt" und "Rotationslage" einer Bildregion zu bestimmen, kann man die Attributklasse der Momente benutzen. Die Momente sind definiert als

Momente.jpg

Pr ist dabei die Menge der Punkte der Bildregion, die analysiert werden soll. In diesem Fall der Löffel. f(x,y) gibt den Grauwert des Bildes am Punkt (x,y) zurück. Da es sich um ein binarisiertes Bild handelt, gibt diese Funktion bei Bildpunkten, die nicht zur "Löffelregion" gehören immer 0 (schwarz) zurück, bei "Löffelbildpunkten" immer 1 (weiß).

In Kombination mit der Tatsache, dass immer nur ein Löffel im Bild enthalten sein kann, ist das sehr praktisch, da wir somit alle Punkte des gesamten Bildes in die Berechnung einbeziehen können. Bildpunkte, die nicht zur "Löffelregion" gehören, haben als Grauwert 0 und gehen deshalb gar nicht in die Summe ein. Man muss daher nicht mühsam die Region des Löffels bestimmen, sondern man kann das gesamte Bild als "Löffelregion" sehen.

Schwerpunkt

Der Schwerpunkt einer Region ist definiert als

Schwerpunkt.jpg

Man kann den Schwerpunkt des folgenden Bildes berechnen (die schwarzen Bildpunkte haben den Grauwert 0, gehen darum auch nicht in die Summen ein und wurden deshalb der Übersichtlichkeit halber in folgender Rechnung weggelassen):

Schwerpunktberechnung.jpg

Rotationslage

Die Rotationslage einer Region und somit auch des Löffels kann über die Hauptträgheitsachse H dieser Region ermittelt werden. Die Hauptträgheitsachse ist definiert als die Achse, zu der die Summe der quadratischen Abstände aller der Region angehörenden Punkte ein Minimum erreicht. Matematisch ausgedrückt schreibt man:

Rotationslage formel.jpg

Die Hauptträgheitsachse verläuft demzufolge unter dem Wingel durch den Schwerpunkt (der sicj wie oben gezeigt durch die Momente ermitteln lässt) der Region.

Rotationslage berechnung.jpg Rotationslage berechnung2.jpg

Bei einem Löffel ist die Symmetrieachse mit der Hauptträgachse gleichzusetzten. Der Rotationswinkel des Löffels entspricht somit dem Rotationswinkel b der Hauptträgheitsachse.

EyesWeb Patch

EysWeb Patch, der eben beschrieben Attribute Schwerpunkt und Rotationslage bestimmt.

EyeswebPatch.jpg

Zuerst wird das Farbbild in Graustufen gewandelt und anschleßend binarisiert. Die Anwendung eines Glättungsoperators war wegen des rein schwarzen Hintergrunds nict notwendig, da kaum Rauschen auftreten. Die Berechnung der MOmente zur Bestimmung des Schwerpunktes kann man sich sparen, da EyesWeb einen eigenen Block zur Schwerpunktbestimmung bereit stellt, der diese Funktion kapselt. Anschließend werden noch die Momente zur Bestimmung der Rotationslage berechnet und über mehrere Math.Scalar.ConstOp Blöcke miteinander in Beziehung gesetzt.


Der EyesWeb-Patch lageerkennung.eyw befindet sich im internen Bereich zum Download.