研究 旧 .com 迁移

计算机视觉:相关资料 / ImageFilter

从旧 .com 全量搬运的历史内容,来源路径:/ai-kb/课程/计算机视觉/resources/imagefilter/

迁移来源

图像滤波 ImageFilter

信号与系统 Signals and Systems #

脉冲信号 impulse signals #

默认定义域是整数 Z\mathbb{Z}. {{< admonition definition “定义” true >}} δk[n]={1,n=k0,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\delta[n-n_0]=\delta_{n_0}. 并且 δ[nn0]\delta[n-n_0] 既可以表示为一个信号, 也可以理解为 δ\deltann0n-n_0 处的取值. {{< /admonition >}} {{< admonition abstract “性质” true >}} impulse signal 与任一信号 gg 的卷积还是 gg (单位元), 即

$$ f[n]=(\delta \circ g)[n]=\sum\limits_{k}\delta[n-k]g[k]=g[n] $$
上式既可以理解为是信号的运算, 也可以理解为是在 $n$ 处的取值, 即其中的求和可以是若干脉冲信号的叠加. 通过与 $\delta_n$ 做内积运算, 可以得到一个信号的第 $n$ 项, $g[n]=\langle \delta_n,g\rangle$. {{< /admonition >}} {{< admonition abstract "性质" true >}} impulse signal 可用于平移信号, 与 $\delta_{n_0}$ 卷积可得 $f[n-n_0]$, 即
$$ f[n-n_0]=(\delta_{n_0}\circ f)[n]=\sum\limits_{k}\delta[n-n_0-k]f[k]=\langle\delta_{n-n_0},f\rangle $$
如果理解为在 $n-n_0$ 处的值, 那么等式均成立, 如果理解为信号, 那么最后一个内积等式忽略. {{< /admonition >}} {{< admonition definition "定义" true >}} LTI system (Linear time-invariant system) 线性时不变系统. 同时满足线性性和时间不变性的系统. {{< /admonition >}} {{< admonition abstract "性质" true >}} 如果有一个 LTI system T, $\delta$ 信号经过这个系统 T 后变为信号 $h$, 那么就可以得到任意信号 $f$ 经过该系统后的结果 $g=h\circ f$.
$$ \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\circ h = h\circ f. \end{aligned} $$
{{< /admonition >}} {{< admonition info "注" true >}} $T(f)[n]\neq T(f[n])$ 即系统 T 是对整个信号变化, 而不是对信号中某一点的取值变化. {{< /admonition >}} ### $\delta$-Function {{< admonition definition "定义 $\delta$-Function" true >}} 连续意义下的脉冲信号 $\delta(x-x_0)$, 要求在 $(-\infty,\infty)$ 上积分为 $1$, 在 $x\neq x_0$ 处为 $0$. 严格定义违反数学常识, 可理解为在 $x_0$ 处无限高, 无限窄但面积始终为 $1$, 用于提取连续信号在 $x_0$ 处的值. {{< /admonition >}} {{< admonition abstract "性质" true >}} 对任意足够光滑的函数 $f(x)$, 有
$$ \int_{-\infty}^\infty f(x)\delta(x-x_0)\text{d} x = f(x_0) $$
所以也称该函数为取样算子. {{< /admonition >}} {{< admonition example "例" true >}} 由于 $\delta$ 函数无法直接表示, 一般表示为函数族的极限, 例如下列情形.
$$ Gauss: \delta(x)=\lim\limits_{\alpha\to 0}\frac{1}{\sqrt{\pi}\alpha}e^{-x^2/2\alpha^2} $$
$$ sinc: \delta(x)=\lim\limits_{\alpha\to\infty}\frac{\sin(\alpha x)}{\pi x} $$
$$ Fourier: \delta(x)=\frac{1}{2\pi}\int_{-\infty}^{+\infty}e^{\text{i} w x}\text{d} x $$
{{< /admonition >}} ## 图像与图像处理 Image and Image Processing 存储方式: 以矩阵的形式存储.
  • 灰度: 0-255, 0 黑 255 白
  • RGB [R,G,B]: 每一维 0-255
  • Lab [L,a,b]: 亮度, a (从绿色到红色分量), b (从蓝色到黄色分量).
  • HSV [H,S,V]: 色调, 饱和度, 明度.
{{< admonition definition "定义" true >}} 图片可以理解为一个函数 $f:\mathbb{R}^2\to \mathbb{R} or \mathbb{R}^M$ 例如灰度就是 $f:[a,b]\times [c,d]\to[0,255]$. {{< /admonition >}} {{< admonition example "例" true >}} ![图](/media/figures/计算机视觉/ImageFilter/lec02-22.png) 效果: 灰度值 +20, 使整体变亮 点算子 $g(x,y)=h(f(x,y))$. {{< /admonition >}} {{< admonition example "例" true >}} ![图](/media/figures/计算机视觉/ImageFilter/lec02-23.png) 效果: x 变为 -x, 左右翻转. 点算子 $g(x,y)=f(T(x,y))$. {{< /admonition >}} ## 均值滤波与滤波 Mean Flitering and Filter {{< admonition definition "定义 滤波" true >}} 通过将原图像中的像素以某种组合方式形成新图像的过程. 目的:
  • 提取图像中的有效信息. (提取边缘, 提取轮廓等)
  • 增强图像. (去噪, 锐化等)
{{< /admonition >}} {{< admonition definition "定义 均值滤波" true >}} 思想: 用四周的像素点平均值来消除噪音. 基于相近的像素颜色一般也相近. 过程: 选取均值范围大小, 计算新的颜色值. 问题: 在消除部分噪音的同时也模糊了细节. {{< /admonition >}} {{< admonition example "例" true >}} 以大小为 $3\times 3$ 的范围为例, 均值滤波的算子定义为
$$ S(f)[n,m]=\frac 1 9\sum\limits_{i=-1}^1\sum\limits_{j=-1}^1 f(n+i,m+j) $$
{{< /admonition >}} {{< admonition example "例" true >}} 假设噪声分布属于 Gauss 分布 $\varepsilon(n,m)\sim N(0,\sigma^2)$. {{< /admonition >}} ## 卷积与互相关 Convolution and Cross-correlation## 线性与位移不变性 Linearity and Shift invariance## 非线性滤波 Non-linear filters 有些时候平均滤波效果不好, 会模糊细节. 所以需要一些非线性滤波. {{< admonition definition "定义 中位数滤波" true >}} 用周围点的中位数替代原像素. 原理: 离群点数量少. {{< /admonition >}} {{< admonition abstract "性质" true >}}
  • 不引入新的像素值.
  • 对脉冲信号, salt \& pepper 噪点效果好.
{{< /admonition >}} ## 如何选取滤波方式 How to decide a filter 需要决定两件事:
  • $N_p$ 原像素位置 $p$ 有哪些邻居会影响 $p$ 新的像素值.
  • 每个像素的影响权重 $w(p,q)$.
当像素位置不变时, 即变换后的新像素值仍处于原位置. ![图](/media/figures/计算机视觉/ImageFilter/lec03-10.png)
$$ I'(p')=T\{(I_q,q)|q\in N_p\}=\sum\limits_{q\in N_p}w(p,q)I(q)=w*I(p) $$
{{< admonition example "例" true >}}
  • 均值滤波:
    $$ w(p,q)=\frac{1}{|N_p|} $$
  • 高斯滤波:
    $$ w(p,q)=\frac 1 S\exp\left(-\frac{\Vert p-q\Vert^2}{2\sigma^2}\right),\quad S=\sum\limits_{r\in N_p}\left(-\frac{\Vert p-r\Vert^2}{2\sigma^2}\right) $$
  • 中位数滤波:
    $$ w(p,q)=\begin{cases} 1, & I(q)=\text{median}(I(r))\\ 0, & \text{otherwise} \end{cases} $$
{{< /admonition >}} ## 卷积的性质 Properties of Convolution {{< admonition definition "定义" true >}}
  • 交叉相关 (cross correlation)
    $$ \begin{aligned} S[f]=w\otimes f\\ S[f](m,n)=\sum\limits_{i=-k}^k\sum\limits_{j=-k}^k w(i,j)f(m+i,n+j) \end{aligned} $$
  • 卷积 (convolution)
    $$ \begin{aligned} S[f]=w*f\\ S[f](m,n)=\sum\limits_{i=-k}^k\sum\limits_{j=-k}^k w(i,j)f(m-i,n-j) \end{aligned} $$
{{< /admonition >}} {{< admonition abstract "性质" true >}} 相关核 $g(x,y)$, 与卷积核 $g'(x,y)$ 满足中心对称关系 (二维情形), 即
$$ g(x,y)=g'(-x,-y) $$
{{< /admonition >}} 相关/卷积可以用于模板匹配. 原理: 相关过程相当于向量内积, 当被检测目标与相关核的相似度高, 得到的内积结果就大. {{< admonition abstract "性质 线性性" true >}}
$$ (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+bv $$
$$ w'\otimes f=a(w\otimes f)+b(v\otimes f) $$
{{< /admonition >}} {{< admonition abstract "性质 平移不变性" true >}} 相关/卷积可以和平移算子交换.
$$ f'(m,n)=f(m-m_0,n-n_0) $$
$$ (w\otimes f)(m,n)=(w\otimes f)(m-m_0,n-n_0) $$
{{< /admonition >}} {{< admonition abstract "性质 可交换性" true >}} 卷积可交换, 但相关不行.
$$ (w*f)(m,n)=(f*w)(m,n) $$
{{< /admonition >}} {{< admonition abstract "性质 卷积结合性" true >}}
$$ v*(w*f)=(v*w)*f $$
{{< /admonition >}} {{< admonition tip "命题" true >}} 任意线性平移不变的算子都可以表示为卷积. {{< /admonition >}} {{< admonition abstract "性质" true >}} 卷积不受输入大小影响. {{< /admonition >}}
  • 平移不变性 $f(\text{translate}(x))=\text{translate}(f(x))$.
  • 关注局部细节, 多层 CNN 可以获取更大的范围特征.
  • 图像滤波, 模板匹配
  • 参数共享, 不同位置的卷积核一致. 参数量少.
  • 适用于任意输入图像.
**边界处理:**
  • 全卷积, 只要卷积核与原图像有重合就计算. 会使得图像变大, 输出大小为 $m+k-1$.
  • 同大小卷积, 只计算中心位置在图像中的卷积. 输出大小不变.
  • 有效卷积, 只计算整个卷积核在图像中的. 输出大小变小 $m-k+1$.
## 高斯滤波 Gaussian Filter Difference of Gaussians -Dog ## 可分离滤波器 Separable Filters 卷积复杂度: Image: $w\times h$. Filter: $k\times k$. 每次卷积 $O(k^2)$. 总复杂度 $O(whk^2)$. {{< admonition definition "定义" true >}} 称一个卷积核是可分离的当且仅当存在等式
$$ w(i,j)=u(i)v(j) $$
从而两个方向分别做卷积. 复杂度优化至 $O(whk)$. {{< /admonition >}} 组合滤波: $w*v*I=(w*v)*I$. 从而两个滤波器可以合并成一个大的滤波器, 但大大的滤波器效率没有两个小的高. 可以统一小的滤波器大小, 进而在硬件层面上优化效率. **3D 滤波:** ## 双边滤波 Bilateral Filter {{< admonition definition "定义" true >}} 综合考虑位置远近和灰度值差距.
$$ BF[I]_p\quad=\quad\frac {1}{W_p}\sum\limits_{q\in S}G_{\sigma_s}(\Vert p-q \Vert)G_{\sigma_r}(|I_[-I_q]|)I_q\quad $$
![图](/media/figures/计算机视觉/ImageFilter/lec03-79.png) {{< /admonition >}} **优势:**
  • 易于理解.
  • 自适应.
  • 不用迭代.
**缺点:** 速度慢. ## 微分方程和图像处理 Diffusion Equation \& Image

讨论

评论

正在加载评论...