¿Cómo funciona el relleno consciente del contenido?


En la próxima versión de Photoshop hay una función llamada Relleno consciente de contenido.

Esta característica llenará una selección de una imagen basada en la imagen circundante, hasta el punto de que puede generar arbustos y nubes mientras se mantiene sin problemas con la imagen circundante.

Véase http://www.youtube.com/watch?v=NH0aEp1oDOI para una vista previa de la función de Photoshop estoy hablando.

Mi pregunta es: ¿Cómo funciona esta característica algorítmicamente?

Author: Lazer, 2010-03-27

7 answers

Soy coautor del documento de PatchMatch anteriormente mencionado aquí, y lideré el desarrollo de la función de Relleno de Contenido original en Photoshop, junto con Ivan Cavero Belaunde y Eli Shechtman en el Laboratorio de Tecnologías Creativas, y Jeff Chien en el equipo de Photoshop.

El relleno consciente de contenido de Photoshop utiliza una variación altamente optimizada y multiproceso del algoritmo descrito en el documento PatchMatch, y un método más antiguo llamado "Finalización de video Espacio-tiempo."Ambos papeles son citado en la siguiente página de tecnología para esta característica:

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

Puede obtener más información sobre nosotros en las páginas web de Adobe Research.

 31
Author: danbgoldman,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-22 21:24:08

Supongo que para los agujeros más pequeños están agarrando parches de textura similar que rodean el área para llenarlo. Esto se describe en un artículo titulado "PatchMatch: A Randomized Correspondence Algorithm for Structural Image Editing" por Connelly Barnes y otros en SIGGRAPH 2009. Para agujeros más grandes pueden explotar una gran base de datos de imágenes con estadísticas o texturas globales similares, como se describe en "Finalización de escenas Usando Millones de fotografías". Si de alguna manera podría fusionar los dos juntos creo que debería funcionar como en el video.

 13
Author: Hao Wooi Lim,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-28 17:37:08

Existe un algoritmo muy similar para GIMP durante mucho tiempo. Se llama resynthesizer y probablemente deberías ser capaz de encontrar una fuente para ello (tal vez en el sitio del proyecto )

EDITAR
También hay una fuente disponible en el repositorio de ubuntu
Y aquí puedes ver procesando las mismas imágenes con GIMP: http://www.youtube.com/watch?v=0AoobQQBeVc&feature=related

 8
Author: Gacek,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-28 17:34:38

Bueno, no lo van a decir por las razones obvias. El nombre general de la técnica es "inpainting", puede buscar esto.

Específicamente, si nos fijamos en lo que Criminisi hizo mientras estaba en Microsoft http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.67.9407 y lo que Todor Georgiev hace ahora en Adobe http://www.tgeorgiev.net/Inpainting.html , usted será capaz de hacer una muy buena suposición. Una conjetura del 90%, diría yo, que debería ser suficiente.

 4
Author: AVB,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-27 21:37:53

Trabajo en un problema similar. Por lo que leí, usan "PatchMatch" o "muestreo de parches no paramétricos" en general.

PatchMatch: Un Algoritmo de Correspondencia Aleatorio para La Edición Estructural de Imágenes

 2
Author: Ross,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-09-06 05:57:03

El enfoque general se llama costura-tallado. El grupo de Ariel Shamir es responsable del trabajo seminal aquí, que fue presentado en SIGGRAPH 2007. Ver: http://www.faculty.idc.ac.il/arik/site/subject-seam-carve.asp

 1
Author: nav,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-09-06 10:17:54

Como conjetura (y eso es todo lo que sería) esperaría que haga algún análisis de frecuencia (algunos como una transformada de Fourier) de la imagen. Al mirar solo la imagen en el borde de la selección e ignorar el medio, podría extrapolarse nuevamente al medio. Si los diseñadores eligen las llanuras de color correctas y lo que no, deben ser capaces de generar una textura que se mezcla perfectamente con la imagen en los bordes.


Editar: mirando el último ejemplo en el video; si nos fijamos en la parte superior de la imagen original en cualquiera de los bordes se ve que la línea de selección se ejecuta a la derecha por un "espacio" en las nubes y que justo en el medio hay un "bache". Estos son el tipo de artefactos que esperaría ver si mi conjetura es correcta. (OTOH, también esperaría verlos es que estaba usando algún tipo de sudo-reflejo a través del límite de selección.)

 0
Author: BCS,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-28 01:15:40