動態模糊

動態模糊或運動模糊（motion blur）是靜態場景或一系列的圖片像電影或是動畫中快速移動的物體造成明顯痕跡。 當相機拍出影像時，不單只表現出單一時間的即時影像。由於技術限制或藝術要求，影像表現出的是一段時間內的場景。當場景中的物體移動時，該場景的影像必定會表現那些物體在曝光時間（取決於快門速度）內所有位置的完整組合，以及攝影機的視角。在這樣的圖片中，任何沿著相機相對方向運動的物體將會看起來模糊或被晃動。這種模糊會發生在拍攝移動中的物體或拍攝靜態場景而相機移動時。影片或電視的影像中看起來很自然，是因為人眼也以同樣的方式運作。 由於動態模糊是相機、物體、背景間相對運動而造成的效果，可藉著移動鏡頭追蹤移動的物體來避免。因此，即使在長時間曝光下，背景比較模糊而物體看起來仍然清晰。 即時電腦動畫中準確地顯示瞬時的畫面（像是一台有無限快快門的相機），而沒有動態模糊。因此每秒24-30張畫面的電玩遊戲看起來斷斷續續並不自然，而使用相同畫面更新率攝影機拍攝自然動作看起來卻是連續的。很多新世代電玩遊戲以動態模糊為特色，尤其是賽車模擬遊戲。 預先運算生成的電腦圖像中，如電腦合成影像的電影，可以繪出逼真的動態模糊，因為渲染器（renderer）有更多時間來繪製每個畫面。時間上避免失真需依照許多瞬間時間的組合來製造畫面。 電視運動轉播中，一般攝影機每秒曝光25或30次，動態模糊反而變成困擾，因為在慢動作時會混淆拋射體或運動員的確切位置。因此高速攝影機通常用來消除動態模糊，每秒能曝光1000次或以上，然後每秒傳送25或30幀。雖然能產生更清晰的慢動作重播，但在正常速度播放下看起來會很怪，因為眼睛預期看到動態模糊卻沒看到。 因為人眼習慣看到動態模糊，所以電視或電影中的運動模糊甚至不會注意到。而電腦產生的影像在時間上很分明，沒有動態模糊使流暢度降低，因此看起來不夠真實。 有時候可用反捲積（反摺積）（deconvolution）從圖片中移除動態模糊。 這些城市燈光是固定的而相機的方向在曝光期間改變。虛線是由於相機來回移動造成的每盞燈的個別軌跡。 卡車和相機在曝光期間皆移動。因為移動相機或搖動鏡頭來固定指向卡車駕駛座旁的門，所以地面看起像往卡車後方移動。 相對於車輛的快速移動相機快門速度較慢，街道上的車流留下亮眼的光線。 夜間搭上在聖荷西國際機場上方剛起飛的飛機。城市燈光形成同心線條。 角度 0度~360度，不同角度會造成不同的模糊類型。 長度 長度為移動多少間隔的像素。 線性 動態模糊發生在單一方向的模糊。鏡頭的角度會影響動態模糊線條的角度;濾鏡的半徑長度會影響模糊強度，長度越長會越模糊。 旋轉 產生像物體在旋轉的環狀動態模糊。此類型的模糊以鏡頭對準的點為中心，角度為主要影響因素，角度變化越大越模糊。 縮放 縮放型的動態模糊是以圖片中心為中心輻射開來的模糊。圖片中心未發生模糊但以圖片中心為準的外圍卻會模糊，會讓人有凸顯圖片中心的動態感覺。鏡頭的縮放長度為主要影響因素。 模糊 假設有一清晰平面圖片 y ( x ) {\displaystyle y(x)} ，我們只能觀察到其模糊後的圖片 ( y ⋆ p s f ) ( x ) {\displaystyle (y\star psf)(x)} , p s f ( x ) {\displaystyle psf(x)} 為已知的點擴散函數PSF(Point Spread Function), ⋆ {\displaystyle \star } 表示捲積（摺積）（convolution）。 假設此捲積為離散且有雜訊，我們觀察到的圖片可表示成： z ( x ) = ( y ⋆ p s f ) ( x ) + ϵ ( x ) , {\displaystyle z(x)=(y\star psf)(x)+\epsilon (x),} ϵ ( x ) {\displaystyle \epsilon (x)} 為雜訊。 x {\displaystyle x} 為分佈在整齊的 n 1 {\displaystyle n_{1}} × n 2 {\displaystyle n_{2}} 格子X中， X = { k 1 , k 2 : k 1 = 1 , 2 , . . . , n 1 , k 2 = 1 , 2 , . . . , n 2 } {\displaystyle X=\{k_{1},k_{2}:k_{1}=1,2,...,n_{1},k_{2}=1,2,...,n_{2}\}} 。 動態模糊 最簡單的動態模糊模型可用直線型點擴散函數以離散捲積形式表示為： p s f ( x 1 , x 2 ) = 1 / L , i f x 1 = x 2 t a n β , x 1 2 + x 2 2 {\displaystyle psf(x_{1},x_{2})=1/L,ifx_{1}=x_{2}tan\beta ,{\sqrt[{}]{x_{1}^{2}+x_{2}^{2}}}} ≤ L / 2 , {\displaystyle L/2,} p s f ( x 1 , x 2 ) = 0 , o t h e r w i s e . {\displaystyle psf(x_{1},x_{2})=0,otherwise.} L為核kernel的長度，由運動速率決定，斜率 β {\displaystyle \beta } 則由運動方向決定。 此模型假設圖片中的所有像素的移動皆相同。 去動態模糊（motion deblurring）取決於點擴散函數（Point Spread Function）的確定。 模糊是與鄰近像素平均產生的結果，因此想恢復必須有足夠的鄰近像素的資訊。 快速傅立葉去模糊法是非常簡單的方法之一: 頻域的去模糊運算可表示為模糊影像的傅立葉變換和點擴散函數的傅立葉變換的乘積。 b ( x ) = p s f ( x ) ∗ o ( x ) + n ( x ) {\displaystyle b(x)=psf(x)*o(x)+n(x)} B ( k ) = P S F ( k ) O ( k ) + N ( k ) {\displaystyle B(k)=PSF(k)O(k)+N(k)} 因此去模糊可以簡單地用點擴散函數傅立葉變換的倒數MTF（k）來表示。 B / M T F = O + N / M T F {\displaystyle B/MTF=O+N/MTF} 當符合下列兩條件時有很好的效果： a）模糊影像沒有雜訊。 b）MTF沒有零點（zeros）。 但實際上不管是否符合上述2條件，雜訊仍會被放大（看N/MTF那項）。 均方誤差（MSE）最佳化線性去模糊 R = M T F ∗ | M T F | 2 + 1 S N R B {\displaystyle R={\frac {MTF^{*}}{|MTF|^{2}+{\frac {1}{SNR}}}}B} 其他「非遞迴式」方法，例如：調整濾波器（Regularized filter），引入回復圖像的限制條件。 Wiener去模糊法與「非遞迴式」方法有關。此方法可以解釋為：藉著找出與原圖有最小均方誤差的圖片為重建圖片。 Wiener濾波器的想法大致上用線性化方式解決了一般非線性最小化問題。對於雜訊為純高斯雜訊時，最小化問題是線性的。因此Wiener濾波器以均方誤差為此特例提供了最佳化解法。然而實際圖片大部分卻是Poisson雜訊，因此下一個方法提出了。 Lucy-Richardson、Regularized和Wiener去模糊法都是針對反摺積運算下，因雜訊影響和混沌蝴蝶效應所造成影像錯誤，不同的是，Lucy-Richardson去模糊法是遞迴式的。Lucy-Richardson利用條件機率的貝氏定理反覆運算，並將去模糊處理前後的影像作比較，消除雜訊的部分，得到增強的結果。 p ( i m a g e k ) = Pr ( p h o t o n r e a c h i n g p i x e l k ) {\displaystyle p(image_{k})=\Pr(photon\,reaching\,pixel\,k)} ≡ i m a g e k {\displaystyle image_{k}} p ( b k | o j ) {\displaystyle p(b_{k}|o_{j})} ≡ h k j {\displaystyle h_{kj}} b = p s f ⋆ o {\displaystyle b=psf\star \,o} p ( b k ) = ∑ j p ( b k | o j ) p ( o j ) {\displaystyle p(b_{k})=\sum _{j}p(b_{k}|o_{j})p(o_{j})} b k = ∑ j p s f k j o {\displaystyle b_{k}=\sum _{j}psf_{kj}o} ⇒ h k j = p s f k j {\displaystyle h_{kj}=psf_{kj}} o k = p ( o k ) = ∑ j p ( o k | b j ) p ( b j ) , {\displaystyle o_{k}=p(o_{k})=\sum _{j}p(o_{k}|b_{j})\,p(b_{j}),} o k = ∑ j p ( b j | o k ) p ( o k ) p ( b j ) ∑ l p ( b j | o l ) p ( o l ) , {\displaystyle o_{k}=\sum _{j}{\frac {p(b_{j}|o_{k})\,p(o_{k})\,p(b_{j})}{\sum _{l}p(b_{j}|o_{l})\,p(o_{l})}},\!} o k n + 1 = ∑ j o k n p s f k j b j ∑ l p s f j l o l n {\displaystyle o_{k}^{n+1}=\sum _{j}{\frac {o_{k}^{n}\,psf_{kj}\,b_{j}}{\sum _{l}psf_{jl}\,o_{l}^{n}}}\!} 兩個關鍵的理解帶出了最後的公式: 1）貝式公式中的機率可以用像素的亮度取代。 以下解釋可以更明白：光子在一定時間內碰到感測像素的機率和像素的亮度成正比。 2）條件機率矩陣： p ( b k | o j ) {\displaystyle p(b_{k}|o_{j})} 是點擴散函數 p s f k i {\displaystyle psf_{ki}} 。 https://web.archive.org/web/20080622092502/http://scien.stanford.edu/class/psych221/projects/02/ulrichb/project_files/frame.htm#slide0005.htm（失效）