研究 计算机视觉

图像滤波:信号、卷积与空间滤波

从离散信号与卷积出发,整理均值、中值、高斯、可分离和双边滤波的基本方法。

本页目录 14 节

信号与系统 #

离散脉冲信号 #

以下默认离散信号定义在整数域 Z\mathbb{Z} 上。

定义 离散脉冲信号
δk[n]={1,n=k,0,nk.\delta_k[n]=\begin{cases} 1, & n=k, \\ 0, & n\neq k. \end{cases}

默认以 δ[n]\delta[n] 表示 δ0[n]\delta_0[n]。其中 δ[nn0]=δn0[n]\delta[n-n_0]=\delta_{n_0}[n];它既可以表示一个信号,也可以表示该信号在索引 nn 处的取值。

性质

离散脉冲信号是卷积的单位元,即

(δg)[n]=kδ[nk]g[k]=g[n](\delta * g)[n]=\sum\limits_{k}\delta[n-k]g[k]=g[n]

从信号角度看,求和表示若干移位脉冲的叠加;从采样值角度看,与 δn\delta_n 做内积可以提取第 nn 项:g[n]=δn,gg[n]=\langle\delta_n,g\rangle

性质

离散脉冲信号也可用于平移:ffδn0\delta_{n_0} 卷积得到 f[nn0]f[n-n_0],即

f[nn0]=(δn0f)[n]=kδ[nn0k]f[k]=δnn0,ff[n-n_0]=(\delta_{n_0}*f)[n]=\sum\limits_{k}\delta[n-n_0-k]f[k]=\langle\delta_{n-n_0},f\rangle

前两个等号描述移位后的整个信号;最后的内积只表示该信号在给定索引 nn 处的采样值。

定义

线性时不变系统(linear time-invariant system, LTI)同时满足线性性和时间不变性。

性质

设 LTI 系统 TT 对单位脉冲的响应为 h=T(δ)h=T(\delta),则任意输入信号 ff 的输出都可写为卷积 g=hfg=h*f

T(f)=T(kf[k]δ[nk])(此处理解为脉冲信号的叠加)=kf[k]T(δ[nk])(T 的线性性)=kf[k]h[nk](f[k] 是值  h[nk] 是信号)=fh=hf.\begin{aligned} T(f)&=T(\sum\limits_{k}f[k]\delta[n-k]) & (\text{此处理解为脉冲信号的叠加}) \\ &=\sum\limits_{k}f[k]T(\delta[n-k]) & (\text{T 的线性性}) \\ &=\sum\limits_{k}f[k]h[n-k] & (f[k]\text{ 是值 }\ h[n-k]\text{ 是信号}) \\ &=f*h=h*f. \end{aligned}

T(f)[n]T(f[n])T(f)[n]\neq T(f[n]):系统 TT 作用于整个信号,而不是只作用于某个采样值。

Dirac δ 分布 #

定义 Dirac δ 分布

连续情形使用 Dirac δ\delta 分布描述理想脉冲:它集中在 x0x_0,总积分为 11,并满足抽样性质。它不是通常意义下的函数,应在分布意义下理解;直观上可看作在 x0x_0 附近无限窄、面积保持为 11 的脉冲。

性质

对任意足够光滑的函数 f(x)f(x),有

f(x)δ(xx0)dx=f(x0)\int_{-\infty}^{\infty} f(x)\delta(x-x_0)\,\mathrm{d}x=f(x_0)

因此,Dirac δ\delta 分布也可视为取样算子。

Dirac δ\delta 分布常通过函数族的分布极限表示,例如:

Gaussian:δ(x)=limα012παex2/(2α2)\text{Gaussian:}\quad \delta(x)=\lim_{\alpha\to 0}\frac{1}{\sqrt{2\pi}\alpha}e^{-x^2/(2\alpha^2)} sinc:δ(x)=limαsin(αx)πx\text{sinc:}\quad \delta(x)=\lim_{\alpha\to\infty}\frac{\sin(\alpha x)}{\pi x} Fourier:δ(x)=12πeiωxdω\text{Fourier:}\quad \delta(x)=\frac{1}{2\pi}\int_{-\infty}^{\infty}e^{\mathrm{i}\omega x}\,\mathrm{d}\omega

图像与图像处理 #

图像通常以矩阵形式存储,常见颜色表示包括:

  • 灰度:取值范围为 0–255,其中 0 为黑色、255 为白色。
  • RGB:每个像素表示为 [R,G,B][R,G,B],各通道取值范围为 0–255。
  • Lab:LL 表示亮度,aa 表示绿—红分量,bb 表示蓝—黄分量。
  • HSV:HHSSVV 分别表示色调、饱和度和明度。
    定义
    图像可以理解为函数 f:R2Rf:\mathbb{R}^2\to\mathbb{R}f:R2RMf:\mathbb{R}^2\to\mathbb{R}^M。例如,灰度图像可写为 f:[a,b]×[c,d][0,255]f:[a,b]\times[c,d]\to[0,255]
    灰度图像整体增亮示例 将灰度值整体增加 20,可使图像整体变亮。 对应的点算子为 g(x,y)=h(f(x,y))g(x,y)=h(f(x,y))
    图像水平翻转示例xx 变为 x-x,可实现图像的水平翻转。 对应的几何变换为 g(x,y)=f(T(x,y))g(x,y)=f(T(x,y))

滤波与均值滤波 #

定义 滤波

滤波是按照给定邻域与组合规则,从原图像生成新图像的过程。 滤波通常有两类目的:

  • 提取边缘、轮廓等有效信息。
  • 对图像进行去噪、锐化等增强处理。
定义 均值滤波
均值滤波以邻域像素的平均值替代当前像素,利用局部像素通常相近的假设抑制噪声。邻域越大,平滑效果越强,但图像细节也更容易被模糊。
3×33\times3 邻域为例,均值滤波算子可写为 S(f)[n,m]=19i=11j=11f(n+i,m+j)S(f)[n,m]=\frac 1 9\sum\limits_{i=-1}^1\sum\limits_{j=-1}^1 f(n+i,m+j)

常见建模假设是噪声服从 Gaussian 分布:ε(n,m)N(0,σ2)\varepsilon(n,m)\sim\mathcal{N}(0,\sigma^2)

非线性滤波 #

均值滤波在抑制噪声的同时容易模糊细节,因此还需要非线性滤波方法。

定义 中位数滤波

中位数滤波用邻域像素的中位数替代当前像素。当异常值只占少数时,中位数对离群点比均值更稳健。

性质
  • 不引入新的像素值。
  • 对脉冲噪声(salt-and-pepper noise)通常有较好的抑制效果。

如何选择滤波器 #

设计局部滤波器时,需要确定两件事:

  • 邻域 NpN_p:哪些像素会影响位置 pp 的新像素值。
  • 权重 w(p,q)w(p,q):邻域内各像素的影响程度。

当滤波前后的像素位置不变时,可写为

局部邻域滤波示意图

I(p)=T{(I(q),q)qNp}=qNpw(p,q)I(q)=(wI)(p).I'(p)=T\{(I(q),q)\mid q\in N_p\} =\sum_{q\in N_p}w(p,q)I(q) =(w*I)(p).
例 常见局部滤波器

均值滤波

w(p,q)=1Np.w(p,q)=\frac{1}{|N_p|}.

高斯滤波

w(p,q)=1Sexp(pq22σ2),S=rNpexp(pr22σ2).\begin{aligned} w(p,q)&=\frac{1}{S}\exp\left(-\frac{\lVert p-q\rVert^2}{2\sigma^2}\right),\\ S&=\sum_{r\in N_p}\exp\left(-\frac{\lVert p-r\rVert^2}{2\sigma^2}\right). \end{aligned}

中位数滤波

I(p)=median{I(q):qNp}.I'(p)=\operatorname{median}\{I(q):q\in N_p\}.

卷积与互相关 #

定义 卷积与互相关

互相关(cross-correlation)

S[f]=wf,S[f](m,n)=i=kkj=kkw(i,j)f(m+i,n+j).\begin{aligned} S[f]&=w\otimes f,\\ S[f](m,n)&=\sum_{i=-k}^{k}\sum_{j=-k}^{k}w(i,j)f(m+i,n+j). \end{aligned}

卷积(convolution)

S[f]=wf,S[f](m,n)=i=kkj=kkw(i,j)f(mi,nj).\begin{aligned} S[f]&=w*f,\\ S[f](m,n)&=\sum_{i=-k}^{k}\sum_{j=-k}^{k}w(i,j)f(m-i,n-j). \end{aligned}
性质

在二维情形中,互相关核 g(x,y)g(x,y) 与对应卷积核 g(x,y)g'(x,y) 满足中心对称关系:

g(x,y)=g(x,y)g(x,y)=g'(-x,-y)

互相关与卷积都可用于模板匹配。互相关可看作局部向量内积:待检测区域与模板越相似,响应值通常越大。

性质 线性性
(wf)(m,n)=i=kkj=kkw(i,j)f(m+i,n+j)(w\otimes f)(m,n)=\sum\limits_{i=-k}^k\sum\limits_{j=-k}^k w(i,j)f(m+i,n+j) w=aw+bvw'=aw+bv wf=a(wf)+b(vf)w'\otimes f=a(w\otimes f)+b(v\otimes f)
性质 平移等变性

互相关与卷积算子可以和平移算子交换。

f(m,n)=f(mm0,nn0)f'(m,n)=f(m-m_0,n-n_0) (wf)(m,n)=(wf)(mm0,nn0)(w\otimes f')(m,n)=(w\otimes f)(m-m_0,n-n_0)
性质 可交换性

