目录
7.5.1 K均值聚类 得到的值可以用于阈值处理中每个子图像的阈值
7.1 基础知识
图像分割方法:
第一类方法:根据灰度的突变(如边缘)将图像分割为多个区域。
第二类方法:根据一组预定义的准则将图像分割为多个区域。
7.2 区域划分
7.2.1 区域生长与分割
区域生长
区域分离与聚合
思想:
首先将图像细分为一组任意的、不相交的区域,然后合并和/或分割这些区域,以满足分割条件。
算法:
7.2.2 阈值处理
全局阈值处理
基本全局阈值的图像分割算法:
使用边缘改进全局阈值处理
若直方图的波峰是高的、窄的、对称的,并且被较深的波谷分开,则找到一个“好”阈值的机会大大增加。
改进直方图形状的一种方法是,仅考虑那些位于或靠近目标和背景间的边缘的像素。
otsu方法:
找到最大化前景和背景类间方差的阈值T
Otsu 方法可以扩展到任意数量的阈值
步骤:
可变阈值处理
有些时候全局阈值处理并不能有很有的效果(例如,非均匀光照的时候)
图像分区:将图像细分为不重叠的矩形
局部自适应阈值:根据局部图像属性计算每个点(x,y)的阈值
- 在图像上滑动窗口
- 对于每个窗口位置,决定是否执行阈值
- 非均匀区域:应用Otsu方法(基于局部直方图)
- 均匀区域 :根据平均值将整个区域分类为前景或背景
- 不应在均匀区域中执行阈值
- 可以使用方差或其他合适的标准
7.3 边缘检测
边缘造成原因:
表面法向不连续性
深度不连续性
表面颜色不连续性
照明不连续性
7.3.0 直接使用空域中的图像锐化方法
图像分割:一阶、二阶导数,拉普拉斯算子
7.3.1 梯度方法
每个像素记录梯度得到梯度向量场
边缘法线:最大灰度变化方向的单位矢量
边缘方向:沿边的单位向量(垂直于边缘法线)
边缘位置或中心:边缘所在的图像位置
边缘强度或幅值:沿法线的图像局部对比度
边缘像素:位于梯度幅值的局部最大值
梯度方向θ:始终垂直于边缘方向
梯度幅度边缘检测器:
- 降噪:对图像进行平滑(即模糊,模糊多少取决于经验值)处理;
- 因为有限差分过滤器对噪声响应强烈,所以要进行降噪处理
- 图像噪声导致像素看起来与相邻像素非常不同
- 通常,噪音越大,响应越强。
- 梯度:计算每个像素的梯度大小;
- 阈值:如果像素的幅值超过阈值,则报告边缘点。
7.3.2 Canny算法
Canny边缘探测器 计算机视觉中使用最广泛的边缘检测器
- 使用高斯x,y导数过滤图像
- 注意高斯卷积核σ的大小
- σ的选择取决于期望的行为
- 大σ检测大尺度边缘
- 小σ检测精细特征
- 确定梯度的大小和方向
- 计算高斯过滤后的梯度(DOG, difference of Gaussian 高斯差分)
- 非最大抑制
- 将多像素宽的“脊线”细化到单像素宽(边缘可能很宽)
- 阈值和连接(滞后)
- 定义两个阈值:低阈值和高阈值
- 使用高阈值开始边缘曲线、低阈值继续边缘曲线
7.3.3 Marr算法
1. 对图像使用高斯低通滤波器进行滤波
2. 对滤波后的图像使用拉普拉斯算子(草帽算子)
高斯拉普拉斯算子(LoG,Lapacian of Gaussion): 具有尺度不变性
3. 提取零交叉点(即图像边缘)
拉普拉斯变换是二阶偏导,因为边缘点对应的一阶偏导为局部极值,所以二阶偏导则为0点
7.4 主动轮廓模型
半自动:需要用户大致画一个轮廓形状 还需要用户给定轮廓往哪里走(弹簧设定)
给定:物体附近的初始轮廓(模型)
目标:发展轮廓以适应精确的对象边界
轮廓曲线的参数化表示(连续情况):曲线C
( s进行了归一化)
求解C--利用能量函数E(C)
将连续公式转换为离散公式:
7.5 聚类
7.5.1 K均值聚类 得到的值可以用于阈值处理中每个子图像的阈值
初始化
随机选择 K点作为初始聚类中心
贪心地选择K点以最小化残差
距离测量
欧氏距离
优化
将收敛到局部最小值 可能想要执行多次重新启动
步骤
特征空间(多维空间上进行K均值聚类)
选定某个特征或者多个特征进行聚类
每个令牌都由一组称为特征的显著视觉特征标识(了解)
特征的选择及其量化方式意味着一个特征空间,其中每个令牌都由一个点表示(了解)
令牌相似性因此由特征空间中的点(“特征向量”)之间的距离来衡量(了解)
根据我们选择的功能空间,我们可以以不同的方式对像素进行分组(了解)
优点
简单,快速计算
收敛到聚类内平方误差的局部最小值
缺点/问题
设置 k?
对初始中心敏感
对异常值敏感
仅检测球形聚类(距离为欧式距离)
假设可以计算均值
7.5.2 霍夫变换
可以用以canndy算法的后处理 判断这一条线需不需要连起来 如果一条线上有很多个点 那么应该连起来
变换思想:
给定一组待分类的数据点,找到最能解释数据点的曲线或直线。
霍夫空间:
将一个点映射到一条直线 将点的坐标作为斜率与截距
在原本图像上共线的点,在霍夫空间中相交于一点 找共线的点很难 但是找交点很简单
离散化:
把霍夫空间网格化 一条直线经过这个网格 那么这个网格上的数值加一 网格数值最大的点经过的直线最多
对参数空间用极坐标表示(这个交点不会变哟) 防止k,q无穷大 因为这样相交于一点我们就看不出来了
霍夫变换的离散算法(大纲):
创建参数值网格
将每个点对应到霍夫空间中一条曲线,对每个点经过的网格的值进行递增
(每个点对一组参数进行投票,在网格中递增这些值)
在网格中查找最大值或局部最大值
优点
• 对异常值的适应性:每个点单独投票
• 相当高效(比尝试所有参数集快得多)
• 提供多个好拟合
缺点
• 对噪声敏感
• 容量大小受噪声容限、精度和速度/内存的限制
• 很难找到最佳点
• 不适合多个参数
• 网格大小呈指数级增长
常见应用
• 线拟合(也包括圆、椭圆等)
• 对象实例识别(参数为位置/刻度/方向)
• 对象类别识别(参数为位置/刻度)
7.5.3 SIFT特征
尺度不变的特征变换: SIFT — Scale Invariant Feature Transform
该算法提取的特征点具有:
尺度不变性
平移不变性
旋转不变性
亮度不变性
第1步:尺度空间的极值点检测:
1)通过降采样,构建图像的分辨率金字塔
2)对金字塔的每一层,按照一系列递增的σ值进行高斯模糊
3)由LoG=DoG,使用高斯差分来近似计算拉普拉斯算子
4)提取极值点
第2步:关键点的精准定位:
0)第1步找到的极值点是离散的——即,并不一定是的连续空间中的“真”极值点。
1)根据已有的离散极值点,并使用二阶泰勒展开拟合出函数曲线,从而找到连续空间中的极值点。
2)SIFT认为图像中边缘上的点容易受到噪声的影响,因此使用以下不等式来剔除:
秩的平方除以行列式
3)经过以上两步处理后的极值点,即关键点。
第3步:确定关键点的主方向:
1)主方向:即关键点处的梯度方向
第4步:为每个关键点生成它的描述子(即,SIFT特征)
1)将关键点为中心4*4的局部邻域的X轴正方向,旋转到该关键点的主方向。(旋转不变性)
2)为4*4邻域内的每个点,计算其8邻域方向上的梯度,从而构成4*4*8=128维的向量。
3)最后,生成描述子:(关键点,梯度方向,128维的向量)
第5步:描述子的归一化
7.5.4 主成分分析 没看证明步骤
降低数据的维度
对降维后的数据有哪些要求:
数据损失小 —> 降维前后的误差小
线性不相关 —> 协方差尽可能的小(不然不能区分了)
位置更加分散 —> 每个向量的方差尽可能的大
可以用协方差矩阵描述:
那么就是需要将降维后的变量的协方差矩阵化成对角矩阵的形式 求特征值与特征向量
没看证明步骤!!!!
算法步骤
从大的到小排列
注意取前K行进行降维 取比较大的值
7.6 计算机视觉简介
略