Pixel 3 lernt, wie man die Tiefe von Fotos bestimmt

Im Hochformat auf Pixel-Smartphones können Sie professionell aussehende Fotos aufnehmen, die die Aufmerksamkeit auf das Motiv lenken und den Hintergrund verwischen. Letztes Jahr haben wir beschrieben, wie wir die Tiefe mit einer einzigen Kamera und einem Phasendetektions-Autofokus (Phase-Detection-Autofokus, PDAF) berechnen, der auch als Dual-Pixel-Autofokus bezeichnet wird . Dieser Prozess verwendete einen traditionellen Stereo-Algorithmus ohne Training. In diesem Jahr haben wir bei Pixel 3 maschinelles Lernen eingeführt, um die Tiefenbewertung zu verbessern und im Hochformat noch bessere Ergebnisse zu erzielen.


Links: Das in HDR + aufgenommene Originalbild. Auf der rechten Seite sehen Sie einen Vergleich der Aufnahmeergebnisse im Hochformat mit der Tiefe des herkömmlichen Stereo- und maschinellen Lernens. Lernergebnisse führen zu weniger Fehlern. Im traditionellen Stereo-Ergebnis wird die Tiefe vieler horizontaler Linien hinter dem Mann fälschlicherweise gleich der Tiefe des Mannes selbst geschätzt, wodurch sie scharf bleiben.

Ein kurzer Ausflug in das vorherige Material


Letztes Jahr haben wir beschrieben, dass der Porträtmodus ein neuronales Netzwerk verwendet, um Pixel, die zu den Bildern von Personen gehören, und ein Hintergrundbild zu trennen, und diese zweistufige Maske mit Tiefeninformationen ergänzt, die von PDAF-Pixeln abgeleitet sind. All dies wurde getan, um je nach Tiefe eine Unschärfe zu erzielen, die der einer professionellen Kamera nahe kommt.

Zur Arbeit macht der PDAF zwei leicht unterschiedliche Aufnahmen der Szene. Wenn Sie zwischen Bildern wechseln, können Sie sehen, dass sich die Person nicht bewegt und der Hintergrund sich horizontal bewegt - dieser Effekt wird als Parallaxe bezeichnet . Da die Parallaxe eine Funktion des Abstands eines Punkts von der Kamera und des Abstands zwischen zwei Blickwinkeln ist, können wir die Tiefe bestimmen, indem wir jeden Punkt in einem Bild mit dem entsprechenden Punkt in einem anderen vergleichen.


Die PDAF-Bilder links und in der Mitte sehen ähnlich aus, aber die Parallaxe ist im vergrößerten Fragment rechts zu sehen. Am einfachsten ist es an der runden Struktur im Zentrum der Vergrößerung zu erkennen.

Das Auffinden solcher Entsprechungen in PDAF-Bildern (diese Methode wird als Stereotiefe bezeichnet) ist jedoch eine äußerst schwierige Aufgabe, da sich die Punkte zwischen den Fotos sehr schwach bewegen. Darüber hinaus leiden alle Stereotechnologien unter Blendenproblemen. Wenn Sie die Szene durch eine kleine Blende betrachten, ist es nicht möglich, die Entsprechung von Punkten für Linien parallel zur Stereo-Grundlinie zu finden, dh die Linie, die die beiden Kameras verbindet. Mit anderen Worten, wenn Sie die horizontalen Linien auf dem dargestellten Foto (oder die vertikalen Linien in Bildern mit Hochformat) untersuchen, sehen alle Verschiebungen in einem Bild relativ zu einem anderen ungefähr gleich aus. Im Porträtmodus des letzten Jahres könnten all diese Faktoren zu Fehlern bei der Bestimmung der Tiefe und des Auftretens unangenehmer Artefakte führen.

Verbesserung der Tiefenbewertung


Im Pixel 3-Porträtmodus beheben wir diese Fehler, indem wir die Parallaxe von Stereofotos nur als einen von vielen Hinweisen in den Bildern betrachten. Beispielsweise scheinen Punkte, die weit von der Fokusebene entfernt sind, weniger scharf zu sein, und dies ist ein Hinweis auf die defokussierte Tiefe. Selbst wenn Sie ein Bild auf einem Flachbildschirm anzeigen, können Sie die Entfernung zu Objekten leicht abschätzen, da wir die ungefähre Größe alltäglicher Objekte kennen (dh Sie können die Anzahl der Pixel, die das Gesicht einer Person darstellen, verwenden, um abzuschätzen, wie weit es sich befindet). Dies wird ein semantischer Hinweis sein.

Die manuelle Entwicklung eines Algorithmus, der diese Spitzen kombiniert, ist äußerst schwierig. Mit MO können wir dies jedoch tun und gleichzeitig die Leistung der PDAF-Parallaxenspitzen verbessern. Insbesondere trainieren wir ein in TensorFlow geschriebenes Faltungsnetzwerk , das Pixel von PDAF als Eingabe empfängt und lernt, die Tiefe vorherzusagen. Diese neue, verbesserte Methode zur Schätzung der Tiefe basierend auf MO wird im Pixel 3-Porträtmodus verwendet.


