| 
				     | 
			
		| (2 промежуточные версии не показаны) | 
| Строка 1: | 
Строка 1: | 
| - | Одной из важных задач обработки изображений является задача восстановления
  | + | #REDIRECT [[Методы деконволюции изображений]]  | 
| - | смазанных снимков. В данной студенческой работе ведется попытка реализовать
  | + |  | 
| - | осветить современные подходы к решению этой проблемы и постараться
  | + |  | 
| - | реализовать и улучшить один из лучших известных алгоритмов.
  | + |  | 
| - |    | + |  | 
| - | == Проблема смазанных изображений ==
  | + |  | 
| - |    | + |  | 
| - | Причинами смазанности могут выступать различные факторы:
  | + |  | 
| - |    | + |  | 
| - | 1) Движение камеры в процессе съемки изображения;
  | + |  | 
| - |    | + |  | 
| - | 2) Cъемка на длинной выдержке, когдасцена сама претерпевает изменения;
  | + |  | 
| - |    | + |  | 
| - | 3) Расфокусированность оптики;
  | + |  | 
| - |    | + |  | 
| - | 4) Использование широкоугольных объективов;
  | + |  | 
| - |    | + |  | 
| - | 5) Атмосферная турбулентность;
  | + |  | 
| - |    | + |  | 
| - | 6) Съемка на короткой выдержка, что не позволяет захватить достаточно фотонов;
  | + |  | 
| - |    | + |  | 
| - | 7) Рассеянние света в конфокальной микроскопии;
  | + |  | 
| - |    | + |  | 
| - |    | + |  | 
| - | == История ==
  | + |  | 
| - | Теория восстановления размытых изображений сперва рассматривала лишь
  | + |  | 
| - | размытие изображений при известном ядре. Такую задача достаточно успешно решают
  | + |  | 
| - | применением [[Фильтр Винера|фильтра Винера]], а также [[Алгоритм Ричардсона-Люси|алгоритма Ричардсона-Люси]]. Это
  | + |  | 
| - | два классических метода, которые до сих пор широко применяются вследствие их
  | + |  | 
| - | простоты и эффективности.
  | + |  | 
| - |    | + |  | 
| - | На практике параметры размытия (ядро) неизвестны, поэтому часто их выбирают
  | + |  | 
| - | из эмпирических соображений, иногда просто подбирая одно из стандартных.
  | + |  | 
| - |    | + |  | 
| - | Достаточно давно ведутся попытки создания универсального метода оценки неизвестного ядра.
  | + |  | 
| - | Одним из лучших с точки зрения качества алгоритмом такого рода является
  | + |  | 
| - | современный метод, описанный ниже. Он представляет собой двухшаговый итерационный процесс,
  | + |  | 
| - | первый шаг которого для некоторого приближения ядра восстанавливает картинку, а второй
  | + |  | 
| - | производит уточнение этого ядра по полученному
  | + |  | 
| - | на пером шаге снимку.
  | + |  | 
| - |    | + |  | 
| - | == Общепринятая модель размытия - свертка ==
  | + |  | 
| - |    | + |  | 
| - |    | + |  | 
| - | <tex>
  | + |  | 
| - | \mathbf{I} = \mathbf{L} \otimes \mathbf{f} + \mathbf{n};
  | + |  | 
| - | </tex>
  | + |  | 
| - |    | + |  | 
| - | == Решение в виде максимизации правдоподобия ==
  | + |  | 
| - | <tex>
  | + |  | 
| - | p(\mathbf{L}, \mathbf{f} | \mathbf{I}) \propto p(\mathbf{I}|\mathbf{L}, \mathbf{f})
  | + |  | 
| - | p(\mathbf{L})p(\mathbf{f});
  | + |  | 
| - | </tex>
  | + |  | 
| - |    | + |  | 
| - | <tex>
  | + |  | 
| - | 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^{*})});
  | + |  | 
| - | </tex>
  | + |  | 
| - |    | + |  | 
| - | <tex>\Theta</tex> — множество производных (<tex>\Theta = (\partial^{0}, \partial_{x},
  | + |  | 
| - | \partial_{y}, \partial_{xx}, \partial_{xy}, \partial_{yy})</tex>),
  | + |  | 
