文章目录
已纠正错误
- 改正邻域打成领域的错误,2023年6月13日上午11点
- 改正锥状细胞和杆状细胞功能写反,2023年6月13日下午5点
图像理解与计算机视觉期末复习
非常感谢蔡同学提供的复习方案
建议用电脑端通过目录复习,因为手机端只能显示三级以下的目录
或者使用其他同学的复习大纲,不会的知识点可以点开此博客查看对相应知识点的介绍
如果你觉得对你有帮助的话请不要吝啬手中免费的赞哦,谢谢啦!
因本人能力有限,文中难免有错误的地方,如发现欢迎指正
题型与分数占比
题型 | 分数占比 |
---|---|
单选 | 10 × 2 10\times 2 10×2 |
填空 | 10 × 2 10\times 2 10×2 |
简答 | 4 × 5 4\times 5 4×5 |
计算 | 2 × 10 2\times 10 2×10 |
论述 | 2 × 10 2\times 10 2×10 |
知识点
绪论
感知方式
五感:视、听、味、嗅、触觉
其中,视觉是信息量最大的系统( 60 % ∼ 90 % 60\%\sim 90\% 60%∼90%)
图像处理主要内容
- 图像信息的获取
- 图像信息的存储
- 图像信息的传输
- 图像信息的处理
- 图像的输出与显示
图像理解
图像理解是对图像的语义理解
图像理解是:
(1) 以图象为对象
(2) 以知识为核心
研究:
(1) 图像中的目标
(2) 目标间的相互关系
(3) 图像中的场景
(4) 如何应用场景
图像理解的三个层次:
- 低层:图像处理
- 中层:图像分析
- 高层:图像理解
如下图
图像理解的目的:
- 对图像进行加工处理以满足人的视觉和心理需要
- 对图像中的目标进行分析和理解
图像理解系统的基本组成:
- 预处理是图像的增强和恢复
- 此图再次体现了图像理解是以知识为核心
应用实例
- 人脸识别
- 图像识别与分析
- 辅助驾驶、智能驾驶
- 医疗图像诊断
- 图像编辑、视频编辑
视觉系统
基本构造
从解剖学看:由眼球和视神经系统组成
- 眼球:
- 屈光系统
角膜、晶状体等 - 感光系统
视网膜
- 屈光系统
从物理结构看:由光学系统、视网膜、视觉通路组成
- 视网膜中的视细胞(“追颜赶亮”)
- 锥状细胞:白天,感知颜色
- 杆状细胞:夜晚,感知亮度
下图是视觉系统的物理结构图:
人眼的特点
亮度适应
人眼对亮度的感觉因光照条件不同而不同,因此人眼对亮度的感知是主观亮度
不知大家有没有注意到这样的现象:
(1) 晚上刚关灯睡觉时眼前会一片漆黑,但是当过一会后就会慢慢看清周围的物体。这时突然从明亮的环境进入到黑暗的环境,人眼对亮度的感知相对不那么敏感
(2) 从黑暗的环境突然进入到明亮的环境会感到很刺眼,但过一会之后就会好很多
侧抑制
指后兴奋的神经元会抑制与之相邻的已兴奋神经元
就是刺激某个神经元使其兴奋,再刺激与之相邻的神经元使其兴奋,后面兴奋的神经元会对前面兴奋的神经元有抑制作用
侧抑制的现象:(我也不知道为什么会有这样的现象)
-
现象一
-
现象二
马赫带效应
指视觉的主观感受在亮度有变化的地方出现虚幻的明亮或黑暗的条纹
如下图所示:
马赫带效应是由侧抑制引起的
马赫带效应的解释是:
人类视觉系统有增强边缘对比度的机制
感受野
指光照视网膜能改变该神经元活动的区域
由定义可知,感受野是视网膜上的一块区域
当光照射到这片区域时会使神经元兴奋
而光照感受野之外对神经元放电无影响
视觉惰性
人眼的亮度感觉不会随着物体亮度的消失而立即消失,而有一个过渡时间,这就是视觉惰性
视觉惰性的一个应用就是电影放映
运动视觉
当光作用于眼睛中央凹时,反应时最短。距离中央凹越远反应时越长
主观轮廓和空间错觉
主管轮廓:
空间错觉:
视觉模型
单色视觉模型
单色模型视觉模型最简单的模拟是由一个低通滤波器后接一个高通滤波器组成
- 低通滤波器:模拟人眼的光学系统
- 高通滤波器:反映了侧抑制引起的马赫带效应
彩色视觉模型
发射光三原色:红、绿、蓝(RGB)
反射光三原色:蓝绿、品红、黄(CMY)
其他任何颜色都能由这三种颜色混合而成
图像信号分析
光照模型
- 环境光
太阳光 - 漫反射
粗糙表面的反射 - 镜面反射
镜面的反射
亮度函数
二维亮度函数:
-
I
=
f
(
x
,
y
)
I=f(x,y)
I=f(x,y)
- x , y x,y x,y 为平面的坐标
- I I I 为像素点强度
更普遍的亮度函数:
-
I
=
f
(
x
,
y
,
z
,
λ
,
t
)
I=f(x,y,z,\lambda,t)
I=f(x,y,z,λ,t)
- x , y , z x,y,z x,y,z 为空间坐标
- λ \lambda λ 为光的波长,带有彩色信息
- t t t 为时间,代表着运动图像
- I I I 为像素点的强度
数字图像的属性
分辨率
单位长度(英寸)的像素点数
灰度级
图像所包含的灰度总数称为灰度级
像素间的关系
相邻性
- 邻域(单个像素的属性)
- 4 4 4 邻域
- D \text D D 邻域
- 8 8 8 邻域
- 邻接(两个像素的关系)
若一个像素在另一个像素的邻域上,则称这两个像素邻接- 4 4 4 邻接
- D \text D D 邻接
- 8 8 8 邻接
先有邻域后有邻接
连通性
- 连接
满足两个条件才能称为连接:一是灰度值相近;二是两像素邻接- 4 4 4 连接
- 8 8 8 连接
-
m
\text m
m 连接(混合连接)
像素 p p p、 q q q m \text m m 连接只要满足下面两个条件之一- 两像素 4 4 4 邻接
- 两像素 D \text D D 邻接,但他们的 4 4 4 邻域没有交集
- 毗邻
若两像素连接,则称他们相毗邻
4 , 8 , m 4,8,\text m 4,8,m 毗邻 - 通路
p ( x 0 , y 0 ) , q ( x n , y n ) p(x_0,y_0),q(x_n,y_n) p(x0,y0),q(xn,yn) 两像素点的一条通路可表示为:
L ( p , q ) = ( x 0 , y 0 ) → ( x 1 , y 1 ) → ( x 2 , y 2 ) → ⋯ → ( x n , y n ) L(p,q)=(x_0,y_0)\rightarrow(x_1,y_1)\rightarrow(x_2,y_2)\rightarrow\cdots\rightarrow(x_n,y_n) L(p,q)=(x0,y0)→(x1,y1)→(x2,y2)→⋯→(xn,yn)
其中像素点 ( x i , y i ) (x_i,y_i) (xi,yi) 与像素点 ( x i − 1 , y i − 1 ) (x_{i-1},y_{i-1}) (xi−1,yi−1) 相毗邻 - 连通
p , q p,q p,q 存在通路则称 p , q p,q p,q 相连通
距离
有两像素点 p ( x , y ) , q ( s , t ) p(x,y),q(s,t) p(x,y),q(s,t)
- 欧式距离
D E ( p , q ) = ( x − s ) 2 + ( y − t ) 2 D_E(p,q)=\sqrt{(x-s)^2+(y-t)^2} DE(p,q)=(x−s)2+(y−t)2 - 街区距离
D 4 ( p , q ) = ∣ x − s ∣ + ∣ y − t ∣ D_4(p,q)=|x-s|+|y-t| D4(p,q)=∣x−s∣+∣y−t∣
D 4 = 1 D_4=1 D4=1 的像素点就是像素点 ( x , y ) (x,y) (x,y) 4 邻域 - 棋盘距离
D 8 ( p , q ) = max { ∣ x − s ∣ , ∣ y − t ∣ } D_8(p,q)=\max{\{|x-s|,|y-t|\}} D8(p,q)=max{∣x−s∣,∣y−t∣}
D 8 = 1 D_8=1 D8=1 的像素点就是像素点 ( x , y ) (x,y) (x,y) 8 邻域
像素间的运算
算术运算
用于灰度图像,有 { + , − , × , ÷ } \{+,-,\times,\div\} {+,−,×,÷} 四种运算
逻辑运算
用于二值图像,有 { 与 , 或 , 非 } \{与,或,非\} {与,或,非} 三种种运算
模板运算
z = ∑ i = 1 9 w i z i z=\sum\limits_{i=1}^9w_iz_i z=i=1∑9wizi
边界链码表示
有两种链码:
-
4 链码
-
8 链码
原链码
四链码表示为
M
4
=
10103322
M_4=10103322
M4=10103322
原链码具有平移不变性,但不具备旋转不变性和唯一性
归一化链码
取值最小的原链码
M
4
=
01033221
M_4=01033221
M4=01033221
归一化差分码具有平移不变性和唯一性,但不具有旋转不变性
差分码
差分码的计算公式为:
b
i
=
(
a
i
−
a
i
−
1
)
mod
4
or
8
b_i=(a_i-a_{i-1})\ \text{mod}\ 4\ \text{or}\ 8
bi=(ai−ai−1) mod 4 or 8
M 4 = 33133030 M_4=33133030 M4=33133030
差分码具有平移不变性和旋转不变性,但不具有唯一性
归一化差分码
取值最小的差分码
M
4
=
03033133
M_4=03033133
M4=03033133
归一化差分码具有平移不变性、旋转不变性和唯一性
边界的形状数表示
用归一化差分码表示边界,就是边界的形状数表示
形状的阶:序列长度
线性系统和平移不变系统
满足齐次定理和叠加定理的系统称为线性系统
- 齐次定理: T [ a x ] = a T [ x ] T[ax]=aT[x] T[ax]=aT[x]
- 叠加定理: T [ x 1 + x 2 ] = T [ x 1 ] + T [ x 2 ] T[x_1+x_2]=T[x_1]+T[x_2] T[x1+x2]=T[x1]+T[x2]
平移不变系统
- y ( i ) = T [ x ( i ) ] y(i)=T[x(i)] y(i)=T[x(i)] 则 y ( i − m ) = T [ x ( i − m ) ] y(i-m)=T[x(i-m)] y(i−m)=T[x(i−m)]
线性和平移不变性是两个独立的特性,两者并无关联
卷积
一维离散卷积一个好用的方法就是不进位乘法,具体算法参考信号与系统
二维离散卷积求法
图像变换
为什么要有变换:
- 时域无法解决的问题变换到其他空间容易解决,比如傅里叶变换的频域空间方便滤波
正交变换
正交变换的范式是:
- 正变换
G ( u ) = ∑ i = 0 N − 1 f ( x ) t ( x , u ) , u = 0 , 1 , ⋯ , N − 1 G(u)=\sum\limits_{i=0}^{N-1}f(x)t(x,u),\ u=0,1,\cdots, N-1 G(u)=i=0∑N−1f(x)t(x,u), u=0,1,⋯,N−1
其中 t ( x , u ) t(x,u) t(x,u) 为正向变换核 - 反变换
f ( x ) = ∑ i = 0 N − 1 G ( u ) h ( x , u ) , x = 0 , 1 , ⋯ , N − 1 f(x)=\sum\limits_{i=0}^{N-1}G(u)h(x,u),\ x=0,1,\cdots, N-1 f(x)=i=0∑N−1G(u)h(x,u), x=0,1,⋯,N−1
其中 h ( x , u ) h(x,u) h(x,u) 为逆向变换核
之所以称为正交变换,是因为:
- t ( x , 0 ) , t ( x , 1 ) , ⋯ , t ( x , N − 1 ) t(x,0),t(x,1),\cdots,t(x,N-1) t(x,0),t(x,1),⋯,t(x,N−1) 中的函数两两正交
- h ( 0 , u ) , h ( 1 , u ) , ⋯ , h ( N − 1 , u ) h(0,u),h(1,u),\cdots,h(N-1,u) h(0,u),h(1,u),⋯,h(N−1,u) 中的函数两两正交
当二维正向变换核
t
(
x
,
y
,
u
,
v
)
t(x,y,u,v)
t(x,y,u,v) 满足
t
(
x
,
y
,
u
,
v
)
=
t
1
(
x
,
u
)
t
2
(
y
,
v
)
t(x,y,u,v)=t_1(x,u)t_2(y,v)
t(x,y,u,v)=t1(x,u)t2(y,v) 时
称此正交变换具有可分离性
已知:
- 输入图像 N × N N\times N N×N 矩阵 F \mathbf F F
- 变换 N × N N\times N N×N 矩阵 T \mathbf T T
正交变换的矩阵表达:
- 正变换 G = T F T \mathbf G=\mathbf T\mathbf F\mathbf T G=TFT
- 逆变换
F
^
=
H
G
H
\widehat{\mathbf F}=\mathbf H\mathbf G\mathbf H
F
=HGH
其中 H \mathbf{H} H 为逆变换矩阵
当 H = T − 1 \mathbf{H}=\mathbf{T}^{-1} H=T−1 时, F ^ = F \widehat{\mathbf F}=\mathbf F F =F
当 H ≠ T − 1 \mathbf{H}\neq\mathbf{T}^{-1} H=T−1 时, F ^ ≈ F \widehat{\mathbf F}\approx\mathbf{F} F ≈F
傅里叶变换
离散余弦变换
离散余弦变换是离散傅里叶变换的一种特殊形式
优点:离散余弦变换相对离散傅里叶变换具有更好的频域能量聚集密度
一个应用:jepg 图像所使用图像压缩算法就是离散余弦变换
小波变换
小波变换提出的原因:
为了解决傅里叶变换在分析频率随时间变化的非平稳信号时对各频率成分出现的时刻无法区分的问题
从傅里叶变换到小波变换,经历了以下过程:
傅里叶变换
→
\rightarrow
→ 窗口傅里叶变换
→
\rightarrow
→ 小波变换
沃尔什变换
优点:与傅里叶变换相比,沃尔什变换只存在实数的加、减法运算而没有复数的乘法运算,使得计算速度快、存储空间少,有利于硬件实现,对实时处理和大量数据操作具有特殊吸引力
缺点:压缩效率低,所以实际使用并不多
沃尔什矩阵的构造规律:
-
2 × 2 2\times 2 2×2 变换核
W 2 = [ 1 1 1 − 1 ] \mathbf{W}_2=\begin{bmatrix}1&1\\1&-1\end{bmatrix} W2=[111−1] -
4 × 4 4\times 4 4×4 变换核
注意观察和 W 2 \mathbf{W}_2 W2 的关系
-
8 × 8 8\times 8 8×8 变换核
注意观察和 W 4 \mathbf{W}_4 W4 的关系
虽然沃尔什矩阵的构造规律没那么明显,但还是有一些规律的
需要注意的是:沃尔什变换的正反变换核都是一样的
哈达玛变换
本质上是一种特殊排序的沃尔什变换,因此正反变换核也一样
哈达玛矩阵的构造规律:
-
2
×
2
2\times 2
2×2 变换核
H 2 = [ 1 1 1 − 1 ] \mathbf{H}_2=\begin{bmatrix}1&1\\1&-1\end{bmatrix} H2=[111−1] -
4
×
4
4\times 4
4×4 变换核
H 4 = [ H 2 H 2 H 2 − H 2 ] = [ 1 1 1 1 1 − 1 1 − 1 1 1 − 1 − 1 1 − 1 − 1 1 ] \begin{aligned}\mathbf{H}_4&=\begin{bmatrix}\mathbf{H}_2&\mathbf{H}_2\\\mathbf{H}_2&-\mathbf{H}_2\end{bmatrix}\\&=\begin{bmatrix}1&1&1&1\\1&-1&1&-1\\1&1&-1&-1\\1&-1&-1&1\end{bmatrix}\end{aligned} H4=[H2H2H2−H2]= 11111−11−111−1−11−1−11 -
8
×
8
8\times 8
8×8 变换核
H ∗ = [ H 4 H 4 H 4 − H 4 ] \mathbf{H}_*=\begin{bmatrix}\mathbf H_4&\mathbf H_4\\\mathbf H_4&-\mathbf H_4\end{bmatrix} H∗=[H4H4H4−H4]
图像增强和恢复
图像增强
图像增强的目的:
- 改善图像视觉效果,提升清晰度,便于观察和分析
- 增强感兴趣部分,抑制不感兴趣的部分
- 便于人或机器的进一步处理
图像增强的特点:
- 人为突出图像中的部分细节,抑制另一部分信号
- 用经验和试探的方法加工
- 尚无统一衡量标准
图像增强的方法可分为空域法和频域法
- 空域法
直接对像素进行处理 - 频域法
在某种变换域内进行操作
直方图方法
直方图均衡化
原理:
将图像的灰度直方图变得平直
算法可分为三步:
- 计算图像的灰度直方图
- 计算累计概率
- 确定映射关系
- 逐个像素点遍历整个图像,根据映射关系做变换
下面通过实例进一步理解:
-
设有一副图像的直方图如下
-
计算各个灰度的累计概率
-
确定映射关系
这里解释以下表格第五行第三列的 3 3 3 的计算,其他的同理
(1) 0.44 × 7 = 3.08 0.44\times 7=3.08 0.44×7=3.08,其中 7 为图像的灰度级 8 8 8 减去 1 1 1( L − 1 L-1 L−1)
(2) 3.08 3.08 3.08 经过四舍五入后为 3 3 3,代表将原图像的灰度为 1 的像素变为灰度为 3 的像素 -
逐个像素点遍历整个图像,根据映射关系做变换
因为题目没给出原图,因此无法进行此步骤。此步骤计算较为繁琐,考试不会考到。只需知道如何求出映射关系即可
但可求出变换后的直方图:变换后图像灰度级 1 3 5 6 7 变换后个灰度级的像素数 790 1023 850 985 448 变换后图像的直方图 0.19 0.25 0.21 0.24 0.11 因进行了四舍五入取整运算,因此结果并不是各个灰度级的概率分布都相等,但也相差不大,近似于相等
优点:
- 能有效提高图像的对比度和清晰度
缺点:
- 没有利用到像素点的空间位置信息
直方图规定化
直方图规定化是给定一个目标直方图,你需要做的是找到原直方图到目标直方图的映射关系
直方图规定化与直方图均衡化的不同点在于:
直方图均衡化已经确定了目标直方图(是一个平直的直方图)
而直方图规定化的目标直方图由题目给出,可以是任何一种直方图
直方图均衡化可看作一种特殊的直方图规定化
具体算法不再赘述,可自行演算下面例题:
- 0.19 0.19 0.19 与 0.15 0.15 0.15 最接近,因此 0 → 3 0\rightarrow 3 0→3
- 0.44 0.44 0.44 与 0.35 0.35 0.35 最接近,因此 1 → 4 1\rightarrow 4 1→4
图像平滑
图像平滑的目的:去除或衰减图像中噪声和假轮廓
模板(掩膜)矩阵法
模板矩阵一般具有以下规律:
M
=
1
∑
i
=
1
9
m
i
[
m
1
m
2
m
3
m
4
m
5
m
6
m
7
m
8
m
9
]
\mathbf M=\frac{1}{\sum_{i=1}^9m_i}\begin{bmatrix}m_1&m_2&m_3\\m_4&m_5&m_6\\m_7&m_8&m_9\end{bmatrix}
M=∑i=19mi1
m1m4m7m2m5m8m3m6m9
通过模板矩阵在图像中滑动,注意将模板中心与对应像素相重合
然后计算加权和并将结果赋予模板中心所对应的像素
掩膜矩阵法有以下几种方法:
- 邻域平均法
-
4
4
4 邻域平均
M = 1 4 [ 0 1 0 1 0 1 0 1 0 ] \mathbf M=\frac{1}{4}\begin{bmatrix}0&1&0\\1&0&1\\0&1&0\end{bmatrix} M=41 010101010 -
8
8
8 邻域平均
M = 1 8 [ 1 1 1 1 0 1 1 1 1 ] \mathbf M=\frac{1}{8}\begin{bmatrix}1&1&1\\1&0&1\\1&1&1\end{bmatrix} M=81 111101111
-
4
4
4 邻域平均
- 加权平均法
- M = 1 5 [ 0 1 0 1 1 1 0 1 0 ] \mathbf M=\frac{1}{5}\begin{bmatrix}0&1&0\\1&1&1\\0&1&0\end{bmatrix} M=51 010111010
- M = 1 9 [ 1 1 1 1 1 1 1 1 1 ] \mathbf M=\frac{1}{9}\begin{bmatrix}1&1&1\\1&1&1\\1&1&1\end{bmatrix} M=91 111111111
- M = 1 16 [ 1 2 1 2 4 2 1 2 1 ] \mathbf M=\frac{1}{16}\begin{bmatrix}1&2&1\\2&4&2\\1&2&1\end{bmatrix} M=161 121242121
多幅(帧)图像平均法
多幅图像平均法是对同一物体重复采集多张图,然后对这些图片求平均的方法来降噪
这种方法适用与静止的物体
低通滤波法
此方法与模板矩阵法等效
噪声和边缘等变化剧烈的信号分布在高频分量
使用低通滤波器能一定程度上滤除一些高频分量,从而达到降噪的作用,但同时也会滤除一些边缘信息
中值滤波
原理:用局部中值代替局部平均值
中值滤波常用窗口:
-
线形
-
方形
-
十字形
-
菱形
优点:
- 对干扰脉冲和点噪声有良好的抑制作用
- 对边缘能较好的保持
图像锐化
锐化目的:加强目标轮廓
一般对图像先做平滑再做锐化,因为平滑过程中可能会损失一些边缘信息,而锐化则是将边缘增强。图像先平滑后锐化能去除图像的噪声
一维信号锐化:
只要理解了一维锐化,那么对于二维的锐化的理解就会容易的多
拉普拉斯锐化法(二阶微分法)
锐化公式:
g
(
x
,
y
)
=
f
(
x
,
y
)
−
α
∇
2
f
g(x,y)=f(x,y)-\alpha\nabla^2 f
g(x,y)=f(x,y)−α∇2f
其中:
- g ( x , y ) g(x,y) g(x,y) 为锐化后图像
- f ( x , y ) f(x,y) f(x,y) 为原图像
- ∇ 2 f \nabla^2f ∇2f 为 f ( x , y ) f(x,y) f(x,y) 的二阶微分
由公式可推出拉普拉斯锐化模板:
- 4 邻域模板
M = [ 0 − α 0 − α 1 + 4 α − α 0 − α 0 ] \mathbf{M}=\begin{bmatrix}0&-\alpha&0\\-\alpha&1+4\alpha&-\alpha\\0&-\alpha&0\end{bmatrix} M= 0−α0−α1+4α−α0−α0 - 8 邻域模板
M = [ − α − α − α − α 1 + 8 α − α − α − α − α ] \mathbf{M}=\begin{bmatrix}-\alpha&-\alpha&-\alpha\\-\alpha&1+8\alpha&-\alpha\\-\alpha&-\alpha&-\alpha\end{bmatrix} M= −α−α−α−α1+8α−α−α−α−α - 其他模板
由上面的模板可知拉普拉斯锐化模板的特点是:
矩阵内所有元素的和为 1
需要注意的是,在模板(3x3)移动是从图像的第二行第二列开始的,而非从第一行第一列开始。因为图像的四周边界一般不做处理
高通滤波器锐化法
前面说过,边缘信息一般处于高频分段,因此将图像经过高通滤波器后留下的是边缘信息
常见的高通滤波器有:
- 巴特沃斯滤波器
- 理想高通滤波器
同态滤波
一幅图片 f ( x , y ) f(x,y) f(x,y) 可分解为:
- 入射分量
i
(
x
,
y
)
i(x,y)
i(x,y)
入射分量既是入射光,其变化较小、较均匀,主要占据低频分量
比如太阳光 - 反射分量
r
(
x
,
y
)
r(x,y)
r(x,y)
反射分量既是反射光,由物体的性质决定,变化较大,占据高频分量
如太阳光照射物体所反射的光,含有物体边缘轮廓信息,变化大
同态滤波的思想就是:压缩 i ( x , y ) i(x,y) i(x,y),增强 r ( x , y ) r(x,y) r(x,y)
图像复原
图像复原的目的:消除或减轻在图像获取及传输过程中造成的图像品质下降即退化现象,恢复图像的本来面目
- 退化现象
- 表现为:模糊、失真、噪声等
- 原因
传感器噪声、摄像机未聚焦、物体与摄像设备之间的相对移动、随机大气湍流、光学系统的相差、成像光源或射线的散射等
图像退化可抽象为以下模型:
-
不含噪声模型
g ( x , y ) = f ( x , y ) ∗ h ( x , y ) g(x,y)=f(x,y)*h(x,y) g(x,y)=f(x,y)∗h(x,y)
-
考虑噪声模型
时域公式
g ( x , y ) = f ( x , y ) ∗ h ( x , y ) + n ( x , y ) g(x,y)=f(x,y)*h(x,y)+n(x,y) g(x,y)=f(x,y)∗h(x,y)+n(x,y)
频域公式
G ( u , v ) = F ( u , v ) H ( u , v ) + N ( u , v ) G(u,v)=F(u,v)H(u,v)+N(u,v) G(u,v)=F(u,v)H(u,v)+N(u,v)
图像恢复的原理:
已知退化图像
g
(
x
,
y
)
g(x,y)
g(x,y),获取
h
(
x
,
y
)
h(x,y)
h(x,y) 和
n
(
x
,
y
)
n(x,y)
n(x,y),然后求出原图
f
(
x
,
y
)
f(x,y)
f(x,y) 的估计
f
^
(
x
,
y
)
\widehat{f}(x,y)
f
(x,y)
方法可分为:
- 无约束恢复
- 逆滤波法
- 有约束恢复
无约束恢复
由退化模型
g
=
f
∗
h
+
n
g=f*h+n
g=f∗h+n,可知
噪声
n
=
g
−
f
∗
h
n=g-f*h
n=g−f∗h,其中
g
,
f
,
h
g,f,h
g,f,h 已知
无约束恢复的原理既是找出估计
f
^
\widehat f
f
使
噪声
∣
∣
n
∣
∣
2
=
∣
∣
g
−
f
^
∗
h
∣
∣
2
||n||^2=||g-\widehat f*h||^2
∣∣n∣∣2=∣∣g−f
∗h∣∣2 最小
逆滤波法
由频域退化模型
G
=
F
⋅
H
+
N
G=F\cdot H+N
G=F⋅H+N,可知
G
H
=
F
+
N
H
\frac{G}{H}=F+\frac{N}{H}
HG=F+HN
则
F
^
≈
G
H
=
F
+
N
H
\widehat F\approx \frac{G}{H}=F+\frac{N}{H}
F
≈HG=F+HN
有约束恢复
略
边缘检测
边缘的分类:
-
阶跃状
-
屋顶状
边缘检测基本思想:
由图知,边缘为:
- 一阶导数的极值点
- 二阶导数的 0 值点
因此,要获取边缘信息,就需对图像进行微分
边缘检测的基本步骤:
- 滤波
为低通滤波器。因为导数对噪声敏感,因此需要先滤除噪声 - 增强
在滤波同时会损失一些边缘信息,需要对边缘进行增强 - 检测
图像中有许多点的梯度幅值比较大,而这些点在特定的应用领域中并不都是边缘,所以应该用某种方法来确定哪些点是边缘点
一阶导数算子法
正交梯度法
原理;计算水平、垂直方向的一阶导数,然后合成梯度,然后用幅度阈值法对梯度进行二值化,得到的图像既是边缘图
梯度模板:
- 水平
W h = [ 0 0 0 − 1 1 0 0 0 0 ] \mathbf W_h=\begin{bmatrix}0&0&0\\-1&1&0\\0&0&0\end{bmatrix} Wh= 0−10010000 - 垂直
W v = [ 0 − 1 0 0 1 0 0 0 0 ] \mathbf W_v=\begin{bmatrix}0&-1&0\\0&1&0\\0&0&0\end{bmatrix} Wv= 000−110000
获得水平垂直方向导数:
G
h
=
F
∗
W
h
G
v
=
F
∗
W
v
\begin{aligned}\mathbf G_h=\mathbf F*\mathbf W_h\\ \mathbf G_v=\mathbf F*\mathbf W_v\end{aligned}
Gh=F∗WhGv=F∗Wv
合成梯度:
- G = G h 2 + G v 2 (1) \mathbf G=\sqrt{\mathbf G_h^2+\mathbf G_v^2}\tag{1} G=Gh2+Gv2(1)
- G = ∣ G h ∣ + ∣ G v ∣ (2) \mathbf G=|\mathbf G_h|+|\mathbf G_v|\tag{2} G=∣Gh∣+∣Gv∣(2)
- G = max { ∣ G h ∣ + ∣ G v ∣ } (3) \mathbf G=\max{\{|\mathbf G_h|+|\mathbf G_v|\}}\tag{3} G=max{∣Gh∣+∣Gv∣}(3)
幅度阈值法二值化:
B
(
m
,
n
)
=
{
1
,
G
(
m
,
n
)
≥
b
0
,
else
\mathbf B(m,n)=\begin{cases}1,&G(m,n)\geq b\\0,&\text{else}\end{cases}
B(m,n)={1,0,G(m,n)≥belse
下面是正交梯度法的一个示例:
Roberts梯度算子法
Roberts 梯度算子法与正交梯度法类似,只不过是分别求出左上、右上的方向导数而已
Roberts梯度算子法的模板:
- 左上
W h = [ − 1 0 0 0 1 0 0 0 0 ] \mathbf W_h=\begin{bmatrix}-1&0&0\\0&1&0\\0&0&0\end{bmatrix} Wh= −100010000 - 右上
W v = [ 0 0 − 1 0 1 0 0 0 0 ] \mathbf W_v=\begin{bmatrix}0&0&-1\\0&1&0\\0&0&0\end{bmatrix} Wv= 000010−100
下面是roberts算子检测的示例:
平滑梯度算子法(平均差分法)
平均差分法与正交梯度法的区别是:
平均差分法先求平均再求导数,多了个求平均的过程,能一定程度上抑制噪声
Prewitt梯度算子法(平均差分法)
Prewitt梯度算子法的模板:
- 水平
W h = 1 3 [ − 1 0 1 − 1 0 1 − 1 0 1 ] \mathbf W_h=\frac{1}{3}\begin{bmatrix}-1&0&1\\-1&0&1\\-1&0&1\end{bmatrix} Wh=31 −1−1−1000111 - 垂直
W v = 1 3 [ − 1 − 1 − 1 0 0 0 1 1 1 ] \mathbf W_v=\frac{1}{3}\begin{bmatrix}-1&-1&-1\\0&0&0\\1&1&1\end{bmatrix} Wv=31 −101−101−101
Sobel算子法(加权平均差分法)
Sobel算子法的模板:
- 水平
W h = 1 4 [ − 1 0 1 − 2 0 2 − 1 0 1 ] \mathbf W_h=\frac{1}{4}\begin{bmatrix}-1&0&1\\-2&0&2\\-1&0&1\end{bmatrix} Wh=41 −1−2−1000121 - 垂直
W v = 1 4 [ − 1 − 2 − 1 0 0 0 1 2 1 ] \mathbf W_v=\frac{1}{4}\begin{bmatrix}-1&-2&-1\\0&0&0\\1&2&1\end{bmatrix} Wv=41 −101−202−101
上面说过,降噪同时也会损失一些边缘信息,但由于 sobel算子法的加权作用,他得到的边缘相对prewitt算子更清晰一些
下面是prewitt检测和sobel检测的示例:
方向梯度法
方向梯度法可以在检测边缘同时获得边缘的方向
其原理是:
对图像求不同方向的方向导数,取模值最大的方向作为边缘的方向,这个值就是边缘的强度
一般求取八个方向的方向导数,其模板如下:
下面是方向梯度法的一个示例:
Canny算子
Canny算子步骤:
-
应用高斯滤波来平滑图像,目的是去除噪声
-
计算图像的梯度(一阶导数)
利用如下核对原图 F \mathbf F F 进行卷积分别得水平梯度 G h \mathbf G_h Gh、垂直梯度 G v \mathbf G_v Gv- 水平
W h = 1 2 [ − 1 1 − 1 1 ] \mathbf W_h=\frac{1}{2}\begin{bmatrix}-1&1\\-1&1\end{bmatrix} Wh=21[−1−111]
G h = F ∗ W h \mathbf G_h=\mathbf F*\mathbf W_h Gh=F∗Wh - 垂直
W v = 1 2 [ − 1 − 1 1 1 ] \mathbf W_v=\frac{1}{2}\begin{bmatrix}-1&-1\\1&1\end{bmatrix} Wv=21[−11−11]
G v = F ∗ W v \mathbf G_v=\mathbf F*\mathbf W_v Gv=F∗Wv
通过以下公式获得梯度模值矩阵:
G = G h 2 + G v 2 \mathbf G=\sqrt{\mathbf G_h^2+\mathbf G_v^2} G=Gh2+Gv2
通过以下公式获得梯度幅角(方向)矩阵:
θ = arctan G v G h \mathbf \theta=\arctan\frac{\mathbf G_v}{\mathbf G_h} θ=arctanGhGv - 水平
-
应用非最大抑制(NMS)消除边缘误检测
- 将梯度方向离散为 8 个方向
8 个方向分别为 0 , 45 , 90 , 135 , 180 , 225 , 270 , 315 0,45,90,135,180,225,270,315 0,45,90,135,180,225,270,315 度
方法为看梯度方向最接近 8 个值中的哪一个,并将值赋予该梯度方向
例如某个像素点的梯度方向为125.122度,则将其赋予135度 - 将此像素点与其梯度方向的正负方向的像素点相比较
- 若此像素点的梯度模值最大则保留,否则置0
- 将梯度方向离散为 8 个方向
-
应用双阈值法检测和连接边界
设定两个阈值(一个大,一个小)将梯度图二值化,得到高阈值边缘图和低阈值边缘图
高阈值边缘图较为断续,通过搜索低阈值边缘图的8邻域来填补高阈值边缘图的断点处,使其变得连续
下面是用Canny算子求边缘的一个示例:
二阶导数算子法
顾名思义,二阶导数算子法就是利用图像的二阶导数为0的点获取边缘信息
注意不是所有二阶导数值为0的点都是边缘点
拉普拉斯算子法
此方法在讲锐化的时候讲过了,忘记的同学点击传送门
优点:
- 各向同性、线性和唯一不变性
- 对孤立点及线段的检测效果好
缺点:
- 对噪声敏感,对噪声有双倍加强作用,因为求导两次
- 不能检测出边的方向,常产生双像素的边缘
下面是拉普拉斯算子求边缘图的示例:
LoG算子法
LoG(Laplacian of a Gaussian) 算子法的原理:
先用高斯算子(低通滤波器)对图像进行平滑(降噪),再用拉普拉斯算子检测边缘
又称 Marr 算子
下面是LoG算子求边缘图的示例:
下面是以上讲到的所有算子(除canny)求边缘的示例:
图像分割
图像分割的定义:
将图像(集合)
R
R
R 分割成互不重叠的非空子集(子区域)
R
1
,
R
2
,
⋯
,
R
n
R_1,R_2,\cdots,R_n
R1,R2,⋯,Rn
并满足
R
i
,
i
=
1
,
2
,
⋯
,
n
R_i,\ i=1,2,\cdots,n
Ri, i=1,2,⋯,n 为连通区域
连通区域为一片区域,在这区域内像素点的灰度值相近,参考像素点的连通性
图像分割的目的:
- 按一定规律将图像分为若干个子集
- 定位感兴趣对象在图像中的位置
图像分割依据的特征:
-
灰度或颜色
-
边界
-
纹理
-
语义
如下图,依据的语义有汽车、树木、道路等
图像分割基于的假设:
- 相似性假设,区域之内
对象的某一部分的特征相近或相同 - 不连续性假设,区域之间
不同对象的各个部分之间特征差异大
图像分割的基本思路:
- 从简到难、逐级分割:先从整体分离出主要目标在考虑细节
- 控制背景,降低复杂度
- 焦点放到感兴趣对象上,以减少不相干成分的干扰
下面结合车牌识别来理解图像分割的基本思路:
- 提取轮廓
获取图像的轮廓信息,有助于从整体中分离出主要目标 - 车牌定位
定位主要目标在图像中的位置 - 车牌识别
焦点放在主要目标上
图像分割的研究范围:
- 分割算法
- 评估分割算法的方法
图像分割所存在的问题:
- 没有普适的方法,解决不同问题需要不同算法
- 远未达到人类视觉系统的分割效果
图像分割的主要算法:
- 基于阈值的分割算法
- 基于边缘的分割算法
- 基于区域的分割算法
- 基于数学形态学的分割算法
基于阈值的分割算法
基于阈值的分割算法的原理:
利用背景与目标灰度值的差异,选取一个合适的与之将其分开
优点:
- 简单、快速
- 总可以得到封闭且连通的区域的边界
缺点:
- 只适用与目标与背景有较强对比的情况
- 只适用与背景与物体的灰度值单一
直方图法
直方图法适用与图像的直方图明显有多个峰值的情况
下图为双峰的情况:
此时选择峰底对应的灰度值
T
T
T 作为阈值将背景和目标分割开
数学表达式为:
g
(
x
,
y
)
=
{
1
,
f
(
x
,
y
)
≥
T
0
,
f
(
x
,
y
)
<
T
g(x,y)=\begin{cases}1,&f(x,y)\geq T\\0,&f(x,y)<T\end{cases}
g(x,y)={1,0,f(x,y)≥Tf(x,y)<T
下图为三峰的情况,更多峰也类似:
数学表达式如下
g
(
x
,
y
)
=
{
c
1
,
f
(
x
,
y
)
≤
T
1
c
2
,
f
(
x
,
y
)
≤
T
2
c
3
,
f
(
x
,
y
)
>
T
2
g(x,y)=\begin{cases}c_1,&f(x,y)\leq T_1\\c_2,&f(x,y)\leq T_2\\c_3,&f(x,y)>T_2\end{cases}
g(x,y)=⎩
⎨
⎧c1,c2,c3,f(x,y)≤T1f(x,y)≤T2f(x,y)>T2
缺点:
- 因受噪声影响,选谷底值作为阈值并非是预期值
- 未利用像素空间信息,只利用灰度信息
- 对图像的要求较严格,比如直方图必须为明显的多峰
最佳阈值法
上面说过直方图法选择谷底作为阈值并非最佳阈值
下面这幅图就能很好的体现
而最佳阈值法就是选取背景的概率密度与目标的概率密度函数值相等的灰度作为阈值
优点:
- 分割相对直方图法更准确
缺点:
- 难以获得概率密度函数曲线,需大量统计得出
均值迭代法
均值迭代法步骤:
- 选择一个初始估计阈值
T
T
T
此阈值可以用图像的平均灰度值 - 用该阈值将图像分割为两部分 R 1 R_1 R1 和 R 2 R_2 R2
- 分别计算 R 1 R_1 R1 和 R 2 R_2 R2 的均值 μ 1 \mu_1 μ1 和 μ 2 \mu_2 μ2
- 重新选择阈值 T = μ 1 + μ 2 2 T=\frac{\mu_1+\mu_2}{2} T=2μ1+μ2
- 重复 2 到 4 步直到 μ 1 \mu_1 μ1 和 μ 2 \mu_2 μ2 不再变化为止
均值迭代法是最优分割法的一种特殊情况
假设 p t ( z ) , p b ( z ) p_t(z),p_b(z) pt(z),pb(z) 分别为目标和背景灰度分布的概率密度函数, θ \theta θ 为目标像素占全图像像素的比
则图像分布的概率密度函数为 p ( z ) = θ p t ( z ) + ( 1 − θ ) p b ( z ) p(z)=\theta p_t(z)+(1-\theta) p_b(z) p(z)=θpt(z)+(1−θ)pb(z)
当 p t ( z ) , p b ( z ) p_t(z),p_b(z) pt(z),pb(z) 为正态分布函数,均值为 μ 1 , μ 2 \mu_1,\mu_2 μ1,μ2,方差为 σ 1 2 , σ 2 2 \sigma_1^2,\sigma_2^2 σ12,σ22
p t ( z ) = p_t(z)= pt(z)=
类间方差法
类间方差法的原理:
寻找一个阈值
T
T
T 使分割结果
R
1
,
R
2
R_1,R_2
R1,R2 满足灰度值类内方差最小,类间方差最大
下面是基于阈值分割的各方法对比:
基于区域的分割
区域生长法
原理:将相似像素结合起来构成分割区域
- 从一个“种子像素”开始,比较其邻域像素的相似性,若相似则将相似像素加入到生长区域中
- 重复以上步骤直至没有像素加入到生长区域为止
按照相似性准则的不同,可将其分为:
- 简单生长法,像素+像素
将生长点(生长区域内的点)与其邻域内的点的灰度值相比较,若他们之差小于某个阈值,则将邻域点加入到生长区域中
即 ∣ f ( m , n ) − f ( s , t ) ∣ < T |f(m,n)-f(s,t)|<T ∣f(m,n)−f(s,t)∣<T 其中
f ( s , t ) f(s,t) f(s,t) 为生长点灰度值
f ( m , n ) f(m,n) f(m,n) 为邻域点灰度值
T T T 为阈值
对种子点的依赖性强 - 质心生长法,区域+像素
将生长区域内所有点的灰度平均值与邻域点灰度值相比较,若他们之差小于某个阈值,则将邻域点加入到生长区域中
即 ∣ f ( m , n ) − f ( s , t ) ‾ ∣ < T |f(m,n)-\overline{f(s,t)}|<T ∣f(m,n)−f(s,t)∣<T 其中
f ( s , t ) ‾ \overline{f(s,t)} f(s,t) 为生长区域内所有点的灰度平均值
f ( m , n ) f(m,n) f(m,n) 为邻域点的灰度值
T T T 为阈值
减轻了对种子点的依赖 - 混合生长法,区域+区域
将两个区域内所有点的灰度平均值相比较,若他们之差小于某个阈值,则合并
即 ∣ f ‾ 1 − f ‾ 2 ∣ < T |\overline f_1-\overline{f}_2|<T ∣f1−f2∣<T 其中
f 1 ‾ \overline{f_1} f1 为第一个生长区域内所有点的灰度平均值
f ‾ 2 \overline f_2 f2 为第二个生长区域内所有点的灰度平均值
T T T 为阈值
增强了抗干扰性
优点:
- 计算简单
缺点:
- 需要人工交互获得种子点,每个分割区域都要植入一个种子点
- 易受噪声影响
下面是区域生长法的演示示例:
分裂合并法
原理:先将图像分解为不同区域,再按相似性进行合并
- 确定区域相似性度量准则,即分裂合并准则
可以选用均方差
E A = 1 N A ∑ ( m , n ) ∈ A [ f ( m , n ) − μ A ] 2 μ A = 1 N A ∑ ( m , n ) ∈ A f ( m , n ) E_A=\frac{1}{N_A}\sum\limits_{(m,n)\in A}[f(m,n)-\mu_A]^2\\\mu_A=\frac{1}{N_A}\sum\limits_{(m,n)\in A}f(m,n) EA=NA1(m,n)∈A∑[f(m,n)−μA]2μA=NA1(m,n)∈A∑f(m,n)
其中 E A E_A EA 为区域 A A A 的灰度值的均方差
μ A \mu_A μA 为区域 A A A 的灰度值均值
N A N_A NA 为区域 A A A 的像素点个数 - 当图像某个区域不相似时,将其分为四个相等的区域
若采用均方差作为准则,则
当单个区域均方差 E A > a E_A>a EA>a 时(如 a = 1.5 a=1.5 a=1.5)分裂 - 当相邻区域相似时,将他们合并
若采用均方差作为准则,则
当两个相邻区域均方差 E ( A + B ) ≤ b E_{(A+B)}\leq b E(A+B)≤b 时(如 b = 2.5 b=2.5 b=2.5)合并 - 重复 2 到 3 步直至不在进行分裂或合并
下面是分裂合并法的一个演示示例:
基于形态学分水岭的分割算法
原理:
- 任何灰度级图像都可看作一个地形图
一般是灰度图的梯度图
- 从每个区域最小值位置打洞,同时从洞中均匀注水
注意是每个区域都有一个洞 - 当不同区域的水将要汇聚在一起时将其边界筑高阻止其汇聚
注意要将水坝修高防止汇聚,不然就会淹没边界 - 最后的到的水坝边界就是分割线
分割结果特点:
- 每个区域都是闭合的,各区域间没有交集
- 边界宽为一个像素
优点:
- 变换能够准确定位边缘、运算简单、易于并行化处理
缺点:
- 易于产生过分割,产生大量的细小区域
因为输入图像往往是梯度图,而梯度图易受噪声影响
可以做如下改进:- 图像预处理:平滑降噪
- 分割时添加约束
- 对分割结果进行再处理
下面是基于形态学分水岭的分割算法的演示示例:
数学形态学图像处理
数学形态学图像处理是一种新的图像处理与分析方法
他采用的语言是集合论
这意味着:他的运算是由集合运算来定义的
集合的运算在这里就不赘述了,我的博客有关于集合的讲解,忘记的可以自己去看,传送门
下面所涉及的内容仅考虑二值图像
基本原理
- 结构元素是一个模板,他通过在图像中不断移动并做集合运算来对图像进行处理,他不一定是一个规则的多边形
基本运算
腐蚀
下面用图像来直观演示腐蚀运算:
由图可知,腐蚀操作其实就是将模板的原点与图像中相应的点对齐,若模板中所有值为 1 的点在图像中对应的点的值也为 1,就赋予图像中的对齐点的灰度值为 1,否则赋予 0
可以将腐蚀类比为集合的与运算
A
⊖
B
A\ominus B
A⊖B 表示用结构元素
B
B
B 腐蚀图像
A
A
A
膨胀
下面用图像来直观演示腐蚀运算:
由图可知,膨胀操作其实就是将模板的原点与图像中相应的点对齐,若模板中存在值为 1 的点在图像中对应的点的值也为 1,就赋予图像中的对齐点的灰度值为 1,否则赋予 0
可以将膨胀类比为集合的或运算
A
⊕
B
A\oplus B
A⊕B 表示用结构元素
B
B
B 膨胀图像
A
A
A
注意腐蚀和膨胀的结果是赋予原图中与结构元素的原点相对应的位置的像素
开操作
开操作就是用结构元素
B
B
B 对图像
A
A
A 先腐蚀后膨胀,记作
A
∘
B
A\circ B
A∘B
则
A
∘
B
=
(
A
⊖
B
)
⊕
B
A\circ B=(A\ominus B)\oplus B
A∘B=(A⊖B)⊕B
开操作的含义就是:B在A的边界内转动时,B中的点所能达到的最远点,如下图
开操作的作用:
使轮廓平滑,去除物体边界的小离散点或尖峰。开操作常用来断开狭窄的间断和消除细小物体及细的突出物
下面是开操作的演示:
闭操作
闭操作就是用结构元素
B
B
B 对图像
A
A
A 先膨胀后腐蚀,记作
A
∙
B
A\bullet B
A∙B
则
A
∙
B
=
(
A
⊕
B
)
⊖
B
A\bullet B=(A\oplus B)\ominus B
A∙B=(A⊕B)⊖B
闭操作的含义就是:B在A的边界外转动时,B中的点所能达到的最远点,如下图
闭操作的作用:
填充物体内细小的空洞,填补轮廓线中小的断裂,连接两物体间的长细鸿沟
下面是闭操作的演示:
击中击不中变换
击中和击不中的概念:
- 击中
A A A 和 B B B 为两个集合,当 A ∩ B ≠ ∅ A\cap B\neq \varnothing A∩B=∅ 时称 B B B 击中 A A A - 击不中
A A A 和 B B B 为两个集合,当 A ∩ B = ∅ A\cap B= \varnothing A∩B=∅ 时称 B B B 击不中 A A A
击中—击不中变换(HMT):
定义如下:
A
⊛
B
=
(
A
⊖
B
1
)
∩
(
A
c
⊖
B
2
)
A\circledast B=(A\ominus B_1)\cap (A^c\ominus B_2)
A⊛B=(A⊖B1)∩(Ac⊖B2)
其中
A
A
A 为图像;
B
1
,
B
2
B_1,B_2
B1,B2 为结构元素
B
1
B_1
B1 为要求击中部分,
B
2
B_2
B2 为不击中部分(不理解没关系,下面有例子);
A
c
A^c
Ac 为
A
A
A 的补集(各个元素取反)
这里需要注意一下
A
c
A^c
Ac,如下图
击中—击不中变换的作用:(不想了解原因的直接记作用就行,不用记公式)
定位结构元素
B
B
B 在图像
A
A
A 中出现的位置,用下列公式即可:
A
⊛
B
=
(
A
⊖
B
)
∩
(
A
c
⊖
B
c
)
A\circledast B=(A\ominus B)\cap (A^c\ominus B^c)
A⊛B=(A⊖B)∩(Ac⊖Bc)
注意
A
c
,
B
c
A^c,B^c
Ac,Bc 四周边界外都有无穷多个 1,但为了方便表示腐蚀运算过程,
B
c
B^c
Bc 就只显示框外扩展一个像素
下面引用一下 PPT 上的图片(感觉不是很直观,没有展示到点上,但我没时间画图了,不懂的可以找我讨论)
为了说明原因,这里引出前景、背景的概念
- 前景:我们“关心”的元素,二值图像中为 1
- 背景:我们“不关心”的元素,二值图像中为 0
腐蚀运算结果的实质就是得出结构元素(前景)在图像中匹配的原点的集合
因此
A
⊖
B
A\ominus B
A⊖B 只是在图像
A
A
A 中找到与
B
B
B 的前景相匹配的一系列位置而已,而背景不一定匹配
所以需要将背景也匹配,就有了
A
c
⊖
B
c
A^c\ominus B^c
Ac⊖Bc 项,求补运算将前景背景置换,因此匹配的是背景
只是前景的匹配部分与只是背景的匹配部分相交就是
B
B
B 的前景和背景都匹配的部分,也就是
B
B
B 出现的地方了
一些算法
下面讲一些基本的形态学算法:处理对象是二值图像
边界提取
原理:
β
(
A
)
=
A
−
(
A
⊖
B
)
\beta(A)=A-(A\ominus B)
β(A)=A−(A⊖B)
其中
β
(
A
)
\beta(A)
β(A) 为图像
A
A
A 的边界图,
B
B
B 为结构元素
下面是示例:
区域填充
原理:
- X 0 X_0 X0 为大小和图像 A A A 一样大的空白图(值全为零)
- 从 A A A 的待填充区域内选择一个点,对应到 X 0 X_0 X0 中将相应点值置 1
- 应用公式 X k = ( X k − 1 ⊕ B ) ∩ A c X_k=(X_{k-1}\oplus B)\cap A^c Xk=(Xk−1⊕B)∩Ac
- 重复步骤 3 直至区域不再生长
- 最后 X k ∪ A X_k\cup A Xk∪A 就是区域填充后图像
下面是示例:
纹理分析
在讲纹理分析之前,先对一些名字做出解释:
纹理的定义
纹理的定义:
纹理是一种普遍存在的视觉现象,我们很容易地能够感受他们,但却很难精确定义他们,下面是两种常用的定义
定义1:按一定规则对元素(elements)或基元(primitives)进行排列所形成重复模式
定义2:如果图像函数的一组局部属性是恒定的,或者是缓变的,或者是近似周期性的,则图象中的对应区域具有恒定的纹理
下面是一些纹理图:
纹理的基本特征
- 区域属性。纹理是图像某个区域的属性,与图像分辨率密切相关
- 重复性、规则性、方向性等
纹理分析的定义
纹理分析的定义
纹理分析是指通过一定的图像处理技术提取出纹理特征参数,从而获得纹理的定量或定性描述的处理过程
纹理分析包括:纹理分类、纹理分割、从纹理中恢复形状等
纹理分析常用于:产品检验、医学图像分析、文档处理、遥感图像分析等
纹理描述
纹理特征提取,通过一定的算法提取图像纹理特征,从而获得对纹理的定量描述的过程
换言之就是找到能够描述纹理特征的向量,使缩小纹理类内距离同时增大类间距离
纹理分割
根据纹理特征将图像划分为互不相交的若干区域,以确定图像中不同纹理的边界
纹理分类
纹理分类是将未知类别纹理图像正确归类为已知纹理类型
下面是分类框架:
下面这幅图展示了纹理分类和纹理分割
纹理合成
纹理合成是由纹理的基元合成纹理图像
纹理分析的方法
- 统计方法
利用纹理在空间上的灰度分布特性
灰度共生矩阵和自相关函数 - 结构方法
利用基元排列成纹理的特点
基于基元特征或基元组合规则 - 基于模型的方法
假设纹理是一类参数模型的实例
马尔可夫随机场 - 信号处理方法
利用纹理的周期性,采用滤波方法处理
傅里叶变换、Gabor 变换、小波变换等
灰度共生矩阵
灰度共生矩阵的求法:
假设灰度图像
A
A
A 的灰度级为
L
L
L
- 逐个像素点遍历整幅图像,假设当前正在遍历的点的坐标为 ( m , n ) (m,n) (m,n)、灰度值为 A ( m , n ) A(m,n) A(m,n)。有一位移矢量 d = ( a , b ) d=(a,b) d=(a,b),则偏移点坐标为 ( m + a , n + b ) (m+a,n+b) (m+a,n+b)、灰度值为 A ( m + a , n + b ) A(m+a,n+b) A(m+a,n+b)。记录这两点的灰度值为 [ A ( m , n ) , A ( m + a , n + b ) ] [A(m,n),A(m+a,n+b)] [A(m,n),A(m+a,n+b)],假设 l i = A ( m , n ) , l j = A ( m + a , n + b ) l_i=A(m,n),l_j=A(m+a,n+b) li=A(m,n),lj=A(m+a,n+b),则这两点的灰度值又可记为 < l i , l j > <l_i,l_j> <li,lj>,之所以这么写,是因为是有序的,即 < l i , l j > ≠ < l j , l i > <l_i,l_j>\neq <l_j,l_i> <li,lj>=<lj,li>。遍历完整幅图像后会得到一系列灰度值对
- 对结果进行统计,假设 N ( l i , l j ) N(l_i,l_j) N(li,lj) 为灰度值对 < l i , l j > <l_i,l_j> <li,lj> 出现的次数。统计结果可以写成一个大小为 L × L L\times L L×L 的矩阵,矩阵的第 l i l_i li 行 第 l j l_j lj 列的元素为 N ( l i , l j ) N(l_i,l_j) N(li,lj)
由上述可得共生矩阵的形式如下图
位移矢量
d
=
(
a
,
b
)
d=(a,b)
d=(a,b) 的选取:
需要根据纹理的周期分布特性来选
如果纹理较细,偏移量
a
,
b
a,b
a,b 选择较小的值
下面是灰度共生矩阵求取的一个例子:
图像大小为
5
×
5
5\times 5
5×5,灰度级为
3
3
3,位移矢量
d
=
(
1
,
1
)
d=(1,1)
d=(1,1)
由灰度共生矩阵可获得的信息:
- 主对角线上的元素
主对角线上的元素为在偏移量 d d d 的条件下,相同灰度组合出现的次数
由于纹理具有沿着纹理方向灰度基本相同的特性
由此主对角线上的元素的大小有助于判断纹理的方向和粗细信息 - 除主对角线之外的其他元素
其他元素相对于主对角线的分布可表示离散性,反应了纹理的粗细程度
对于粗纹理,其灰度共生矩阵的值集中于主对角线附近
对于细纹理,其灰度共生矩阵的值散布在各处
灰度共生矩阵的总结:
- 与直方图相比,灰度共生矩阵一定程度上反映了纹理图像中各灰度级在空间上的分布特性
- 可通过灰度共生矩阵定义多种纹理
- 主要用于纹理分类,用于纹理分割较少
存在问题:
- 位移矢量是灰度共生矩阵的重要参数,他的选取缺乏有效方法
计算机视觉的高层感知
计算机视觉
计算机视觉是用计算机来模拟人的视觉机理来获取和处理信息的能力
计算机视觉与一些邻域的关系
- 图像处理
图像处理中,人是最终的解释着
计算机视觉中,计算机时最终的解释着
计算机视觉需要图像处理 - 计算机图形学
计算机图形学:用二维图像显示三维描述,比如一些 3D 看图软件
计算机视觉:从二维图像到三维描述
两者互逆 - 模式识别
模式识别的许多方法可以应用于计算机视觉中 - 人工智能
计算机视觉为人工智能的一个分支
几何+测量+解释=视觉
计算机视觉的一些应用:
- 行为预测
- 人体跟踪
- 三维重建等
计算机视觉理论
Marr(马尔)视觉计算框架
Marr 的简介:
Marr 是计算机视觉的奠基人,他将心理学、人工智能和神经生理学的研究结果结合起来
Marr 的视觉计算框架:
视觉是一个信息处理任务,有三个层次
- 第一层次:信息处理的计算理论
- 第二层次:算法
- 第三层次:实现算法的机制或硬件
Marr 将图像退的形状信息的过程分为三个表象阶段:
- 初始简图
- 2.5 维图
- 三维模型
基于推理的视觉理论
主要思想:只根据图像数据本身不能对相应的物体空间结构提供充分的约束,需要加入先验知识
视觉注意
在人类视觉信息处理中,总是迅速选择少数几个显著对象进行优先
处理,而忽略或舍弃其他的非显著对象
视觉注意的研究意义:
- 降低计算复杂度,提高处理效率
- 让计算机模仿人眼的选择性和主动性,提高信息筛选能力
图像分类和识别
略
深度学习中的目标检测
目标检测的简介
分类与检测的区别:
- 分类是根据图像的内容将其归为某一类
- 检测是检测出图像所含的内容信息(内容是什么?在哪里?等)
神经网络
略
热门方法
两阶段法
两阶段法将目标检测分为两个阶段:
- 候选框生成
生成一系列候选框 - 候选框分类
对候选框进行目标/非目标分类
常见两阶段法有:
- RCNN系列:RCNN、Fast-RCNN、Faster-RCNN
- FPN
- RetinaNet
- R-FCN
- Mask RCNN
- RefineDet
单阶段法
单阶段法直接在图像上进行目标检测,不生成候选框
常见单阶段法有:
- YOLO 系列
- SSD 系列
两阶段法与单阶段法对比
两阶段法:准确率高,但是速度相对较慢
单阶段法:速度快,但准确率相对低
深度学习中的语义分割
超像素
超像素是一系列像素的集合,这些像素具有相似的颜色、纹理等特征,同时距离也比较近
如下图,白色线内的区域内的像素集合就是超像素
语义分割
语义分割就是将图像中的每个像素赋予一个类别标签(如:人、汽车、道路、树木等等)
如下图是语义分割的一个示例:
语义分割只能判断类别,无法区分个体
上图中一个像素如果被标记为红色,我们可以知道他是属于人这个类别,但如果两个像素都被标记为红色,我们无法区分这两个像素是否属于同一个人
实例分割
与目标检测相比,目标检测给出目标框(bounding box),而实例分割给出的是 mask
与语义分割相比,实例分割不需对每个像素进行标记,只需标记感兴趣物体的边缘轮廓即可。因为每个人都有不同颜色的轮廓,因此可以区分个体
Mask-CNN 方法就是一种实例分割算法
注意 Mask-RCNN 是目标检测算法,别搞混了
下面是一个实例分割的示意图:
全景分割
全景分割是实例分割和语义分割的结合,既可以区分类又可以区分类内实例
下面是演示示例:
深度学习在分割中的应用
全监督方法
早期的新想法
- 缩小方法:此方法是在每个超像素上进行分割
- 全卷积方法
U-net 方法
DeepLab 方法
类 RNN 条件随机场方法
SegNet 方法
PSPNet 方法
RefineNet 方法
GAN 网络
弱监督方法
STC 方法
DSRG 方法
L-Net 和 P-Net 方法
ORMAE 方法