IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 【计算机视觉】角点检测和立体匹配 -> 正文阅读

[人工智能]【计算机视觉】角点检测和立体匹配

目录

【计算机视觉】角点检测、不变特征和立体匹配

1. 角点检测

1.1. Template Matching

1.2. Second-order Derivative Schemes

1.3. A Median Filter Based Corner Detector

1.4. Harris Corner Detection

?2.?局部不变特征检测(立体匹配)


【计算机视觉】角点检测、不变特征和立体匹配

1. 角点检测

角点是一种重要的图像局部特征:通常被定义为两条边的交点,角点的局部领域应该具有两个不同区域的不同方向的边界。它还有一种定义:如果某一点在任意方向的一个微小变动都会引起灰度很大变化,那么就称为角点。角点一般是曲线局部曲率极大值点,线段重点或具有某种物理量(如:强度)极大值/极小值的点。

角点具有可区分性强的优点,在视角变换的情况下依然能保持稳定的特征,常用于特征匹配等任务。

1.1. Template Matching

左侧为检测45度角点的template,右侧为检测90度角点的template。?

但这种方法检测角度固定,template相对图像的大小也会影响检测精度。

1.2. Second-order Derivative Schemes

根据定义,角点应该是在灰度快速变化的区域,其梯度和梯度变化率都很大。我们可以利用这种局部变化特性来进行角点检测。我们对某个像素点的灰度值二阶Taylor展开:

我们可以得到二阶导数的对称矩阵(结构张量):

?这个矩阵给出像素点局部的曲率信息。我们对坐标系适当旋转,就可以得到这个矩阵的对对角形式:

?我们主要利用其旋转不变性,进行角点检测。一个重要的性质是:经过旋转变换,矩阵的trace和行列式是不变的。Beaudet定义了两个算子描述这一性质:

?????

?但是,众所周知:Laplacian算子对边缘和线段也有响应,不是特别适合角点检测。而Hessian并不对边缘和线段有响应,只对角点响应。

这是一个理想的角的草图,用来给出一个平滑变化的强度函数。虚线表示斜坡上不同强度值下最大水平曲率的路径。DET操作符在P和Q处给出了最大的响应,需要找到理想的角位置C,其中DET给出了零响应。

另一种角点检测方法是Kitchen和Rosenfeld(1982)提出的。他们从考虑边缘方向的局部变化开始,研究了各种定位角的策略。他们发现了一个非常有效的算子,它可以估计梯度方向向量沿水平边缘切线方向的局部变化率的投影,并证明了它在数学上与计算强度函数I水平曲率κ是相同的。为了获得一个角的强度的真实指示,他们将κ乘以局部强度梯度的大小g:

1.3. A Median Filter Based Corner Detector

先用一个median filter滤除角点,得到一个去除角点的新图像I_1,再用原图像I_0减去新图像I_1,就可以获得角点:I_0-I_1。但这种方法是不可靠的,它可能不能检测出角点,反而将噪声检测了出来。幸运地是,人们证明了中值检测器有以下优点:

  1. 首先,在没有噪声的情况下,强信号不会出现在背景区域,也不会出现在直线边缘附近,因为中值滤波器不会显著地移动或修改这些边缘。
  2. 如果一个窗口从背景区域逐渐移动到它的中心像素刚好在一个凸物体的角上,中值滤波器的输出没有变化

因此有一个很强的差异信号可以表明存在角点。

根据图像形态学的知识,我们知道假设一个强度函数沿某一方向x单调增加,在其正交方向y上强度是不变的。因此,圆窗口内的中值等于领域中心的值。这就意味着,如果水平曲率局部为零,中值角检测器得到零信号。

因此,基于中值的角点检测器是利用水平曲率和强度梯度来检测角点的。其信号与水平曲率和强度梯度都成正比。

?其中,D表示位移;a表示曲率半径;g表示梯度;κ表示水平曲率大小。

1.4. Harris Corner Detection

Harris角点检测是一种直接基于灰度图像的角点提取算法,稳定性高,尤其对L型角点检测精度很高。但由于采用了高斯滤波,运算速度相对较慢,角点信息有丢失和位置偏移的现象。

Harris角点检测就是取某个像素的一个邻域窗口,当这个窗口在各个方向上进行小范围移动时,观察窗口内平均的像素灰度值的变化(即,E(u,v),Window-averaged change of intensity)。从上图可知,我们可以将一幅图像大致分为三个区域(‘flat’,‘edge’,‘corner’),这三个区域变化是不一样的。

?角点检测信号可以定义为:

?还有一种更好的定义:

?

  • Corner:在水平、竖直两个方向上变化均较大的点,即Ix、Iy都较大;?
  • Edge :仅在水平、或者仅在竖直方向有较大的点,即Ix和Iy只有其一较大 ;
  • Flat ??: 在水平、竖直方向的变化量均较小的点,即Ix、Iy都较小;

这样通过判断两个变量的值来判断角点毕竟不是很方便。于是,定义了角点响应函数R(corner response function):

?对与三种不同区域,R值如下图所示。

?2.?局部不变特征检测(立体匹配)

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-04-22 18:36:57  更:2022-04-22 18:41:15 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 10:19:00-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码