Каковы плюсы и минусы различных алгоритмов демозаики Байера?

Сенсоры Байера используют шаблон из красных, зеленых и синих пикселей и объединяют их вместе в окончательное цветное изображение с одним пикселем для каждого отдельного цветового сенсора. Это можно сделать с помощью «наивного» смешивания соседних датчиков, но я слышал о более сложных подходах с такими названиями, как AHD, HPHD и AMaZE.

Что это за другие подходы и какие преимущества они приносят? Есть ли у них недостатки помимо сложности вычислений?

Я предполагаю, что подход, используемый для внутрикамерного JPEG, более тщательно охраняется, но очевидно, что в этой области проводится много исследований и разработок. Вынуждает ли ограниченная вычислительная мощность камеры идти на какие-либо компромиссы в этой области?

Я могу ошибаться, но у меня сложилось впечатление, что демозаизация происходит в камере, иначе изображение будет страдать от алиасинга. Об этом была интересная статья в одном из недавних журналов Popular Photography, в которой говорилось о Sigma (сенсор Foveon X3), которая является одной из немногих камер, не оснащенных байеровским сенсором.
Что ж, небольшое исследование показывает, что AHD, или Adaptive Homogeneity-Directed Demosaicing, является «отраслевым стандартом» и, похоже, используется ACR/LR (по крайней мере, пару версий назад… кто знает, есть ли у них представил нечто более продвинутое с ACR 6.x и LR4.x). Это похоже на взвешенный алгоритм, который направлен на уменьшение ложного цвета.
@Jakub: демозаика происходит в камере для изображений JPEG. Весь смысл RAW-изображения в том, что оно еще НЕ демоасифицировано и представляет собой «сырую» запись пиксельных данных непосредственно с сенсора без какой-либо дополнительной обработки (за исключением вашего основного усиления для достижения необходимого ISO). -проходной фильтр (фильтр AA) устраняет наложение путем физического «размывания» пространственных частот ниже скорости Найквиста датчика.
Имейте в виду, что «красный», «зеленый» и «синий» цветовые фильтры на наших массивах Байера не равны красным, зеленым и синим излучателям на наших устройствах RGB. К сожалению, мы используем одни и те же имена для обоих.
Эх, они действительно достаточно близки, чтобы так обращаться. Вы не получите идеального цвета, но он находится на приблизительном уровне. Например, посмотрите увеличенное изображение на petapixel.com/2013/02/12/… — просто визуально цвета фильтров определенно совпадают с теми, которые мы идентифицируем.
@mattdm «просто визуально цвета фильтров определенно являются теми, которые мы идентифицируем как» бессмысленно, поскольку весь смысл цветных фильтров камеры состоит в том, чтобы дать кривую отклика на непрерывный спектр длин волн, который приближается к различению рецепторов человеческого глаза. . Таким образом, нет смысла смотреть на изображения этих фильтров, поскольку человеческое зрение уменьшает их кривые до 3 значений. Чем лучше вы соответствуете кривым отклика человека , тем меньше проблем с балансом белого у вас возникнет. Но совершенно разные кривые могут выглядеть одинаково при определенном освещении.

Ответы (4)

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

http://www.arl.army.mil/arlreports/2010/ARL-TR-5061.pdf

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

Можно увидеть в этой статье и с количественными данными о качестве по 5 различным алгоритмам:

https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/Demosaicing_ICASSP04.pdf

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

Здесь они показывают примеры Adaptive Homogeneity Demosaicing и билинейных версий с аддонами, сохраняющими оттенок и края, и без них:

http://math.auburn.edu/~kilgota/ahd_bayer.pdf

Эта бумага поддерживает AHD и не показывает отрицательную часть. На этой странице вы можете увидеть различные артефакты узоров из Adaptive Homogeneity Demosaicing, Patterned Pixel Grouping и Variable Number of Gradients (наведите указатель мыши на названия):

http://www.ruevski.com/rawhistogram/40D_Demosaicing/40D_DemosaicingArtifacts.html

Таким образом, в этих алгоритмах используется ряд допущений, и артефакты возникают, когда допущение не выполняется:

  • Гладкость по каналам. Если ближайшие соседи не совпадают, сделайте переход плавным. Артефакт: пилы/молнии, мягкость
  • Постоянство яркости с направленными краями (билинейное направление). Артефакты: высокочастотный текстурный муар, цветная окантовка
  • Постоянство оттенка. если по соседству оттенок одинаков, поэтому, если один канал меняется, другие должны следовать за ним. Артефакты: цветные молнии на цветных краях
  • Постоянство можно предсказать по зелени. Артефакт: лабиринты
Быстрый вопрос — в последней строке вы имеете в виду «кукурузу» (виды кукурузы?) или «лабиринты»? В любом случае, я был бы признателен за небольшое расширение того, что может представлять собой этот тип артефакта.
мышь в лабиринте.
Круто :) Кажется, я знаю, к какому артефакту это относится, но я не совсем уверен. Это случайный рисунок из коротких горизонтальных и вертикальных линий (возможно, смешанный с шумом) на уровне пикселей, верно? Интересно узнать, откуда это взялось — на самом деле, я чуть не задал вопрос об этом на днях, потому что предположил, что это артефакт NR.
да, это те строки, и это происходит из-за того, как алгоритм Байера пытается угадать данные.

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

Вот пример. Эта фотография была сделана намеренно в качестве пробного снимка:

Обратите внимание на явную полосатость линии хромированной отделки. Чтобы представить это в перспективе, вот полный кадр:

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

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

Насколько я понимаю, разные версии процесса в Lightroom (до сих пор у нас были 2003, 2010 и 2012) соответствуют, среди прочего, разным алгоритмам демозаики. Еще одно интересное программное обеспечение — UFRaw , которое предлагает следующее (цитата с веб-страницы):


После установки баланса белого UFRaw интерполирует шаблон Байера.

  • Интерполяция AHD представляет собой адаптивную интерполяцию, направленную на гомогенность. Это интерполяция по умолчанию.
  • Интерполяция VNG использует интерполяцию с переменным числом градиентов на основе порога. Раньше это была интерполяция по умолчанию, и она по-прежнему очень хороша .
  • Четырехцветную интерполяцию VNG следует использовать, если на фотографии появляются артефакты шаблона Байера (дополнительную информацию см . в разделе часто задаваемых вопросов DCRaw ).
  • Интерполяция PPG означает интерполяцию Patterned Pixel Group. Это почти так же хорошо, как все вышеперечисленное, и намного быстрее.
  • Билинейная интерполяция — это очень простая интерполяция, но она намного быстрее.

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

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

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

Некоторое программное обеспечение, которое я использовал для процессов дебайеризации: Deep Sky Stacker и Pix Insight. Есть и другие. Многие основаны на DCRAW .

Вот ссылка на статью на странице Deep Sky Stacker, где обсуждаются некоторые варианты: Выбор дебайеризации .

Это интересно (спасибо!), но я не думаю, что это отвечает на вопрос. Эта последняя ссылка кажется многообещающей, но вообще фокусируется на альтернативах демозаике. По рассматриваемой теме в нем говорится только: «Доступно множество различных методов интерполяции, дающих результаты от плохих до хороших (линейные, градиентные ...), но все они ухудшают качество конечного изображения, угадывая, какими должны быть отсутствующие цвета. " Но дальше практических деталей дело не идет.