各类滤波算子
雙邊濾波(Bilateral filter)
雙邊濾波(Bilateral filter)是一種可以保邊去噪的濾波器。其輸出像素的值依賴于鄰域像素的值的加權組合,即:
g(i,j)=∑k,lf(k,l)w(i,j,k,l)∑k,lw(i,j,k,l)g(i,j)=\frac{\sum_{k,l}f(k,l)w(i,j,k,l)}{\sum_{k,l}w(i,j,k,l)}g(i,j)=∑k,l?w(i,j,k,l)∑k,l?f(k,l)w(i,j,k,l)?
也就是:
h=w(i,j,k,l)∑k,lw(i,j,k,l)h=\frac{w(i,j,k,l)}{\sum_{k,l}w(i,j,k,l)}h=∑k,l?w(i,j,k,l)w(i,j,k,l)?
其中,
w(i,j,k,l)=d(i,j,k,l)?r(i,j,k,l)=exp?(?(i?k)2+(j?l)22σd2)?exp?(?∥f(i,j)?f(k,l)∥22σr2)w(i,j,k,l)=d(i,j,k,l)\cdot r(i,j,k,l)=\exp\left(-\frac{(i-k)^2+(j-l)^2}{2\sigma_d^2}\right)\cdot \exp\left(-\frac{\|f(i,j)-f(k,l)\|^2}{2\sigma_r^2}\right)w(i,j,k,l)=d(i,j,k,l)?r(i,j,k,l)=exp(?2σd2?(i?k)2+(j?l)2?)?exp(?2σr2?∥f(i,j)?f(k,l)∥2?)
這里的r(i,j,k,l)r(i,j,k,l)r(i,j,k,l)由于和像素值的差有關(像素差越大,權重越小),也被叫做“值域核”。
從效果來說,雙邊濾波可產(chǎn)生類似美膚的效果。皮膚上的皺紋和斑,與正常皮膚的差異,遠小于黑白眼珠之間的差異,因此前者被平滑,而后者被保留。
為了體現(xiàn)效果,這里來張大叔的照片。
Steerable濾波
高斯濾波是一種各向同性濾波,如果想要對特定方向進行濾波的話,可使用Steerable濾波。
對最簡二維高斯函數(shù)G(x,y)=e?(x2+y2)G(x,y)=e^{-(x^2+y^2)}G(x,y)=e?(x2+y2)求1階偏導可得:
G10=?G(x,y)?x=?2xe?(x2+y2),G1π2=?G(x,y)?y=?2ye?(x2+y2)G_1^0=\frac{\partial G(x,y)}{\partial x}=-2xe^{-(x^2+y^2)},G_1^{\frac{\pi}{2}}=\frac{\partial G(x,y)}{\partial y}=-2ye^{-(x^2+y^2)}G10?=?x?G(x,y)?=?2xe?(x2+y2),G12π??=?y?G(x,y)?=?2ye?(x2+y2)
這就是兩個軸向上的1階Steerable濾波函數(shù)。
任意角度的1階Steerable濾波函數(shù)為:
G1θ=cos?θG10+sin?θG1π2G_1^{\theta}=\cos\theta G_1^0+\sin\theta G_1^{\frac{\pi}{2}}G1θ?=cosθG10?+sinθG12π??
如果對高斯函數(shù)求2階偏導,還可得到2階Steerable濾波函數(shù)。進一步的討論詳見參考論文。
參考:
1991年IEEE論文:The Design and Use of Steerable Filters
作者:William T. Freeman,斯坦福大學本科+斯坦福/康奈爾大學雙料碩士+麻省理工學院博士,麻省理工學院教授。1987年,曾做為訪問學者在太原理工大學待了一學年。
Edward H. Adelson,密歇根大學博士,麻省理工學院教授。
Gabor濾波
基、線性無關、正交
一般的函數(shù)可以展開為冪級數(shù)或者Fourier級數(shù)。這些級數(shù)中的冪函數(shù)或者正弦函數(shù),被稱作“基(basis)函數(shù)”。
基的屬性主要涉及“線性無關”和“正交”這兩個名詞。
線性無關的幾何含義:在R3R^3R3(3維空間)中,如果三個向量不共面,則它們相互線性無關。
基如果線性無關,則其函數(shù)的級數(shù)展開式是唯一的。由于線性相關基使用的比較少,以下如無特指,基均為線性無關基。
正交的幾何含義:兩個向量正交,則它們是相互垂直的。
正交基一定線性無關,反之則不成立。一般采用施密特正交化方法,將線性無關基,轉(zhuǎn)換為正交基。
冪級數(shù)是線性無關基,而Fourier級數(shù)是正交基。
Gabor wavelet
除了以上兩種常用的基函數(shù)外,其他函數(shù)也可以作為基函數(shù)。其中使用最多的基函數(shù)是小波(wavelet)函數(shù),其變換也被稱作小波變換。
需要指出的是,小波函數(shù)不是一個函數(shù),而是一類函數(shù)。Gabor函數(shù)就是小波函數(shù)的其中一種,其定義如下:
gt,n(x)=g(x?al)e2πibnx,?∞<l,n<+∞g_{t,n}(x)=g(x-al)e^{2\pi ibnx},-\infty<l,n<+\inftygt,n?(x)=g(x?al)e2πibnx,?∞<l,n<+∞
這里的a,ba,ba,b為常數(shù),ggg為L2(R)L^2(R)L2(R)(立方可積函數(shù)),且∥g∥=1\parallel g\parallel=1∥g∥=1。
注:Dennis Gabor(1900~1979),全息學創(chuàng)始人,1971年獲諾貝爾物理學獎,著有《Theory of Communication》(1946)。
當ggg為高斯函數(shù)時,可得到Gabor wavelet:
f(x)=e?(x?x0)2/a2e?ik0(x?x0)f(x)=e^{-(x-x_0)^2/a^2}e^{-ik_0(x-x_0)}f(x)=e?(x?x0?)2/a2e?ik0?(x?x0?)
Gabor wavelet的性質(zhì):
1.Gabor wavelet的Fourier變換還是Gabor wavelet:
F(k)=e?(k?k0)2a2e?ix0(k?k0)F(k)=e^{-(k-k_0)^2a^2}e^{-ix_0(k-k_0)}F(k)=e?(k?k0?)2a2e?ix0?(k?k0?)
2.從物理上來說,Gabor wavelet等效于在一個正弦載波(頻域)上,調(diào)制一個高斯函數(shù)(時空域)。這也是Dennis Gabor最早提出它的時候的用途。
3.Fourier變換是信號在整個時域內(nèi)的積分,因此反映的是信號頻率的統(tǒng)計特性,沒有局部化分析信號的功能。而Gabor變換是一種短時Fourier變換,具有良好的時頻局部化特性,即非常容易地調(diào)整Gabor濾波器的方向、基頻帶寬及中心頻率,從而能夠最好的兼顧信號在時空域和頻域中的分辨能力。
Gabor filter
將Gabor wavelet擴展到2維,可得到Gabor filter(圖像實際上就是一種2維信號):
g(x,y;λ,θ,ψ,σ,γ)=exp?(?x′2+γ2y′22σ2)exp?(i(2πx′λ+ψ))g(x,y;\lambda,\theta,\psi,\sigma,\gamma)=\exp\left(-\frac{x'^2+\gamma^2y'^2}{2\sigma^2}\right)\exp\left(i\left(2\pi\frac{x'}{\lambda}+\psi\right)\right)g(x,y;λ,θ,ψ,σ,γ)=exp(?2σ2x′2+γ2y′2?)exp(i(2πλx′?+ψ))
其中,
x′=xcos?θ+ysin?θ,y′=?xsin?θ+ycos?θx'=x\cos\theta+y\sin\theta,y'=-x\sin\theta+y\cos\thetax′=xcosθ+ysinθ,y′=?xsinθ+ycosθ
lambdalambdalambda:正弦函數(shù)波長;θ\thetaθ:Gabor核函數(shù)的方向;ψ\psiψ:相位偏移;σ\sigmaσ:高斯函數(shù)的標準差;γ\gammaγ: 空間的寬高比。
可以看出Gabor filter是一個復函數(shù),其實部為:
g(x,y;λ,θ,ψ,σ,γ)=exp?(?x′2+γ2y′22σ2)cos?(2πx′λ+ψ)g(x,y;\lambda,\theta,\psi,\sigma,\gamma)=\exp\left(-\frac{x'^2+\gamma^2y'^2}{2\sigma^2}\right)\cos\left(2\pi\frac{x'}{\lambda}+\psi\right)g(x,y;λ,θ,ψ,σ,γ)=exp(?2σ2x′2+γ2y′2?)cos(2πλx′?+ψ)
其虛部為:
g(x,y;λ,θ,ψ,σ,γ)=exp?(?x′2+γ2y′22σ2)sin?(2πx′λ+ψ)g(x,y;\lambda,\theta,\psi,\sigma,\gamma)=\exp\left(-\frac{x'^2+\gamma^2y'^2}{2\sigma^2}\right)\sin\left(2\pi\frac{x'}{\lambda}+\psi\right)g(x,y;λ,θ,ψ,σ,γ)=exp(?2σ2x′2+γ2y′2?)sin(2πλx′?+ψ)
此外,還有對數(shù)Gabor函數(shù):
G(f)=exp?(?(log(f/f0))22(log(σ/f0))2)G(f)=\exp\left(\frac{-(log(f/f_0))^2}{2(log(\sigma/f_0))^2}\right)G(f)=exp(2(log(σ/f0?))2?(log(f/f0?))2?)
Gabor濾波的效果
參考文獻3,給出了Gabor濾波的效果圖,如下所示:
從效果來看,該濾波可獲得美術上的浮雕效果。但實際上,大多數(shù)的邊緣檢測算法都可得到類似效果,這并不是Gabor濾波的主流用法。
以下對參考文獻3做一個補充說明:
1.Gabor濾波是復數(shù)域的,這點和之前提到的濾波算法有很大的不同。因此,Gabor濾波計算核的方法有3種:復數(shù)、實部和虛部。參考文獻3采用的是實部法。1987年,J.P. Jones和L.A. Palmer發(fā)現(xiàn)Gabor變換所采用的核(Kernels)的實部與哺乳動物視覺皮層簡單細胞2D感受野剖面(Profile)非常相似。
2.實部計算的結果有正有負。參考文獻3給出的歸一化算法,很有通用性,摘錄如下:
G(x,y)=(f(x,y)?min(F))?Dmax(F)?min(F)G(x,y)=\frac{(f(x,y)-min(F))*D}{max(F)-min(F)}G(x,y)=max(F)?min(F)(f(x,y)?min(F))?D?
其中,F為源圖像所有像素的集合,D為總的灰度級數(shù)。
Gabor濾波采樣方式與圖像壓縮
Gabor濾波和之前的濾波算法的另一大差異是:Gabor濾波核不是一個,而是由若干不同參數(shù)組合而成的一組核,其中的每一個參數(shù)組合被稱為一個采樣點。
從Gabor filter的計算公式亦可看出,組成采樣點的參數(shù),既有時空域參數(shù),也有頻域參數(shù)。這些采樣點在時空域和頻域中如何分布,才能達到最終效果呢?
由于Gabor filter不是正交基,因此針對采樣點分布提出了Tight Frame的概念。參考文獻1給出了滿足Tight Frame要求的采樣點分布方式(簡稱采樣方式)的條件。這里的推導非常復雜,但從概念上可以類比信號處理中的奈奎斯特采樣定理。
Tight Frame有個重要特性:
如果采樣方式滿足Tight Frame條件,且圖像集B=Gabor(圖像A),圖像C=Gabor?1(圖像集B)分別表示Gabor變換及其逆變換。
參考文獻2給出了采用上述方法對Lena圖進行壓縮并還原的例子。這也是Gabor濾波在圖像處理領域的早期典型應用。
Gabor濾波與模式識別
2000年以后,科學界對Gabor濾波的研究,主要集中在模式識別方面。比如圖2就是參考文獻4中給出的人臉識別方面的Gabor濾波效果圖。其中,左邊是原圖,而右邊是40組不同參數(shù)的Gabor濾波器所得到的濾波效果圖。
注:1幅原圖變成40幅濾波效果圖的過程,在數(shù)學上是個升維過程。在后處理階段為了處理的方便,往往會進行數(shù)據(jù)降維,如參考文獻5所示。
從中還可以看出,雖然圖1顯示出一定的藝術處理效果,但大多數(shù)情況下,Gabor濾波所得的圖像是如圖2所示的極度扭曲而無明顯意義的圖片。Gabor濾波的真正用途,并不是給人看,而是給機器看。
從上面的討論可知,Gabor濾波是一種帶通濾波,使用不同的時空域或頻域參數(shù),可以過濾出不同的時空域或頻域特征。這些特征正是模式識別所需要的。
圖3是參考文獻4給出的一種Gabor濾波器的使用場景圖,從中可以看出Gabor濾波效果圖是如何應用到人臉識別技術中的。
必須指出的是:Gabor濾波效果圖的后處理方法有很多種,而圖3僅是其中一種而已。
參考
1.1996年IEEE論文:Image Representation Using 2D Gabor Wavelets
作者:Tai Sing Lee,哈佛大學博士,卡內(nèi)基梅隆大學教授。
2.1988年IEEE論文:Complete Discrete 2-D Gabor Transforms by Neural Networks for Image Analysis and Compression
作者:JohnG. Daugman,哈佛大學博士,劍橋大學教授。
3.http://blog.csdn.net/xiaowei_cqu/article/details/24745945
4.Face recognition using Ada-Boosted Gabor features
作者:Peng Yang,Shiguang Shan,Wen Gao,Stan Z. Li,Dong Zhang,中科院計算所和微軟亞洲研究院的幾個小牛。
5.http://www.cnblogs.com/Jack-Lee/p/3649114.html
Schmid濾波
Schmid濾波器是一種類Gabor濾波器。其計算公式為:
F(r,σ,τ)=1Zcos?(2πτrσ)e?r22σ2F(r,\sigma,\tau)=\frac{1}{Z}\cos\left(\frac{2\pi\tau r}{\sigma}\right)e^{-\frac{r^2}{2\sigma^2}}F(r,σ,τ)=Z1?cos(σ2πτr?)e?2σ2r2?
下圖是Schmid濾波器和Gabor濾波器的“核”圖像。“核”圖像是濾波器“核”函數(shù)的圖像化展示。
其中,前13個是Schmid濾波器,后8個是Gabor濾波器。“核”圖像中的白色部分,實際上就是該濾波器的帶通部分。
從中可以看出,Gabor濾波器有方向性,而Schmid濾波器是各向同性的。
參考
2010年IEEE論文:Constructing models for content-based image retrieval
作者:Cordelia Schmid,女,卡爾斯魯厄理工學院博士。現(xiàn)在INRIA(法國國家信息與自動化研究所)從事研究工作。
轉(zhuǎn)載至:
http://antkillerfarm.github.io/
總結
- 上一篇: umask:默认权限分配的命令
- 下一篇: [C++]怎么样实现一个较快的Hash