Автоматический баланс белого действительно работает? Как?

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

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

Может кто-нибудь объяснить, как это реализовано в современных камерах и насколько хорошо это обычно работает?

Ответы (3)

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

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

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

Самая лучшая производительность баланса белого, которую я когда-либо видел, была на HP Photosmart R967 . Ресурс DC заметил это и прокомментировал, что они должны получить Нобелевскую премию! Несколько последних компактных камер также отлично справляются со своей задачей. Преимущество беззеркальной камеры перед зеркальной в том, что она может считывать данные со всего сенсора. Зеркальные камеры теперь могут делать это в режиме Live-View.

Некоторые зеркальные фотокамеры используют совершенно другой подход, который заключается в измерении баланса белого. Это касается Olympus E-5 . Он имеет специальный «внешний» датчик, который измеряет свет, падающий на камеру. Вы можете отключить это для случаев, когда вы снимаете при другом освещении, чем ваш объект.

Примечание. Цифровая зеркальная камера без режима просмотра в реальном времени может измерять баланс белого, используя весь сенсор. Баланс белого применяется после захвата изображения, о чем свидетельствует тот факт, что данные, хранящиеся в необработанном файле, относятся к моменту применения баланса белого.
@Guffa - я считаю, что ваша логика ошибочна, попробуйте вместо этого использовать предустановленный баланс белого, и к данным файла RAW также не будет применен баланс белого. Вы правы в том, что любая камера может выполнять расчет баланса белого после захвата, но я не видел доказательств этого, возможно, это вопрос производительности, но я сомневаюсь в этом. Если вы читаете спецификации современной цифровой зеркальной фотокамеры, такой как Nikon D7000, там написано что-то вроде «датчик баланса белого на 2016 пикселей», что настоятельно предполагает, что это не делается со всем датчиком изображения.
Я думаю, что это простая оптимизация производительности — вам не нужно сэмплировать каждый пиксель, и если вы это сделаете, вы в конечном итоге сделаете одно необработанное преобразование для измерения баланса белого, а затем другое преобразование с этим балансом в руках.
@Itai: В логике нет изъяна, но она частично основана на вашем первоначальном утверждении, которому вы только что опровергли. Если весь датчик все равно не используется, в первую очередь нет никакой выгоды для камеры с фиксированным объективом или камеры с просмотром в реальном времени.
Я немного скептически отношусь к этому - предполагая, что все нейтрально по цвету, возможно, это было так, как это было изначально сделано, но это настолько хрупко, что я сомневаюсь, что это работает очень хорошо. Мое сильное предположение состоит в том, что это делается с использованием базы данных эталонных изображений и/или различных эвристик. Есть ли у вас какие-либо ссылки в поддержку утверждения о том, что он в основном пытается нейтрализовать общий цвет?
@Reid - обратите внимание на использование слова «оригинал». Производители камер не публикуют свои формулы напрямую, но вы можете прочитать документы и патенты по этому вопросу, чтобы узнать больше. Есть буквально сотни способов сделать это, но я не знаю ни одного, который использует эталонные изображения (известно, что замер делает это таким образом, но это нечто совершенно другое), только эталонные источники света.
@Reid: да, и dcraw выполняет автоматический баланс белого по среднему кадру, и в большинстве случаев это сильно отличается от выбора камеры. Он не может знать, направили ли вы камеру на красное платье на розовой стене. Кроме того, если вы выберете белый блок и баланс белого, изображение может стать скучным. Я нахожу более красивым, когда белые имеют желтый оттенок.
PS: На самом деле у меня есть комната со всеми розовыми стенами :)
В большинстве ранних реализаций камеры предполагалось, что блики должны быть нейтральными, а не средним значением всей сцены, а не средней сценой. С момента написания этого ответа камеры становились все более сложными, и теперь некоторые из них используют алгоритмы на основе библиотек для установки баланса белого (на основе либо захваченных необработанных данных, либо показаний экспонометра RGB + IR) почти так же, как они уже были делая то же самое с экспозицией в то время, когда этот вопрос был первоначально задан.

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

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

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

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

Хм, но если я сфотографирую синюю стену, она получится синей, а не белой. У меня нет под рукой камеры, но как насчет не совсем белой стены? Это становится нейтральным белым?
хорошее замечание о "правильном" балансе.
То же самое. Я включу несколько тестовых снимков в одном и том же месте и начну с корректировки баланса белого, которую затем применю ко всем снимкам в качестве отправной точки. На днях я заметил, что правильно откалиброванное изображение выглядит холодным/синим: мозг ожидает , что сцена будет янтарной, и хотя неоткорректированное фото выглядит немного оранжевым, тепло дает правильное впечатление.

Ответ столь же разнообразен, как и множество различных моделей камер и связанных с ними прошивок.

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

Результат может быть похож на один из доступных предустановленных вариантов (Дневной свет, Лампы накаливания, Облачно, Флуоресцентный и т. д.) или может значительно отличаться от любого из них. Если обнаруженная сцена достаточно близка к одному из предустановленных вариантов камеры, этот вариант может быть применен или нет , в зависимости от конкретной рассматриваемой модели камеры.

В новых камерах часто используются более сложные алгоритмы, которые могут сильно различаться в зависимости от модели камеры. Большинство моделей высшего уровня аналогичны некоторым формам замера, таким как «Матричный» замер Nikon или «Оценочный» замер Canon, в котором данные из кадра сравниваются с библиотекой, загруженной в прошивку камеры, и применяются на основе инструкций для ближайшего соответствия. Если камера обнаружит сцену с ярко-голубым небом в верхней части кадра и более темным зеленым цветом в нижней части кадра, она применит баланс белого на основе ландшафтного профиля. Если он обнаружит сцену с большим количеством областей, которые выглядят (для него) как тона кожи, он применит баланс белого на основе портретного профиля. (Это объяснение значительно упрощено из-за множества тонкостей, которые анализируются и могут повлиять на результат.)

Некоторые камеры даже позволяют пользователю выбирать между смещением к самым ярким областям сцены или смещением к более средним областям сцены. Canon называет два варианта, доступные в некоторых из своих новейших моделей, «AWB с приоритетом белого» или «AWB с приоритетом атмосферы».