全變分(Total variation),也稱為全變差,是圖象複原中常用的一個名詞。本文簡要介紹全變分的概念以及在圖象去噪中的應用。
一維信号的全變分和去噪
一維連續函數的全變分
一維連續實函數 f ( x ) f(x) f(x)在區間 [ a , b ] ⊂ R [a, b] \subset R [a,b]⊂R上的全變分定義為參數曲線 x → f ( x ) , x ∈ [ a , b ] x \rightarrow f(x), x \in [a,b] x→f(x),x∈[a,b]的弧長。其表達式為
V a b ( f ) = ∫ a b ∣ f ′ ( x ) ∣ d x V_a^b(f) = \int_a^b |f'(x)|dx Vab(f)=∫ab∣f′(x)∣dx
說白了,所謂的“變分”就是 ∣ f ( x + Δ x ) − f ( x ) ∣ |f(x+\Delta x) - f(x)| ∣f(x+Δx)−f(x)∣,對于連續函數 Δ x → 0 \Delta x \rightarrow 0 Δx→0。而全變分是對函數定義的區間而言的,就是将“變分”在區間上累加起來。
一維離散信号的全變分
從上面連續實函數的全變分,我們可以很容易想到它的離散形式。給出信号序列 { y i } , i = 1 , . . , n \{y_i\},i=1,..,n {yi},i=1,..,n,它的全變分定義為
V ( y ) = ∑ i = 1 n ∣ y i + 1 − y i ∣ V(y) = \sum_{i=1}^{n} |y_{i+1} - y_i | V(y)=i=1∑n∣yi+1−yi∣
用一句話來概括,全變分是前後項之差的絕對值之和。
一維信号去噪
當我們得到觀察信号 x i x_i xi,希望 x i x_i xi變得平滑,也就是對 x i x_i xi去噪。一種很直覺的想法就是讓信号的全變分變小。全變分對應的實體意義就是輸入信号的平滑度。設得到的恢複信号為 y i y_i yi,它應該滿足兩個條件:
- y i y_i yi與觀察信号 x i x_i xi的差距不大。這個差距的常用數學表達式就是
E ( x , y ) = 1 2 ∑ i ( x i − y i ) 2 E(x,y) = \frac{1}{2} \sum_i (x_i - y_i)^2 E(x,y)=21i∑(xi−yi)2
- y i y_i yi的全變分不大。
将實體限制轉化為數學模型,求解 y y y等價于求解下面這個優化問題:
min y E ( x , y ) + λ V ( y ) \min_{y} E(x,y) + \lambda V(y) yminE(x,y)+λV(y)
其中參數 λ \lambda λ是正常數,用于調節兩個限制的作用大小。注意到 E ( x , y ) E(x,y) E(x,y)和 V ( y ) V(y) V(y)都是凸函數,這是一個無限制凸優化問題,有很多經典方法可以求解。
二維離散信号(圖象)的全變分和去噪
圖象是典型的二維離散信号,Rudin在1992年将其全變分定義為
V ( y ) = ∑ i , j ∣ y i + 1 , j − y i , j ∣ 2 + ∣ y i , j + 1 − y i , j ∣ 2 V(y) = \sum_{i,j} \sqrt{ |y_{i+1,j}-y_{i,j} |^2 + |y_{i,j+1} - y_{i,j}|^2 } V(y)=i,j∑∣yi+1,j−yi,j∣2+∣yi,j+1−yi,j∣2
這個函數是各項同性的,但是不可微。這個形式的全變分求解比較困難,是以二維全變分有另一種常用定義
V ( y ) = ∑ i , j ∣ y i + 1 , j − y i , j ∣ 2 + ∣ y i , j + 1 − y i , j ∣ 2 = ∑ i , j ∣ y i + 1 , j − y i , j ∣ + ∣ y i , j + 1 − y i , j ∣ \begin{aligned} V(y)& = \sum_{i,j} \sqrt{ |y_{i+1,j} - y_{i,j}|^2} + \sqrt{ |y_{i,j+1} - y_{i,j} |^2} \\ &= \sum_{i,j} |y_{i+1,j} - y_{i,j}| + |y_{i,j+1} - y_{i,j} | \end{aligned} V(y)=i,j∑∣yi+1,j−yi,j∣2
+∣yi,j+1−yi,j∣2
=i,j∑∣yi+1,j−yi,j∣+∣yi,j+1−yi,j∣
這個函數容易在最小化問題中求解了。
仿照一維信号的去噪,基于全變分的圖象去噪可以看成求解優化問題
min y E ( x , y ) + λ V ( y ) \min_y E(x,y) + \lambda V(y) yminE(x,y)+λV(y)
其中 E ( x , y ) E(x,y) E(x,y)作為資料誤差項定義為
E ( x , y ) = 1 2 ∑ i , j ( x i , j − y i , j ) 2 E(x,y) = \frac{1}{2}\sum_{i,j} (x_{i,j} - y_{i,j})^2 E(x,y)=21i,j∑(xi,j−yi,j)2
當 V V V有凸函數形式時,問題變為無限制凸優化問題,進而容易求解。