摘要 本节主要介绍尺度不变特征以及其经典代表——SIFT,网上关于如何计算SIFT特征的博客有很多,但是大多数博客都没有解释为什么这样找到的特征就是"尺度不变"的、为什么尺度和$\sigma$相关联等问题。因此这篇博客会对这些问题进行一些个人的补充,不一定对,欢迎留言~ 尺度不变特征 在这里,我想把尺度理解成某个物体的大小。那么尺度不变特征就可以解释为:那些随着物体尺度变化而不会发生改变的特征。 具体来说,可以假设两张都有一个黑色实心圆的图片,图片大小保持一致,而图中的圆半径不一致。圆的尺度不同,那么尺度不变特征就可以理解成这两张图中共有的一些特征,这些特征不会随圆的改变而变化/消失。当然这里的圆也可以是复杂的建筑,如下图所示。 之前提到的harris角点就明显不是一个尺度不变特征,当角点的大小放大到一定程度,只能检测到边,而检测不到角点,这说明角点特征不是尺度不变的。 回到刚刚圆的例子,我们希望能有一个特征,可以描述不同半径的圆。如果找到了,那么我们就可以允许识别任务中摄像头可以有一定的远近变化,这是非常有意义的,因为生活中的大部分识别任务不能100%保证摄像头与物体始终保持固定的
项目地址 https://github.com/JJJYmmm/CircleDetection Readme 本项目使用 Canny + Hough 对图像中的圆形进行检测。参考https://github.com/CV-xueba/A01_cvclass_basic_exercise,不过修复了该项目中canny算法计算亚像素点的bug 文件列表如下: main.py : run detection program my_canny.py : canny算法实现,得到图像的梯度图/梯度方向图 my_hough.py : hough算法实现,实现通过参数空间的投票算法进行圆形的数学建模 使用方法: 检测图像放在picture_source文件夹下,命名为picture.jpg(或修改main.py中的Path路径) Canny/Hough检测结果放在picture_result文件夹下 测试结果: 左侧为canny算法结果,右侧为hough检测出的圆(原图上画出)
摘要 特征提取是视觉中的一个重要任务,通过提取特征点,可以完成全景拼接等操作。harris角点就是一个比较好的特征。 特征选择 一个好的特征具有以下几种性质。 重复性,特征在不同摄影角度、不同地理位置得到的一系列照片中都应该出现。 特殊性,特征应该是特别的,容易辨认的。 计算友好,提取特征需要考虑计算效率。 局部性,特征应该占据图像的一小部分,对杂波和遮挡具有鲁棒性 特征点应用 特征点应用可以用在图像对齐、3D重建等等视觉任务。 角点 在角点周围的区域中,图像梯度具有两个或多个主导方向,并且它具有重复性、辨别度高。所以角点是一个比较好的特征。 识别角点可以使用一个方框,当方框框住角点时,往任意方向移动,方框内的内容都会发生改变。 我们可以使用$E(u,v)$来描述一个方框移动时,方框内容的变化程度。这里的I指图像强度,也是像素值大小。$x,y$指方框内的各个像素点的坐标.$w(x,y)$指不同像素点的权重,一般方框中心的权重较大。 这里的E(u,v)是相对于某个固定位置的方框定义的,其实可以表示成$E(X,Y,u,v)$,$X,Y$是方框中心点位置,因为之后要用到不同位置的E
摘要 Hough变换相比于其他的拟合方法,它可以检测多个图形(当然RANSAC采用TOPK也可以实现多图形检测)。具体来说,Hough变换是将图像空间的像素点向参数空间投影并投票,通过投票最大值得到最优参数。 直线拟合 二维空间的直线有两个参数$m,b$。那么Hough变换投影的参数空间也是二维。 对于图像中的一条线,对应参数空间中的一个点,该点的票数加一。 对于图像中的一个点,对应参数空间中的一条线,线上的票数加一。 那么对于图像中的多个点,如果这些点有较好的线性关系,那么参数空间投票时,会有一个点票数最高,而这个点则是拟合直线的参数。 上述参数空间有个问题,就是$m,b$的范围无法确定,如果直线垂直x轴,m会趋于无限大,参数空间也趋于无限大。因此需要换一种参数表示,这里使用极坐标表示直线。 更换坐标系后,投票策略转换为下图。对于图像上的每个点(这里说图像一般是指边缘图像,可以是canny算法得到的结果),根据已知$x,y$,遍历$\theta$值,得到对应$\rho$,参数空间中的网格加一票。最后选择票数最高的作为拟合结果。 直线拟合效果如下,右侧为参数空间,亮度代表票
摘要 如果说边缘检测只是将给定图像的边缘提取出来,那么拟合就是对这些边缘进行数学建模,得到形式化的数学表示。接下来以最简单的拟合直线为例。 最小二乘法 损失函数是所有数据点拟合直线的预测值与真实值的差的平方和。 可以通过偏导或线代的向量投影得到最优参数,下图为偏导过程与结果。 全最小二乘 最小二乘有两个问题:首先是无法表示垂直x轴的直线,二是损失函数不能很好表示直线与数据点之间的距离。全最小二乘对此进行了改善,首先修改了直线的表示方式,其次损失函数从纵向距离改为了直线到数据点的垂直距离。 求解步骤是:首先通过E对d偏导,得到d的a,b参数表示;再找到$U^TU$矩阵的最小特征值,对应的特征向量就是参数a,b的值(最好情况就是找到特征值0的特征向量,但是矩阵特征值不一定有0,所以退而求其次求最小) 全最小二乘的物理意义如下图,就是使所有数据点在直线的垂直方向上的投影最小。 鲁棒估计 最小二乘容易受到极端数据点的影响。 通过变换损失函数,当数据点距离直线越远时,损失会稳定到一个常数,从而减轻极端数据点的影响。$\sigma$是超参数,可以调整拟合对于外点的敏感性,具体见下图。 鲁
Axuanz
Updating as per fate.