СПОСОБ И УСТРОЙСТВО БЫСТРОГО ФИЛЬТРОВАНИЯ ШУМА ЦИФРОВЫХ ИЗОБРАЖЕНИЙ
METHOD AND DEVICE FOR FAST NOISE FILTRATION IN DIGITAL IMAGES

Заявляемое изобретение относится к области обработки цифровых изображений, и, в частности, к способам устранения шума цифровых изображений.
Датчики современных цифровых фотокамер (DSC) демонстрируют шумовые эффекты в процессе захвата фотоизображения. В случае матрицы RGB фильтр Байера привносит дополнительный шум. Также при сильной компрессии цифровых изображений наблюдаются компрессионные артефакты, такие как блочный шум и «москитный» шум.
Известные из уровня техники способы фильтрования для DSC позволяют значительно повысить качество изображения. Однако время обработки у известных методов может быть довольно продолжительным. Особенно это касается методов, требующих нескольких проходов (итераций) для достижения желаемого результата [4-5].
Недавно разработанный фильтр нелокальных средних значений (NL-means), описанный в Европейской патентной заявке №1749278 [1], заменяет зашумленный пиксель взвешенным средним числом пикселей с ближайшим окружением. Способ имеет ряд недостатков. В частности, способ требует значительных вычислительных ресурсов. При обработке области с текстурой фильтр привносит некоторое размытие изображения, в то время как для плоских областей он работает хорошо. Поэтому для областей с текстурой необходима некоторая адаптация фильтра. Также требуется некоторая модификация способа для ускорения алгоритма.
В техническом решении, предложенном в патентной заявке США № 20070133895 [2], выполняют анализ дисперсии области. Способ определяет области с высокими частотами и области с низкими частотами. Для областей с низкими частотами используют обычный локальный линейный среднеквадратичный фильтр (LLMMSE). Для областей с высокой частотой используют фильтр, основанный на фильтрации изображения с помощью образов (то есть NL-means). Таким образом, указанный способ использует один из двух режимов в зависимости от характера изображения. Это обеспечивает лучшее сохранение текстуры и устраняет отмеченные в ранее упомянутом способе недостатки NL-means [1]. Недостаток способа заключается в использовании пороговых значений для определения текстурного региона. Для различных уровней шума необходимо устанавливать соответствующие пороговые значения.
Наиболее близким к заявляемому изобретению является техническое решение, описанное в докладе М.Mahmoudi and G.Sapiro "Fast Image and Video Denoising via Non-Local Means of Similar Neighborhoods", IEEE Signal Processing Letters, Dec. 2005, Volume: 12, Issue: 12, page(s): 839-842 [3] и касающееся способа предварительной классификации блоков изображения и уменьшения влияния менее относящихся к делу устранения шумов областей данного пикселя. Основная идея, изложенная в докладе, заключается в ускорении первоначального алгоритма NL-means [1] путем введения фильтров, которые удаляют не относящиеся к делу окрестности из взвешенного усреднения. Эти фильтры основаны на локальных усредненных значениях градаций серого и градиентах, на предварительной классификации окружения и, таким образом, на сведении первоначальной квадратурной сложности к линейной, и на снижении влияния менее относящихся к делу областей на снижение шума в данном пикселе. Упомянутый доклад выбран в качестве прототипа заявляемого изобретения.
К недостаткам прототипа [3] следует отнести следующее. Способ-прототип определяет, является ли данный пиксель надежным или нет, путем установления факта того, что его параметры, а именно, средние значения градации серого и градиенты, лежат в предопределенных диапазонах, т.е. параметры должны быть выше или ниже предопределенных порогов. Пороги не выбираются адаптивно, и для различных уровней шума необходимо вручную установить конкретные значения порогов. Методология установки порогов не ясна из источника [3].
Задача, на решение которой направлено заявляемое изобретение, заключается в создании устройства и способа быстрого фильтрования шумов цифровых изображений, которые обеспечивали бы высокое качество шумоподавления без привнесения искажений (артефактов).
Технический результат достигается за счет разработки способа и устройства для качественного ускоренного фильтрования шумов цифровых изображений, при этом способ основан на определении локальной структуры изображения и на нелокальном усреднении в соответствии с определенной структурой и заключается в выполнении следующих операций:
c
- определяют локальную структуру изображения путем последовательного свертывания предопределенных шаблонов с соседними пикселями и путем отбора образцового шаблона RP, который выдает наименьшую ошибку после свертывания,
- выполняют фильтрацию с помощью взвешенного усреднения значений пикселя в поисковом окне, при этом проводят фильтрацию в 2 этапа, сначала применяют алгоритм для каждой строки изображения, а затем для каждого столбца, причем результат фильтрации вычисляют следующим образом
,
r
r
r
r
r
где I(х, y) обозначает опорный пиксель с координатами x и y,
row
r
r
r
r
I(х, y) обозначает пиксель с координатами х и y после процедуры фильтрации строк изображения,
f
r
r
I(x, y) обозначает конечный результат фильтрации после процедуры фильтрации столбцов изображения,
индекс p изменяется от  до  в направлении X,
индекс s изменяется от  до  в направлении Y,
r
r
r
r
w - вес опорного пикселя I(х, y),
нормирующий множитель для прохода по строкам вычисляют как ,
нормирующий множитель для прохода по столбцам вычисляют как ;
r
- вес w каждого опорного пикселя определяют следующим образом
,
c
r
если образцовый шаблон RP текущего пикселя совпадает с образцовым шаблоном опорного пикселя RP, то опорный пиксель считают корректным. В противном случае, когда образцовые шаблоны текущего пикселя и опорного пикселя разные, считают, что опорный пиксель является некорректным, и исключают его из процесса удаления шумов. вес корректного опорного пикселя определяют как
f
f
n
f
f
f
n
f
f
n
где σ=f(k, σ) - параметр Гауссиана для управления степенью фильтрования шума, при этом более высокие значения σ  соответствуют более высокой степени фильтрования, а более низкие значения σ соответствуют более низкой степени фильтрования, функция f(k, σ) описывает зависимость σ от двух параметров, а именно от коэффициента k фильтрации, который регулирует степень фильтрования, и от коэффициента σ оценки шума,
c
c
k и σ - параметры подавления компрессионных артефактов,
n
n
n
С - параметр, показывающий наличие или отсутствие компрессионного артефакта в опорном пикселе. В случае наличия компрессионного артефакта в опорном пикселе С=1. При этом вес опорного пикселя уменьшается. При отсутствии компрессионного артефакта в опорном пикселе С=0. При этом вес опорного пикселя рассчитывают только исходя из степени подобия между окрестностью пикселя и опорной окрестностью, при этом функция d() для сравнения окрестности пикселя имеет следующий вид
c
c
c
c
с
где I(x, y) означает текущий пиксель с координатами x и y,
r
r
r
r
r
I(x, y) означает опорный пиксель с координатами x и y,
индекс i изменяется от  до  в направлении X,
индекс j изменяется от  до  в направлении Y,
r
σ - параметр Гауссиана для управления весом пикселя относительно его положения по отношению к текущему положению пикселя, при этом внешние пиксели, расположенные в отдалении от центрального пикселя, обладают меньшим весом, чем внутренние пиксели, расположенные вблизи центрального пикселя и имеющие более высокий вес, при этом нормирующий множитель вычисляют как .
Что касается устройства для реализации способа, то оно состоит (см. Фиг.1) из блока 101 памяти, блока 110 оценки уровня шумов, в который входят модуль 111 оценки уровня шумов и модуль-регистр 112, блока 120 детектирования компрессионных артефактов, в который входят модуль 121 детектирования компрессионных артефактов и модуль-регистр 122, блока 130 определения характеристик изображения, в который входят модуль 132 определения локальной структуры изображения и модули 131, 133 памяти, а также из блока 140 фильтрования, в который входят модуль 141 вычисления веса фильтра, модуль 142 применения фильтрования и модуль 143 памяти, при этом выход блока 101 подключен параллельно к входу блока 110 оценки уровня шумов, к входу блока 120 детектирования компрессионных артефактов, к входу блока 130 определения характеристик изображения и входу блока 140 фильтрования, при этом вход блока 110 оценки уровня шумов совпадает с входом модуля 111 оценки уровня шумов, выход которого подключен к входу модуля-регистра 112, выход которого, в свою очередь, подключен к первому входу блока 140 фильтрования; вход блока 120 детектирования компрессионных артефактов совпадает с входом модуля 121 детектирования компрессионных артефактов, выход которого подключен к входу модуля-регистра 122, выход которого, в свою очередь, подключен ко второму входу блока 140 фильтрования; вход блока 130 определения характеристик изображения совпадает с входом модуля 132 определения локальной структуры изображения, при этом второй вход модуля 132 подключен к выходу модуля 131 памяти, а выход модуля 132 подключен к входу модуля 133 памяти; выход блока 130 определения характеристик изображения подключен к третьему входу блока 140 фильтрования, при этом все три входа блока 140 фильтрования совпадают с тремя входами модуля 141 вычисления веса фильтра, выход которого подключен к входу модуля 142 применения фильтрования, а выход модуля 142 применения фильтрования подключен к входу модуля 143 памяти.
Другие чертежи иллюстрируют заявляемый способ и результаты его применения.
Фиг.2 - алгоритм выполнения способа быстрого фильтрования шума на изображении согласно изобретению.
Фиг.3 - алгоритм определения локальной структуры.
Фиг.4 - Принцип фильтрации, известный из уровня техники.
Фиг.5 - Пример шаблонов, используемых для определения локальной структуры.
Фиг.6 - Новый принцип фильтрации.
Фиг.7 - (вид 7.1 - зашумленное изображение, 7.2 - результат фильтрации известным способом [1], 7.3 - результат фильтрации заявляемым фильтром согласно изобретению).
Фиг.8 - (вид 8.1 - изображение, серьезно поврежденное шумами, 8.2 - результат фильтрации известным способом [1], 8.3 - результат фильтрации заявляемым фильтром согласно изобретению).
Фиг.9 - (вид 9.1 - зашумленное изображение, 9.2 - результат фильтрации известным способом [1], 9.3 - результат фильтрации заявляемым фильтром согласно изобретению).
Фиг.10 - сравнение эффективности известного и заявляемого фильтров.
n
Представленный на Фиг.2 алгоритм работает следующим образом. На первом этапе зашумленное изображение записывается в модуле 201 памяти, затем выполняют процедуру оценки, которая может выполняться различными способами (шаг 202). Цель процедуры - получить значение σ оцененной шумовой дисперсии изображения и сохранить это значение в блоке памяти.
На следующем этапе (шаг 203) выявляют артефакты компрессии в исходном изображении. Это может быть сделано любым из способов [4] или [5].
После этого на шаге 204 с помощью блока определения локальной структуры 132 устанавливают номер (индекс) опорного шаблона из базы шаблонов, сохраняемой в блоке памяти 131. Здесь под опорным шаблоном понимается такой шаблон, который дает наименьшую ошибку (значение) при свертке с окрестностями пикселя. Процесс свертки является широко известным из уровня техники, поэтому здесь он не описывается. А такой способ определения локальной структуры применим только в канале яркости, однако, после получения результатов определения их можно использовать для фильтрации, как в каналах яркости, так и в каналах цветности.
На Фиг.3 показано, что процедура определения локальной структуры начинается с установления номера шаблона NumOfPatt и структуры шаблонов (301). Пример шаблона приведен на Фиг.5. При этом используется счетчик шаблонов в базе шаблонов. На этапе 301 счетчик установлен на единицу.
n
n
На шаге 205 способа быстрой фильтрации вычисляют вес фильтров по оценке дисперсии σ, флажку С выявления компрессионных артефактов и опорным шаблонам (RP) окрестностей пикселя (RefPattArray).
В дальнейшем термином "опорная окрестность" обозначим участок изображения, который включает опорный пиксель, и некоторые соседние пиксели (примеры таких областей можно увидеть на Фиг.6, как клетки с «квадратными» пикселями в центре). У опорной окрестности должны быть та же самая форма и размеры, как и окрестности пикселя, поскольку они сравниваются пиксель за пикселем. В предпочтительном варианте реализации заявляемого изобретения опорная окрестность определена как прямоугольное окно размером N×M, где N - высота окна в пикселях, а М - ширина окна в пикселях.
Фильтрацию шумов проводят в каналах яркости и цветности отдельно. Процесс фильтрации начинается с вычисления веса для каждого опорного пикселя. Затем текущий пиксель заменяют взвешенным средним числом опорных пикселей. В первую очередь, способ вычисления весов фильтра исследует каждый опорный пиксель с целью обнаружения, является ли опорный пиксель подходящим опорным пикселем или нет. Если пиксель ссылки - подходящий, метод переходит к сравнению окрестностей пикселя с опорной окрестностью. На основе сравнения окрестностей далее вычисляют вес пикселя. Но если опорный пиксель не подходящий, опорный пиксель пропускают и назначают ему нулевой вес. Отбрасывание ненадежных опорных пикселей заранее без вычисления веса является главным преимуществом предложенного метода быстрого фильтрования зашумленного изображения. Путем сравнения RP текущего пикселя с RP опорных пикселей можно сделать вывод, подобны ли окрестности пикселя одна другой или нет. Если они не подобны, то есть имеют различные шаблоны, и как следствие, различные RP, то нет необходимости вычислять вес опорного пикселя. В результате такого усовершенствования резко снижаются потребности в вычислительных ресурсах по сравнению с уровнем техники.
Отбрасывание ненадежных опорных пикселей без предварительного вычисления веса поясняется на Фиг.4 и Фиг.6. На Фиг.4 представлено вычисление веса по ранее известному способу. Для каждого опорного пикселя (примеры таких пикселей маркированы квадратами на Фиг.4) вычисляют вес. В отличие от предшествующего уровня техники в заявляемом способе вычисляют веса только подходящих опорных пикселей (примеры таких пикселей маркированы как x на Фиг.6).
r
Вес w каждого опорного пикселя определяют следующим образом:
c
где RP - номер (индекс) опорного шаблона для текущего пикселя,
r
RP - номер (индекс) опорного шаблона для опорного пикселя.
f
Вес подходящего опорного пикселя вычисляют, как функцию w () от функции сравнения окрестностей пикселя d () и параметра σ, который задает степень фильтрования. В предпочтительном варианте реализации заявляемого изобретения в качестве такой функции w () используют Гауссиан. Имеется возможность использовать и иные функции в качестве функции w ().
Вес подходящего опорного пикселя определяют как
,
f
f
n
f
f
n
f
f
n
f
n
f
n
f
n
где σ=f(k, σ) - параметр Гауссиана, определяющий степень фильтрования шума. Более высокие значения σ указывают на более высокую степень фильтрования. Функция f(k, σ) описывает зависимость σ от двух параметров: коэффициент k фильтрации, определяющий степень фильтрования, и коэффициент σ оценки шума, который был вычислен на шаге 2. В предпочтительном варианте реализации заявляемого изобретения функцию f(k, σ) определяют как f(k, σ)=k·(σ+1). Возможны применения и других видов функции f (), что не отражается на области воздействия этой функции;
с
с
k и σ являются параметрами подавления артефактов компрессии,
n
n
C - флажок, показывающий, не поврежден ли опорный пиксель артефактами компрессии. Если пиксель поврежден, т.е. С=1, то вес опорного пикселя будет понижен.
d () - функция, используемая для сравнения окрестностей пикселя с опорными окрестностями. В предпочтительном варианте реализации заявляемого изобретения функция d () определена как
c
c
c
с
с
где I(x, y) обозначает интенсивность рассматриваемого пикселя с координатами x и y,
r
r
r
r
r
I(x, y) обозначает интенсивность опорного пикселя с координатами x и y,
индекс i изменяется от  до  в направлении X,
индекс j изменяется от  до  в направлении Y,
r
σ - параметр Гауссиана, определяющий вес пикселя по его положению относительно текущего положения пикселя. Внешним пикселям (удаленным от центрального пикселя) приписывают меньшие значения веса, а внутренним пикселям (приближенным к центральному пикселю), приписывают более высокие значения веса.
Нормировочный множитель вычисляют как .
Другие типы функции d () для сравнения окрестностей пикселей являются также приемлемыми.
Следующий шаг (шаг 206) способа предпринимают для собственно фильтрования шума. После вычисления весов фильтрацию выполняют путем сложения весовых значений опорных пикселей. Результат (выход) фильтрации вычисляют следующим образом:
,
r
где I(x, y) обозначает опорный зашумленный пиксель с координатами x и y,
f
I(x, y) обозначает отфильтрованный пиксель с координатами x и y,
индекс p изменяется от  до  в направлении X,
индекс s изменяется от  до  в направлении Y,
r
r
w(p, s) - вес опорного пикселя I(x+p, y+s),
Нормировочный множитель вычисляют как .
Для понижения вычислительной сложности и дальнейшего ускорения работы алгоритма заявляемый фильтр вычисляют независимым способом. Сначала фильтр применяют для строк (рядов) исходного изображения. Затем обработанное изображение подвергают фильтрованию по столбцам (в поколонном порядке):
,
r
где I(x, y) обозначает интенсивность опорного пикселя с координатами x и y,
row
I(x, y) обозначает интенсивность пикселя с координатами x и y, отфильтрованного фильтром построчно,
f
I(x, y) обозначает окончательную интенсивность пикселя с координатами x и y, отфильтрованного фильтром по столбцам (поколонно),
индекс p изменяется от  до  в направлении X,
индекс s изменяется от  до  в направлении Y,
r
r
w(p) - вес опорного пикселя I(x+p, y) для построчного фильтра,
r
r
w(s) - вес опорного пикселя I(x, y+s) для поколонного фильтра,
нормировочный множитель для построчного фильтра вычисляют как ,
нормировочный множитель для поколонного фильтра вычисляют как ,
После усреднения весов опорных пикселей результат записывают в выходном буфере (шаг 207). Вышеупомянутая процедура фильтрации выполняется, шум повторяется для всех пикселов изображения, и результат сохраняется в выходном буфере как отфильтрованное изображение.
Следует отметить, что помимо высокой эффективности работы, заявляемый способ не порождает артефактов. На Фиг.7 показан результат фильтрации изображения, содержащего много мелких деталей (листья и лепестки). Исходное зашумленное изображение представлено на 7.1. Вид 7.2 демонстрирует результат фильтрации с использованием традиционного способа NL-mean [1]. Шум устранен, однако исчезли и многие детали. Красный круг на Фиг.7.2 указывает на эту ситуацию. Фиг.7.3 представляет результат фильтрации в соответствии с предложенным решением. Ясно видно, что шум успешно подавлен без искажения деталей изображения. В то же время предложенный метод функционирует в 7,37 быстрее, чем известные способы (см. Фиг.10).
Фиг.8 показывает результат фильтрации изображения, серьезно поврежденного шумом датчика изображения. Зашумленное изображение представлено на 8.1. Фиг.8.2 представляет результат фильтрации на основе известных способов [1]. Шум устранен вместе с мелкими деталями (окна, мачта и провод). Красный крут на чертеже привлекает внимание к этой ситуации. Это отфильтрованное изображение выглядит расплывчатым. На Фиг.8.3 представлен результат фильтрации в соответствии с предложенным решением. Отмечается, что шум успешно подавлен без искажения деталей изображения. Кроме всего прочего, предложенный способ позволяет выполнять фильтрование в 24.36 раза быстрее, чем способ-прототип.
Предлагаемый способ применим для обработки изображения в фотокамерах. Фиг.9 показывает результат фильтрации фото-изображения с использованием известных ранее способов (Фиг.9.2) и с помощью заявляемого способа (Фиг.9.3). Для изображения, представленного на Фиг.9, заявляемый способ превышает по скорости известные способы в 23,13 раз.
В ходе моделирования размер поискового окна устанавливали, как 15×15, а размер окрестности пикселя устанавливали, как 5×5.
Заявляемое изобретение может быть непосредственно применено в программном обеспечении фотокамер для устранения шумов, порождаемых датчиками камер, а также для удаления компрессионных артефактов.
Источники информации
[1] ЕР patent application No. 1749278, J.-M. Morel et al., "Image Data Processing Method by Reducing Image Noise, And Camera Integrating Means for Implementing Said Method".
[2] US patent application No. 20070133895, M.G.Kang et al., "Method for Filtering Image Noise Using Pattern Information".
[3] M.Mahmoudi and G.Sapiro "Fast Image and Video Denoising via Non-Local Means of Similar Neighborhoods", IEEE Signal Processing Letters, Dec. 2005, Volume: 12, Issue: 12, page(s): 839-842, ISSN: 1070-9908.
[4] S.P.Awate and R.T.Whitaker, "Higher-Order Image Statistics for Unsupervised, Information-Theoretic, Adaptive, Image Filtering," Proc. IEEE Int. Conf. Computer Vision and Pattern Recognition, vol.2, pp.44-51, 2005.
[5] S.P.Awate and R.T.Whitaker, "Unsupervised, Information-Theoretic, Adaptive Image Filtering for Image Restoration," IEEE Transactions on Pattern Analysis and Machine Intelligence, vol.28, no.3, pp.364-376, 2006.