¿Cómo puedo encontrar fotos duplicadas en una gran cantidad de datos (decenas a cientos de conciertos)?

16

¿Alguien puede sugerir una buena utilidad de detección de duplicación de fotos que funcione bien cuando estoy tratando con aproximadamente 100 gb de datos (recopilados a lo largo de los años)?

Preferiría algo que funcione en Ubuntu.

¡Gracias por adelantado!

Editar: ¿Existe una herramienta que me ayudará a reorganizar mi colección y eliminar duplicados, una vez que se hayan detectado?

Edit2: La parte difícil es descubrir qué hacer una vez que tengo la salida que consta de miles de archivos duplicados (como la salida de fdupes).

No es obvio si todavía puedo eliminar de forma segura un directorio (es decir, si un directorio puede contener archivos únicos), qué directorios son subconjuntos de otros directorios, etc. Una herramienta ideal para este problema debería ser capaz de determinar la duplicación de archivos y luego proporcionar un medio poderoso para reestructurar sus archivos y carpetas. Hacer una fusión mediante hardlinking (como lo hace fslint) realmente libera espacio en disco, pero no resuelve el problema subyacente que dio origen a la duplicación, es decir, una organización de archivos / directorios incorrecta.

Fasterz
fuente
También vea estas preguntas relacionadas en AskUbuntu , unix.stackexchange y superusuario .
BioGeek

Respuestas:

7

ImageMagick al rescate. Creo que el primer paso para cualquier solución es reducir el tamaño de su colección. Si desea comparar las fotos por su contenido , especialmente cuando algunas son versiones ligeramente modificadas una de otra, un buen comienzo es reducirlas a miniaturas y luego comparar las miniaturas. Esto es particularmente útil cuando desea encontrar fotos casi parecidas y quiere "ignorar" diferencias sin importancia durante la comparación.

Mi sugerencia es, en un nivel alto, que usted:
1- Use la herramienta de mogrificación de ImageMagick para reducir las fotos a miniaturas. Esto llevará algún tiempo, pero hará que los pasos de comparación reales sean mucho más rápidos y precisos.
2- Utilice la herramienta de comparación de ImageMagick que le permite establecer un umbral para la comparación, es decir, le permite encontrar fotos que son 85% iguales. Desearía hacer un experimento controlado para encontrar el valor umbral que más le guste.

cody
fuente
Realmente me gusta esta idea de hacer miniaturas primero. ¿Qué hace una vez que ha encontrado los duplicados? ¿Solo muestra una lista? Tengo 10 de miles de duplicados y una buena GUI para ayudar a resolverlos sería muy útil.
Fasterz
2
Como usa Ubuntu, automáticamente tiene acceso a una gran cantidad de herramientas especializadas, cada una de las cuales resuelve una tarea muy específica, como las 2 tareas que mencioné. Es un juego de Lego, puedes hacer lo que quieras, solo necesitas armar las piezas. Técnicamente, alimenta 2 fotos a la herramienta 'comparar' y le dirá cuánto se parece una a la otra. Una forma de resolver su problema es agrupar todas las fotos similares en carpetas para que pueda revisarlas y filtrar los falsos positivos. Luego ejecuta 'comparar' nuevamente en los falsos positivos y repite el proceso hasta que todos estén en sus lugares correctos.
cody
4

El visualizador / organizador de fotos de código abierto Geeqie tiene una poderosa función Buscar duplicados . Puede usar varias estrategias diferentes para encontrar duplicados:

  • Nombre de archivo (mayúsculas o minúsculas)
  • Tamaño del archivo
  • Fecha de archivo
  • Dimensiones de la imagen
  • Suma de comprobación MD5.
  • Contenido de imagen similar (a varios umbrales)

Esto proporciona una lista de resultados que puede incluir miniaturas para que pueda confirmar manualmente.

Esta será probablemente lenta durante miles de archivos, pero creo que sólo usarla y dejarla funcionar durante unos pocos días o lo que es probablemente menos esfuerzo general que encontrar o hacer algo a medida para el caso - a menos que la suma de comprobación partido es todo lo que necesita.

mattdm
fuente
Eso suena bien. ¿Qué hace una vez que ha encontrado los duplicados? ¿Solo muestra una lista? Tengo 10 de miles de duplicados y una buena GUI para ayudar a resolverlos sería muy útil.
Fasterz
Los muestra en una ventana GUI.
mattdm
3

¿Hay una pequeña utilidad llamada "fdupes" que puede hacer lo que desea?

También hay otra utilidad llamada "fslint" que quizás también quieras probar. (Este tiene una GUI).

