研究 旧 .com 迁移
计算机视觉:相关资料 / ImageFilter
从旧 .com 全量搬运的历史内容,来源路径:/ai-kb/课程/计算机视觉/resources/imagefilter/
迁移来源
- 旧站标题:ImageFilter
- 新站标题:计算机视觉:相关资料 / ImageFilter
- 旧站路径:/ai-kb/课程/计算机视觉/resources/imagefilter/
- 旧页面 ID:
619
图像滤波 ImageFilter
信号与系统 Signals and Systems #
脉冲信号 impulse signals #
默认定义域是整数 . {{< admonition definition “定义” true >}} 默认 为 . 注意符号的表示 . 并且 既可以表示为一个信号, 也可以理解为 在 处的取值. {{< /admonition >}} {{< admonition abstract “性质” true >}} impulse signal 与任一信号 的卷积还是 (单位元), 即
$$
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]: 色调, 饱和度, 明度.
- 提取图像中的有效信息. (提取边缘, 提取轮廓等)
- 增强图像. (去噪, 锐化等)
$$
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 噪点效果好.
- $N_p$ 原像素位置 $p$ 有哪些邻居会影响 $p$ 新的像素值.
- 每个像素的影响权重 $w(p,q)$.
$$
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} $$
- 交叉相关 (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} $$
$$
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$.
$$
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
$$

{{< /admonition >}}
**优势:**
- 易于理解.
- 自适应.
- 不用迭代.
讨论
评论
正在加载评论...