| - | <tex>I_i^{c}</tex> — i-й пиксель изображения <tex>\mathbf{I^{c}} = \mathbf{L} \otimes \mathbf{f}</tex>.
  | + |  | 
| - |    | + |  | 
| - | Ищем разреженное ядро:
  | + |  | 
| - |    | + |  | 
| - | <tex>
  | + |  | 
| - | p(\mathbf{f}) = \prod_j e^{-\tau f_j};
  | + |  | 
| - | </tex>
  | + |  | 
| - |    | + |  | 
| - | Здесь <tex>\tau</tex> - параметр скорости [движения камеры].
  | + |  | 
| - |    | + |  | 
| - | Разложим правдоподобие в произведение локальной и глобальной компонент:
  | + |  | 
| - |    | + |  | 
| - | <tex>
  | + |  | 
| - | p(\mathbf{L}) = p_g(\mathbf{L})p_l(\mathbf{L});
  | + |  | 
| - | </tex>
  | + |  | 
| - |    | + |  | 
| - |    | + |  | 
| - | <tex>
  | + |  | 
| - | 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);
  | + |  | 
| - | </tex>
  | + |  | 
| - |    | + |  | 
| - | Здесь за <tex>\Omega</tex> обозначены точки
  | + |  | 
| - | изображения с локальной дисперсией менее некоторой константы.
  | + |  | 
| - |    | + |  | 
| - | <tex>
  | + |  | 
| - | E(\mathbf{L}, \mathbf{f}) = -\log p(\mathbf{L}, \mathbf{f}|\mathbf{I});
  | + |  | 
| - | </tex>
  | + |  | 
| - |    | + |  | 
| - | <tex>
  | + |  | 
| - | 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;
  | + |  | 
| - | </tex>
  | + |  | 
| - |    | + |  | 
| - |    | + |  | 
| - |    | + |  | 
| - | == Алгоритм ==
  | + |  | 
| - | '''Вход''': <tex>\mathbf{I}</tex> — размытое изображение; <tex>\mathbf{f}</tex> — начальное приближение ядра;
  | + |  | 
| - |    | + |  | 
| - | '''Выход''': <tex>\mathbf{L}</tex> — искомое четкое изображение; <tex>\mathbf{f}</tex> — исходное ядро размытия;
  | + |  | 
| - |    | + |  | 
| - | <tex>\mathbf{L}</tex> <= <tex>\mathbf{I}</tex>; // инициализация скрытого изображения наблюдаемым;
  | + |  | 
| - |    | + |  | 
| - | оптимизация <tex>\mathbf{L}</tex> и <tex>\mathbf{f}</tex>:
  | + |  | 
| - |    | + |  | 
| - | '''повторять'''
  | + |  | 
| - |    | + |  | 
| - | оптимизация <tex>\mathbf{L}</tex>:
  | + |  | 
| - |    | + |  | 
| - | '''повторять'''
  | + |  | 
| - |    | + |  | 
| - | Обновить <tex>\mathbf{\Psi}</tex>, минимизируя (2);
  | + |  | 
| - |    | + |  | 
| - | Вычислить <tex>\mathbf{L}</tex> согласно (3);
  | + |  | 
| - |    | + |  | 
| - | '''пока''' <tex>||\Delta \mathbf{L}||_2 < 1 \prod 10^{-5}</tex> и <tex>||\Delta \mathbf{Psi}||_2 < 1 \prod 10^{-5}</tex>;
  | + |  | 
| - |    | + |  | 
| - | Обновить <tex>\mathbf{f}</tex>, минимизируя (4);
  | + |  | 
| - |    | + |  | 
| - | '''пока''' <tex>||\Delta \mathbf{f}||_2 < 1 \prod 10^{-5}</tex> или максимальное число итераций завершено;
  | + |  | 
| - |    | + |  | 
| - | Тут мы видим два итерационных процесса  внутренний, чередование вычисления
  | + |  | 
| - | <tex>\mathbf{\Psi}</tex> и <tex>\mathbf{L}</tex>, и внешний, вычисление очередного приближения скрытой
  | + |  | 
| - | картинки <tex>\mathbf{L}</tex>
  | + |  | 
| - | и на его основе уточнение ядра <tex>\mathbf{f}</tex>.
  | + |  | 
| - |    | + |  | 
| - | {{Задание|Tikhonov_Andrey|Павел Воронин| 30 апреля 2011}}
  | + |  |