¿Existe un software de análisis de fotografías que clasifique previamente las imágenes identificando posibles problemas técnicos?

Hace poco me fui de vacaciones y tomé cerca de 1000 fotografías. Como siempre hay algunos buenos, malos, borrosos, etc.

Para acelerar el posprocesamiento, me preguntaba si existe algún software que pueda "preseleccionar" un lote de fotos e identificar fotos que están sobreexpuestas, subexpuestas, borrosas y otras características que pueden identificar fotografías potencialmente menos deseables. La idea es que mediante la preselección, debería hacer un trabajo rápido de clasificar esos grupos para encontrar los buenos y eliminar el resto. Entonces puedo pasar más tiempo mirando los que realmente importan.

Entiendo que cada fotografía es única y que hay algunas fotografías geniales que rompen todas las reglas generales, pero pensé que esta podría ser una forma rápida de acelerar mi flujo de trabajo.

Edité la pregunta porque tenemos varias otras sobre el software de análisis de fotografías simplemente para informar sobre metadatos en conjunto. Esto es diferente....
Nunca había visto esto, pero es una gran idea. Tal vez podría implementarse como un complemento de Lightroom o Bibble y hacer la selección en la importación.
Gracias por editar el título para mayor claridad. Está justo en el punto con lo que estaba pensando.
Interesante pregunta. 1,000 imágenes es bastante factible manualmente, y el globo ocular MK I funcionará mejor que cualquier software el 99% del tiempo.
¿Por qué incluso esperar para hacerlo en el posprocesamiento? Hay cámaras (estoy pensando en la Nikon 1, pero estoy seguro de que hay otras) que tomarán una secuencia de fotos y elegirán la 'mejor' para ti.
Por lo que vale (¡tiempo de trivia de cámara digital!), Nikon tenía esa función en sus cámaras de apuntar y disparar desde al menos la Coolpix 950 hace trece años. Pero simplemente selecciona la más nítida de una secuencia. Y al menos en la implementación de hace décadas, simplemente mantuvo lo "mejor", sin darle la oportunidad de elegir manualmente un disparo en el mejor momento pero menos nítido. En realidad, es bastante útil con poca luz cuando no importa el momento exacto de la toma. Pero creo que la flexibilidad de tener una herramienta de flujo de trabajo que haga esto tiene ventajas obvias.
Lo que constituye un "problema técnico" para usted (o el programador que escribe el código del software) puede ser un recurso artístico para otra persona.
Hombre de @Alaska, como señalé en mi pregunta "Entiendo que cada fotografía es única, y hay algunas fotografías geniales que rompen todas las reglas generales, pero pensé que esta podría ser una forma rápida de acelerar mi flujo de trabajo".

Respuestas (8)

Uso Lightroom para ordenar las fotos. En el módulo Biblioteca configuro el filtro en Marcado y Sin marcar, luego hago que una foto llene la pantalla. Luego empiezo a presionar la tecla de flecha derecha o la tecla "x". La "X" marca la foto como "rechazada" y la hace invisible. Es fácil pasar 1000 fotos en poco tiempo. Una vez que he revisado todas las fotos, simplemente elijo Eliminar fotos rechazadas y listo.

Estoy de acuerdo: un pase rápido en Lightroom podría reducir su lista rápidamente. Parece un desafío de flujo de trabajo.

Esto es bastante fácil de hacer si puedes escribir en Python. Aquí hay un buen artículo sobre el uso de un paquete de visión por computadora de código abierto para detectar imágenes borrosas en general:

https://www.pyimagesearch.com/2015/09/07/blur-detection-with-opencv/

Aquí hay una secuencia de comandos rápida que clasificará las imágenes en directorios borrosos/ok:

#
# Sorts pictures in current directory into two subdirs, blurred and ok
#

import os
import shutil
import cv2

FOCUS_THRESHOLD = 80
BLURRED_DIR = 'blurred'
OK_DIR = 'ok'

blur_count = 0
files = [f for f in os.listdir('.') if f.endswith('.jpg')]

try:
   os.makedirs(BLURRED_DIR)
   os.makedirs(OK_DIR)
except:
   pass