卷积满足交换律,互相关一般不满足交换律。

(wf)(m,n)=(fw)(m,n)(w*f)(m,n)=(f*w)(m,n)
性质 卷积结合性
v(wf)=(vw)fv*(w*f)=(v*w)*f
命题

任意线性平移不变算子都可以表示为卷积。

性质

卷积核的参数数量与输入图像尺寸无关。

卷积在图像处理与 CNN 中的特点 #

  • 具有平移等变性:若以 τ\tau 表示平移算子,则 S(τx)=τS(x)S(\tau x)=\tau S(x)
  • 关注局部结构;堆叠多层卷积可以获得更大的感受野。
  • 可用于图像滤波和模板匹配。
  • 不同位置共享卷积核参数,因此参数量较少。
  • 同一卷积核可以处理不同尺寸的输入图像。

边界处理 #

  • 全卷积:只要卷积核与原图像有重合就计算;一维输出长度为 m+k1m+k-1
  • 同大小卷积:通过适当填充使输出尺寸与输入保持一致。
  • 有效卷积:只计算卷积核完全落在图像内部的位置;一维输出长度为 mk+1m-k+1

高斯滤波 #

高斯差分(Difference of Gaussians, DoG)使用两种尺度的高斯平滑结果之差:

DoGσ1,σ2(I)=Gσ1IGσ2I.\operatorname{DoG}_{\sigma_1,\sigma_2}(I) =G_{\sigma_1}*I-G_{\sigma_2}*I.

