Herramienta para desenfocar automáticamente a las personas en las fotos [cerrado]


11

Estoy buscando una manera de hacer que las personas en las fotos sean irreconocibles. Cada vez que pongo fotos (generalmente de ciudades y paisajes) en mi álbum en línea, primero hago que todas las personas reconocibles sean irreconocibles, ya que siento que es una cuestión básica de cortesía no publicar fotos de extraños.

Entonces, básicamente quiero hacer más o menos lo que Google hace con las imágenes de StreetView. Actualmente, estoy haciendo esto manualmente para cada foto, dibujando selecciones de elipse alrededor de todas las caras en Gimp y luego usando un filtro de desenfoque en la selección.

¿Existe alguna herramienta que me permita desenfocar más o menos con un solo clic? Idealmente, ¿mostrándome todas las caras reconocidas en el primer paso y luego permitiéndome anular la selección de aquellas que no quiero que se difuminen?

(Desdibujar otros detalles personales, como las matrículas de los automóviles, también sería bueno, pero mi objetivo principal es encontrar una herramienta para difuminar las caras, ya que las personas aparecen con frecuencia en las fotos, mientras que el número total de placas legibles es mínimo . por otra parte, estoy en busca de herramientas que desenfoque a cabo las caras. Pixelation puede ser un retroceso, pero no se integra con el resto de la imagen tan bien como desenfoque.)

He estado buscando tales herramientas por un tiempo, pero todo lo que encuentro parece pertenecer a una de tres categorías:

  • Está destinado a ejecutarse en teléfonos inteligentes en lugar de en computadoras de escritorio, como esta aplicación .
  • Está destinado a videos, como lo indican preguntas similares como esta o esta , o este artículo .
  • Está basado en la web, por lo tanto, todas las fotos deben cargarse en el servidor de alguien para su procesamiento, y se requiere una conexión a Internet al editar las fotos, como con este servicio o este editor .

Estoy buscando exclusivamente software que se ejecute en Windows y / o Ubuntu sin la necesidad de una conexión a Internet (es decir, no hay herramientas en la nube que me obliguen a cargar todas las fotos para su procesamiento). Una herramienta gratuita sería buena, pero una herramienta de pago sigue siendo mejor que ninguna herramienta.

Respuestas:


2

He encontrado para The GIMP el complemento de detección de rostros de 2010 (no hay garantía de que todavía funcione):

imagen

De lo contrario, es posible que deba implementar su propio software. En este caso ver los siguientes enlaces:

software de detección de rostros
Microsoft Research Face SDK Beta
Intel Perceptual Computing SDK

De especial mención es OpenCV . Consulte Detectar imágenes de rostro y luego recorte automático para ver un ejemplo con Python.


1
Desafortunadamente, no pude obtener el complemento para compilar. Instalé un montón de paquetes necesarios más allá de los indicados en el artículo y actualicé la llamada para cvHaarDetectObjectsque coincida con la API actual (¿no compatible con versiones anteriores?) Con un parámetro adicional, pero ahora gcc falla en una referencia indefinida lrint.
O Mapper

lrint "redondea al entero más cercano" y se define como "long int lrint (double x)". Debería ser fácil de codificar.
harrymc

Aceptaré esta respuesta por ahora, ya que es la más útil y parece prometedora. Desafortunadamente, el sistema de recompensas de SU no me da el tiempo debido para probar suficientemente las diversas sugerencias para determinar su posible utilidad antes de que expire la recompensa ... y tener un trabajo ;-) En otras palabras, muchas gracias, aunque podría agregar algunas observaciones adicionales más adelante.
O Mapper

Hmm Cuando agrego una definición para lrint, el compilador se queja de definiciones en conflicto para lrint, cuando no agrego una, se queja de lrintser una referencia indefinida.
O Mapper

Encuentre la definición en cuestión y base su encabezado de función en ella.
harrymc

5

Si está de acuerdo con las soluciones de "algunos ensamblajes necesarios", intente usar "facedetect" (que simplemente usa OpenCV) e ImageMagick. Hay un ejemplo en la siguiente página:

http://www.thregr.org/~wavexx/hacks/facedetect/#blurring-faces-within-an-image

Un par de notas sobre el ejemplo:

  • Utiliza pixelación, pero puede reemplazar fácilmente los operadores de "escala" con un simple "-blur 0x100".
  • Cada cara se procesa de manera independiente en el ejemplo, que es exactamente lo que necesita: puede usar "mostrar-recortar GEOMETRÍA" para mostrar la cara antes del proceso de desenfoque. Con "zenity" o algunas secuencias de comandos de shell es relativamente sencillo preguntar si se debe continuar con el desenfoque o no.

Sin embargo, ningún software de detección de rostros es 100% preciso. Obtendrá falsos positivos y errores. En particular, el perfil predeterminado de OpenCV definitivamente no es el mejor en el mercado sin capacitación adicional. Los falsos positivos se solucionan fácilmente con el método que describe, pero los errores son una historia diferente. Tener que revisar todas las fotos manualmente puede no ahorrarle mucho tiempo. Supongo que depende de tus exigencias de precisión.

Para mostrar la detección superpuesta, use el indicador "-o" en una muestra de sus imágenes y vea si la tasa de detección es adecuada para sus necesidades.


2

La mejor respuesta actual parece ser:

https://github.com/openalpr/openalpr

Desafortunadamente, esta es solo una biblioteca de software y solo para detección . Tendría que integrar esto en el software que borró.

Tengo una necesidad similar, así que podría intentarlo, pero mis habilidades de programación son un poco ... oxidadas.

Google tuvo el mismo problema. Publicaron su investigación aquí, pero no su código: http://static.googleusercontent.com/media/research.google.com/en//archive/papers/cbprivacy_iccv09.pdf


Hm, C ++ no es ninguno de mis lenguajes principales, y actualmente no tengo tiempo para experimentar, pero un poco más tarde (¿semanas? ¿Meses?), Podría pensar en probar esto para practicar. Sin embargo, desde el archivo léame, parece que esto es solo para placas, no para caras.
O Mapper

0

Si está más interesado en el desarrollo de aplicaciones, puede intentar usar la API de Cloudinary. Aquí hay más información sobre eso: http://cloudinary.com/blog/automatic_face_blurring_in_images_made_easy

No pude encontrar ninguna aplicación de software que lo haga automáticamente. Puede haber algunos complementos para Photoshop o Gimp.


Lo siento, ya me había vinculado a ese artículo en mi pregunta como un ejemplo de lo que no estoy buscando. No quiero subir mis fotos a algún servicio web porque la transferencia lleva años y porque quién sabe qué pasará con las fotos una vez en los servidores de esa compañía. Si no hay nada independiente, seguiré buscando algún complemento de Gimp.
O Mapper

@ORMapper: lo siento, debo omitir eso. háganos saber si encuentra alguna aplicación.
Alex
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.