Методы деконволюции изображений

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(видимо уже не дорабатывается)
(викификация)
 
Строка 1: Строка 1:
-
Одной из важных задач обработки изображений является задача восстановления
+
Одной из важных задач обработки изображений является задача восстановления смазанных снимков. В данной студенческой работе ведется попытка реализовать осветить современные подходы к решению этой проблемы и постараться реализовать и улучшить [[Методы деконволюции изображений#Алгоритм|один из лучших известных алгоритмов]].
-
смазанных снимков. В данной студенческой работе ведется попытка реализовать
+
-
осветить современные подходы к решению этой проблемы и постараться
+
-
реализовать и улучшить [[Методы деконволюции изображений#Алгоритм|один из лучших известных алгоритмов]].
+
== Проблема смазанных изображений ==
== Проблема смазанных изображений ==
 +
Причинами смазанности могут выступать различные факторы:<br />
Причинами смазанности могут выступать различные факторы:<br />
-
# Движение камеры в процессе съемки изображения;<br />
+
# Движение камеры в процессе съемки изображения;
-
# Cъемка на длинной выдержке, когдасцена сама претерпевает изменения;<br />
+
# Cъемка на длинной выдержке, когдасцена сама претерпевает изменения;
-
# Расфокусированность оптики;<br />
+
# Расфокусированность оптики;
-
# Использование широкоугольных объективов;<br />
+
# Использование широкоугольных объективов;
-
# Атмосферная турбулентность;<br />
+
# Атмосферная турбулентность;
-
# Съемка на короткой выдержка, что не позволяет захватить достаточно фотонов;<br />
+
# Съемка на короткой выдержка, что не позволяет захватить достаточно фотонов;
-
# Рассеянние света в конфокальной микроскопии;<br />
+
# Рассеянние света в конфокальной микроскопии;
== История ==
== История ==
-
Теория восстановления размытых изображений сперва рассматривала лишь
 
-
размытие изображений при известном ядре. Такую задача достаточно успешно решают
 
-
применением [[Фильтр Винера|фильтра Винера]], а также [[Алгоритм Ричардсона-Люси|алгоритма Ричардсона-Люси]]. Это
 
-
два классических метода, которые до сих пор широко применяются вследствие их
 
-
простоты и эффективности.
 
-
На практике параметры размытия (ядро) неизвестны, поэтому часто их выбирают
+
Теория восстановления размытых изображений сперва рассматривала лишь размытие изображений при известном ядре. Такую задача достаточно успешно решают применением [[Фильтр Винера|фильтра Винера]], а также [[Алгоритм Ричардсона-Люси|алгоритма Ричардсона-Люси]]. Это два классических метода, которые до сих пор широко применяются вследствие их простоты и эффективности.
-
из эмпирических соображений, иногда просто подбирая одно из стандартных.
+
-
Достаточно давно ведутся попытки создания универсального метода оценки неизвестного ядра.
+
На практике параметры размытия (ядро) неизвестны, поэтому часто их выбирают из эмпирических соображений, иногда просто подбирая одно из стандартных.
-
Одним из лучших с точки зрения качества алгоритмом такого рода является
+
-
современный метод, описанный ниже. Он представляет собой двухшаговый итерационный процесс,
+
-
первый шаг которого для некоторого приближения ядра восстанавливает картинку, а второй
+
-
производит уточнение этого ядра по полученному
+
-
на пером шаге снимку.
+
-
== Общепринятая модель размытия - свертка ==
+
Достаточно давно ведутся попытки создания универсального метода оценки неизвестного ядра. Одним из лучших с точки зрения качества алгоритмом такого рода является современный метод, описанный ниже. Он представляет собой двухшаговый итерационный процесс, первый шаг которого для некоторого приближения ядра восстанавливает картинку, а второй производит уточнение этого ядра по полученному на пером шаге снимку.
 +
== Общепринятая модель размытия — свертка ==
<tex>
<tex>
Строка 39: Строка 27:
== Решение в виде максимизации правдоподобия ==
== Решение в виде максимизации правдоподобия ==
 +
<tex>
<tex>
p(\mathbf{L}, \mathbf{f} | \mathbf{I}) \propto p(\mathbf{I}|\mathbf{L}, \mathbf{f})
p(\mathbf{L}, \mathbf{f} | \mathbf{I}) \propto p(\mathbf{I}|\mathbf{L}, \mathbf{f})
Строка 127: Строка 116:
картинки <tex>\mathbf{L}</tex>
картинки <tex>\mathbf{L}</tex>
и на его основе уточнение ядра <tex>\mathbf{f}</tex>.
и на его основе уточнение ядра <tex>\mathbf{f}</tex>.
 +
 +
[[Категория:Обработка изображений]]

Текущая версия

Одной из важных задач обработки изображений является задача восстановления смазанных снимков. В данной студенческой работе ведется попытка реализовать осветить современные подходы к решению этой проблемы и постараться реализовать и улучшить один из лучших известных алгоритмов.

Содержание

Проблема смазанных изображений

Причинами смазанности могут выступать различные факторы:

  1. Движение камеры в процессе съемки изображения;
  2. Cъемка на длинной выдержке, когдасцена сама претерпевает изменения;
  3. Расфокусированность оптики;
  4. Использование широкоугольных объективов;
  5. Атмосферная турбулентность;
  6. Съемка на короткой выдержка, что не позволяет захватить достаточно фотонов;
  7. Рассеянние света в конфокальной микроскопии;

История

Теория восстановления размытых изображений сперва рассматривала лишь размытие изображений при известном ядре. Такую задача достаточно успешно решают применением фильтра Винера, а также алгоритма Ричардсона-Люси. Это два классических метода, которые до сих пор широко применяются вследствие их простоты и эффективности.

На практике параметры размытия (ядро) неизвестны, поэтому часто их выбирают из эмпирических соображений, иногда просто подбирая одно из стандартных.

Достаточно давно ведутся попытки создания универсального метода оценки неизвестного ядра. Одним из лучших с точки зрения качества алгоритмом такого рода является современный метод, описанный ниже. Он представляет собой двухшаговый итерационный процесс, первый шаг которого для некоторого приближения ядра восстанавливает картинку, а второй производит уточнение этого ядра по полученному на пером шаге снимку.

Общепринятая модель размытия — свертка


\mathbf{I} = \mathbf{L} \otimes \mathbf{f} + \mathbf{n};

Решение в виде максимизации правдоподобия


p(\mathbf{L}, \mathbf{f} | \mathbf{I}) \propto p(\mathbf{I}|\mathbf{L}, \mathbf{f})
p(\mathbf{L})p(\mathbf{f});

p(\mathbf{I}|\mathbf{L}, \mathbf{f}) =
\prod\limits_{\partial^{*} \in \Theta}
\prod_i
\mathcal{N}(\partial^{*} n_i| 0, \zeta_{\kappa(\partial^{*})}) =
\prod\limits_{\partial^{*} \in \Theta} \prod_i
\mathcal{N}(\partial^{*} I_i| \partial^{*} I_i^{c}, \zeta_{\kappa(\partial^{*})});
\Theta — множество производных (\Theta = (\partial^{0}, \partial_{x},
\partial_{y}, \partial_{xx}, \partial_{xy}, \partial_{yy})), I_i^{c} — i-й пиксель изображения \mathbf{I^{c}} = \mathbf{L} \otimes \mathbf{f}.
Ищем разреженное ядро:

p(\mathbf{f}) = \prod_j e^{-\tau f_j};
Здесь \tau - параметр скорости [движения камеры].
Разложим правдоподобие в произведение локальной и глобальной компонент:

p(\mathbf{L}) = p_g(\mathbf{L})p_l(\mathbf{L});

p_l(\mathbf{L}) = \prod_{i \in \Omega} \mathcal{N} (
\partial_x L_i - \partial_x I_i|0, \sigma_1)
\mathcal{N} (\partial_y L_i - \partial_y I_i|0, \sigma_1);
Здесь за \Omega обозначены точки изображения с локальной дисперсией менее некоторой константы.

E(\mathbf{L}, \mathbf{f}) = -\log p(\mathbf{L}, \mathbf{f}|\mathbf{I});

E(\mathbf{L}, \mathbf{f}) \propto \biggl( \sum\limits_{\partial^{*} \in \Omega}
w_{\kappa(\partial^{*})} \|\partial^{*}\mathbf{L} \otimes \mathbf{f} -
\partial^{*}\mathbf{I} \|_2^2\biggr) +
\lambda_1 \| \Phi (\partial_x \mathbf{L}) + \Phi (\partial_y \mathbf{L})\|_1 + \\
+ \lambda_2 \Bigl( \| \partial_x \mathbf{L} - \partial_x \mathbf{I}\|_2^2
\circ \mathbf{M} + \| \partial_y \mathbf{L} - \partial_y \mathbf{I}\|_2^2 \circ \mathbf{M}
\Bigr)
+ \| \mathbf{f}\|_1;

Алгоритм

Вход: \mathbf{I} — размытое изображение; \mathbf{f} — начальное приближение ядра;
Выход: \mathbf{L} — искомое четкое изображение; \mathbf{f} — исходное ядро размытия;
\mathbf{L} <= \mathbf{I}; // инициализация скрытого изображения наблюдаемым;
оптимизация \mathbf{L} и \mathbf{f}:
повторять
оптимизация \mathbf{L}:
повторять
Обновить \mathbf{\Psi}, минимизируя (2);
Вычислить \mathbf{L} согласно (3);
пока ||\Delta \mathbf{L}||_2 < 1 \prod 10^{-5} и ||\Delta \mathbf{Psi}||_2 < 1 \prod 10^{-5};
Обновить \mathbf{f}, минимизируя (4);
пока ||\Delta \mathbf{f}||_2 < 1 \prod 10^{-5} или максимальное число итераций завершено;

Тут мы видим два итерационных процесса внутренний, чередование вычисления \mathbf{\Psi} и \mathbf{L}, и внешний, вычисление очередного приближения скрытой картинки \mathbf{L} и на его основе уточнение ядра \mathbf{f}.