Существует ли программное обеспечение для анализа фотографий, которое предварительно сортирует изображения, выявляя потенциальные технические проблемы?

Недавно я был в отпуске и сделал около 1000 фотографий. Как обычно, есть хорошие, плохие, размытые и т.

Чтобы ускорить постобработку, мне было интересно, есть ли какое-либо программное обеспечение, которое может «предварительно просмотреть» пакет фотографий и определить фотографии, которые являются переэкспонированными, недоэкспонированными, размытыми и другими характеристиками, которые могут идентифицировать потенциально менее желательные фотографии. Идея состоит в том, что предварительная проверка должна быстро сортировать эти группы, чтобы найти хорошие, и удалить остальные. Тогда я смогу больше времени уделять тому, что действительно важно.

Я понимаю, что каждая фотография уникальна, и есть отличные фотографии, которые нарушают все эмпирические правила, но я подумал, что это может быть быстрый способ ускорить мой рабочий процесс.

Аналогичный вопрос о фокусе photo.stackexchange.com/questions/7354/auto-detect-image-focus
Я отредактировал вопрос, потому что у нас есть несколько других программ для анализа фотографий просто для сводных отчетов по метаданным. Это другое....
Никогда такого не видел, но это отличная идея. Возможно, его можно было бы реализовать как плагин Lightroom или Bibble и выполнять отбраковку при импорте.
Спасибо за редактирование заголовка для ясности. Это прямо в точку с тем, о чем я думал.
Интересный вопрос. 1000 изображений вполне выполнимо вручную, и глазное яблоко MK I будет работать лучше, чем любое программное обеспечение, в 99% случаев.
Зачем даже ждать, чтобы сделать это в постобработке? Есть камеры (я думаю о Nikon 1, но я уверен, что есть и другие), которые сделают серию фотографий и выберут для вас «лучшую».
Что бы это ни стоило (время мелочей о цифровых камерах!), у Nikon была эта функция в их камерах «наведи и снимай», по крайней мере, с Coolpix 950 тринадцать лет назад. Но он просто выбирает самое резкое из последовательности. И, по крайней мере, в реализации десятилетней давности он просто сохранял «лучшее», не давая вам возможности вручную выбрать более своевременный, но менее резкий снимок. На самом деле это очень удобно при слабом освещении, когда точное время съемки не имеет значения. Но я думаю, что гибкость использования инструмента рабочего процесса вместо этого имеет очевидные преимущества.
То, что представляет собой «техническую проблему» для вас (или программиста, пишущего код для программного обеспечения), может быть художественным приемом для кого-то другого.
@Alaska man, как я отметил в своем вопросе: «Я понимаю, что каждая фотография уникальна, и есть несколько замечательных фотографий, которые нарушают все эмпирические правила, но я подумал, что это может быть быстрый способ ускорить мой рабочий процесс».

Ответы (8)

Я использую Lightroom для сортировки фотографий. В модуле «Библиотека» я устанавливаю фильтр «Помечено» и «Не помечено», а затем заставляю фотографию заполнять экран. Затем я просто начинаю нажимать клавишу со стрелкой вправо или клавишу «x». «X» помечает фотографию как «отклоненную» и делает ее невидимой. Легко быстро просмотреть 1000 фотографий. Когда я просматриваю все фотографии, я просто выбираю «Удалить отклоненные фотографии», и все готово.

Я согласен - быстрый проход в Lightroom может быстро сузить ваш список. Похоже на проблему рабочего процесса.

Это довольно легко сделать, если вы умеете писать на Python. Вот хорошая статья об использовании пакета компьютерного зрения с открытым исходным кодом для обнаружения общей размытости изображения:

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

Вот быстрый скрипт, который будет сортировать изображения по каталогам blurred/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))

Ваша самая сложная проблема будет заключаться в установке python и opencv в вашу систему. Google python3 для вашей ОС и как установить pip с ним, вы можете использовать pip3 для установки opencv. Или есть некоторые предварительные установки python + opencv. Вам не нужна новейшая версия opencv, чтобы запустить этот скрипт.

Скрипт отлично работает и измеряет общую размытость изображения. Это хорошо для большинства изображений. Тем не менее, общее измерение изображения означает, что эти фотографии с одним лицом и заполненным фоном с боке будут помещены в каталог размытия, и вам придется отсортировать их обратно. В любом случае, вы должны просмотреть размытые изображения, чтобы убедиться, что там нет неуместных хранителей.

Надеюсь, этот скрипт ускорит ваш рабочий процесс.

Аккуратное улучшение этого сценария состоит в том, чтобы включить распознавание лиц и вычислить размытость на самых больших лицах на фотографии, а также использовать эти значения для порога размытости, по умолчанию применяя общую размытость, если лица не обнаружены. Я оставлю это улучшение на ваше усмотрение!

Отличный ответ! Это будет легко вписать в мой собственный вариант использования. Все мои фотографии сделаны дешевыми телефонами или цифровыми камерами. Иногда я не могу оставаться достаточно неподвижным, чтобы легко сделать четкий снимок. Но я могу сделать дюжину снимков и использовать версию этого кода, которую я могу изменить самостоятельно, чтобы отсортировать их от самого резкого до самого размытого.

В Photoshop Elements есть функция автоанализа, которая делает некоторые из этих вещей — она пытается определить, размыты ли фотографии, есть ли на них лица и т. д. Я бы не сказал, что это блестяще. Например, вам могут понадобиться компоненты, находящиеся не в фокусе на вашей фотографии, и автоматический алгоритм все равно пометит их как размытые.

Я не думаю, что 1000 фотографий — это на самом деле так много, чтобы вручную обрабатывать их в рабочем процессе, используя что-то вроде Lightroom. Начните с первоначального сканирования, пометив как отклоненные те, которые явно непригодны для использования, а затем уточните, используя рейтинги, цветную окраску и теги по своему усмотрению.