for infile in files:

   print('Processing file %s ...' % (infile))
   cv_image = cv2.imread(infile)

   # Covert to grayscale
   gray = cv2.cvtColor(cv_image, cv2.COLOR_BGR2GRAY)

   # Compute the Laplacian of the image and then the focus
   #     measure is simply the variance of the Laplacian
   variance_of_laplacian = cv2.Laplacian(gray, cv2.CV_64F).var()

   # If below threshold, it's blurry
   if variance_of_laplacian < FOCUS_THRESHOLD:
      shutil.move(infile, BLURRED_DIR)
      blur_count += 1
   else:
      shutil.move(infile, OK_DIR)

print('Done.  Processed %d files into %d blurred, and %d ok.' % (len(files), blur_count, len(files)-blur_count))

Su problema más complicado será instalar python y opencv en su sistema. Google python3 para su sistema operativo y cómo instalar pip con él, puede usar pip3 para instalar opencv. O también hay algunas instalaciones preconstruidas de python+opencv. No necesita la versión más reciente de opencv para ejecutar este script.

El guión funciona muy bien y mide la borrosidad general de la imagen. Esto es bueno para la mayoría de las imágenes. Sin embargo, la medición general de la imagen significa que esas fotografías de fondo llenas de una cara y bokeh se colocarán en el directorio borroso y tendrá que volver a clasificarlas. De todos modos, debe revisar las imágenes borrosas para asegurarse de que no haya guardianes fuera de lugar allí.

Espero que este script acelere su flujo de trabajo.

Una buena mejora de este script es incluir la detección de rostros y calcular la borrosidad en las caras más grandes de la fotografía, y usar esos valores para el umbral de borrosidad, prefiriendo la borrosidad general si no se detectan rostros. ¡Te dejo esa mejora a ti!

¡Gran respuesta! Esto será fácil de aplicar en mi propio caso de uso. Todas mis fotos están tomadas con teléfonos baratos o cámaras digitales. A veces no puedo mantenerme lo suficientemente quieto para obtener un tiro claro con facilidad. Pero puedo tomar una docena de fotos y usar una versión de este código que puedo modificar yo mismo para clasificarlas de las más nítidas a las más borrosas.

Photoshop Elements tiene una función de autoanálisis que hace algo de esto: intenta detectar si las fotos están borrosas, si hay caras en ellas, etc. Yo no diría que es brillante. Por ejemplo, es posible que realmente desee componentes desenfocados en su fotografía y el algoritmo automatizado aún lo marcará como borroso.

No creo que 1000 fotos sean en realidad tantas para pasar manualmente en un proceso de flujo de trabajo usando algo como Lightroom. Comience con un escaneo inicial que marque como rechazados aquellos que son obviamente inutilizables y luego refine usando calificaciones, pintura de color y etiquetas como mejor le parezca.

De hecho, estaba buscando algo que me ayudara al menos a comenzar el proceso de eliminar las cosas (miles de imágenes entre paréntesis).

Hice una herramienta simple para escanear un directorio de imágenes y mover imágenes sobre/subexpuestas a una carpeta diferente. No es perfecto y de ninguna manera permite las libertades artísticas que permite la fotografía (pero me ayuda a ahorrar tiempo). Lo que técnicamente hace es obtener el valor de píxel promedio de cada imagen (de 0 a 1,0) y luego puede mantenerlo o rechazarlo según los umbrales que se pueden establecer. Consulte el proyecto AutoExposureChecker y los documentos en github para obtener más información.

Con esta herramienta, puedo verificar dos veces que todas las imágenes estén bien para eliminar (quitando las que realmente se necesitan) y borrar todo lo demás en una primera pasada, ahorrándome toneladas de tiempo.

De todos modos, ¡pensé en compartir y feliz disparo!

No conozco aplicaciones que puedan filtrar automáticamente imágenes potencialmente defectuosas, pero yo no las usaría, al menos no a ciegas.

El mérito técnico es solo una parte de lo que es una foto. Algunas de las imágenes más significativas resultan ser técnicamente defectuosas. En muchos casos, preferible a uno técnicamente más perfecto que, por ejemplo, tenga una composición más pobre o menos de lo que Cartier Bresson llamó "el momento decisivo".

