Слева направо: исходное изображение, размытое изображение, изображение, размытое с помощью деконволюции Винера. В математике деконволюция Винера представляет собой применение фильтра Винера для решения проблем шума , присущих деконволюции . Он работает в частотной области , пытаясь минимизировать влияние деконволюционного шума на частотах с плохим соотношением сигнал/шум .
Метод деконволюции Винера широко используется в приложениях деконволюции изображений , поскольку частотный спектр большинства визуальных изображений довольно хорошо ведет себя и его можно легко оценить.
Деконволюция Винера названа в честь Норберта Винера .
Определение Учитывая систему:
й ( т ) "=" ( час ∗ Икс ) ( т ) + н ( т ) {\ displaystyle \ y (t) = (h * x) (t) + n (t)} где обозначает свертку и: ∗ {\displaystyle *}
Икс ( т ) {\displaystyle \ х (т)} это некоторый исходный сигнал (неизвестный) в момент времени . т {\displaystyle \ т} час ( т ) {\ displaystyle \ час (т)} - известная импульсная характеристика линейной стационарной системы. н ( т ) {\ displaystyle \ п (т)} — это некий неизвестный аддитивный шум, независимый от Икс ( т ) {\displaystyle \ х (т)} й ( т ) {\ displaystyle \ y (t)} это наш наблюдаемый сигналНаша цель — найти некоторые из них , чтобы мы могли оценить следующим образом: г ( т ) {\ displaystyle \ г (т)} Икс ( т ) {\displaystyle \ х (т)}
Икс ^ ( т ) "=" ( г ∗ й ) ( т ) {\displaystyle \ {\hat {x}} (t) = (g*y) (t)} где – оценка , минимизирующая среднеквадратическую ошибку Икс ^ ( т ) {\displaystyle \ {\hat {x}}(t)} Икс ( т ) {\displaystyle \ х (т)}
ϵ ( т ) "=" Э | Икс ( т ) − Икс ^ ( т ) | 2 {\displaystyle \ \epsilon (t)=\mathbb {E} \left|x(t)-{\hat {x}}(t)\right|^{2}} ,с обозначением ожидания . Фильтр деконволюции Винера обеспечивает такую возможность . Фильтр проще всего описать в частотной области : Э {\displaystyle \ \mathbb {E}} г ( т ) {\ displaystyle \ г (т)}
г ( ж ) "=" ЧАС ∗ ( ж ) С ( ж ) | ЧАС ( ж ) | 2 С ( ж ) + Н ( ж ) {\displaystyle \ G(f)={\frac {H^{*}(f)S(f)}{|H(f)|^{2}S(f)+N(f)}}} где:
г ( ж ) {\ displaystyle \ G (е)} и являются преобразованиями Фурье и , ЧАС ( ж ) {\ Displaystyle \ Ч (е)} г ( т ) {\ displaystyle \ г (т)} час ( т ) {\ displaystyle \ час (т)} С ( ж ) "=" Э | Икс ( ж ) | 2 {\displaystyle \ S(f)=\mathbb {E} |X(f)|^{2}} — средняя спектральная плотность мощности исходного сигнала , Икс ( т ) {\displaystyle \ х (т)} Н ( ж ) "=" Э | В ( ж ) | 2 {\displaystyle \ N(f)=\mathbb {E} |V(f)|^{2}} — средняя спектральная плотность мощности шума , н ( т ) {\ displaystyle \ п (т)} Икс ( ж ) {\displaystyle X (е)} , , и – преобразования Фурье , и , и соответственно, Да ( ж ) {\displaystyle Y (е)} В ( ж ) {\displaystyle V (е)} Икс ( т ) {\ displaystyle x (t)} й ( т ) {\displaystyle y (т)} н ( т ) {\ displaystyle n (t)} верхний индекс обозначает комплексное сопряжение . ∗ {\displaystyle {}^{*}} Операция фильтрации может выполняться либо во временной области, как указано выше, либо в частотной области:
Икс ^ ( ж ) "=" г ( ж ) Да ( ж ) {\ Displaystyle \ {\ шляпа {X}} (е) = G (е) Y (е)} а затем выполнить обратное преобразование Фурье , чтобы получить . Икс ^ ( ж ) {\ displaystyle \ {\ шляпа {X}} (е)} Икс ^ ( т ) {\displaystyle \ {\hat {x}}(t)}
Обратите внимание, что в случае изображений аргументы и выше становятся двумерными; однако результат тот же. т {\displaystyle \ т} ж {\displaystyle \ е}
Интерпретация Работа фильтра Винера становится очевидной, если переписать приведенное выше уравнение фильтра:
г ( ж ) "=" 1 ЧАС ( ж ) [ 1 1 + 1 / ( | ЧАС ( ж ) | 2 С Н р ( ж ) ) ] {\displaystyle {\begin{aligned}G(f)&={\frac {1}{H(f)}}\left[{\frac {1}{1+1/(|H(f)|^ {2}\mathrm {SNR} (f))}}\right]\end{aligned}}} Здесь – обратная исходная система, – отношение сигнал/шум , – отношение чистого отфильтрованного сигнала к спектральной плотности шума. Когда шум нулевой (т.е. бесконечное соотношение сигнал/шум), член в квадратных скобках равен 1, что означает, что фильтр Винера является просто обратной системой, как и следовало ожидать. Однако по мере увеличения шума на определенных частотах отношение сигнал/шум падает, поэтому член в квадратных скобках также уменьшается. Это означает, что фильтр Винера ослабляет частоты в соответствии с их отфильтрованным соотношением сигнал/шум. 1 / ЧАС ( ж ) {\displaystyle \ 1/H (е)} С Н р ( ж ) "=" С ( ж ) / Н ( ж ) {\ displaystyle \ \ mathrm {SNR} (е) = S (f)/N (f)} | ЧАС ( ж ) | 2 С Н р ( ж ) {\displaystyle \ |H(f)|^{2}\mathrm {SNR} (f)}
Приведенное выше уравнение фильтра Винера требует от нас знания спектрального состава типичного изображения, а также содержания шума. Зачастую у нас нет доступа к этим точным количествам, но мы можем оказаться в ситуации, когда можно сделать точные оценки. Например, в случае фотографических изображений сигнал (исходное изображение) обычно имеет сильные низкие частоты и слабые высокие частоты, тогда как во многих случаях содержание шума будет относительно равномерным в зависимости от частоты.
Вывод Как упоминалось выше, мы хотим получить оценку исходного сигнала, которая минимизирует среднеквадратическую ошибку, которую можно выразить следующим образом:
ϵ ( ж ) "=" Э | Икс ( ж ) − Икс ^ ( ж ) | 2 {\displaystyle \ \epsilon (f)=\mathbb {E} \left|X(f)-{\hat {X}}(f)\right|^{2}} .Эквивалентность предыдущему определению может быть получена с помощью теоремы Планшереля или теоремы Парсеваля для преобразования Фурье . ϵ {\displaystyle \epsilon }
Если мы заменим в выражении на , то вышеприведенное можно преобразовать в Икс ^ ( ж ) {\ displaystyle \ {\ шляпа {X}} (е)}
ϵ ( ж ) "=" Э | Икс ( ж ) − г ( ж ) Да ( ж ) | 2 "=" Э | Икс ( ж ) − г ( ж ) [ ЧАС ( ж ) Икс ( ж ) + В ( ж ) ] | 2 "=" Э | [ 1 − г ( ж ) ЧАС ( ж ) ] Икс ( ж ) − г ( ж ) В ( ж ) | 2 {\displaystyle {\begin{aligned}\epsilon (f)&=\mathbb {E} \left|X(f)-G(f)Y(f)\right|^{2}\\&=\mathbb {E} \left|X(f)-G(f)\left[H(f)X(f)+V(f)\right]\right|^{2}\\&=\mathbb {E} {\big |}\left[1-G(f)H(f)\right]X(f)-G(f)V(f){\big |}^{2}\end{aligned}}} Если разложить квадратное, то получим следующее:
ϵ ( ж ) "=" [ 1 − г ( ж ) ЧАС ( ж ) ] [ 1 − г ( ж ) ЧАС ( ж ) ] ∗ Э | Икс ( ж ) | 2 − [ 1 − г ( ж ) ЧАС ( ж ) ] г ∗ ( ж ) Э { Икс ( ж ) В ∗ ( ж ) } − г ( ж ) [ 1 − г ( ж ) ЧАС ( ж ) ] ∗ Э { В ( ж ) Икс ∗ ( ж ) } + г ( ж ) г ∗ ( ж ) Э | В ( ж ) | 2 {\displaystyle {\begin{aligned}\epsilon (f)&={\Big [}1-G(f)H(f){\Big ]}{\Big [}1-G(f)H(f) ){\Big ]}^{*}\,\mathbb {E} |X(f)|^{2}\\&{}-{\Big [}1-G(f)H(f){\ Big ]}G^{*}(f)\,\mathbb {E} {\Big \{}X(f)V^{*}(f){\Big \}}\\&{}-G( е) {\Big [}1-G(f)H(f){\Big ]}^{*}\,\mathbb {E} {\Big \{}V(f)X^{*}(f ){\Big \}}\\&{}+G(f)G^{*}(f)\,\mathbb {E} |V(f)|^{2}\end{aligned}}} Однако мы предполагаем, что шум не зависит от сигнала, поэтому:
Э { Икс ( ж ) В ∗ ( ж ) } "=" Э { В ( ж ) Икс ∗ ( ж ) } "=" 0 {\displaystyle \ \mathbb {E} {\Big \{}X(f)V^{*}(f){\Big \}}=\mathbb {E} {\Big \{}V(f)X ^{*}(f){\Big \}}=0} Подставляя спектральные плотности мощности и , имеем: С ( ж ) {\ displaystyle \ S (е)} Н ( ж ) {\displaystyle \ N (е)}
ϵ ( ж ) "=" [ 1 − г ( ж ) ЧАС ( ж ) ] [ 1 − г ( ж ) ЧАС ( ж ) ] ∗ С ( ж ) + г ( ж ) г ∗ ( ж ) Н ( ж ) {\displaystyle \epsilon (f)={\Big [}1-G(f)H(f){\Big ]}{\Big [}1-G(f)H(f){\Big ]}^ {*}S(f)+G(f)G^{*}(f)N(f)} Для нахождения минимального значения погрешности вычислим производную Виртингера по и приравняем ее нулю. г ( ж ) {\ displaystyle \ G (е)}
д ϵ ( ж ) д г ( ж ) "=" 0 ⇒ г ∗ ( ж ) Н ( ж ) − ЧАС ( ж ) [ 1 − г ( ж ) ЧАС ( ж ) ] ∗ С ( ж ) "=" 0 {\displaystyle \ {\frac {d\epsilon (f)}{dG(f)}}=0\Rightarrow G^{*}(f)N(f)-H(f){\Big [}1- G(f)H(f){\Big ]}^{*}S(f)=0} Это окончательное равенство можно переставить, чтобы получить фильтр Винера.
Смотрите также На Wikimedia Commons есть медиафайлы, связанные с примером деконволюции Винера на размытом изображении в движении (и исходные коды в MATLAB/GNU Octave).
Рекомендации Рафаэль Гонсалес, Ричард Вудс и Стивен Эддинс. Цифровая обработка изображений с использованием Matlab . Прентис Холл, 2003. Внешние ссылки Сравнение различных методов деконволюции.