МАТЕМАТИЧЕСКИЕ ЗАДАЧИ КОМПЬЮТЕРНОЙ ГРАФИКИ

Download Report

Transcript МАТЕМАТИЧЕСКИЕ ЗАДАЧИ КОМПЬЮТЕРНОЙ ГРАФИКИ

AKVIS Lab
МАТЕМАТИЧЕСКИЕ ЗАДАЧИ
КОМПЬЮТЕРНОЙ ГРАФИКИ
Гусаренко С.А.
2010
akvis.com
1. Демозаика
Demosaicing Algorithm

Постановка задачи
фотосенсоры цифровой камеры
байеровский шаблон (мозаика)
камера
demosaicing
Простейший подход

Билинейная интерполяция
1
G5  (G2  G4  G6  G8 )
2
1
1
R2  ( R1  R3 ) R4  ( R1  R7 )
2
2
1
1
B2  ( B1  B3 ) B4  ( B1  B7 )
2
2
мозаика
билинейная
интерполяция
Заметны артефакты в
виде цветовых пятен
(мозаики)!
Стандартный алгоритм

Алгоритм Киммела
1. Интерполяция зеленого
E2G2  E4G4  E6G6  E8G8
G5 
,
E2  E4  E6  E8
E – соответствующий
градиент
2. Интерполяция цветовых отношений
Предположение о постоянстве (или гладкости) цветовых отношений R/G и B/G
E1
R5  G5
R
R
R
R1
 E3 3  E7 7  E9 9
G1
G3
G7
G9
E1  E3  E7  E9
3. Коррекция цветовых отношений
Отношения R/G и B/G постоянны → отношения G/R и G/B тоже постоянны
4. Итерации коррекции
исходное
изображение
билинейная
интерполяция
Kimmel
(12 итераций)
Raw-процессор





Демозаика
γ-корреция
Настройка точки белого
Другие преобразования (точка черного,
фильтрация шума, и т.д.)
Сохранение изображения в стандартном
формате (JPG, TIF, BMP и т. д.)
2. Обработка изображения.
Формат RGB.
Формат RGB – стандартный 24-разрядный формат представления
цвета, где каждый пиксел представлен как три байта: один байт для
красного компонента, один байт для зеленого компонента, и один
для синего.
Формат HSL
Hue – цветовой оттенок в градусах от 0°
до 360°.
Saturation – насыщенность в процентах
0% до 100%. Мера количества в цвете
серой краски.
Lightness – светлота или яркость
цвета от 0 до 100.
Изображение. Фильтр.
Изображение – трехмерная матрица
  (0,1,
SizeX  1)  (0,1,
SizeY  1),
I :   b3 ,
b  [0,
где
, 255].
Фильтр – преобразование изображения I   ( I ).
Линейный фильтр – линейное преобразование изображения I   L( I ).
Каждый линейный фильтр представим в виде L( I )( p) 
 w(q, p) I (q),
q
где w - весовая функция (вес) точки q относительно точки p.
Свертка – линейный фильтр с весовой функцией w( p, q)   ( p  q) :
  I    ( p  q) I (q).
q
Дискретное преобразование
Фурье. Z-преобразование.
Двумерное дискретное преобразование Фурье (ДПФ) изображения
1
( FU )(k , l ) 
SizeX  SizeY
SizeX 1 SizeY 1
  U ( p )e
p x 0
p yl
 p k
2  i x 
 SizeX SizeY



.
p y 0
Обратное дискретное преобразование Фурье
U ( p) 
SizeX 1 SizeY 1
  F ( k , l )e
k 0
 kp lp y 
2  i x 

 M N 
.
l 0
ДПФ свертки F ( U )  SizeX  SizeY  F ( ) F (U ).
Двумерное дискретное z-преобразование изображения
SizeX 1 SizeY 1
Z (U )( z1 , z2 )    U ( p) z1 p z2 .
x
p x 0
p y 0
 py
Частотная характеристика
фильтра
Функция ω – импульсная функция фильтра.
ДПФ функции ω – частотная характеристика фильтра.
Фильтр низких частот (ФНЧ) – фильтр, сохраняющий низкие частоты и
подавляющий высокие.
Фильтр высоких частот (ФВЧ) – фильтр, сохраняющий высокие частоты и
подавляющий низкие.
3. Фильтрация
изображений от шума
Изображение I есть сумма I  U  N , где
U – исходное изображение,
N – шум.
Задача фильтрации - восстановить изображение U.
Виды шумов:
- белый шум - сигнал, отсчеты которого не коррелируют друг с другом. Белый гауссовский
шум описывается функцией плотности распределения амплитуд:
d2
 2
1
 (d ) 
e 2
2 d
где d - амплитуда шума, а σ - параметр распределения,
- импульсный шум - случайные изолированные точки на изображении, значение которых
значительно отличается от значений окружающих их точек,
- цветные пятна.
Box-фильтр
Математическое ожидание шума MN = 0. Следовательно: MU = MI.
Среднее значение исходного изображения в точке p
U ( p) 
 U (q)  I (q )

