UniWB: установка на камере и результаты использования
ББ камеры, 2700К
Как мы уже обсуждали ранее, стандартные установки гистограммы у цифровых камер не отражают реальных данных в RAW.
Причина этого очень простая: гистограмма и области пересвета показываются по данным, уже скорректированным камерой по балансу белого и настройкам контрастности,
а реальные RAW-данные имеют большой поканальный разбаланс, связанный с различной чувствиительностью цветовых каналов. На рисунке слева показан пример неверной диагностики (взятый из предыдущей статьи) - камера диагностирует вылет по красному каналу, а на самом деле имеется даже небольшой запас.
Как мы видим, внутрикамерные средства контроля экспозиции - гистограмма и индикация пересвета - не отражают реального состояния данных RAW:
- камера может показать нормальную гистограмму и отсутствие пересвета, тогда как на самом деле в одном или двух каналов имеет место клиппинг (ситуация типична для съемки при дневном освещении)
- и наоборот, камера может диагностировать пересвет, которого на самом деле нет (это часто бывает при искусственном свете).
Таким образом, любимый прием многих цифровых фотографов - контроль светов по гистограмме (Expose To The Right / ETTR) - начинает работать плохо, ибо реальных средств диагностики клиппинга у фотографа нет.
Частичным решением проблемы является установка баланса белого в камере, которая не исправляет разбаланс чувствительности по каналам. Другими словами, поканальные множители баланса должны быть одинаковыми или практически одинаковыми (при стандартных настройках множители у красного и зеленого каналов могут отличаться в 2-2.5 раза). Этот подход получил название UniWB и постепенно приобретает популярность у цифровых фотографов. Стандартного средства установки UniWB в современных цифровых камерах нет, однако камеру можно обмануть.
Лучший способ такого обмана, подходящий практически для всех камер, придуман Guillermo Luijk, этот способ заключается в синтезе правильной мишени установки баланса белого на мониторе компьютера. Я уже рассказывал об этом способе у себя в блоге, но пришло время для нового варианта текста. Собственно методика не изменилась, поэтому она приводится практически дословно, но исходный текст дополнен примерами, показывающими результат применения метода.
Необходимые приборы и материалы
- калибруемая фотокамера
- компьютер с цветным монитором
- графический редактор (фотошоп подойдет)
- программа dcraw скомпилированная под вашу операционную систему (скомпилированные варианты под Windows и Mac OS X можно взять отсюда).
Определение нейтральной точки камеры
UniWB test target
Возьмем файл мишени с большим количеством цветов, например зафиксируем зеленый компонент на уровне 64, а красной и синей компонентами
переберем все возможные значения от 0 до 255 (картинка слева; png-файл мишени можно скачать из attachments данной статьи внизу текста).
Откроем этот файл фотошопом, выведем на экран в полный размер (100%) и сфотографируем:
- в RAW-формате
- со штатива
- максимально длиннофокусным объективом (используемое фокусное расстояние зависит от размеров комнаты с компюьтером) - чтобы максимально избежать виньетирования за счет косого падения света на матрицу;
- на максимально закрытой диафрагме (тоже для подавления виньетирования);
- слегка расфокусировавшись (чтобы не словить интерференцию между матрицей камеры и регулярной структурой экрана компьютера);
- ось объектива должна быть перпендикулярна плоскости монитора - нам нужно получить квадрат без искажений, проще всего это обеспечить вертикальностью монитора, горизонтальностью оси объектива и подбором высоты штативом;
- с достаточно длинной выдержкой, чтобы гарантировать непопадание в мерцание монитора (длинную выдержку обеспечит закрытая диафрагма)
Далее сконвертируем RAW файл в формат tiff (16 бит, линейная гамма) с минимально-возможными преобразованиями и заданными единичными коэффициентами баланса белого:
dcraw -h -T -r 1 1 1 1 -k 0 -o 0 -4 имя-файла
- Открываем полученный tiff-файл в Фотошопе, присваиваем ему какой-то RGB-профиль с гаммой 1.0 (в конце статьи можно скачать профиль AdobeRGB с гаммой 1.0).
- Выделяем снятую мишень (если снимали аккуратно, она должна получиться квадратной), остальное отрезаем.
- Делаем ресайз в размер исходной мишени (768x768)
- Переводим в Lab (для удобства дальнейшей обработки), на экране должно получиться что-то похожее на картинку слева: цвета сдвинуты (мы отключили баланс белого) и более блеклые.
Делаем следующие три операции:
1. Gaussian Blur с радиусом 2-3, чтобы шум и муар дальше не мешали
Кривые по a-b
2. Корректирующий слой: подъем кривыми контрастности по каналам a-b
(должна сохраняться нейтральная точка, например -127/-26 -- 127/26 по обоим каналам):
подъем насыщенности
3. Еще один корректирующий слой с подъемом насыщенности до 98-99:
Нейтральная точка
Далее находим точку, насыщенность которой не поднялась (она и есть самая нейтральная),
запоминаем ее координаты по пикселям:
Значения на исходной мишени с теми же координатами
На исходной мишени (она того же размера, мы же делали ресайз) находим точку с теми же координатами X-Y
и считываем RGB-значения (в том цветовом пространстве, в котором исходная мишень):
Генерация мишени для установки баланса
Калибровочная мишень
Создаем новое изображение (в том же цветовом пространстве, что и исходная мишень),
заливаем его целиком найденным на предыдущем шаге цветом (у меня это 108-64-111 RGB для камеры Kodak SLR/c
и 143-64-101 для камеры Canon 1D Mark III), получаем на экране мишеньку цвета magenta.
Фотографируем мишень (опять, лучше расфокусировавшись, длиннофокусной оптикой и т.п., все как выше) и ставим по ней мишени баланс белого. Проверяем результат:
- cнятая нами мишень с новым балансом должна стать серой;
- нейтральные объекты, снятые при дневном свете, - должны позеленеть (на экране камеры и при конверсии RAW c балансом 'as shot');
- dcraw -w -v должна показывать коэффициенты конверсии близкие к 1.0 по всем каналам:
/dcraw_dist -w -v _81E0897.CR2 Loading Canon EOS-1D Mark III image from _81E0897.CR2 ...
Scaling with darkness 1026, saturation 15280, and
multipliers 1.000000 1.013814 1.018557 1.013814
Полученный баланс белого нужно запомнить в камере как один из пресетов (если камера это позволяет), либо же установить навсегда.
Демонстрация результатов
Как мы помним из предыдущей статьи, стандартные камерные установки ошибаются и при показе гистограммы и при индикации пересвета. Проверим новую установку для двух стандартных случаев.
Дневной свет
UniWB при дневном свете
На картинке, сверху вниз, показаны (задний экранчик камеры грязный, да):
- Гистограмма камеры при установке Auto White Balance - впечатление сбалансированности по каналам
- Гистограмма камеры при установке UniWB - зеленый канал проработан куда лучше
- Реальная гистограмма RAW-данных - повторяет UniWB
Лампы накаливания
UniWB при лампах накаливания
При свете ламп накаливания автоматический баланс белого провирается в другую сторону, а опять UniWB дает почти реальную картинку (сверху вниз):
- Auto White Balance показывает передержку по красному каналу (черные пятна вокруг куклы - области передержки)
- UniWB показывает хорошую проработку по красному и зеленому
- В реальных данных есть еще полстопа запаса по красному и зеленому.
Что мы потеряли и что приобрели
Приобретения
Поканальная гистограмма и области пересвета стали гораздо ближе к реальным данным RAW. Это позволяет лучше контролировать экспозицию сразу после съемки при любых условиях освещения.
Потери
- Потерян реально выглядящий просмотр на камерном экранчике, показать результат модели (или, тем более, жене) уже нельзя, увидят зеленый оттенок и выцарапают глаза.
- Снимать в JPEG с такой настройкой бессмысленно.
- Потеряна возможность конверсии с балансом белого 'As Shot'.
| Attachment | Size |
|---|---|
| wb-target.png - мишень для подбора баланса | 6.03 KB |
| Adobe (1998) gamma 1.icc | 500 bytes |
Comments
Попробывал данный способ... Но ББ, так то оно так, я тоже думал...во интересно, реальная гистограмма. Но потом в конвертере, все равно меняешь приблизительно на ту температуру на которой бы снимал камерой. И получается в итоге тоже самое, разбаланс каланов и пересвет того канала, при температуре (реальной) которая бы получилась стандартно с камеры... Тогда в чем смысл? Я понимаю избежать реально пересветов или недосветов... А так каналы ровные, а потом тоже самое делать в конвертере, что могла бы сделать камера.
Попробуйте в конверторе дать отрицательную компенсацию экспозиции. Если не помогает, попробуйте другой конвертор.
Смысл именно в контроле. Если исходные данные не обрезанные, то и результат конверсии будет лучше
Реальной разницы не заметил, пробывал разные сюжеты, на глаз разницы не видно...особенно думал лучше будет при контровом свете с завалом переднего плана или пробоем фона, но по гистограмме вроде хорошо, а после конверсии тоже самое! Может есть смысл показать конечный результат на реальном фото-примере!?
UniWB никак не влияет на данные RAW. Поэтому если у вас при UniWB и без него - одинаковая экспозиция, то и результат будет абсолютно одинаков.
Соответственно, UniWB имеет смысл рассматривать как способ контроля экспозиции в светах и не более того. Если вы по результатам рассмотрения UniWB-гистограммы поправили экспозицию - значит смысл появился.
Но таки получилось сделать
1.037190 1.057851 1.000000 1.057851
Это Pentax K10D, цвет для моего калиброванного монитора -- RGB:(106,64,80).
Что-то ничего у меня не выходит.
После таких слоёв Sat везде 100%, до них -- везде порядка 32%, картинка изначально гораздо насыщенней, чем показано...
Выставил на 40D баланс белого по абсолютно черному кадру - результат:
Loading Canon EOS 40D image from IMG_5832.CR2 ...
Scaling with darkness 1024, saturation 16224, and
multipliers 1.000000 1.000000 1.000000 1.000000
Во, это и есть тот способ, который мы хотели предъявить народу как простой.
Проблема в том, что на моем 1D-mk3 он с новым firmware перестал работать.
Сейчас еще попробую.....
не могу набрать комманду (первую в статье)
пишет Will not write am image to the terminal
что я не так делаю? вызвал cmd, вошел в папку с прогой и файлами CR2
набираю полностью строку как вы написали - и получаю это сообщение!
вроде разобрался)))
у параметра "-с" не нужен "0" судя по хэлпу
О, это у меня была старая версия. -с в текущей версии просто не нужен, там нужен -o 0
Сейчас исправлю,
На самом деле, если пресеты переключаются легко, то можно ставить UniWB на время съемки тестового снимка, а потом возвращать auto wb
У меня workflow ровно обратный - я все настройки делаю по первому снимку серии, а потом копирую их на все остальные.
Но последнее время склоняюсь к идее отключить экранчик совсем нафиг.
Что значит "копирую"? По первому снимку откорректировал экспозицию и снимаешь. В каком положении потом стоит WB - уже не важно.
Отключить экранчик - это хорошо, но тогда где польза от UniWB?
Копирую - это означает "копирую все положения движков в конверторе".
Если отключить экранчик - пользы от UniWB естественно не будет.
Так я говорил про съемку, а не обработку.
Первый снимок - тестовый, для него ставим UniWB, определяеем экспозицию, стираем если совсем не надо, а остальное снимаем с авто, чтобы превьюшка была хорошая. Если первы не стерли, то при постпроцессинге просто берем параметры со второго снимка
спор ни о чем :)
А чем "as shot" лучше, чем "auto white balance" в конвертере? Насколько я понимаю у камеры нет какого-то отдельного датчика баланса белого и автомат баланса белого работает исключительно программно по raw-данным?
Алгоритмы все-таки разные. И Кэноновский мне вполне приятен - если нужно что-то сделать быстро, а качество не очень важно.
На самом деле у ряда камер (например, у Никонов) датчик баланса белого отдельный и по raw-данным не работает. Те же камеры, где баланс устанавливается по данным raw, легко отличить с помощью небольшого трюка - о котором мы ещё напишем.