Методы деконволюции изображений
Материал из MachineLearning.
(Добавил шапку и дисклеймер : )) |
(викификация) |
||
(5 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | Одной из важных задач обработки изображений является задача восстановления | + | Одной из важных задач обработки изображений является задача восстановления смазанных снимков. В данной студенческой работе ведется попытка реализовать осветить современные подходы к решению этой проблемы и постараться реализовать и улучшить [[Методы деконволюции изображений#Алгоритм|один из лучших известных алгоритмов]]. |
- | смазанных снимков. В данной студенческой работе ведется попытка реализовать | + | |
- | осветить современные подходы к решению этой проблемы и постараться | + | |
- | реализовать и улучшить один из лучших известных алгоритмов. | + | |
== Проблема смазанных изображений == | == Проблема смазанных изображений == | ||
- | Причинами смазанности могут выступать различные факторы: | + | Причинами смазанности могут выступать различные факторы:<br /> |
+ | # Движение камеры в процессе съемки изображения; | ||
+ | # Cъемка на длинной выдержке, когдасцена сама претерпевает изменения; | ||
+ | # Расфокусированность оптики; | ||
+ | # Использование широкоугольных объективов; | ||
+ | # Атмосферная турбулентность; | ||
+ | # Съемка на короткой выдержка, что не позволяет захватить достаточно фотонов; | ||
+ | # Рассеянние света в конфокальной микроскопии; | ||
- | + | == История == | |
- | + | Теория восстановления размытых изображений сперва рассматривала лишь размытие изображений при известном ядре. Такую задача достаточно успешно решают применением [[Фильтр Винера|фильтра Винера]], а также [[Алгоритм Ричардсона-Люси|алгоритма Ричардсона-Люси]]. Это два классических метода, которые до сих пор широко применяются вследствие их простоты и эффективности. | |
- | + | На практике параметры размытия (ядро) неизвестны, поэтому часто их выбирают из эмпирических соображений, иногда просто подбирая одно из стандартных. | |
- | + | Достаточно давно ведутся попытки создания универсального метода оценки неизвестного ядра. Одним из лучших с точки зрения качества алгоритмом такого рода является современный метод, описанный ниже. Он представляет собой двухшаговый итерационный процесс, первый шаг которого для некоторого приближения ядра восстанавливает картинку, а второй производит уточнение этого ядра по полученному на пером шаге снимку. | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
+ | == Общепринятая модель размытия — свертка == | ||
<tex> | <tex> | ||
Строка 30: | Строка 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}) | ||
p(\mathbf{L})p(\mathbf{f}); | p(\mathbf{L})p(\mathbf{f}); | ||
</tex> | </tex> | ||
- | + | <br /> | |
<tex> | <tex> | ||
p(\mathbf{I}|\mathbf{L}, \mathbf{f}) = | p(\mathbf{I}|\mathbf{L}, \mathbf{f}) = | ||
Строка 43: | Строка 41: | ||
\mathcal{N}(\partial^{*} I_i| \partial^{*} I_i^{c}, \zeta_{\kappa(\partial^{*})}); | \mathcal{N}(\partial^{*} I_i| \partial^{*} I_i^{c}, \zeta_{\kappa(\partial^{*})}); | ||
</tex> | </tex> | ||
- | + | <br /> | |
<tex>\Theta</tex> — множество производных (<tex>\Theta = (\partial^{0}, \partial_{x}, | <tex>\Theta</tex> — множество производных (<tex>\Theta = (\partial^{0}, \partial_{x}, | ||
\partial_{y}, \partial_{xx}, \partial_{xy}, \partial_{yy})</tex>), | \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>I_i^{c}</tex> — i-й пиксель изображения <tex>\mathbf{I^{c}} = \mathbf{L} \otimes \mathbf{f}</tex>. | ||
- | + | <br /> | |
Ищем разреженное ядро: | Ищем разреженное ядро: | ||
- | + | <br /> | |
<tex> | <tex> | ||
p(\mathbf{f}) = \prod_j e^{-\tau f_j}; | p(\mathbf{f}) = \prod_j e^{-\tau f_j}; | ||
</tex> | </tex> | ||
- | + | <br /> | |
Здесь <tex>\tau</tex> - параметр скорости [движения камеры]. | Здесь <tex>\tau</tex> - параметр скорости [движения камеры]. | ||
- | + | <br /> | |
Разложим правдоподобие в произведение локальной и глобальной компонент: | Разложим правдоподобие в произведение локальной и глобальной компонент: | ||
- | + | <br /> | |
<tex> | <tex> | ||
p(\mathbf{L}) = p_g(\mathbf{L})p_l(\mathbf{L}); | p(\mathbf{L}) = p_g(\mathbf{L})p_l(\mathbf{L}); | ||
</tex> | </tex> | ||
- | + | <br /> | |
- | + | ||
<tex> | <tex> | ||
p_l(\mathbf{L}) = \prod_{i \in \Omega} \mathcal{N} ( | p_l(\mathbf{L}) = \prod_{i \in \Omega} \mathcal{N} ( | ||
Строка 68: | Строка 65: | ||
\mathcal{N} (\partial_y L_i - \partial_y I_i|0, \sigma_1); | \mathcal{N} (\partial_y L_i - \partial_y I_i|0, \sigma_1); | ||
</tex> | </tex> | ||
- | + | <br /> | |
Здесь за <tex>\Omega</tex> обозначены точки | Здесь за <tex>\Omega</tex> обозначены точки | ||
изображения с локальной дисперсией менее некоторой константы. | изображения с локальной дисперсией менее некоторой константы. | ||
- | + | <br /> | |
<tex> | <tex> | ||
E(\mathbf{L}, \mathbf{f}) = -\log p(\mathbf{L}, \mathbf{f}|\mathbf{I}); | E(\mathbf{L}, \mathbf{f}) = -\log p(\mathbf{L}, \mathbf{f}|\mathbf{I}); | ||
</tex> | </tex> | ||
- | + | <br /> | |
<tex> | <tex> | ||
E(\mathbf{L}, \mathbf{f}) \propto \biggl( \sum\limits_{\partial^{*} \in \Omega} | E(\mathbf{L}, \mathbf{f}) \propto \biggl( \sum\limits_{\partial^{*} \in \Omega} | ||
Строка 86: | Строка 83: | ||
+ \| \mathbf{f}\|_1; | + \| \mathbf{f}\|_1; | ||
</tex> | </tex> | ||
- | + | <br /> | |
- | + | ||
== Алгоритм == | == Алгоритм == | ||
- | |||
- | |||
- | |||
- | |||
- | |||
+ | '''Вход''': <tex>\mathbf{I}</tex> — размытое изображение; <tex>\mathbf{f}</tex> — начальное приближение ядра; | ||
+ | <br /> | ||
+ | '''Выход''': <tex>\mathbf{L}</tex> — искомое четкое изображение; <tex>\mathbf{f}</tex> — исходное ядро размытия; | ||
+ | <br /> | ||
+ | <tex>\mathbf{L}</tex> <= <tex>\mathbf{I}</tex>; ''// инициализация скрытого изображения наблюдаемым;'' | ||
+ | <br /> | ||
оптимизация <tex>\mathbf{L}</tex> и <tex>\mathbf{f}</tex>: | оптимизация <tex>\mathbf{L}</tex> и <tex>\mathbf{f}</tex>: | ||
- | + | <br /> | |
'''повторять''' | '''повторять''' | ||
- | + | <br /> | |
оптимизация <tex>\mathbf{L}</tex>: | оптимизация <tex>\mathbf{L}</tex>: | ||
- | + | <br /> | |
'''повторять''' | '''повторять''' | ||
- | + | <br /> | |
Обновить <tex>\mathbf{\Psi}</tex>, минимизируя (2); | Обновить <tex>\mathbf{\Psi}</tex>, минимизируя (2); | ||
- | + | <br /> | |
Вычислить <tex>\mathbf{L}</tex> согласно (3); | Вычислить <tex>\mathbf{L}</tex> согласно (3); | ||
- | + | <br /> | |
'''пока''' <tex>||\Delta \mathbf{L}||_2 < 1 \prod 10^{-5}</tex> и <tex>||\Delta \mathbf{Psi}||_2 < 1 \prod 10^{-5}</tex>; | '''пока''' <tex>||\Delta \mathbf{L}||_2 < 1 \prod 10^{-5}</tex> и <tex>||\Delta \mathbf{Psi}||_2 < 1 \prod 10^{-5}</tex>; | ||
- | + | <br /> | |
Обновить <tex>\mathbf{f}</tex>, минимизируя (4); | Обновить <tex>\mathbf{f}</tex>, минимизируя (4); | ||
- | + | <br /> | |
'''пока''' <tex>||\Delta \mathbf{f}||_2 < 1 \prod 10^{-5}</tex> или максимальное число итераций завершено; | '''пока''' <tex>||\Delta \mathbf{f}||_2 < 1 \prod 10^{-5}</tex> или максимальное число итераций завершено; | ||
+ | <br /> | ||
Тут мы видим два итерационных процесса внутренний, чередование вычисления | Тут мы видим два итерационных процесса внутренний, чередование вычисления | ||
Строка 119: | Строка 117: | ||
и на его основе уточнение ядра <tex>\mathbf{f}</tex>. | и на его основе уточнение ядра <tex>\mathbf{f}</tex>. | ||
- | + | [[Категория:Обработка изображений]] |
Текущая версия
Одной из важных задач обработки изображений является задача восстановления смазанных снимков. В данной студенческой работе ведется попытка реализовать осветить современные подходы к решению этой проблемы и постараться реализовать и улучшить один из лучших известных алгоритмов.
Содержание |
Проблема смазанных изображений
Причинами смазанности могут выступать различные факторы:
- Движение камеры в процессе съемки изображения;
- Cъемка на длинной выдержке, когдасцена сама претерпевает изменения;
- Расфокусированность оптики;
- Использование широкоугольных объективов;
- Атмосферная турбулентность;
- Съемка на короткой выдержка, что не позволяет захватить достаточно фотонов;
- Рассеянние света в конфокальной микроскопии;
История
Теория восстановления размытых изображений сперва рассматривала лишь размытие изображений при известном ядре. Такую задача достаточно успешно решают применением фильтра Винера, а также алгоритма Ричардсона-Люси. Это два классических метода, которые до сих пор широко применяются вследствие их простоты и эффективности.
На практике параметры размытия (ядро) неизвестны, поэтому часто их выбирают из эмпирических соображений, иногда просто подбирая одно из стандартных.
Достаточно давно ведутся попытки создания универсального метода оценки неизвестного ядра. Одним из лучших с точки зрения качества алгоритмом такого рода является современный метод, описанный ниже. Он представляет собой двухшаговый итерационный процесс, первый шаг которого для некоторого приближения ядра восстанавливает картинку, а второй производит уточнение этого ядра по полученному на пером шаге снимку.
Общепринятая модель размытия — свертка
Решение в виде максимизации правдоподобия
— множество производных (),
— i-й пиксель изображения .
Ищем разреженное ядро:
Здесь - параметр скорости [движения камеры].
Разложим правдоподобие в произведение локальной и глобальной компонент:
Здесь за обозначены точки
изображения с локальной дисперсией менее некоторой константы.
Алгоритм
Вход: — размытое изображение; — начальное приближение ядра;
Выход: — искомое четкое изображение; — исходное ядро размытия;
<= ; // инициализация скрытого изображения наблюдаемым;
оптимизация и :
повторять
оптимизация :
повторять
Обновить , минимизируя (2);
Вычислить согласно (3);
пока и ;
Обновить , минимизируя (4);
пока или максимальное число итераций завершено;
Тут мы видим два итерационных процесса внутренний, чередование вычисления и , и внешний, вычисление очередного приближения скрытой картинки и на его основе уточнение ядра .