,
 1
 1
qS ( p , r )
qS ( p , r )
Если считать,
что
qS ( p , r )
где S ( p, r )  {q  : p  q  r} 
окрестность точки p.
qS ( p , r )
U ( p)  U ( p), то U ( p ) 
 I (q)
.
 1
qS ( p , r )
qS ( p , r )
Формула вычисляет среднее значение изображения по некоторой
окрестности и определяет Box-фильтр.
Вычислительные алгоритмы




Прямое вычисление сумм по окрестности каждого пикселя,
время работы O(r2).
Вычисление сумм по вертикали и горизонтали каждого
пикселя последовательно, время работы O(r).
Использование таблицы сумм, время работы O(1).
Использование двигающегося окна, время работы O(1).
Оригинальное изображение
Оригинал
Увеличенный фрагмент
Пример работы Box-фильтра
Box-фильтр, r=2
Гауссов фильтр
Гауссов фильтр определяется формулой:
U ( p) 


e
| p  q|2
2 2
I (q )
qS ( p , r )
   | p  q|2

.
qS ( p , r )
e
2 2
где
p  ( px , py ), q  (qx , q y ),
| q  p |  ( qx  px ) 2  ( q y  p y ) 2 .
Box-фильтр является предельным случаем гауссова
  .
фильтра при
2 2 2 | |2
.
Частотная характеристика гауссова фильтра  ( )  e
Гауссов фильтр подавляет высокие частоты, сохраняя низкие,
то есть является примером ФНЧ.
Пример работы гауссова
фильтра
Гауссов фильтр, σ=1.8
Вычислительные алгоритмы
3σ ≈ 2r+1




Прямое вычисление сумм со своим весом по окрестности
каждого пикселя, время работы O(r2).
Вычисление сумм со своим весом по вертикали и
горизонтали каждого пикселя последовательно, время
работы O(r).
Быстрое ДПФ, время работы O(log(r)).
Аппроксимация с помощью рекурсивного фильтра, время
работы O(1).
Аппроксимация одномерного гауссова
фильтра с помощью рекурсивного
фильтра
Аппроксимация импульсной функции дробно-рациональной:
1
e
2

t2
2 2
t
1

,  .
2
4
6

a0  a2  a4  a6
Применение ДПФ и переход к z-преобразованию
F ( )  FL ( ) FR ( ),
A2
H L ( z )  GL (1  z ) 
,
1
2
3
b0  b1 z  b2 z  b3 z
A2
H R ( z )  GR ( z  1) 
.
2
3
b0  b1 z  b2 z  b3 z
1
Построение рекурсивных последовательностей
Vn  BI n 
1
1
(bV

b
V

bV
),
U

BV

(bU
 b2U n2  bU
).
1 n1
2 n2
3 n3
n
n
1
n1
3
n 3
b0
b0
Нелинейные фильтры
Медианный фильтр
Компонента изображения в окрестности точки p сортируется в порядке
возрастания, и в качестве величины U(p) берется центральное значение
Bilateral-фильтр
Bilateral-фильтр определяется формулой:
U ( p) 

e
| p  q|2 | I ( p )  I ( q )|2


2 2
22
I (q)
qS ( p , r )

e
| p  q|2 | I ( p )  I ( q )|2


2 2
22
.
Оригинал
qS ( p , r )
Пространственный вес
Цветовой вес
Общий вес
Результат
Пример работы Bilateralфильтра
Bilateral
Проблемы:
а) Артефакты в виде пятен шума.
б) Очень медленный, время работы O(r2).
Ускоренные модификации Bilateral-фильтра
1) весовая функция не зависит от расстояния и использование
движущегося окна.
2) фильтрация сначала по горизонтали, а затем по вертикали.
3) аппроксимация набором гауссовых фильтров.
4) трехмерное преобразование Фурье.
Region-фильтр
Region-фильтр определяется
формулой:
U ( p) 


e
| p  q|2
2 2
S ( p ,d )  S ( q ,d )

22
2
I (q)
qS ( p , r )


e
| p  q|2
2 2

S ( p ,d )  S ( q ,d )
2
,
22
qS ( p , r )
где
S ( p, d )  S ( q, d )   I ( p  u )  I ( q  u ) .
2
2
uS ( 0,d )
Очень медленный!!!
Пример работы Regionфильтра
Вариационный (TV) фильтр
 U U 
,
Минимизация суммарной величины градиентов U  


p

p
y 
при известной среднеквадратичной величине шума.  x
 | U ( p) | dp  min,

1
2
2
(
I
(
p
)

U
(
p
))
dp


.

||
Метод множителей Лагранжа  | U ( p ) | dp 


( I ( p)  U ( p)) 2 dp  min.

2

 U 

Уравнение Эйлера-Лагранжа
 | U |    (U  J )  0.


