26

Nella prossima versione di Photoshop è presente una funzionalità denominata riempimento Content-Aware.Come funziona il caricamento Content-Aware?

Questa funzione consente di riempire una selezione di un'immagine in base all'immagine circostante, al punto che può generare cespugli e nuvole pur essendo ininterrotta con l'immagine circostante.

Vedere http://www.youtube.com/watch?v=NH0aEp1oDOI per un'anteprima della funzione Photoshop di cui sto parlando.

La mia domanda è: Come funziona questa funzione in modo algoritmico?

+12

La mia teoria? Si collega a Google Earth/Maps per determinare di cosa hai scattato una foto, quindi trascina verso il basso i dati dell'immagine circostante e li inserisce nell'immagine originale :) – Tim

+8

È magico. Dimostra che ho torto. –

+0

Risolvere questo: http://cs.stackexchange.com/questions/23794/interpolation-optimization-problem potrebbe essere utilizzato facilmente per "Inpainting". – Royi

risposta

26

Sono un co-autore del documento PatchMatch già citato qui, e ho guidato lo sviluppo della funzione di riempimento in base al contenuto originale in Photoshop, insieme a Ivan Cavero Belaunde e Eli Shechtman nelle Tecnologie Creative Lab e Jeff Chien nel team di Photoshop.

Il Content-Aware Fill di Photoshop utilizza una variazione multithread altamente ottimizzata dell'algoritmo descritto nel documento PatchMatch e un metodo precedente chiamato "SpaceTime Video Completion". Entrambi i giornali sono citati nella seguente pagina della tecnologia per questa funzione:

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

È possibile saperne di più su di noi sulle pagine web di Adobe di ricerca.

+2

Grazie per aver condiviso alcune informazioni preziose. Questa dovrebbe essere la risposta corretta. –

+0

Il collegamento è rotto. Qualcuno può modificare con il nuovo link? – 5argon

8

C'è un algoritmo molto simile per GIMP per un tempo piuttosto lungo. Si chiama resynthesizer e probabilmente si dovrebbe essere in grado di trovare una fonte per esso (forse alla project site)

EDIT
V'è anche fonte disponibile al ubuntu repository
E qui si può vedere l'elaborazione delle stesse immagini con GIMP: http://www.youtube.com/watch?v=0AoobQQBeVc&feature=related

+0

L'ultima volta che ho guardato il resynthesizer (versione 0.13, penso), era dietro lo stato dell'arte (si veda ad esempio l'opera di Criminisi citata nella mia risposta) e quindi piuttosto lento. Certo, è ancora il meglio di ciò che è disponibile gratuitamente. – AVB

0

Come ipotesi (e questo è tutto ciò che sarebbe) mi aspetto che faccia qualche analisi di frequenza (alcuni come una trasformata di Fourier) dell'immagine. Osservando solo l'immagine sul bordo della selezione e ignorando il centro, potrebbe quindi estrapolare di nuovo nel mezzo. Se i designer scelgono le pianure colore corrette e quali no, dovrebbero essere in grado di generare una texture che si fonde perfettamente con l'immagine ai bordi.


modifica: guardando l'ultimo esempio nel video; se osservate la parte superiore dell'immagine originale su entrambi i bordi, vedete che la linea di selezione scorre proprio lungo una "spaccatura" tra le nuvole e che proprio nel mezzo c'è un "bernoccolo". Questi sono il tipo di artefatti che mi aspetterei di vedere se la mia ipotesi è corretta. (OTOH, mi aspetto anche di vederli è che stava usando una sorta di mirroring sudo attraverso il limite di selezione.)

+1

Le persone hanno utilizzato trasformate di tipo Fourier per fare queste cose negli anni '80. Le cose sono successe da allora, anche se in alcune condizioni questo ti darà una buona ipotesi iniziale. – AVB

+0

AB: Se dovessi indovinare, direi che sta facendo la stessa cosa di base, solo una versione più avanzata di esso. – BCS

13

Immagino che per i fori più piccoli stiano afferrando patch con texture simili che circondano l'area per riempirlo. Questo è descritto in un documento intitolato "PatchMatch: A Randomized Correspondence Algorithm for Structural Image Editing" di Connelly Barnes e altri in SIGGRAPH 2009. Per buco più grande possono sfruttare un ampio database di immagini con statistiche o texture globali simili, come descritto in "Scene Completion Using Millions of Photographs". Se in qualche modo riuscissero a fondere i due insieme, penso che dovrebbe funzionare come nel video.

+0

Ciao, potresti aiutarci: http://cs.stackexchange.com/questions/23794/interpolation-optimization-problem Grazie. – Royi

1

L'approccio generale è chiamato cucitura carving. Il gruppo di Ariel Shamir è responsabile del lavoro seminale qui presentato a SIGGRAPH 2007.Vedere: http://www.faculty.idc.ac.il/arik/site/subject-seam-carve.asp

+3

Per la cronaca, il seam-carving NON è un content-aware fill. È un algoritmo più semplice che consente di ridimensionare l'immagine verticalmente e orizzontalmente senza distorcere le caratteristiche importanti. – erjiang

Problemi correlati