Может ли программное обеспечение автоматически определять фокус изображения?

19

Мне было интересно, есть ли какое-нибудь программное обеспечение для управления фотографиями, которое могло бы автоматически обнаруживать и «оценивать» изображения на предмет их фокусировки. Это часто встречается у меня, когда я просматриваю большую серию макроизображений на одну и ту же тему.
В идеальном мире Light Room (или любая другая программа) могли бы выделять области фокусировки и области вне фокуса так же, как она обнаруживает выгоревшие области изображения. Кроме того, алгоритм, который, я надеюсь, существует, был бы разумным и не отвлекал бы размытым фоном, а лишь следил за тем, чтобы какая-то достаточная область была в фокусе.
Что-нибудь подобное там?

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

Андрей
источник
Какую камеру вы используете? Некоторые камеры включают информацию о точках фокусировки в свои файлы RAW и данные EXIF, прилагая незначительные усилия, было бы несложно использовать эту информацию для измерения резкости и контрастности для определения степени фокусировки. Я не знаю ничего, что делает это, хотя ...
Бенджамин Андерсон
2
@ Бенджамин Андерсон - это только частичное решение. Обычно вы фокусируете, а затем перекомпоновываете, поэтому индикация точки фокусировки в этом случае фактически вводит в заблуждение и оценивает многие идеальные изображения как не в фокусе
ysap
@ysap - правда, особенно когда речь идет о макросъемке.
Бенджамин Андерсон
Было бы еще лучше, если бы вы могли более четко видеть, что находится в фокусе, прежде чем делать снимок. Например, в режиме реального времени можно использовать цветовое кодирование, чтобы четко выделить области в фокусе и не в фокусе. Интересно, есть ли камеры, которые могут сделать это ...
Юкка Суомела
1
@Jukka то, что вы просите, называется пиковым цветом, и оно встречается на высококачественных цифровых видеокамерах (которые часто фокусируются вручную). Я полагаю, что вы можете получить его на Canon 5D MKII через взломать прошивку Magic Lantern.
Мэтт Грум

Ответы:

12

Это интересный вопрос. Программное обеспечение, безусловно, может обнаружить части изображения, находящиеся в фокусе, поскольку оно является основой для программного обеспечения для фокусировки, например Helicon Focus .

Фокусирование - это метод, используемый макро-фотографами. Глубина резкости во многих макросъемках очень мала, поэтому для ее увеличения можно сделать несколько снимков объекта, изменив фокусировку на каждом из них. Helicon Focus берет стопку фотографий и определяет наиболее сфокусированные части каждого изображения и смешивает их вместе, чтобы получить результат, когда весь объект находится в фокусе. Это также возможно сделать с некоторыми технологиями, стоящими за Hugin , но это немного сложнее в настройке.

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

Мейнард Кейс
источник
1
Я думаю, что необходимость контроля над системой автофокусировки камеры демонстрирует, что невозможно без участия фотографа понять, в чем заключается цель. Есть также проблема Геделя, где я могу сфокусироваться на стене и сфотографировать ее, которая сама по себе правильно сфокусирована. Было бы невозможно определить последнее как правильное.
Крис Вюстефельд
4

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

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

ysap
источник
1
Я начинаю понимать, как можно разработать такую ​​программу. Что касается лиц, хорошо, сделайте программу распознавания лиц, посмотрите на глаза и посмотрите, находятся ли они в фокусе. Что-то должно быть возможно для этого, хотя это может быть несколько сложно ...
PearsonArtPhoto
Что ж, предлагаемый метод (выделение областей, которые, казалось, были в фокусе) не будет иметь проблемы слуха и глаза. Я предполагаю, что видение того, какие области являются относительно контрастными по сравнению с неконтрастными, будет интерпретироваться аналогичным образом - и если вас интересует серия похожих изображений, то сравнение их друг с другом, а не с абсолютным качеством «фокусировки» выглядит как правильный способ сделать это.
Рейд
@Reid - Я предполагаю, что целью OP является автоматизированный процесс удаления плохих картинок. Мой ответ обращается к этому требованию, указав, почему эту функцию будет трудно реализовать, и я также привел примеры в комментариях к другим ответам. Если в петле есть человек, то все возможно ...
ysap
Мое прочтение вопроса заключается в том, что ФП, по-видимому, довольно четко описывает смешанный инициативный процесс, а не полностью автоматизированный (например, «выделение в фокусе и не в фокусе»).
Рейд
2

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

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

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

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

Ник Бедфорд
источник
Ваш последний пункт верен лишь частично, так как большую часть времени вы будете фокусироваться, а затем перекомпоновывать. Как и в примере, который я привел в другом комментарии, может случиться так, что ухо будет в идеальной фокусировке (и, таким образом, ваше изображение будет иметь большую точку фокусировки), но глаз будет ОФФ.
ysap
Я даже не думал об этом, и да, я очень часто фокусируюсь и перекомпоновываю, так что может быть небольшое смещение в плоскости фокусировки.
Ник Бедфорд
2

В идеальном мире светлая комната (или любая другая программа) может выделять фокус и не в фокусе так же, как она обнаруживает выгоревшие участки изображения.

Итак, для начала руководство Darktable включает в себя:

Ctrl-Z полностью увеличивает изображение и показывает области в фокусе

И это выглядит на изображении с частичной фокусировкой:

введите описание изображения здесь

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

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


источник
1

Я только что столкнулся с этим (сейчас почти) 9-летним вопросом. В этих ответах содержится некоторая полезная информация, но многие уже устарели, и никто не отвечает на оригинальный вопрос ОП: может ли программа автоматически определять фокусировку изображения?

Изучив сообщения здесь, я нашел приложение под названием Fast Raw Viewer, которое имеет хотя бы частичное решение.

Симус
источник
1

Действительно дешевый способ для изображений, снятых с одинаковыми настройками качества камеры и одинаковыми настройками сцены и освещения, - посмотреть на размер файла JPEG. Чем больше материала находится в фокусе, тем более заметно различимая информация рассматривается алгоритмом сжатия JPEG с потерями, который стоит сохранить, увеличив размер файла.

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

Но это может быть полезно в качестве быстрого разрыва связи.


источник
-4

Захват 1 может быть то, что вам нужно!

Хорхе Таварес
источник
2
Не могли бы вы расширить этот ответ, чтобы объяснить, что такое «Захват 1» и почему он может помочь?
Филипп Кендалл
Самый бесполезный ответ, который я когда-либо видел в SE
Tessaracter