Назад в библиотеку

Билатеральный фильтр для сглаживания краев

Авторы: G. Guarnieri, S. Marsi, G. Ramponi

Автор перевода: Борискин Д. В.
Источник: https://www.researchgate.net/publication/3388761_Fast_bilateral_filter_for_edge-preserving_smoothing

Аннотация

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

Введение и связанная работа

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

Двусторонний фильтр, представленный Томаси и Мандучи [3], по существу является нелинейным FIR-фильтром с зависимыми от сигнала коэффициентами. Как и в FIR-фильтре, выходной сигнал вычисляется по средневзвешенному значению пикселей в окрестности, а эффект сохранения края достигается путем придания меньшего веса пикселям, значение которых существенно отличается от значения пикселя в середина маски фильтра. Веса являются произведением двух компонентов, h и G, первый из которых зависит от пространственного расстояния, а второй - от фотометрического расстояния:

pic1

Авторы предлагают использовать гауссову функцию как для h, так и для G. Билатеральный фильтр может достигать качественных результатов, но его вычислительная стоимость довольно высока, особенно если требуется узкополосный эффект низких частот. Количество операций на пиксель указано в таблице 1, первый столбец, где М - количество пикселей в маске фильтра.

pic2

Дюран и Дорси [2] представили алгоритм, который вычисляет кусочно-линейную (PWL) аппроксимацию двустороннего фильтра с меньшими вычислительными затратами. Ключевое наблюдение состоит в том, что числитель и знаменатель в (1) превращаются в свертку, если xi заменяется фиксированным значением x:

pic3

Свертка эффективно вычисляется с использованием FFT. Метод, введенный Дюраном и Дорси, состоит в вычислении нескольких приближенных двусторонних фильтров для различных фиксированных значений x, охватывающих динамический диапазон входного изображения. Каждый вывод является точным только для пикселей xi с xi = x; остальные значения аппроксимируются кусочно-линейной интерполяцией. Авторы сообщают, что для получения качественных результатов достаточно 30–50 шагов.

На каждом шаге необходимо вычислить свертку двух изображений одного и того же ядра, и это может быть достигнуто путем построения одного комплексного сигнала; поскольку ядро свертки симметрично, его FFT является вещественным. Общее количество умножений на пиксель на шаг 4 log2 N + 2 (деление на N в IFFT опущено, потому что его эффект отменяется окончательным делением). Помимо FFT-фильтрации, для каждого шага требуется одна оценка функции G и одно умножение на пиксель для вычисления сигналов и одно умножение для интерполяции (без учета стоимости вычисления веса). Общее количество операций на пиксель указано в таблице 1, второй столбец, где L - количество шагов интерполяции. Экономия высока, особенно если требуется узкополосный эффект низких частот.

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

Предлагаемое решение

В реализации Дюранда и Дорси кусочно-линейная интерполяция вычисляется после деления. Мы предлагаем интерполировать N и D отдельно и делить их потом. Таким образом, вычисляется только одно деление на пиксель. Другое преимущество этого выбора состоит в том, что выходной сигнал аппроксимируется кусочно-рациональной функцией вместо кусочно-линейной функции. Первый работает лучше, поэтому требуется меньшее количество шагов; Наши эксперименты показали, что всего 10–20 шагов дают результаты высокого качества. График PSNR, полученный путем интерполяции до или после деления, показан на рис. 1. При интерполяции числителя и знаменателя по отдельности получается усиление 10–15 дБ. Тестовое изображение было 512x512 пикселей, h и G были гауссовыми функциями со стандартным отклонением 25 пикселей и 10% полной выборки соответственно. Мы провели несколько тестов на разных изображениях и нашли похожие результаты.

pic4

Дальнейшее ускорение достигается с помощью фильтра низких частот IIR вместо FIR-фильтра на основе FFT. Самый простой одномерный низкочастотный фильтр IIR требует двух умножений на выборку, а линейная фаза получается с использованием хорошо известного метода обращения времени. Отделимый Линейно-фазовый 2D-фильтр рассчитывается четырьмя одномерными FFT-фильтрами, и, поскольку на каждом шаге должны оцениваться как числитель, так и знаменатель, общая стоимость составляет 16 умножений на пиксели за шаг. Для изображений среднего разрешения (мегапиксельные) log2 N’20, IIR-фильтр примерно в пять раз быстрее, чем фильтр Гаусса на основе FFT, и визуальная разница между ними едва заметна.

Количество операций на пиксель, участвующих в билатеральном фильтре (Томаси и Мандучи), билатеральном фильтре PWL (Дюран и Дорси) и предлагаемой фильтры показаны в таблице 1, где N - количество пикселей в изображении, M - количество пикселей в двусторонней маске фильтра, а L - количество шагов интерполяции. Мы опустили стоимость сложений, вычитаний и вычисления весов интерполяции. Как упомянуто выше, предложенный метод требует меньше шагов интерполяции (L), чем метод PWL (10–20 вместо 30–50) и только одно деление на пиксель; более того, каждый шаг вычисляется более эффективно, поскольку низкочастотный фильтр IIR заметно быстрее, чем FIR-фильтр на основе FFT.

Как билатеральный фильтр PWL, так и предлагаемый фильтр требуют значительно меньше G-функций и умножений, чем исходный билатеральный фильтр, потому что обычно M >> L. Типичные значения М зависят от применения. Для уменьшения шума требуется мягкий низкочастотный эффект, поэтому разумной величиной может быть маска 10х10 пикселей (M’100). Для оценки освещенности при сжатии динамического диапазона вместо требуется узкополосный фильтр нижних частот, поэтому требуются большие маски (M’1000–10 000).

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

Итоги и выводы

В этой работе мы вспомнили билатеральные и кусочно-линейные билатеральные фильтры для сохранения края сглаживания; Затем мы представили некоторые модификации, которые позволяют значительно сэкономить на вычислительных затратах. Мы предложили поменять местами деление и интерполяцию в кусочно-линейном билатеральном фильтре; это может обеспечить лучшее приближение с меньшим числом шагов интерполяции. Мы также отметили, что использование фильтра нижних частот IIR вместо фильтра Гаусса на основе FFT дает визуально неразличимые результаты со значительно меньшим числом умножений.

Ссылки

1. Ogata, M., Tsuchiya, T., Kubozono, T., and Ueda, K.: ‘Dynamic range compression based on illumination compensation’, IEEE Trans. Consum.Electron., 2001, 47, (3), pp. 548–558
2. Durand, F., and Dorsey, J.: ‘Fast bilateral filtering for the display of highdynamic-range images’. SIGGRAPH 2002
3. Tomasi, C., and Manduchi, R.: ‘Bilateral filtering for gray and color images’. Proc. 1998 IEEE Int. Conf. Computer Vision, Bombay, India