Участник:Kiseliov/Метод регуляризации Тихонова: различия между версиями
Kiseliov (обсуждение | вклад) (Форматирование) |
Kiseliov (обсуждение | вклад) |
||
Строка 22: | Строка 22: | ||
== Математическое описание алгоритма == | == Математическое описание алгоритма == | ||
− | Пусть нам даны спектры искажённого изображения <math>\bar u_{nm}</math> и ядра <math>\bar K_{nm}</math> - это матрицы, состоящие из комплексных чисел, размера <math>N</math> на <math>M | + | Пусть нам даны спектры искажённого изображения <math>\bar u_{nm}</math> и ядра <math>\bar K_{nm}</math> - это матрицы, состоящие из комплексных чисел, размера <math>N</math> на <math>M</math>. Тогда спектр исходного изображения находится по формуле: |
<math>\bar z_{nm} =\frac{\bar K_{nm}\bar u_{nm} (\vartriangle x)^2}{\bigl|(\bar K_{nm})^*\bigl|^2(\vartriangle x)^4+\alpha \bigl(\bigl(\frac{\pi}{2R}\bigl)^2(n^2+m^2)\bigl)^r}</math><br> | <math>\bar z_{nm} =\frac{\bar K_{nm}\bar u_{nm} (\vartriangle x)^2}{\bigl|(\bar K_{nm})^*\bigl|^2(\vartriangle x)^4+\alpha \bigl(\bigl(\frac{\pi}{2R}\bigl)^2(n^2+m^2)\bigl)^r}</math><br> | ||
Здесь <math>\vartriangle x=\frac{4R}{N}</math>, где R - один из параметров ядра (известная, наперёд заданная величина).<math>(\bar K_{nm})^*</math> - сопряжение спектра ядра. <math>\alpha</math> и <math>r</math> - параметры метода. | Здесь <math>\vartriangle x=\frac{4R}{N}</math>, где R - один из параметров ядра (известная, наперёд заданная величина).<math>(\bar K_{nm})^*</math> - сопряжение спектра ядра. <math>\alpha</math> и <math>r</math> - параметры метода. | ||
− | В нашем модельном случае будем считать изображение симметричным, т. е. <math>M=N</math> | + | В нашем модельном случае будем считать изображение симметричным, т. е. <math>M=N</math>. Также в реализации будем считать <math>\alpha = 10000</math> и <math>r = 1</math> (наиболее подходящие параметры в нашем случае). |
== Вычислительное ядро алгоритма == | == Вычислительное ядро алгоритма == |
Версия 19:22, 4 октября 2022
Автор: Киселёв Е. И.
Содержание
- 1 ЧАСТЬ. Свойства и структура алгоритмов
- 1.1 Общее описание алгоритма
- 1.2 Математическое описание алгоритма
- 1.3 Вычислительное ядро алгоритма
- 1.4 Макроструктура алгоритма
- 1.5 Схема реализации последовательного алгоритма
- 1.6 Последовательная сложность алгоритма
- 1.7 Информационный граф
- 1.8 Ресурс параллелизма алгоритма
- 1.9 Входные и выходные данные алгоритма
- 1.10 Свойства алгоритма
- 2 ЧАСТЬ. Программная реализация алгоритма
- 2.1 Особенности реализации последовательного алгоритма
- 2.2 Локальность данных и вычислений
- 2.3 Возможные способы и особенности параллельной реализации алгоритма
- 2.4 Масштабируемость алгоритма и его реализации
- 2.5 Динамические характеристики и эффективность реализации алгоритма
- 2.6 Выводы для классов архитектур
- 2.7 Существующие реализации алгоритма
- 3 Литература
1 ЧАСТЬ. Свойства и структура алгоритмов
1.1 Общее описание алгоритма
Метод регуляризации Тихонова заключается в следующем:
Нам дано некоторое искажённое изображение (в нашем случае мы рассматриваем статические аберрации). Фактически, некоторое изображение искажается при помощи свёртки с так называемым ядром. То есть, мы имеем уравнение Фредгольма первого рода типа свертки вида:
[math]K \circledast z =\textstyle\int\limits_{-\infty}^{\infty}\textstyle\int\limits_{-\infty}^{\infty}K(x_1-s_1,x_2-s_2 )z(s_1,s_2 )ds_1\,ds_2 = u(x_1,x_2 ), -\infty\lt x_1,x_2\lt \infty[/math]
Здесь [math]K(x_1,x_2 )∈L_2 (\mathbb{R}^2)[/math] – аппаратная функция прибора (ядро), [math]u(x_1,x_2 )∈L_2 (\mathbb{R}^2)[/math] – искаженное изображение, а [math]z(x_1,x_2 )[/math] – искомое реконструируемое изображение.
Наша задача - восстановить исходное изображение, зная параметры ядра. Метод регуляризации Тихонова говорит о том, что решение имеет вид:
[math]z(x_1 ,x_2 ) = \frac{1}{4\pi^2}\textstyle\int\limits_{-\infty}^{\infty}\textstyle\int\limits_{-\infty}^{\infty}\frac{\bar K (-\omega_1,-\omega_2)\bar u (\omega_1,\omega_2)}{|\bar K (\omega_1,\omega_2 )|^2+\alpha M(\omega_1,\omega_2)}e^{i(\omega_1x_1 + \omega_2x_2)}d\omega_1\,d\omega_2[/math]
Здесь [math]\bar K (x_1,x_2 )[/math] – спектр ядра, [math]\bar u (x_1,x_2 )[/math] – спектр искаженного изображения, а [math]M(\omega_1,\omega_2)[/math] – заданная четная функция, обладающая следующими свойствами:
- [math]M(\omega_1,\omega_2)[/math] кусочно-непрерывна в любой конечной области
- [math]M(\omega_1,\omega_2)[/math] неотрицательна: [math]M(0,0)\ge0[/math] и [math]M(\omega_1,\omega_2)\gt 0[/math] при [math]\omega_1,\omega_2\neq0[/math]
- для достаточно больших [math]|\omega_1|,|\omega_2| \Rightarrow M(\omega_1,\omega_2)\ge C\gt 0[/math]
- для [math]\forall \alpha \gt 0 \Rightarrow \frac{\bar K (-\omega_1,-\omega_2)}{|\bar K (\omega_1,\omega_2 )|^2+\alpha M(\omega_1,\omega_2)}∈L_2 (\mathbb{R}^2)[/math]
1.2 Математическое описание алгоритма
Пусть нам даны спектры искажённого изображения [math]\bar u_{nm}[/math] и ядра [math]\bar K_{nm}[/math] - это матрицы, состоящие из комплексных чисел, размера [math]N[/math] на [math]M[/math]. Тогда спектр исходного изображения находится по формуле:
[math]\bar z_{nm} =\frac{\bar K_{nm}\bar u_{nm} (\vartriangle x)^2}{\bigl|(\bar K_{nm})^*\bigl|^2(\vartriangle x)^4+\alpha \bigl(\bigl(\frac{\pi}{2R}\bigl)^2(n^2+m^2)\bigl)^r}[/math]
Здесь [math]\vartriangle x=\frac{4R}{N}[/math], где R - один из параметров ядра (известная, наперёд заданная величина).[math](\bar K_{nm})^*[/math] - сопряжение спектра ядра. [math]\alpha[/math] и [math]r[/math] - параметры метода. В нашем модельном случае будем считать изображение симметричным, т. е. [math]M=N[/math]. Также в реализации будем считать [math]\alpha = 10000[/math] и [math]r = 1[/math] (наиболее подходящие параметры в нашем случае).
1.3 Вычислительное ядро алгоритма
1.4 Макроструктура алгоритма
1.5 Схема реализации последовательного алгоритма
1.6 Последовательная сложность алгоритма
1.7 Информационный граф
1.8 Ресурс параллелизма алгоритма
1.9 Входные и выходные данные алгоритма
Входные данные: Спектр искажённого изображения и спектр ядра свёртки. Обычно дано искажённое изображение (от которого берётся преобразование Фурье). Мы считаем параметры ядра известными. Оно генерируется, и затем от него берётся преобразование Фурье (получается спектр).
Выходные данные: Спектр исходного изображения. Спектр можно преобразовать в изображение с помощью обратного преобразования Фурье.
1.10 Свойства алгоритма
2 ЧАСТЬ. Программная реализация алгоритма
2.1 Особенности реализации последовательного алгоритма
2.2 Локальность данных и вычислений
2.3 Возможные способы и особенности параллельной реализации алгоритма
2.4 Масштабируемость алгоритма и его реализации
2.5 Динамические характеристики и эффективность реализации алгоритма
2.6 Выводы для классов архитектур
2.7 Существующие реализации алгоритма
3 Литература
- Тихонов А.Н., Арсенин В.Я. Методы решения некорректных задач. – М.: Наука, 1979.
- Тихонов А.Н., Гончарский А.В., Степанов В.В., Ягола А.Г. Численные методы решения некорректных задач. – М.: Наука, 1990.
- Гудмен Дж. Введение в фурье‐оптику. – М.: Мир, 1970. 364 с.