26

In der kommenden Version von Photoshop gibt es eine Funktion namens Content-Aware Fill.Wie funktioniert Content-Aware?

Diese Funktion füllt eine Auswahl eines Bildes basierend auf dem umgebenden Bild - bis zu dem Punkt, wo es Büsche und Wolken erzeugen kann, während es nahtlos mit dem umgebenden Bild ist.

Eine Vorschau der Photoshop-Funktion, über die ich spreche, finden Sie unter http://www.youtube.com/watch?v=NH0aEp1oDOI.

Meine Frage ist: Wie funktioniert diese Funktion algorithmisch?

+12

Meine Theorie? Es hängt mit Google Earth/Maps zusammen, um zu bestimmen, was Sie aufgenommen haben, und zieht dann die umgebenden Bilddaten herunter und fügt sie in Ihr Originalbild ein. – Tim

+8

Es ist Magie. Beweise mir das Gegenteil. –

+0

Lösung: http://cs.stackexchange.com/questions/23794/interpolation-optimization-problem könnte leicht für "Inpainting" verwendet werden. – Royi

Antwort

26

Ich bin ein Co-Autor des PatchMatch Papiers vorher hier erwähnt, und ich führte die Entwicklung der ursprünglichen Content-Aware Fill-Funktion in Photoshop zusammen mit Ivan Cavero Belaunde und Eli Shechtman in der Creative Technologies Lab und Jeff Chien im Photoshop-Team.

Photoshop Content-Aware Fill verwendet eine hoch optimierte Multithread-Variation des im PatchMatch-Dokument beschriebenen Algorithmus und eine ältere Methode namens "SpaceTime Video Completion". Beiden Papiere sind auf der folgenden Seite Technologie für diese Funktion zitiert:

http://www.adobe.com/technology/projects/content-aware-fill.html

Sie können mehr über uns auf der Adobe Forschung Webseiten erfahren.

+2

Vielen Dank für Ihre wertvollen Informationen. Dies sollte die richtige Antwort sein. –

+0

Der Link ist unterbrochen. Kann jemand mit dem neuen Link bearbeiten? – 5argon

4

Nun, sie werden aus den offensichtlichen Gründen nicht sagen. Der allgemeine Name für die Technik ist "Inpainting", Sie können dies nachschlagen.

Speziell, wenn Sie sehen, was Criminisis während in Microsoft http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.67.9407 gemacht und was Todor Georgiev jetzt bei Adobe http://www.tgeorgiev.net/Inpainting.html macht, können Sie eine sehr gute Vermutung machen. Eine 90% -Rate, würde ich sagen, die sollte gut genug sein.

8

Es gibt sehr ähnlichen Algorithmus für GIMP für eine ziemlich lange Zeit. Es wird resynthesizer genannt und wahrscheinlich sollte man für sie eine Quelle der Lage zu finden (vielleicht am project site)

EDIT
Es ist auch Quelle am ubuntu repository
Und hier können Sie die gleichen Bilder sehen Verarbeitung mit GIMP: http://www.youtube.com/watch?v=0AoobQQBeVc&feature=related

+0

Als ich zum letzten Mal Resynthesizer (Version 0.13, glaube ich) angeschaut habe, war es hinter dem Stand der Technik (siehe z. B. Criminisis Arbeit in meiner Antwort zitiert) und daher ziemlich langsam. Natürlich ist es immer noch das Beste von dem, was kostenlos erhältlich ist. – AVB

0

Als Vermutung (und das ist alles, was es wäre) würde ich erwarten, dass es eine Frequenzanalyse (einige wie eine Fourier-Transformation) des Bildes. Betrachtet man nur das Bild am Rand der Auswahl und ignoriert die Mitte, könnte es dann wieder in die Mitte extrapolieren. Wenn die Designer die richtigen Farbflächen wählen und was nicht, sollten sie in der Lage sein, eine Textur zu erzeugen, die nahtlos in das Bild an den Rändern übergeht.


edit: Blick auf das letzte Beispiel im Video; Wenn Sie oben auf dem Originalbild auf einer der beiden Kanten sehen, sehen Sie, dass die Auswahllinie genau in einer "Lücke" in den Wolken verläuft und dass in der Mitte genau dort ein "Buckel" ist. Dies sind die Artefakte, die ich erwarten würde, wenn meine Vermutung richtig ist. (OTOH, würde ich auch erwarten, sie zu sehen ist es war eine Art von Sudo-Spiegelung über die Auswahl Grenze.)

+1

Die Leute verwendeten Fourier-ähnliche Transformationen, um diese Dinge in den 80ern zu tun. Dinge sind seither passiert, obwohl Sie unter gewissen Umständen eine gute erste Schätzung erhalten. – AVB

+0

AB: Wenn ich raten müsste, würde ich immer noch sagen, dass es die gleiche grundlegende Sache ist, nur eine erweiterte Version davon. – BCS

13

Ich vermute, dass für die kleineren Löcher greifen sie ähnlich strukturierte Patches um den Bereich zu greifen füllen Sie es aus. Dies wird in einem Papier mit dem Titel "PatchMatch: A Randomized Correspondence Algorithm for Structural Image Editing" von Connelly Barnes und andere in SIGGRAPH 2009 beschrieben. Für größere Löcher können sie eine große Datenbank von Bildern mit ähnlichen globalen Statistiken oder Textur, wie in "Scene Completion Using Millions of Photographs" beschreiben. Wenn sie die beiden irgendwie zusammenschmelzen könnten, denke ich, dass es wie im Video funktionieren sollte.

+0

Hallo, könnten Sie damit helfen: http://cs.stackexchange.com/questions/23794/interpolation-optimization-problem Vielen Dank. – Royi

1

Der allgemeine Ansatz ist naht Schnitzen genannt. Ariel Shamirs Gruppe ist verantwortlich für die bahnbrechende Arbeit hier, die in SIGGRAPH 2007 vorgestellt wurde.Siehe: http://www.faculty.idc.ac.il/arik/site/subject-seam-carve.asp

+3

Für die Aufnahme ist Naht-Carving nicht zufrieden stellende Füllung. Es ist ein einfacherer Algorithmus, mit dem Sie das Bild vertikal und horizontal skalieren können, ohne wichtige Funktionen zu verzerren. – erjiang