СПОСОБ АДАПТИВНОЙ ПРОСТРАНСТВЕННО-ВРЕМЕННОЙ АНИЗОТРОПНОЙ БИЛАТЕРАЛЬНОЙ ФИЛЬТРАЦИИ ВИДЕОСИГНАЛОВ
METHOD OF SPACE-TIME ANISOTROPIC BILATERAL FILTRATION OF VIDEO SIGNALS

Изобретение относится к способам и устройствам обработки видеосигналов и изображений, а именно к способам и устройствам подавления шумов в видеосигналах и изображениях.
Проблема подавления шумов в видеосигналах и изображениях является одной из самых важных задач в сфере обработки видеосигналов и изображений. Подавление шумов может применяться как для улучшения видеосигналов и изображений, так и для специфической предварительной обработки видеосигналов и изображений. Существует множество методов для решения проблемы шумоподавления. Многие хорошие решения для шумоподавления основываются на сложных итерационных процедурах, но они являются неприменимыми для обработки видеосигналов вследствие чрезмерных вычислений. Среди неитерационных методов метод билатеральной фильтрации показывает хорошие результаты, при этом метод имеет умеренную сложность. Билатеральный фильтр - это нелинейный фильтр, в котором вес каждого пикселя вычисляется путем перемножения ядра фильтра нижних частот, например гауссиана, в пространственной области на функцию влияния в яркостной области, которая уменьшает вес пикселя с большой разностью по яркости. Данный фильтр очень хорошо сохраняет детали по сравнению с фильтрами, оперирующими только в пространственной области.
Одним из эффективных решений для билатеральной фильтрации является способ, предложенный в патенте США №7146059 [1]. В описанном способе выполняют быструю билатеральную фильтрацию и используют ее для отображения изображений с большим динамическим диапазоном. Разделяют изображение на базовый слой, который кодирует масштабные изменения, и слой деталей. В базовом слое уменьшают контраст изображения, сохраняя при этом детали изображения. Базовый слой получают при помощи билатерального фильтра, сохраняющего грани. Ускорение билатеральной фильтрации получают, используя кусочно-линейную аппроксимацию в яркостной области и соответствующую дискретизацию. К недостаткам способа можно отнести то, что способ разработан для фильтрации изображений и не учитывает временную природу видеосигналов. Если применить этот способ к видео сигналам, это приведет к эффекту мерцания. Также способ не подавляет некоторые виды шумов, такие как артефакты сжатия и шумы сенсора камеры.
В выложенной заявке на патент США №2005/0025378 [2], которая наиболее близка по замыслу к предлагаемому изобретению, описан способ билатеральной фильтрации, в котором сигнал пикселя корректируют путем прибавления билатерального поправочного члена к исходному сигналу пикселя. Билатеральный поправочный член - это функция локальных разностей сигнала между центральным пикселем ядра фильтра и его соседями. Билатеральный поправочный член вычисляют, используя эффективную, с точки зрения вычислений, аппроксимацию, основанную на разложении в ряд Тейлора выражения нормализации. К недостаткам способа можно отнести то, что способ разработан для фильтрации изображений и не учитывает временную природу видеосигналов. Если применить этот способ к видеосигналам, это приведет к эффекту мерцания. Также способ не подавляет некоторые виды шумов, такие как артефакты сжатия и шумы сенсора камеры.
Задача, на решение которой направлено заявляемое изобретение, заключается в разработке способа адаптивной пространственно-временной анизотропной билатеральной фильтрации видеосигналов с расширенной функциональностью, а именно с возможностью обработки видеокадров в соответствии с их структурой, рассчитанной при помощи вычисления направления контуров и их силы, с возможностью адаптации уровня фильтрации в зависимости от структуры изображения, с возможностью подавления шумов различного рода, с возможностью шумоподавления как в пространственной области, так и во временной области, с возможностью реализации в конвейерных структурах с параллельными вычислениями и более высоким качеством подавления шума, при котором не возникают артефакты в итоговом отфильтрованном изображении.
Поставленная задача решена за счет создания нового способа адаптивной пространственно-временной анизотропной билатеральной фильтрации видеосигналов, предусматривающего выполнение следующих операций для каждого текущего пикселя изображения:
- выбирают вокруг текущего пикселя первую область, состоящую из текущего пикселя и нескольких ближайших соседних пикселей изображения;
- выбирают две линии, одна из которых проходит горизонтально (горизонтальная линия), а другая вертикально (вертикальная линия) через текущий пиксель и пиксели области текущего пикселя;
- определяют горизонтальный градиент вдоль горизонтальной линии области текущего пикселя как разность между пикселем, расположенным слева от текущего пикселя, и пикселем, расположенным справа от текущего пикселя;
- определяют вертикальный градиент вдоль вертикальной линии области текущего пикселя как разность между пикселем, расположенным сверху от текущего пикселя, и пикселем, расположенным снизу от текущего пикселя;
- определяют корреляционную матрицу для горизонтальных градиентов и вертикальных градиентов области текущего пикселя, а также собственные векторы
l
s
l
s
θ,θ и собственные величины λ,λкорреляционной матрицы;
- определяют силу контуров Edge_Power по формуле
где n - число, задающее чувствительность к контуру объекта в изображении;
s
- определяют направление Ω контура объекта в изображении как угол между собственным вектором θ, корреляционной матрицы с меньшим значением собственной величины и горизонтальной линией;
- для каждого кадра из выбранного числа соседних кадров, включая текущий кадр, выбирают вокруг пикселя, соответствующего текущему пикселю, область поиска, состоящую из текущего пикселя и ближайших соседних пикселей изображения;
- вычисляют весовые коэффициенты временного фильтра путем сравнения первой области (окно с размером К×К) в текущем кадре с областями того же размера в области поиска (окно с размером N×N) в текущем и соседних кадрах;
t
- рассчитывают коэффициенты адаптации временного и билатерального фильтров к силе контуров. Коэффициент адаптации σ временного фильтра к энергии контура вычисляют по формуле
,
t
t
r
где k является регулируемым параметром. Для коэффициента адаптации σ временного фильтра к энергии контура можно использовать также любую другую вогнутую функцию. Коэффициент адаптации σ билатерального фильтра к энергии контура вычисляют по формуле
,
b
r
где k - это регулируемый параметр, причем для величины σ вместо функции квадратного корня представляется возможным использовать любую вогнутую функцию;
- выполняют фильтрацию во времени путем нахождения взвешенной суммы пикселей, которые находятся в области поиска в текущем и соседних кадрах. Результат фильтрации сохраняют в переменной out_pixelT;
- определяют вторую область, как область текущего пикселя, в которой текущему пикселю присвоено значение out_pixelT;
- разделяют вторую область на две подобласти вдоль направления Ω - первую и вторую подобласти (Фиг.2);
- выполняют билатеральную фильтрацию для первой и второй подобласти по следующей формуле
i
где I - это интенсивность точки с индексом i,
p
I - интенсивность точки, для которой выполняется фильтрация (центральная точка маски). В качестве h(spatial) может использоваться любое ядро низкочастотного фильтра. Мы использовали Гауссиан в качестве такого ядра;
- вычисляют результат билатеральной фильтрации как взвешенное суммирование результатов фильтрации первой и второй подобласти;
- выполняют аппроксимацию текущего пикселя пикселями, расположенными вдоль направления контура, при этом аппроксимация представляет собой среднее арифметическое соседних к текущему пикселю пикселей, расположенных вдоль контура;
- вычисляют окончательный результат фильтрации как взвешенную сумму результатов билатеральной фильтрации и аппроксимации вдоль контура.
Техническим результатом заявленного изобретения является расширение функциональности и повышение качества подавления шумов различного рода, таких как артефакты сжатия, шумов сенсора камеры за счет обработки изображения как в пространственной области, так и во временной области, и адаптации фильтра к структуре изображения при помощи вычисления направления контура и разделения маски фильтра на две части вдоль контура с последующей фильтрацией обеих частей в раздельности.
Основная идея заявленного способа состоит в замене величины начальной интенсивности текущего пикселя функцией интенсивности окружающих пикселей, расположенных в текущем кадре и соседних кадрах. В способе определяют взвешенную сумму величин начальных интенсивностей пикселей соседних кадров и текущего кадра. При этом вес определяют как функцию разностей интенсивностей пикселей, составляющих области вокруг текущего пикселя и пикселя, для которого вычисляют вес. Затем результат взвешенного суммирования еще раз взвешенно суммируют с начальными интенсивностями окружающих пикселей, расположенных в текущем кадре. При этом вес определяют через функцию низкочастотного фильтра в пространственной и яркостной области. Степень фильтрации низкочастотного фильтра адаптируют к силе контуров.
Заявленный способ выполняется в реальном времени. Это означает, что время, которое требуется для обработки одного изображения, меньше времени смены изображений в видеопоследовательности изображений.
В способе не требуются данные пикселей всего изображения, чтобы отфильтровать текущий пиксель - единовременно обрабатывают области изображения размером в несколько пикселей.
Для лучшего понимания заявленного изобретения далее приводится его подробное описание с соответствующими чертежами.
Фиг.1 - схема пошагового выполнения способа адаптивной пространственно-временной анизотропной билатеральной фильтрации видеосигналов, выполненного согласно изобретению.
Фиг.2 - разделение маски билатерального фильтра вдоль контура.
Рассмотрим пошаговое выполнение заявленного способа (Фиг.1).
Сначала выбирают вокруг текущего пикселя первую область, состоящую из текущего пикселя и ближайших соседних пикселей изображения (Шаг 1). Затем для каждого (текущего) пикселя изображения выполняют следующие операции.
s
l
s
l
Вычисляют параметры ориентации и силы контуров (Шаг 2). Эти параметры включают в себя направление контура и 2 значения λ и λ, где λ - это производная в α направлении и λ производная в направлении .
Горизонтальные и вертикальные производные для текущего пикселя вычисляются, как
и
соответственно.
Производные рассматривают как случайные переменные. Затем рассчитывают следующие величины для области текущего пикселя
Данные величины составляют ковариационную матрицу случайной переменной. Вычисляют меньшее собственное значение ковариационной матрицы как
и большее собственное значение ковариационной матрицы как
Вычисляют проекции вектора направления контура на горизонтальное и вертикальное направления как  и  соответственно. Определяют силу контура Edge_Power по формуле
где n - число, задающее чувствительность к контуру объекта в изображении.
Затем для выбранного числа соседних кадров, включая текущий кадр, для каждого кадра выбирают вокруг пикселя соответствующему текущему пикселю область, состоящую из нескольких ближайших соседних пикселей изображения, так называемую область поиска (Шаг 3).
Далее вычисляют веса для временного фильтра (Шаг 4). Веса считают путем сравнения первой области (окно с размером К×К) в текущем кадре с областями того же размера в области поиска (окно с размером N×N) в текущем и соседних кадрах. Для сравнения областей используют меру D
n
n
n
n
n
n
где inp(x,y,t) обозначает пиксель из текущего кадра t с координатами x и y,
2
n
n
inp(p,s,t+r) обозначает пиксель из кадра t+r с координатами р и s,
индекс i изменяется в пределах от  до  в горизонтальном направлении,
индекс j изменяется в пределах от  до  в вертикальном направлении.
t
Затем рассчитывают коэффициенты адаптации временного и билатерального фильтров к силе контуров (Шаг 5). Коэффициент адаптации σ временного фильтра к энергии контура вычисляют по формуле ,
t
t
r
где k является регулируемым параметром. Для коэффициента адаптации σ временного фильтра к энергии контура можно использовать также любую другую вогнутую функцию. Коэффициент адаптации σ билатерального фильтра к энергии контура вычисляют по формуле ,
b
r
r
где k - это регулируемый параметр. Для величины σ вместо функции квадратного корня может использоваться любая вогнутая функция. При этом поведение коэффициента σ можно описать следующим образом. Для областей изображения, не содержащих выраженных контуров, степень билатеральной фильтрации увеличивается. При этом сила контура Edge_Power близка к 1. В случае, если сила контура Edge_Power близка к 0, область с текущим пикселем содержит явно выраженный контур и степень билатеральной фильтрации уменьшается.
Далее выполняют фильтрацию во времени (Шаг 6). Фильтрация заключается в вычислении взвешенной суммы из пикселей, которые находятся в области поиска в текущем и соседних кадрах. Результат фильтрации зависит от количества соседних кадров, используемых для обработки. Чем больше кадров используют, тем лучше получают результат фильтрации. Результат временной фильтрации получают следующим образом:
n
n
n
где  обозначает пиксель из кадра t+r с координатами x+p и y+s,
индекс p изменяется в пределах от  до  в горизонтальном направлении,
индекс s изменяется в пределах от  до  в вертикальном направлении,
индекс r изменяется в пределах от  до  во временной области,
Т - число соседних кадров, используемых для временной фильтрации,
2
n
n
n
w(p,s,r) - вес пикселя inp(x+р,y+s,t+r), который вычисляют как
t
σ - коэффициент адаптации временного фильтра к энергии контура.
Нормировочный множитель вычисляют по формуле
Определяют вторую область, как область текущего пикселя, в которой текущему пикселю присвоено значение out _pixelT (Шаг 7).
Разделяют вторую область на две подобласти вдоль направления Ω - первую и вторую подобласти (Фиг.2) (Шаг 8).
Выполняют билатеральную фильтрацию первой и второй подобласти по следующей формуле (Шаг 9 и 10)
i
где I - это интенсивность точки с индексом i,
p
I - интенсивность точки, для которой выполняется фильтрация (центральная точка маски).
В качестве h(spatial) может использоваться любое ядро низкочастотного фильтра. Мы использовали Гауссиан в качестве такого ядра.
Результат билатеральной фильтрации вычисляют через взвешенную сумму результатов фильтрации первой и второй подобласти (Шаг 11).
где bil_pixel обозначает результат адаптивного билатерального
пространственного фильтра,
filt_pixel1 обозначает результат фильтрации первой подобласти,
filt_pixel2 обозначает результат фильтрации второй подобласти,
1
w - вес результата фильтрации первой подобласти вычисляют следующим образом
2
1
w - вес результата фильтрации второй подобласти вычисляют подобным образом как w
1
где sum_grad - сумма градиентов, вычисленных вдоль контура со стороны первой подобласти,
2
sum_grad - сумма градиентов, вычисленных вдоль контура со стороны второй подобласти.
Далее выполняют аппроксимацию текущего пикселя пикселями, расположенными вдоль направления контура (Шаг 12). Аппроксимация представляет собой комбинацию
-
+
int_pixel=(Idir+Idir)/2,
-
+
где Idir и Idir соседние пиксели, расположенные вдоль контура.
В конечном счете, окончательный результат фильтрации вычисляют как
filt_pixel=w·bil_pixel+(1-w)·int_pixel (Шаг 13), где
Th обозначает порог, который определяется в результате обучения алгоритма,
int_pixel обозначает результат аппроксимации текущего пикселя вдоль контура,
filt_pixel обозначает окончательный результат фильтрации.
Заявленный способ может быть реализован в системе, состоящей из функциональных элементов.
Изобретение может применяться в промышленно изготавливаемых устройствах, таких как видеокамеры, телевизионные устройства, дисплеи мобильных устройств и др., работающих с видеосигналами.
Хотя указанный выше вариант выполнения изобретения был изложен с целью иллюстрации настоящего изобретения, специалистам ясно, что возможны разные модификации, добавления и замены, не выходящие из объема и смысла настоящего изобретения, раскрытого в прилагаемой формуле изобретения.