На самом деле я искал что-то, что помогло бы мне хотя бы начать процесс отсеивания вещей (тысячи изображений в скобках).

Я сделал простой инструмент для сканирования каталога изображений и перемещения переэкспонированных/недоэкспонированных изображений в другую папку. Он не идеален и ни в коем случае не допускает художественной свободы, которую дает фотография (но это помогает мне сэкономить время). Технически он получает среднее значение пикселя каждого изображения (от 0 до 1,0), а затем вы можете сохранить или отклонить его на основе пороговых значений, которые можно установить. Ознакомьтесь с проектом AutoExposureChecker и документами на github для получения дополнительной информации.

С помощью этого инструмента я могу затем дважды проверить, можно ли удалить все изображения (удалив те, которые действительно нужны) и стереть все остальное за один первый проход, что сэкономит мне массу времени.

В любом случае, подумал, что поделюсь и удачной стрельбы!

Я не знаю приложений, которые могут автоматически отображать для вас потенциально дефектные изображения, но я бы не стал их использовать, по крайней мере, не вслепую.

Технические достоинства — это лишь часть фотографии. Некоторые из наиболее значимых изображений оказываются технически несовершенными. Во многих случаях предпочтительнее более технически совершенного, который, например, имеет более бедный состав или меньше того, что Картье-Брессон назвал «решающим моментом».

Также некоторые недочеты могут быть исправлены или улучшены при редактировании. Хотя фокус и размытие практически невозможно исправить (хотя это может измениться в будущем ), они могут добавить интересный или приемлемый эффект. Экспозиция, например, является одним из них. Слегка переэкспонированное или недоэкспонированное изображение (особенно если оно снято в формате RAW) не следует предпочитать «идеально» экспонированному изображению только по одному этому свойству, потому что это можно легко исправить.

Например, этот снимок был сделан в единственном экземпляре и получился переэкспонированным почти на 3EV из-за неправильных настроек камеры. Тем не менее, благодаря свободе действий, предоставляемой файлами RAW, их можно было восстановить, в то время как автоматизированный процесс отбросил бы их.

Итак, я отвечаю перед своим, говоря, что эффективно поддерживаемый рабочий процесс лучше, чем автоматизированный процесс. Тысячи изображений легко обрабатываются в Lightroom в течение часа или двух.

Я также согласен с вашими мыслями и мыслями всех присутствующих здесь, поэтому я заявил: «Я понимаю, что каждая фотография уникальна, и есть несколько замечательных фотографий, которые нарушают все эмпирические правила» . Не существует «волшебного инструмента», с помощью которого можно найти отличные фотографии, потому что человеческий мозг — единственное, что может сказать нам, движется ли фотография к нам или нет. На самом деле это была просто концепция, которая у меня была, и мне было интересно, пробовал ли кто-нибудь уже подобные методы. Слепое следование любому программному обеспечению просто глупо, но часто можно использовать инструменты, которые помогут нам на этом пути.
Безусловно, этот тип скрининга может быть полезен, чтобы приложение предлагало вам изменения, а не отбрасывало фотографии. Например, вы можете нормализовать экспозицию на похожих изображениях перед добавлением предустановки редактирования.

Проверьте фотолабораторию DXO. Он может автоматически исправлять фотографии на основе профилей камеры и объектива. Вы можете быстро оценить фотографии, просматривая их и экспортируя только те фотографии, которые вы оценили.

Agisoft Metashape умеет оценивать качество изображения. Это описано в руководстве на странице 14 :

Плохой ввод, например, нечеткие фотографии, может плохо повлиять на результаты выравнивания. Чтобы помочь вам исключить плохо сфокусированные изображения из обработки, Metashape предлагает функцию автоматической оценки качества изображения. Изображения с показателем качества менее 0,5 единиц рекомендуется отключать и тем самым исключать из фотограмметрической обработки, при условии, что остальные фотографии охватывают всю реконструируемую сцену. Чтобы отключить фотографию, используйте кнопку «Отключить» на панели инструментов панели «Фотографии».
Metashape оценивает качество изображения для каждого входного изображения. Значение параметра рассчитывается исходя из уровня резкости наиболее сфокусированной части изображения.

Передержка, недодержка, размытость — все это приводит к потере информации, что позволяет сжатию JPEG более эффективно уменьшать файлы.

Таким образом, в качестве очень грубой меры вы можете отсортировать файлы JPEG по возрастанию размера файла и начать процесс отбраковки с наименьшего размера. Здесь соотношение файлов, которые вы не заинтересованы в сохранении, должно быть значительно выше, чем для тех файлов, которые имеют больший размер файла, при аналогичных условиях съемки изображений.

Однако файлы, снятые с более высокими значениями ISO, будут иметь тенденцию быть более шумными, а шум плохо сжимается. Однако вполне вероятно, что алгоритмы шумоподавления вашей камеры отбрасывают достаточно информации, чтобы снова сделать эти файлы более сжимаемыми. Может быть, есть смысл смотреть на разные значения ISO по отдельности, но это зависит от алгоритмов вашей камеры, будет ли такая предварительная сортировка иметь большое значение.

Это плохой совет. Резкое, хорошо экспонированное изображение с небольшим количеством цветов и плавными градиентами нескольких цветов/тонов в изображении будет сжимать гораздо больше, чем более загруженное изображение, скажем, леса или макросъемка разноцветного насекомого на яркой листве. Размер файла не является индикатором наличия технических проблем с этими изображениями.
Кроме того, это предполагает, что файлы имеют формат JPEG. Этот совет не подходит для первоначального отбраковки с рабочим процессом RAW.