Además, algunos defectos se pueden corregir o mejorar en la edición. Si bien el enfoque y el desenfoque son prácticamente imposibles de corregir (aunque esto puede cambiar en el futuro ), puede agregar un efecto interesante o aceptable. La exposición, por ejemplo, es una de ellas. No se debe preferir una imagen ligeramente sobreexpuesta o subexpuesta (especialmente si se toma en RAW) a una exposición "perfecta" solo en esta propiedad, ya que se puede arreglar fácilmente.

Por ejemplo, esta foto fue una toma única que salió casi 3EV sobreexpuesta porque la cámara tenía la configuración incorrecta. Sin embargo, gracias a la latitud proporcionada por los archivos RAW, podría recuperarse, mientras que un proceso automatizado lo habría descartado.

Entonces, secundo las respuestas antes que las mías, diciendo que un flujo de trabajo respaldado de manera eficiente es mejor que un proceso automatizado. Miles de imágenes son bastante manejables en Lightroom en una o dos horas.

También estoy de acuerdo con los pensamientos tuyos y de todos aquí, por lo que dije "Entiendo que cada fotografía es única, y hay algunas fotografías geniales que rompen todas las reglas generales" . No existe una "herramienta mágica" que uno pueda ejecutar para encontrar excelentes fotos porque el cerebro humano es lo único que puede decirnos si una fotografía se está moviendo hacia nosotros o no. Realmente era solo un concepto que tenía y me preguntaba si alguien ya había probado técnicas similares. Seguir cualquier software a ciegas es simplemente tonto, pero a menudo se pueden usar herramientas para ayudarnos a guiarnos en nuestro camino.
Absolutamente, este tipo de proyección podría ser útil para que la aplicación te sugiera cambios en lugar de descartar fotos. Podría normalizar la exposición en imágenes similares, por ejemplo, antes de agregar un ajuste preestablecido de edición.

Compruebe el laboratorio fotográfico de DXO. Puede corregir fotos automáticamente según los perfiles de la cámara y la lente. Puede calificar rápidamente las fotos navegando a través de ellas y exportar solo las fotos que ha calificado.

Agisoft Metashape puede estimar la calidad de la imagen. Esto se describe en el manual en la página 14 :

Una entrada deficiente, por ejemplo, fotos vagas, puede influir negativamente en los resultados de la alineación. Para ayudarlo a excluir imágenes mal enfocadas del procesamiento, Metashape sugiere una función de estimación automática de la calidad de la imagen. Se recomienda deshabilitar las imágenes con un valor de calidad inferior a 0,5 unidades y por tanto excluirlas del procesamiento fotogramétrico, siempre que el resto de las fotos abarquen toda la escena a reconstruir. Para deshabilitar una foto, use el botón Deshabilitar de la barra de herramientas del panel Fotos.
Metashape estima la calidad de la imagen para cada imagen de entrada. El valor del parámetro se calcula en función del nivel de nitidez de la parte más enfocada de la imagen.

La sobreexposición, la subexposición y la borrosidad dan como resultado la pérdida de información que permite que la compresión JPEG reduzca los archivos de manera más efectiva.

Entonces, como una medida muy aproximada, puede ordenar los archivos JPEG de acuerdo con el tamaño de archivo ascendente y comenzar su proceso de selección desde el tamaño más pequeño. Aquí, la proporción de archivos que no le interesa conservar debe ser significativamente mayor que con aquellos archivos que tienen un tamaño de archivo más alto, suponiendo condiciones de toma de imágenes similares.

Sin embargo, los archivos tomados con valores ISO más altos tenderán a ser más ruidosos y el ruido no se comprime bien. Sin embargo, es probable que los algoritmos de reducción de ruido de su cámara eliminen suficiente información para que esos archivos vuelvan a comprimirse mejor. Puede tener sentido mirar diferentes valores ISO por separado, pero depende de los algoritmos de su cámara si ese tipo de clasificación previa hará una gran diferencia.

Este no es un buen consejo. Una imagen nítida y bien expuesta con pocos colores y degradados suaves de los pocos colores/tonos de la imagen comprimirá mucho más que una imagen más concurrida, por ejemplo, de un bosque o una macrofotografía de un insecto colorido sobre un follaje colorido. El tamaño del archivo no es un indicador de si esas imágenes tienen problemas técnicos.
Además, esto supone que los archivos son JPEG. Este consejo no es válido para la selección inicial con un flujo de trabajo RAW.