NVIDIA Image inpainting: Magische Retusche?
Künstliche Intelligenz, Machine learning/Deep learning … sind Dinge, die noch vor wenigen Jahren für uns Anwender relativ theoretisch klangen: Statt des herkömmlichen Prozesses der Programmierung füttert man neuronale Netze mit vielen, vielen Daten und trainiert diese so für verschiedene Anwendungszwecke. NVIDIA (ja, genau, der Grafikkartenhersteller) hat vor zwei Wochen eine weitere interessante Anwendung vorgestellt: NVIDIA Image inpainting.
Praktische Machine learning-Resultate sind jetzt schon Teil meines/unseres Alltags: So findet man bei Adobe Stock eine automatische Bilderkennung und Verschlagwortung vor, und Such-Optionen gestattet das Eingrenzen auf Bilder mit geringer Schärfentiefe oder nach der „Lebhaftigkeit“ der Bildfarben. Dasselbe gibt es mit Excire auch ohne notwendigen Cloud-Upload als Lightroom-Plug-in für den heimischen Desktop –, und es ist teilweise sogar leistungsfähiger (ich berichtete).
Neue Algorithmen zur beinahe magischen Bildvergrößerung wie in Sci-Fi-Serien basieren ebenfalls auf Machine learning (mehr Infos hier). Und die funktionieren ganz ähnlich wie das neu vorgestellte „IMage inpainting“ von Nvidia.
Inhaltsbasiertes Füllen
Als Photoshop-Anwender kennen Sie sicher das Inhaltsbasierte Füllen: Sie wählen einen Bereich des Bildes aus und Photoshop füllt diesen automatisch mit anderen Teilen des Bildes. Das funktioniert erstaunlich oft sehr gut – die Farbanpassung stimmt, die Details richten sich passend zueinander aus … aber: Der Algorithmus erkennt (anders als der Name „inhaltsbasiert“ vermuten ließe) keine Bildinhalte – ihm geht es nur um die Tonwerte und ein wenig Strukturanpassung. Wo wir beispielsweise einen Dalmatiner sehen, „erkennt“ inhaltsbasiertes Füllen nur schwarze Flecken auf einem weißen Untergrund. Würden Sie hier einfach einen Teil kantenübergreifend inhaltsbasiert füllen lassen, würden hier zwar passende Pixel eingefügt, aber die Form des Hundes könnte verloren gehen.
Wenn Sie sich dieser Einschränkung bewusste sind, ist das inhaltsbasierte Füllen eine tolle Möglichkeit, schnell Elemente aus einem Bild zu retuschieren und eine gute Ausgangsbasis für die weitere Retusche zu erhalten.
NVIDIA Image inpainting
Die im Paper “Image Inpainting for Irregular Holes Using Partial Convolutions“ von NVIDIA vorgestellte Technologie soll dieses Problem lösen. Die Bildinhalte werden erkannt und gegebenenfalls fehlende Elemente aufgrund des angelernten „Wissens“ ergänzt. Wenn Sie also zum Beispiel ein Auge aus dem Bild retuschieren, würde das Image Inpainting nicht nur das Gesicht erkennen, sondern auch, dass dort eigentlich ein Auge hingehört und würde dieses „kreativ“ ergänzen. Das sehen Sie sehr schön in dieser Youtube-Demo des aktuellen Standes, was zunächst noch nach normalem, inhaltsbasierten Füllen aussieht, wird zunehmend eindrucksvoller:
[arve url=“https://www.youtube.com/embed/gg0F5JjKmhA“ description=“NVIDIA Image inpainting“ /]Im Falle der Gesichtsretusche ist es schon beeindruckend, wie scheinbar Augen, Augenbrauen, Nasen und so weiter quasi aus dem gelernten Bildbestand eingefügt und überblendet werden. Sie sehen aber auch, wo aktuell noch die Einschränkungen liegen: Dem Algorithmus fehlt das Gespür für Schönheit, und so sehen beispielsweise die eingefügten Augen doch ziemlich gruselig aus. 😉
Aber Sie sehen, wohin die Reise geht. Denn alles in allem ist das im Video zu sehende doch sehr beeindruckend. „Inhaltsbasiert füllen 2.0“ sozusagen.
Beste Grüße,
Olaf