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 {{#invoke:Vorlage:lang|flat}} als Vorstufe zur Bestimmung des optischen Flusses ({{#invoke:Vorlage:lang|flat}}) oder einer Stereo Disparität ({{#invoke:Vorlage:lang|flat}}) von zeitlich folgenden bzw. gleichzeitig aufgenommenen Bildern.

Algorithmus

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

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 ({{#invoke:Vorlage:lang|flat}}) 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

Andererseits wird bei der erstmals von Fröba und Ernst vorgeschlagenen modifizierten Census-Transformation ({{#invoke:Vorlage:lang|flat}}, 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

  • 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

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

<references />

Quellen

  • {{#invoke:Vorlage:Literatur|f}}
  • {{#invoke:Vorlage:Literatur|f}}
  • {{#invoke:Vorlage:Literatur|f}}
  • {{#invoke:Vorlage:Literatur|f}}
  • {{#invoke:Vorlage:Literatur|f}}
  • {{#invoke:Vorlage:Literatur|f}}