Miguel
fuente
Acabo de probar fslint en un conjunto más pequeño de imágenes (unos cuantos conciertos más o menos) y es frustrante que simplemente se quede allí y gire. No hay indicador de progreso, tiempo restante estimado, nada.
Fasterz
1
Estas herramientas parecen buscar archivos idénticos. Incluso una imagen idéntica (píxel por píxel) puede tener diferentes contenidos de archivo. Supongo que desea hacer coincidir no solo la misma imagen similar, sino también hacerlo en diferentes formatos y tamaños, incluidos los cultivos y otros procesamientos que haya realizado, como para recopilar todas las variaciones de la misma foto en una directorio. Esta sería una comparación suave de imágenes que tendrían un factor de coincidencia de confianza y podrían hacer coincidir diferentes fotos de la misma escena.
Skaperen
@Skaperen Lo que sugieres es genial, pero ¿existen tales herramientas para Ubuntu? He visto uno mencionado en alguna parte para Windows, pero parecía tener una interfaz horrible ... etc.
Fasterz
ImageDupeless es una aplicación de Windows que capturará fotos que se parecen, pero que tienen algunas diferencias. Capturará algunas rotaciones, cultivos, cambios de tamaño, cambios de tinte de color, marcas de agua, etc., debe escanear su biblioteca y decirle cuánta diferencia acepta, y felizmente le mostrará los archivos. PERO sería extraordinariamente engorroso para cientos de archivos, y miles de archivos serían terribles. Yo también estoy buscando un Linux equivalente a ImageDupeless. Una aplicación que hace wavelets o alguna otra magia de imágenes para saber cuándo las imágenes son similares.
Therealstubot
Lea las opciones de la página de manual para fdupes: hay una opción para eliminar los engaños. askubuntu.com/a/476732
rrauenza
1

dupeGuru Picture Edition es un buscador de imágenes duplicadas personalizable para Windows, Mac OS X y Linux.

Hay algunas versiones de dupeGuru (ediciones estándar, de música e imagen), y la edición de imagen le permite encontrar imágenes visualmente similares a través de un algoritmo de comparación de bloqueo de mapa de bits , entre otros métodos (como la marca de tiempo de imagen original EXIF, o los archivos son simplemente idénticos) .

Tiene una variedad de otras características útiles como carpetas excluidas, soporte para bibliotecas iPhoto / Aperture y una considerable personalización de cómo detecta duplicados y qué hace con ellos.

drfrogsplat
fuente
0

¿Qué quieres decir con fotos duplicadas? ¿Te refieres a los archivos que son idénticos, digamos que se copiaron una o dos veces más? o te refieres a fotos que "parecen" iguales.

Si te refieres a archivos idénticos, puedes usar 'shasum' en todos los archivos, luego ordenar los resultados y encontrar las líneas únicas con 'uniq' y ejecutar un 'diff' para ver qué se ha eliminado. Todo fácil en un shell de Ubuntu.

Pat Farrell
fuente
Nada de esto es fácil o conveniente. Los productos mencionados a continuación ya harán un mejor trabajo que simplemente calcular SHA. ¿Ahora hay herramientas de Unix que buscarán similitud de imagen? Si es así, eso sería increíble.
Fasterz
Fácil y conveniente para alguien acostumbrado a usar las herramientas de Unix, que es lo que son uniq, sort, diff, shasum, etc. Pero estoy de acuerdo en que si no los usa regularmente, pueden ser difíciles de usar. No sé de nada que pueda hacer "parece" Todo lo que he visto, incluso en Aperture y Lightroom, hacer un archivo idéntico, que en realidad es solo un md5 o shasum
Pat Farrell
Regularmente uso herramientas Unix y encuentro esta respuesta algo tonta. Primero, hacer SHA a ciegas es lento, cuando un tamaño de archivo comparizon resuelve las cosas. En segundo lugar, SHA o MD5 pueden colisionar, por lo que las comparaciones de SHA por sí solas no son suficientes. Si tiene en cuenta estos dos, entonces llega a lo que hace fdupes.
Fasterz
Además, una vez que ha conjurado correctamente el conjuro que hace esto, la salida aún no es muy útil. En el mejor de los casos, obtienes la salida de fdupes, que es solo un volcado de archivos similares. En mi caso, tengo 10 de miles y es muy difícil revisar esos datos para ver cómo puedo eliminar los duplicados.
Fasterz
1
Los SHA chocan en teoría, pero no en la práctica. Sí, lleva una eternidad. Nada de lo que va a funcionar será rápido. Pero deberías poder comenzar y volver en un día o dos. Es solo una sugerencia, no voy a entrar en una guerra por eso.
Pat Farrell
0

Hay una aplicación llamada "bleachbit", que encuentra archivos duplicados por tamaño, nombre y otros filtros. Puede instalarlo desde el administrador de paquetes synapctic en ubuntu.

chuisco
fuente
¿Qué hace una vez que ha encontrado los duplicados? ¿Solo muestra una lista? Tengo 10 de miles de duplicados y una buena GUI para ayudar a resolverlos sería muy útil.
Fasterz