Профессиональные фильтры
Neat Image
Neat Image
PhotoShop: Reduce Noise
Akvis.Noise Buster v. 7.0
Noise Buster
МАСШАБИРОВАНИЕ
ИЗОБРАЖЕНИЙ
Масштабирование изображений - классическая задача двумерной
дискретной интерполяции.
При увеличении изображения в k раз известно значение только
одного из них.
Nearest
Простейший метод интерполяции.
Недостающие пиксели заполняются значением
ближайшего известного.
Достоинство: быстрота и простота.
Недостаток: сильная пикселизация, особенно хорошо
заметная на наклонных линиях
Original
Nearest
Альтернативный подход: интерполяция сплайнами.
Алгоритм являются линейными и может быть заданы при помощи свертки:
t
Импульсная
функция
H
(
p

q
)
U
(
q
).
h(t )  H  

qS ( p ,r )
k
1, t  0.5,
имеет вид: h(t )  
0, t  0.5.
I ( p) 
Билинейная интерполяция
Изображение I – увеличенное в k раз
изображение U .
Точка ( X , Y ) U , точка ( x, y )  I , причем
x
 X  1,
k
y
0  y   Y  1,
k
0  x 
X  X  1, Y  Y  1.
Тогда
I ( x, y)  (1  x)(1  y)U ( X , Y )  x(1  y)U ( X , Y ) 
(1  x)yU ( X , Y )  xyU ( X , Y ).
BiLinear
Билинейная интерполяция
Импульсная функция этого фильтра имеет вид
1  t ,
h(t )  
 0,
t  1,
t  1.
Достоинства: простота и скорость реализации. Значительное уменьшение
пикселизации.
Недостаток: сглаживает четкие границы.
Бикубическая интерполяция
Формулы бикубической интерполяции:
X0 = X - 1; X1 = X; X2 = X + 1; X3 = X + 2; Y0 = Y - 1; Y1 = Y; Y2 = Y + 1; Y3 = Y + 2;
dx0 = x/k-X0; dx1 = x/k-X1; dx2 = x/k-X2; dx3 = x/k-X3; dy0 = y/k-Y0; dy1 = y/k-Y1; dy2 = y/k-Y2; dy3 = y/k-Y3;
I(x, y) = ( dx0*dx1*dx2*dy0*dy1*dy2*U(X3,Y3) - 3.0*dx0*dx1*dx2*dy0*dy1*dy3*U(X3,Y2)
+ 3.0*dx0*dx1*dx2*dy0*dy2*dy3*U(X3,Y1) dx0*dx1*dx2*dy1*dy2*dy3*U(X3,Y0)
- 3.0*dx0*dx1*dx3*dy0*dy1*dy2*U(X2,Y3) + 9.0*dx0*dx1*dx3*dy0*dy1*dy3*U(X2,Y2)
- 9.0*dx0*dx1*dx3*dy0*dy2*dy3*U(X2,Y1) + 3.0*dx0*dx1*dx3*dy1*dy2*dy3*U(X2,Y0)
+ 3.0*dx0*dx2*dx3*dy0*dy1*dy2*U(X1,Y3) - 9.0*dx0*dx2*dx3*dy0*dy1*dy3*U(X1,Y2)
+ 9.0*dx0*dx2*dx3*dy0*dy2*dy3*U(X1,Y1) - 3.0*dx0*dx2*dx3*dy1*dy2*dy3*U(X1,Y0)
dx1*dx2*dx3*dy0*dy1*dy2*U(X0,Y3) + 3.0*dx1*dx2*dx3*dy0*dy1*dy3*U(X0,Y2)
- 3.0*dx1*dx2*dx3*dy0*dy2*dy3*U(X0,Y1) +
dx1*dx2*dx3*dy1*dy2*dy3*U(X0,Y0))/36.0;
Поверхность, полученная в
результате бикубической
интерполяции, является
гладкой функцией.
Оптимален по соотношению
скорость-качество.
Бикубическая интерполяция
Импульсная функция имеет вид:
 1.5 t 3  2.5 t 2  1,
t  1,

3
2
h(t )  0.5 t  2.5 t  4 t  2, 1  t  2,

0,
2 t.

BiCube
Фильтр Эрмита
Импульсная функция имеет вид:
2 t 3  3 t 2  1,
h(t )  
0,

t  1,
t  1.
Hermite
Фильтр Митчелла
Импульсная функция имеет вид:
 21 t 3  36 t 2  16,
t  1,

1
3
2
h(t )  5 t  36 t  60 t  26, 1  t  2,
18 
0,
t  2.

Mitchell
Фильтр Белла
Импульсная функция имеет вид:
 0.75  t 2 ,
t  0.5,

h(t )  0.5( t  1.5) 2 , 0.5  t  1.5,

0,
t  1.5.

Bell
Фильтр Ланцоша
Импульсная функция имеет вид:

 t 
 sin( t ) sin  3 
 ,

t
h(t )    t

3

0,

t  3,
t  3.
Lanczos
Нелинейные фильтры
Профессиональные программы
Blow
PhotoShop
Extensis
Профессиональные программы
Genue Fractal
Zoom
Akvis.Magnifier v.3.0