Unser Faltungs-Neuronales Netzwerk empfängt PDAF-Bilder und liefert eine Tiefenkarte. Das Netzwerk verwendet eine Encoder-Decoder-Architektur mit zusätzlichen Sprungverbindungen und Restblöcken.

Neuronales Netzwerktraining


Um das Netzwerk zu trainieren, benötigen wir viele PDAF-Bilder und entsprechende hochwertige Tiefenkarten. Und da wir Tiefenvorhersagen benötigen, um im Hochformat nützlich zu sein, müssen die Trainingsdaten den Fotos ähneln, die Benutzer mit Smartphones aufnehmen.

Zu diesem Zweck haben wir ein spezielles Frankenfon-Gerät entwickelt, bei dem wir fünf Pixel 3-Telefone kombiniert und eine WiFi-Verbindung zwischen ihnen hergestellt haben, sodass wir gleichzeitig Fotos von allen Telefonen aufnehmen konnten (mit einem Unterschied von nicht mehr als 2 ms). Mit diesem Gerät haben wir hochwertige Tiefenkarten basierend auf Fotos berechnet, wobei sowohl Bewegung als auch Stereo aus mehreren Winkeln verwendet wurden.


Links: Ein Gerät zum Sammeln von Trainingsdaten. In der Mitte: Ein Beispiel für den Wechsel zwischen fünf Fotos. Die Kamerasynchronisation ermöglicht die Berechnung der Tiefe in dynamischen Szenen. Rechts: Gesamttiefe. Punkte mit geringer Sicherheit, bei denen der Vergleich von Pixeln in verschiedenen Fotos aufgrund der Schwäche der Texturen ungewiss war, sind schwarz gestrichen und werden im Training nicht verwendet.

Die mit diesem Gerät erhaltenen Daten waren aus folgenden Gründen ideal für das Training des Netzwerks:

  • Fünf Gesichtspunkte garantieren das Vorhandensein einer Parallaxe in mehrere Richtungen, was uns vor dem Problem der Blende bewahrt.
  • Die Position der Kameras stellt sicher, dass jeder Punkt im Bild in mindestens zwei Fotos wiederholt wird, wodurch die Anzahl der Punkte verringert wird, die nicht übereinstimmen können.
  • Die Basislinie, dh der Abstand zwischen den Kameras, ist größer als der des PDAF, was eine genauere Schätzung der Tiefe garantiert.
  • Die Kamerasynchronisation ermöglicht die Berechnung der Tiefe in dynamischen Szenen.
  • Die Portabilität des Geräts garantiert die Möglichkeit, Fotos in der Natur aufzunehmen und Fotos zu simulieren, die Benutzer mit Smartphones aufnehmen.

Trotz der Idealität der mit diesem Gerät erhaltenen Daten ist es immer noch äußerst schwierig, die absolute Tiefe von Szenenobjekten vorherzusagen - jedes gegebene PDAF-Paar kann verschiedenen Tiefenkarten entsprechen (alles hängt von den Eigenschaften der Objektive, der Brennweite usw. ab). Um all dies zu berücksichtigen, schätzen wir die relative Tiefe der Szenenobjekte, was ausreicht, um im Hochformat zufriedenstellende Ergebnisse zu erzielen.

Wir kombinieren das alles


Das Schätzen der Tiefe mithilfe von MOs auf Pixel 3 sollte schnell funktionieren, damit Benutzer nicht zu lange auf Hochformatergebnisse warten müssen. Um jedoch gute Tiefenschätzungen mit kleiner Defokussierung und Parallaxe zu erhalten, müssen Sie die neuronalen Netze des Fotos in voller Auflösung speisen. Um schnelle Ergebnisse zu gewährleisten, verwenden wir TensorFlow Lite , eine plattformübergreifende Lösung zum Starten von MO-Modellen auf Mobilgeräten und eingebetteten Geräten sowie eine leistungsstarke Pixel 3-GPU, mit der Sie die Tiefe ungewöhnlich großer Eingabedaten schnell berechnen können. Anschließend kombinieren wir die erhaltenen Tiefenschätzungen mit Masken aus unserem neuronalen Netzwerk, das Personen unterscheidet, um die schönsten Ergebnisse der Aufnahme im Hochformat zu erzielen.

Probieren Sie es selbst aus


In der Google Camera App Version 6.1 und höher sind unsere Tiefenkarten in Bilder im Hochformat eingebettet. Dies bedeutet, dass wir den Google Fotos-Tiefeneditor verwenden können , um den Grad der Unschärfe und den Fokuspunkt nach dem Aufnehmen eines Bildes zu ändern. Sie können auch Programme von Drittanbietern verwenden, um Tiefenkarten aus JPEG zu extrahieren und sie selbst zu studieren. Sie können auch ein Album aus dem Link entnehmen, das Karten mit relativer Tiefe und entsprechende Bilder im Hochformat zeigt, um den traditionellen Stereo- und MO-Ansatz zu vergleichen.

Source: https://habr.com/ru/post/de433600/


All Articles