Erklärung zum Color Tracking#

Was bedeutet das Verfolgen einer Farbe und wie macht die CMUcam4 das?#

Color Tracking ist die Fähigkeit, ein Bild zu nehmen, eine bestimmte Farbe zu isolieren und Informationen über die Position eines Bereichs dieses Bildes zu extrahieren, der genau diese Farbe enthält. Nehmen Sie als Beispiel an, Ihnen wird ein Foto gegeben, das einen roten Ball zeigt, der auf einer unbefestigten Straße liegt. Würde man Sie bitten, alles im Bild, was rot ist, mit einem Kasten zu umrahmen, würden Sie ganz leicht ein Rechteck um den Ball zeichnen. Dies ist die Grundidee hinter Color Tracking. Sie mussten nicht wissen, dass das Objekt ein Ball war. Sie brauchten nur ein Konzept der Farbe Rot, um das Objekt im Bild zu isolieren. Im Folgenden gehen wir kurz darauf ein, wie die CMUcam4 tatsächlich die Informationen in einem Kamerabild nutzt, um Color Tracking durchzuführen.

Um eine Farbe zu spezifizieren, müssen Sie einen minimalen und maximalen zulässigen Wert für drei Farbkanäle definieren. Jede eindeutige Farbe wird durch einen Rot-, Grün- und Blauwert dargestellt, der angibt, wie viel von jedem Kanal in die eindeutige Farbe eingemischt wird. Der schwierige Teil beim Spezifizieren einer Farbe ist, dass Sie einen Bereich zulässiger Werte für alle drei Farbkanäle definieren müssen. Da Licht nicht vollkommen gleichmäßig ist und die Farbe eines Objekts nicht vollkommen gleichmäßig ist, müssen Sie diese Schwankungen berücksichtigen. Sie möchten diese Grenzen jedoch nicht zu weit lockern, sonst werden viele unerwünschte Farben akzeptiert. Da im Fall der CMUcam4 jeder Farbkanal in eine Zahl zwischen 0 und 255 umgewandelt wird, können Sie jeden Kanal mit zwei Zahlen begrenzen, einer oberen und einer unteren Grenze. Wenn Sie zwei Grenzen für jeden der drei Kanäle haben, bedeutet dies, dass sechs Werte verwendet werden können, um den gesamten Farbraum einzuschränken, den Sie verfolgen möchten. Wenn Sie sich die Farben als einen Würfel vorstellen, bei dem jede Seite ein anderer Farbkanal ist (Rot, Grün und Blau), dann würden die sechs Werte, die zur Auswahl Ihrer Farbe verwendet werden, eine dreidimensionale Box innerhalb dieses Würfels zeichnen, die Ihre gewünschte Farbmenge definiert.

