Быстрый метод билатеральной фильтрации изображений
Филиппов М.В., МГТУ им. Н.Э. Баумана Кафедра ПОЭВМиИТ(ИУ7)
[email protected] Ермилова О.С., МГТУ им. Н.Э. Баумана Кафедра ПОЭВМиИТ(ИУ7)
olechkaermilova@mail. ги
1 Введение
Изображения в процессе формирования их системами (фотографическими,
голографическими, телевизионными) обычно подвергаются воздействию различных случайных помех или шумов. Фундаментальной проблемой в области обработки изображений является
эффективное удаление шума при сохранении важных для последующего распознавания деталей изображения. Сложность решения данной задачи существенно зависит от характера шумов [8].
В последние два десятилетия в цифровой обработке изображений активно развиваются нелинейные алгоритмы на основе ранговой статистики для восстановления изображений, поврежденных различными моделями шумов. Подобные алгоритмы позволяют избежать дополнительного искажения изображения при удалении шума, а также значительно улучшить результаты работы фильтров на изображениях с высокой степенью зашумленности. Самым явным примером такого типа фильтров являются медианные фильтры. Медианные фильтры и их модификации достаточно часто применяются на практике как средство предварительной обработки данных. Для таких фильтров можно выделить следующие характерные черты: простая структура, как для аппаратной, так и для программной реализации; хорошо подавляет одиночные импульсные помехи и случайные шумовые выбросы отсчетов; фильтрация не линейна, что может усложнять математический анализ сигналов; подавление белого и гауссового шума малоэффективно.
Стоит заметить, что при использовании большинства стандартных фильтров, таких, как фильтр низких частот, медианный фильтр не редко приходится столкнуться с проблемой размытия световых и цветовых границ изображения. Обусловлено это тем, что в подобные методы не учитывают роль верхних пространственных частот при
зрительном восприятии световых и цветовых границ.
Так же к нелинейным фильтрам относятся билатеральные фильтры. Результатом работы билатерального фильтра является вычисление интенсивности каждого пикселя, как взвешенного среднего интенсивностей соседних пикселей. Вес, связанный с каждым соседним пикселем, изменяется в соответствии со значениями расстояний на плоскости изображения (пространственная составляющая^ и на оси интенсивности (ранговая составляющая), что позволяет сохранять четкие границы элементов изображения. Билатеральным фильтрам присущи следующие черты: фильтр адаптирован для удаления текстуры, динамического рангового сжатия и обработки фотографий; используется в выделении контуров, объемном шумоподавлении и коррекции видео; не линеен и не имеет практического применения без различных улучшений, т.к. требует больших вычислительных ресурсов.
Целью работы является разработка метода ускоренной реализации билатерального фильтра, основанной на использовании алгоритма «реального времени».
2 Обзор существующих работ по ускорению билатеральной фильтрации
Основную информацию в изображениях несут контуры объектов. Классические линейные фильтры способны эффективно удалить статистический шум, но степень размытости мелких деталей на изображении может превысить допустимые значения. Для решения этой проблемы используются нелинейные методы, например,
билатеральные и трилатеральные фильтры. Суть таких методов заключается в использовании локальных оценок,
адекватных определению контура на изображении, и сглаживания таких участков в наименьшей степени.
Билатеральный фильтр - это нелинейный фильтр сглаживания изображения с сохранением четких границ [2]. Данный фильтр повсеместно используется при обработке фотографий, в компьютерной графике и для других задач. Такой широкий спектр применения фильтр получил из-за нескольких особенностей. С одной стороны, простота формализации и выполнения: пиксель просто заменяется взвешенным средним его соседей. Кроме того, билатеральный фильтр не итерационен, т.е. удовлетворительный результат достигается уже после одного прохождения, что позволяет интуитивно понимать параметры фильтра, т.к. их действие не зависит от кумулятивного эффекта нескольких итераций, С другой стороны, билатеральный фильтр не линеен и не имеет практического применения без различных улучшений, т.к. требует больших вычислительных ресурсов. Так обработка изображения размером 512х512 рх на стандартном ПК составляет около 30 мин. Стоит заметить, что алгоритмы, ускоряющие работу
билатерального фильтра, разрабатывались раннее, но большинство из них ведет к серьезной потере качества результата.
Такие работы описывают методы, которые ускоряют работу билатерального фильтра. Существует две категории схем ускорения: специализированные фильтры, которые выполняют точное вычисление, но ограничены в определенных сценариях и округляющие фильтры, которые носят более общий характер, но не дают достаточно точных результатов.
Дуранд и Дорси [3] преобразовали к линейному виду билатеральный фильтр, который делает возможным применение быстрых преобразований Фурье. Они также используют понижающую дискретизацию данных для ускорения вычислений до одной секунды или менее для одно-мегапиксельных изображений. Хотя в их статье упоминается вычисление быстрого преобразования Фурье для линеаризованного билатерального фильтра, как только данные преобразуется, прямая свертка становится более эффективной, так как ядро достаточно мало. Хотя их статья не подчеркивает этого, их результаты достигаются с прямой сверткой, без быстрого преобразования Фурье. Разработанная методика связана с их работой в том, что в ней также выражен
билатеральный фильтр через линейные операции и большую часть ускорения почерпнута от понижающей дискретизации. Тем не менее, обозначенная формулировка опирается на более принципиальное выражение, основанное на новой, более высокой размерности интерпретации изображений. Это позволяет ожидать повышенную точность обработки
изображения при помощи билатеральной фильтрации.
Фам и ван Влит в 2005 году применили Ш билатеральный фильтр независимо друг от друга на каждой строке изображения, а затем на каждой колонке. Это позволяет достичь неплохого сглаживания изображения с сохранением границ объектов на изображении. Свертки функций выполняются в пространственной области (без применения быстрого преобразования Фурье). Все эти аппроксимации результатом которых является сокращение времени работы подходят для интерактивных приложений и даже обработки в реальном времени с использованием современных видеокарт. Тем не менее, ни одного теоретического исследования не предлагается, и точность этих приближений неясна. Для сравнения, техника будет основана на преобразовании сигналов, которое помогает определить новую и значимую численную схему. Разработанный алгоритм выполняет оптическую низкочастотную фильтрацию в многомерном пространстве. Показывается, что данный подход естественным образом распространяется на цветные изображения, а также может быть использован для ускорения кросс-билатеральной фильтрации. Издержки многомерной свертки компенсируются понижающей дискретизацией данных без существенной потери точности, тем самым получая более высокую точность для запуска временного эквивалента для существующих методов.
Билатеральный фильтр также может быть определен с использованием быстрого преобразования Фурье [4], но Гауссов билатеральный фильтр получил большее практическое применение.
Точная обработка билатеральным фильтром с использованием определения требует больших затрат вычислительных ресурсов, что неприменимо, например, для предварительной обработки цифровых данных.
Фильтр был адаптирован для таких задач, как: удаление текстуры, динамическое ранговое сжатие и обработка фотографий. Также успешно используется в других областях: выделение контуров, объемное шумоподавление и коррекция видео.
3 Описание алгоритма билатеральной фильтрации
Результатом работы билатерального фильтра является вычисление интенсивности каждого пикселя, как взвешенного среднего интенсивностей соседних пикселей. Вес, связанный с каждым соседним пикселем, изменяется в соответствии со значениями расстояний на плоскости изображения (пространственная составляющая S) и на оси интенсивности (ранговая составляющая R), что позволяет сохранять четкие границы элементов изображения [7]. Используя функцию Гаусса £ а виде зависимости и считая входное изображение I черно-белым, определим результат билатерального фильтра 1р для каждого пикселя р:
(1) позиций
где: - множество возможных пикселей изображения; R - количество используемых цветов;
р = (Рх, &У )е - позиция центрального пикселя;
q - позиция соседнего пикселя; ; > ■ ■■ € R - интенсивности пикселей р и q в диапазоне [0, 1];
£<ги - функции Гаусса с параметрами
Са1%}= -^—(ГШ и ; 4t7ir.fi
1' > - сумма весов для нормализации значений
Параметр задает количество соседних пикселей, значение которых учитывается при обработке одного пикселя области Б, Щг отражает потерю в весе соседними пикселями при разности интенсивностей.
Рассмотрим наиболее интересные из них, а именно: шумоподавление, совмещение двух изображений, стилизация и преобразование тона изображения.
Шумоподавление является одним из основных применений билатерального фильтра и используется для обработки изображений и видео в различных сферах деятельности. Определяется перекрестный
билатеральный фильтр аналогично выражению (1) с заменой I на £ при вычислении рангового веса:
. к (2)
=
q£S
|p-ql|) Ga (| lp - /q |) Г"
Также билатеральный фильтр используется для преобразования тона изображения. Например, на левой фотографии рисунка видно, что существует несколько областей с небольшой разницей интенсивностей: небо и лес внизу. Билатеральный фильтр можно использовать для выделения этих областей и их обработки без появления дополнительного ореола. Обработка заключается в сжатии или растяжении интенсивностей выделенной области, что позволяет выявить мелкие детали изображения
В существующей модели цветных и полутоновых изображений каждый пиксель характеризуется N-градациями яркости [7]. Например, в модели RGB значение N = 256. В
формуле (1) обозначим ^Р =к, где к может изменяться от 0 до 255. В результате формула (1) приобретает следующий вид:
РЕ S
(3)
(ПР-ЧИКО*- М)
,
Таким образом формулы (3) описывают фильтр низких частот. Соответственно, по
скольку ф-ии ~ —
являются гауссовыми функциями, то спектр фурье этих функций будет так же являться гауссовой функцией. По этому он ограничен областью низких частот. В соответсвие с теоремой Котельникова можно выполнить децимацию по координатам, поскольку шаг дискретизации в данной ситуации равен , где F - это эффективная граница спектра Фурье
- Ц)
функций — ч!
В результате вместо вычислений N значений интеграла (3) для всех значений к € {0,..., N-1} вычисления выполняются при к€ (ЬО,... ~~ 1 ). Значение получается в результате прореживания исходной выборки с большим шагом дискретизации.
Таким образом вычисление по формуле (3) дает значений интенсивности.
Следующим шагом представленного алгоритма является интерполяция значений интенсивности на решетке с постоянным шагом. В качестве интерполяционной формулы в работе [1] была предложена билинейная интерполяция по следующей формуле
I5 (у) = о.к+1 -! (р7)Л (р) + С/<р) + ¿»г^кч^ФО . (4)
Для повышения точности получаемых результатов в данной статье была использована, в отличае от [1] интерполяционная формула Котельникова.
В статье предложена новая интерпретация билатерального фильтра, как результат многомерной свертки, сопровождаемый двумя нелинейностями. Для этого, предлагается две важные ре-интерпретации фильтра, которые приоритетно имеют дело с его двумя нелинейными компонентами: нормирование и учет фотометрической близости изображений. Во-первых, определяется однородная интенсивность, которая позволит получить перспективу
нормализации 'кР , как однородную компоненту. Во-вторых, вводится
дополнительное измерение в области 2D-изображения, соответствующий
интенсивности изображения, т.е. диапазон. В то время как визуализация изображений, как высота полей в 3D-пространстве не нова, фильтрация интерпретируется с
использованием функций полностью над этой 3D областью, что позволяет выразить билатеральный фильтр, как линейную инвариантную относительно сдвига свертку в 3D. Эта свертка сопровождается простыми пиксельными нелинейностями, с целью получить соответствующий вывод и выполнить нормализацию однородной компоненты.
Исходя из вышесказанного, шум из-за квантования влияет только диапазон функции , а значения интенсивности пикселей входного изображения (^Я) будут сохранены. Основное вычисление метода + 2 обработки пространственной фильтрации соответствует формуле:
I1 В1 ¿р 1 ш 'ОН) ¿ч
/ д- - =—
/к Ср-
(5)
Кроме того, в разработанном методе, пиксели изображения обрабатываются независимо друг от друга, что делает возможной параллельную реализацию. Так получены две основные причины, по которым представляемый метод превосходит все ранее представленные аппроксимации, как по скорости исполнения, так и по качеству получаемого результата.
5 Б
Для изображений ' Уй-ьж 11 ^к требуются три буфера памяти, по объему равные входному изображению. Следует 1В и 1В
заметить, что /к "/£+1 используют один и тот же буфер памяти. Гауссова пространственная фильтрация также требует дополнительный буфер памяти того же размера, что и исходное изображение. Отсюда следует, что общий буфер памяти приблизительно равен 4 размерам исходного изображения. Тем не менее, отметим, что [1] требует набора буферов изображения для сохранения интегральной гистограммы во время агрегации. В противном случае программа будет вычислять интеграл гистограммы 'V1 раз ценой потери скорости.
Как показано в формуле (5) билатеральный фильтр с произвольной зональностью и диапазоном ядер может быть разделен на две секции пространственных фильтров /.-: &?) и ■ ■ -: ^соответственно [9]. Таким образом, вычислительная сложность зависит от сложности пространственной фильтрации. Что позволяет постоянные временные результаты пространственной фильтрации в постоянном временном диапазоне
билатеральной фильтрации с произвольными зональностями радиусов действия функций. Одним из наиболее популярных пространственных фильтров является бокс-фильтр, который может быть с легкостью посчитан в постоянном временном диапазоне, используя интеграл изображения или суммарную пространственную таблицу.
Еще одним достаточно популярным пространственным фильтром является фильтр Гаусса, который осуществляется в области Фурье, как постоянная размерность фильтра. Но дискретное быстрое преобразование Фурье и его инверсия имеют размерность О(^ г), где г пространственная размерность фильтра. Следовательно, чтобы достичь максимальной скорости стоит использовать рекурсивный метод Деуче [6] с целью аппроксимировать гауссову фильтрацию.
Ключевая идея ускорения реализации билатерального фильтра заключается в вычислении 3D свертки при низкой разрешающей способности. В работе показано, что функции могут быть подвержены понижающей дискретизации без введения значимых ошибок фильтрации. На самом деле, вряд ли удастся построить алгоритм, позволяющий получать
изображения с полным разрешением. Но это приближение обеспечивает хорошую скорость работы представленного метода.
Свертывание лежит в основе разработанной технологии и его эффективность имеет важное значение для производительности работы разработанного алгоритма.
Полное ядро. Может использоваться быстрое преобразование Фурье для эффективного вычисления свертки [10]. Это имеет преимущество в том, что вычисление не зависит от размера гауссова пространства, но зависит от размера домена. Таким образом, может быть использовано точное гауссово ядро. В этом случае приближение приходит только с понижающей дискретизацией и повышения частоты дискретизации и применяется к данным до и после того, как свертка и от кросс-границы артефактов, присущих алгоритму быстрого преобразования Фурье. Чтобы их минимизировать, домен дополняется нулями над 2а.
Усеченное ядро. Когда ядро свертки мало, явное вычисление в пространственной области является эффективной
альтернативой, поскольку участвует только ограниченное число выборок. Хотя гауссово ядро не является компактным, его хвост быстро падает. Поэтому используется классическое приближение усечения ядра за пределами 2а. Применяя только эту технику для случая, когда частота дискретизации равна гауссову стандартному отклонению (т.е. s = а), так как в этом случае понижающая дискретизация ядра изотропна и имеет дисперсию, равную 1 [11]. Усеченное ядро охватывает область 5*5x5, которая является достаточно компактным, чтобы обеспечить быстрое вычисление. Так как ядро инвариантно к сдвигам и разделимое, дополнительно сокращается
продолжительность работы, заменив 3D ядро тремя ядрами Ш. Это хорошо известный метод уменьшает количество точек, в
среднем 15 (= 3 х 5) вместо 125 (=53). В отличие от сепарабельного приближения, это разделение является точным, так как оригинальное 3D-ядро является гауссовым и поэтому разделимо.
4 Экспериментальные исследования представленного алгоритма
С целью проведения эксперимента качества работы разработанного механизма, необходимо взять не зашумленное изображение (рис. 1) и наложить на него разные виды шумов (рис. 2). В данном эксперименте работа фильтров будет проверена на шумах «соль и перец», «гауссов шум» и «мультипликативный шум». Шум соль и перец характеризуется появлением на изображении случайно размещенных пикселей черного и белого цвета. Гауссов шум характеризуется равномерной спектральной плотностью мощности, нормально распределёнными временными значениями и аддитивным способом воздействия на сигнал. Мультипликативный шум, как правило, обусловлен случайными изменениями параметров канала связи.
Рис.1. - исходное изображение
Шум на изображение накладывался в при встроенной функции
помощи библиотеки МайаЬ.
тпо^е
а
в
Рис.2 - зашумленные изображения: а - шум «соль и перец», б - мультипликативный шум, в - гауссов шум.
Сглаживание изображений проводилось при помощи фильтров билатерального, медианного и Баттерворта низких частот.
Фильтрация с помощью двух последних методов выполнялась с использованием стандартных функций библиотеки МаАаЬ.
Для реализации программного продукта в рамках данной работы необходимо было произвести оптимизацию билатеральной фильтрации с использованием возможностей обработки сигналов и реализовать полученный алгоритм с учетом всех требований к увеличению скорости обработки изображения. Таким образом, билатеральный фильтр преимущественно представлен простыми линейными операциями в пространстве большей размерности с использованием укрупненной выборки, что позволит получить усовершенствованную схему с меньшим временем выполнения и известным числовым значением точности
аппроксимации.
Сначала рассмотрим работу фильтра Баттерворта (рис. 3). Стоит отметить, что его амплитудно-частотная характеристика
описывается гауссовой зависимостью. При этом методом коррекции используется различие в спектральных составах шума и изображения, спектральная интенсивность которых с ростом пространственных частот в
отличие от спектральной интенсивности шума довольно быстро убывает. Ослабляя при фильтрации верхние пространственные частоты спектра, добиваются существенного ослабления среднеквадратичного значения шума при сравнительно незначительном ослаблении энергии изображений. Однако опыт показывает, что при этом одновременно с ослаблением шума имеет место размытие цветовых и световых границ, сильно портящие изображение. Обусловлено это тем, что в данном методе не учтена роль верхних пространственных частот при зрительном восприятии световых и цветовых границ.
Теперь проведем эксперимент сглаживания зашумленного изображения при помощи медианного фильтра (рис. 4). Реализуется медианная фильтрация путем сканирования изображения окном, перекрывающим нечетное число его пикселей с последующим ранжированием значений яркости
последовательности пикселей, оказавшихся в данный момент в окне, в записи в массив профильтрованного изображения значения, равного медиане этих пикселей. Медианная фильтрация не гарантирует того, что в результате ее применения на изображении будут подавлены именно помехи, а полезные изменения яркости сохранятся. Так же следует отметить, что медианный фильтр не искажает передачу ступенчатой
последовательности отсчетов и в то же время достаточно эффективно подавляет
импульсные последовательности, если число импульсов в последовательности не превышает половину ширины окна. Благодаря этому свойству медианного фильтра заметно, что при медианной фильтрации изображений, искаженных импульсными помехами, воспроизведение имеющихся в них контуров и резких световых границ будет мало искажаться, при эффективном подавлении импульсных помех.
а
в
Рис.3 - сглаживание зашумленных изображений при помощи фильтра Баттерворта: а - сглаживание шума «соль и перец», б -сглаживание мультипликативного шума, в -сглаживание гауссова шума
б
в
Рис.4 - сглаживание зашумленных изображений при помощи медианного фильтра: а - сглаживание шума «соль и перец», б - сглаживание мультипликативного шума, в - сглаживание гауссова шума
В случае с билатеральной фильтрацией (рис. 5.) можно заметить неплохой результат шумоподавления. В результате исследования можно подчеркнуть ожидаемый результат: световые и цветовые границы объектов на изображении остались достаточно четкими. Наилучший результат получен при сглаживании гауссова шума.
Наиболее сложными для реализации являются алгоритмы, требующие вычисления дополнительных характеристик изображения: такие как преобразование Фурье, вейвлет-преобразования, корреляционные функции.
б
Рис.5 - сглаживание зашумленных изображений при помощи билатерального фильтра: а - сглаживание шума «соль и перец», б - сглаживание мультипликативного шума, в - сглаживание гауссова шума
Худшее быстродействие по сравнению с линейными и медианными фильтрами имеют комбинированные и гибридные из-за многократного вычисления выхода подфильтров, а также адаптивные фильтры по причине постоянного вычисления характеристик изображения с целью выбора нового элемента или нового размера апертуры.
Для устранения Гауссова шума лучше всего использовать линейную фильтрацию. Линейные фильтры размывают детали самого изображения.
Импульсный шум лучше всего удаляется нелинейными фильтрами на основе ранговой статистики, сохраняя при этом перепады в изображении. Но эти алгоритмы плохо устраняют Гауссов шум.
Для устранения комбинированного шума используют усовершенствованные алгоритмы с учётом особенности шума, комбинированные или гибридные, а также адаптивные фильтры. Эти алгоритмы работают на основе как линейной, так и нелинейной фильтрации.
Скорость обработки изображений описанным алгоритмом.
Размер изображения пиксели Время обработки сек.
128x128 5,6
256x256 20,1
512x512 56
Стоит заметить, что описанный алгоритм производит обработку изображения за значительно меньший период времени, по сравнению с обычным алгоритмом
билатеральной фильтрации без значительных потерь в качестве результата.
5 Заключение
В работе предложен алгоритм, с помощью которого время выполнения билатеральной фильтрации существенно сокращается по сравнению с непосредственным вычислением по стандартной формуле этого фильтра. Были выполнены эксперименты для различных размеров обрабатываемого изображения. Показано, что время фильтрации составляет в пределах 1 минуты. Так же в работе показано, что увеличение скорости работы билатерального фильтра не приводит к существенному ухудшению качества фильтрации.
Список литературы
[1] Tomasi C., Manduchi R.: Bilateral filtering for gray and color images // Sixth International Conference on Computer Vision (IEEE Cat. No.98CH36271), 1998, p. 839-846. DOI: i;
[2] Porikli, F.: Constant time o(1) bilateral filtering. CVPR, 2008, p. 1-7. Режим доступа: http://www.merl.com/publications/TR2008-030 (дата обращения 23.12.2016);
[3] Durand F., Dorsey J.: Fast bilateral filtering for the display of high-dynamic-range images.// Conference Paper in ACM Transactions on Graphics, 2002, p.1-7. DOI: 10.1145/566570.566574;
[4] Paris S., Durand F.: A fast approximation of the bilateral filter using a signal processing approach.// Computer Vision - ECCV 2006, 2006, p.558-580. DOI: 10.1007/11744085 44;
[5] Weiss B.: Fast median and bilateral filtering.// Proceeding SIGGRAPH '06 ACM SIGGRAPH 2006 Papers, 2006, p. 519-526. DOI: 10.1145/1141911.1141918;
[6] Deriche R.: Recursively implementing the Gaussian and its derivatives, 1992, р. 263-267. Режим доступа: https://hal.inria.fr/inria-00074778/document (дата обращения 23.12.2016);
[7] Н.Н. Красильников.: Цифровая обработка 2D и 3D изображений. (2011) 608 с.
[8] Википедия - свободная энциклопедия. Режим доступа: https://ru.wikipedia.org/ (дата обращения 23.12.2016)
в
[9] Научная электронная библиотека «КиберЛенинка». Режим доступа: http://cyberleninka.ru/ (дата обращения 23.12.2016)
[10] Интернет-издание «N+1». Режим доступа: https://nplus1.ru/ (дата обращения 23.12.2016)
[11] Интернет-портал «Наука и безопасность». Режим доступа: http://www.pamag.ru/ (дата обращения 23.12.2016)