Zum Inhalt springen

Census-Transformation

aus Wikipedia, der freien Enzyklopädie

Die Census-Transformation (CT) (engl. Census Transform) wurde von Zabih und Woodfill vorgeschlagen<ref>ZABIH, Ramin; WOODFILL, John. Non-parametric local transforms for computing visual correspondence. In: European conference on computer vision. Springer, Berlin, Heidelberg, 1994, S. 151–158. doi:10.1007/BFb0028345</ref> und berechnet für jeden quadratischen Pixelbereich eines Bildes einen Bit-String als Signatur<ref>PEÑA, Dexmont; SUTHERLAND, Alistair. Non-parametric image transforms for sparse disparity maps. In: Machine Vision Applications (MVA), 14th IAPR International Conference on. IEEE, 2015, S. 291–294. doi:10.1109/MVA.2015.7153188</ref>.

Dadurch können insbesondere über die Hamming-Distanz der Bit-Strings schnell übereinstimmende Bereiche der Bilder ermittelt werden – beispielsweise zur Erzeugung einer Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden. als Vorstufe zur Bestimmung des optischen Flusses (Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden.) oder einer Stereo Disparität (Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden.) von zeitlich folgenden bzw. gleichzeitig aufgenommenen Bildern.

Algorithmus[Bearbeiten]

Der Grauwert des zentralen Pixels wird einzeln mit seinen Nachbarn (Anzahl N) verglichen und das Ergebnis (N × 1 Bit) als Zahl abgespeichert (Bit-String) – wobei das Bit „0“ einen Wert größer und das Bit „1“ einen Wert kleiner oder gleich dem Grauwert des zentralen Pixels kennzeichnet. Meist wird eine 3×3-Umgebung betrachtet und der triviale Vergleich mit sich selbst ausgelassen (3 × 3 − 1 = 8 Bit = 1 Byte). Jedoch ist auch die Betrachtung einer 5×5-Umgebung gebräuchlich (5 × 5 − 1 = 24 Bit).

Die Reihenfolge der Ergebnisbits ist beliebig (aber fest) und kann beispielsweise im Uhrzeigersinn angeordnet sein.

<math>

\mathbf{F} = \begin{bmatrix} 1 & 2 & 3 \\ 8 & C & 4 \\ 7 & 6 & 5 \end{bmatrix} </math> Dadurch entsteht ein Signatur-Vektor (z. B. „11001011“ bei einer 3x3 Umgebung) für den zentralen Pixel, welcher mit anderen Signatur-Vektoren verglichen werden kann.

Dreiwertige Census-Transformation[Bearbeiten]

Die von Zabih und Woodfill vorgeschlagene Census-Transformation wurde von Stein durch einen <math>\epsilon</math>-Parameter erweitert, wodurch ähnliche Pixel repräsentiert werden können (und damit eine gewisse Unschärfe bzw. Rauschen toleriert wird). Dadurch entsteht eine 3-wertige (Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden.) Census-Transformation, die hier in der von Stein gewählten Definition zusammen mit einem Beispiel gezeigt wird:

<math>

\xi(P,P')=\begin{cases}

 0,  & \text{wenn }P - P' > \epsilon\\
 1, & \text{wenn }|P - P'| \le \epsilon\\
 2, & \text{wenn }P' - P > \epsilon

\end{cases} \qquad \begin{array}{|c|c||c|} \hline 124 & 74 & 32\\ \hline 124 & 64 & 18\\ \hline 157 & 116 & 84\\ \hline \end{array} \longrightarrow \begin{array}{|c|c|c|} \hline 2 & 1 & 0\\ \hline 2 & x & 0\\ \hline 2 & 2 & 2\\ \hline \end{array} \longrightarrow 21002222 </math> Bei der dreiwertigen Census-Transformation werden also zwei Bit benötigt, was die Länge des Vergleichsvektors verdoppelt.

Modifizierte Census-Transformation[Bearbeiten]

Andererseits wird bei der erstmals von Fröba und Ernst vorgeschlagenen modifizierten Census-Transformation (Skriptfehler: Ein solches Modul „Vorlage:lang“ ist nicht vorhanden., MCT) die Umgebung (Nachbarn und Zentralpixel) mit dem Mittelwert der 3×3-Umgebung verglichen. Dadurch hat die Filterantwort jedes Pixels ein Bit mehr (9 bzw. 25 Bit).

Eigenschaften[Bearbeiten]

  • kaum abhängig von Helligkeitsschwankungen (Belichtungszeit, regionale Schatten)
  • unterscheidet Rotation und Spiegelung
  • lokaler Filter
  • Informationsverlust (d. h. das Bild ist aus der Filterantwort nicht rekonstruierbar)

Anwendungen[Bearbeiten]

Die Census-Transformation kann zur Berechnung des optischen Flusses (feature tracking), zur Bildsegmentierung oder bei der Gesichtserkennung verwendet werden. Sie ähnelt vom Konzept her den BRIEF-Features (ein Descriptor) und geht mehrfach in die Berechnung von Local Binary Patterns (LBP) ein.

Einzelnachweise[Bearbeiten]

<references />

Quellen[Bearbeiten]

  • Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.
  • Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.
  • Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.
  • Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.
  • Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.
  • Skriptfehler: Ein solches Modul „Vorlage:Literatur“ ist nicht vorhanden.