可分离滤波器 #

设图像尺寸为 w×hw\times h,滤波核尺寸为 k×kk\times k。直接二维卷积的总复杂度为 O(whk2)O(whk^2)

定义

若卷积核可以写成两个一维核的外积,即

w(i,j)=u(i)v(j)w(i,j)=u(i)v(j)

则可以沿两个方向分别进行一维卷积,将复杂度降至 O(whk)O(whk)

组合滤波 #

w(vI)=(wv)Iw*(v*I)=(w*v)*I,因此两个滤波器可以合并为一个较大的滤波器;但在实际计算中,依次使用两个小滤波器往往更高效。统一小滤波器尺寸也有利于硬件层面的实现优化。

双边滤波 #

定义

双边滤波同时考虑像素间的空间距离和强度差异:

BF[I]p=1WpqSGσs(pq)Gσr(IpIq)Iq,Wp=qSGσs(pq)Gσr(IpIq).\begin{aligned} \operatorname{BF}[I]_p &=\frac{1}{W_p}\sum_{q\in S} G_{\sigma_s}(\lVert p-q\rVert) G_{\sigma_r}(|I_p-I_q|)I_q,\\ W_p &=\sum_{q\in S} G_{\sigma_s}(\lVert p-q\rVert) G_{\sigma_r}(|I_p-I_q|). \end{aligned}

双边滤波示意图

优势

  • 易于理解。
  • 可根据空间距离与灰度差异自适应调整权重。
  • 不需要迭代求解。

局限

  • 计算速度较慢。

讨论

评论

正在加载评论…

输入关键词开始搜索。