Sobald Sie eine Grenze für die Farbe haben, die Sie verfolgen möchten, nimmt die CMUcam4 diese Grenzen und verarbeitet das Bild. Es gibt viele Möglichkeiten, Farben in einem Bild zu verfolgen, die recht komplex sein können. Die CMUcam4 verwendet einen einfachen Einzeldurchlauf-Algorithmus, der jeden neuen Bildrahmen der Kamera unabhängig verarbeitet. Er beginnt oben links im Bild und untersucht nacheinander jedes Pixel Zeile für Zeile. Wenn das untersuchte Pixel in den vom Benutzer angegebenen Farbbereich fällt, markiert er dieses Pixel als verfolgt. Er untersucht auch die Position des aktuellen verfolgten Pixels, um festzustellen, ob es die oberste, unterste, linkeste oder rechteste Position aller bisher im Bild gefundenen verfolgten Pixel ist. Wenn er feststellt, dass das Pixel außerhalb des aktuellen Begrenzungsrahmens des verfolgten Bereichs liegt, vergrößert er den Begrenzungsrahmen, um dieses neue Pixel einzuschließen. Da die Position selbst eines einzelnen verfolgten Pixels den Begrenzungsrahmen ändern kann, kann der Begrenzungsrahmen manchmal von Rahmen zu Rahmen stark schwanken. Die Rauschfilterung (siehe nächster Absatz) kann verwendet werden, um einen Teil dieser Schwankung zu reduzieren. Die einzige weitere wichtige Information, die gespeichert wird, ist eine Summe der horizontalen und vertikalen Koordinaten der verfolgten Pixel. Am Ende des Bildes nimmt die CMUcam4 die horizontale Summe und die vertikale Summe der verfolgten Pixel und dividiert jede durch die Gesamtzahl der verfolgten Pixel und erhält einen Wert, der anzeigt, wo sich die Mitte des verfolgten Objekts befindet. Da jedes verfolgte Pixel nur einen kleinen Teil zu den endgültigen horizontalen und vertikalen Summen beiträgt, ist die Mitte (oft Schwerpunkt genannt) der verfolgten Pixel typischerweise eine viel stabilere Messung als der Begrenzungsrahmen. Sobald alle Pixel im Bild überprüft wurden, kann die Gesamtzahl der verfolgten Pixel auch in Verbindung mit der Fläche des Begrenzungsrahmens verwendet werden, um die Konfidenz und die Anzahl der Pixel im verfolgten Objekt zu berechnen.

Die Rauschfilterung ermöglicht es uns, die Farbverfolgungsbereiche größer zu machen, sodass wir größere Variationen der Bildpixelwerte berücksichtigen können, ohne dass andere zufällige Variationen im Bild verfolgt werden. Die Idee hinter der Rauschfilterung besteht darin, dass wir ein Pixel nur dann als von der verfolgten Farbe betrachten wollen, wenn es Teil einer Gruppe von Pixeln ist, die innerhalb der Farbverfolgungsgrenzen liegen. In der CMUcam4 setzen wir dies auf eine Weise um, die nur einen einzigen Durchlauf über das Bild erfordert. Während der Verarbeitung der Pixel in einem Bild führt die CMUcam4 einen Zähler, der verfolgt, wie viele aufeinanderfolgende Pixel in der aktuellen Zeile vor dem aktuellen Pixel innerhalb der verfolgten Farbgrenzen lagen. Wenn dieser Wert über dem Rauschfilterwert liegt, wird das aktuelle Pixel als verfolgtes Pixel markiert.

Was ist ein Histogramm und wofür ist es gut?#

Ein Histogramm ist eine Art Diagramm, das die Häufigkeit und Verteilung von Daten darstellt. Im Fall der CMUcam4 zeigt das Histogramm die Häufigkeit und Verteilung der in einem Bild gefundenen Farbwerte. Jeder Balken steht für einen Bereich von Farbwerten eines bestimmten Kanals. Die CMUcam4 kann die möglichen Farbwerte von 0 bis 255 in 1, 2, 4, 8, 16, 32 und 64 verschiedene Klassen (Bins) unterteilen. Jede Klasse enthält die Anzahl der im Bild gefundenen Pixel, die innerhalb bestimmter Farbgrenzen liegen. Ein großer Wert in einer bestimmten Klasse bedeutet also, dass viele dieser Farben im Bild gefunden wurden. Jedes Histogramm stellt nur einen ausgewählten Farbkanal dar.

Histogramme sind eine Möglichkeit, den Inhalt eines Bildes zu abstrahieren. Sie haben viele Verwendungszwecke wie primitive Objekterkennung, Schwellenwertbildung oder Farbabgleich. Sie sind besonders nützlich, um zwischen verschiedenen Texturen zu unterscheiden. Versuchen Sie, die CMUcam4 mit ausgeschalteter automatischer Verstärkung auf zwei verschieden texturierte Oberflächen zu richten, und beachten Sie den Unterschied in ihren Farbverteilungen. Dieser Effekt kann verwendet werden, um Bodenoberflächen zu unterscheiden oder Hindernisse zu erkennen.