Tiefenmasken
Was ist eine Tiefenmaske?
Eine Tiefenmaske oder Tiefenkarte (engl.: depth map) ist ein Bild, das Informationen über die Entfernung von Objekten (streng genommen über die Oberflächen dieser Objekte) enthält. Tiefenmasken treten also in der Regel nicht alleine auf, sondern immer als Zusatzinformation zu einem normalen Monobild, das in diesem Kontext dann auch häufig als RGB-Bild bezeichnet wird. RGB-Bild deshalb, weil dieses Monobild die Farbinformation der abgebildeten Szenerie enthält.
Im einfachsten Fall haben wir also ein Paar aus einem RGB-Bild und einer Tiefenmaske mit jeweils genau gleich vielen Pixeln, wobei jedes Pixel aus der Tiefenmaske eine Information über die Entfernung des korrespondieren Pixels aus dem RGB-Bild trägt. (Im allgemeinen sind aber auch unterschiedliche Auflösungen erlaubt.)
Eine häufig anzutreffende Methode, die Information über die Entfernung darzustellen ist die Verwendung eines schwarz-weiß Bildes, wobei der nächstgelegen Punkt weiß und der am weitesten entfernt gelegene Punkt schwarz eingefärbt ist.
Üblich ist die Unterscheidung von 256 verschiedenen Graustufen (bei einer 8-Bit Tiefenmaske) oder 65536 verschiedenen Graustufen (bei einer 16-Bit Tiefenmaske). Beide Varianten sind verbreitet. Die Variante mit 256 Stufen sind bei FullHD-Bildern (1920x1080 Pixel) gut ausreichend, aber viel weniger sollten es auch nicht sein.
Damit wird auch klar, daß diese Graustufen niemals die Entfernung linear 1:1 abbilden können, denn es muß auch für eine Entfernung im Unendlichen einen Grauwert geben. Die genaue Funktion, wie die Entfernung auf den Grauwert abgebildet wird, kann sehr unterschiedlich sein und ist davon abhängig, wie die Tiefenmaske entstanden ist. Meistens ist die genaue Funktion aber unbekannt, so daß im allgemeinen aus der Tiefenmaske nicht mehr auf die absolute Objektentfernung zurück geschlossen werden kann.
Beispiel für ein RGB-Bild (links) und zugehöriger Tiefenmaske (rechts). Beides sind unbearbeitete Originalbilder aus dem iPhone 11 (lediglich Ausschnitt gebildet und in der Größe skaliert). Helle Pixel im rechten Bild indizieren nahe Objekte und dunkle Pixel entsprechend entfernte Objekte.
Wozu wird eine Tiefenmaske benötigt?
Abgesehen von wissenschaftlichen Methoden, beispielsweise in der Medizin oder beim autonomen Autofahren interessieren uns hier vor allen Dingen die Anwendungen in der Fotografie. Eine inzwischen weit verbreitete Anwendung (in der Flachbildfotografie) ist die Berechnung einer nachträglichen Hintergrundunschärfe. Für uns viel interessanter ist aber die Berechnung eines Stereobildes aus einem Monobild und der zugehörigen Tiefenmaske. Die Tiefenmaske wird hierbei als Disparitätsinformation interpretiert und die Pixel aus dem RGB-Mono-Bild entsprechend dem Grauwert der Tiefenmaske horizontal verschoben, um so ein zweites Stereoteilbild zu erhalten. Das erste Stereoteilbild ist das vorhandene RGB-Bild.
Es gibt bei dieser Operation einige Freiheitsgrade, beispielsweise kann man festlegen, wo der Nahpunkt im Stereobild liegen und wieviel Deviation das Stereobild im Gesamten besitzen soll. Per default könnte man den Nahpunkt z.B. in das Scheinfenster legen und die Deviation auf 1/30 der Bildbreite festlegen. Dies wäre dann gleichzeitg die Fernpunktdisparität.
Es wurde bereits erwähnt, dass die genaue Funktion, wie die Entfernung in der Datei abgespeichert ist, im allgemeinen unbekannt ist. Deshalb kann es durchaus vorkommen, dass im fertigen Stereobild der Raumeindruck verzerrt wirkt. In diesem Fall kann man den Tiefeneindruck durch nichtlineare Vorverzerrung der Tiefenmaske korrigieren (wer möchte: mit COSIMA-Parameter DepthMaskNonlin).
Wie werden Tiefenmasken erzeugt?
Eine Übersicht zur Gewinnung von Tiefenmasken gab es im stereo journal Heft 138 im Artikel über die Time-of-Flight-Technik. Hier nochmals eine kurze Zusammenfassung über die gängigen Varianten:
1.) Manuelles kreatives Erfinden einer Tiefenmaske.
2.) Berechnung der Tiefenmaske aus einem vorhandenen Stereobild (Stereo Mapping).
3.) Aktuelle Smartphones erzeugen bei Aufnahmen im Porträt-Mode ebenfalls Tiefenmasken, entweder durch Verrechnung der Bilder aus den verschiedenen Objektiven oder durch Messung mittels LIDAR-Sensor (neuere iPhones).
4.) Bei Makroaufnahmen mit hoher Tiefenunschärfe eignen sich Stackingverfahren.
5.) Und schließlich entstehen mit künstlicher Intelligenz sehr brauchbare Tiefenmasken aus einem Monobild, allerdings ist häufig noch eine Nachbearbeitung notwendig. Aktuelle Softwarepakete für diese Aufgabe sind u.a. LookingGlass, LeiaPix oder MiDaS.