图像处理之cornerdetection(角点检测)综述

news2024/11/16 17:28:52

角点检测是机器视觉和计算机视觉领域的基本课题。目前,角点尚无精确的数学定义,通常将以下几种点称为角点:两条以上边缘的交点、图像上各方向亮度变化足够大的点,以及边缘曲线上的曲率极大值点。角点也称为兴趣点或特征点,它在简化图像信息的同时,保留了重要的特征信息,便于图像数据处理。因此,角点检测在三维场景重建、运动估计、视觉跟踪以及图像配准与匹配等计算机视觉领域广泛应用。

下面对现有的角点检测方法进行了分类和阐述,主要分为基于灰度强度的方法和基于边缘轮廓的方法,并汇总了其他类别的角点检测方法

1 角点检测算法发展与现状分析

根据实现原理,现有的角点检测算法大致可分为三类:基于灰度强度的方法、基于边缘轮廓的方法和基于二值图像的角点检测。其中,基于二值图像的角点检测方法并不普遍。因此,我们主要阐述前两类方法的典型算法核心思想及关键特征提取步骤。

1.1 基于灰度图像的角点检测

基于灰度图像强度的角点检测技术又可分为三类:基于梯度、基于模板和基于模板梯度组合。基于梯度的方法通过计算边缘曲率来判断角点是否存在,但对噪声敏感。基于模板的方法考虑像素邻域点的灰度值变化,将与邻近点灰度值差异明显的点定义为角点。还有一类方法综合了灰度曲率和模板策略进行角点检测。

1.1.1 Moravec角点检测技术

1977年,Moravec提出了Moravec角点检测算子,其基本思想是通过在图像上移动一个二值矩形窗口来查找最小灰度值变化的最大值。这种方法的缺点是响应值非各向同性,对噪声和边缘敏感,对旋转不具备不变性。尽管如此,Moravec算子作为第一个被广泛使用的角点检测算法,开创了角点检测的新时代。

1.1.2 Harris角点检测技术及相关改进方法

受Moravec角点检测算法启发,Harris和Stephens在1988年提出了著名的Harris角点检测算子。该方法首先计算Harris矩阵M(二阶矩矩阵或自相关矩阵),然后计算该矩阵的特征值 λ 1 , λ 2 {\lambda _1},{\lambda _2} λ1,λ2。这两个特征值表征了Harris矩阵主曲率,再通过构建如下的Harris角点量测函数R来确定角点:

R = ( λ 1 λ 2 ) − k ( λ 1 + λ 2 ) 2 = ∣ M ∣ − k ⋅ t r 2 ( M )    R = ({\lambda _1}{\lambda _2}) - k{({\lambda _1} + {\lambda _2})^2} = \left| M \right| - k \cdot t{r^2}(M)\; R=(λ1λ2)k(λ1+λ2)2=Mktr2(M)

最后对R进行非极大值抑制,所得角点位置在局部梯度最大值处。Harris角点检测方法不仅对噪声不敏感、具有平移和旋转不变性、高重复性和高信息量,而且在不同光照条件下具有良好的稳定性。然而,该方法不适用于对尺度变化要求高的场合。

2014年,Qiao等人提出了一种改进的Harris亚像素角点检测算法,提高了控制点图像的定位精度。针对Harris角点检测算法在含噪声图像中检测不准确的问题,卢伟家提出在Harris算法设置的局部移动窗口中加入一种加权系数自适应的加权均值滤波,该方法可有效减少伪角点的形成,同时具有良好的精确度和检测速度。2017年,Wang等人针对角点检测算法在提取角点时必须给出合适阈值的问题,提出了一种基于迭代阈值的自适应Harris角点检测算法。

1.1.3 基于SUSAN的角点检测技术

1997年,Smith和Brady提出了另一种著名的角点检测算法——同值分割吸收核(SUSAN, Smallest Univalue Segment Assimilating Nucleus)。该算法利用像素邻域的圆形模板,判断该点是否属于USAN区域,判别函数如下:

c ( r ⇀ , r 0 ⇀ ) = { 1        i f ∣ I ( r ⇀ ) − I ( r 0 ⇀ ) ∣ ≤ t 0        i f ∣ I ( r ⇀ ) − I ( r 0 ⇀ ) ∣ > t c(\mathop r\limits^ \rightharpoonup,\mathop {r_0}\limits^ \rightharpoonup) = \left\{ \begin{array}{l} 1\;\;\;{\rm{ if}}\left| {I(\mathop r\limits^ \rightharpoonup) - I(\mathop {r_0}\limits^ \rightharpoonup)} \right| \le t\\ 0\;\;\;{\rm{ if}}\left| {I(\mathop r\limits^ \rightharpoonup) - I(\mathop {r_0}\limits^ \rightharpoonup)} \right| > t \end{array} \right. c(r,r0)= 1if I(r)I(r0) t0if I(r)I(r0) >t

使用如下角点响应函数计算函数值:

R ( r 0 ) = { g − n ( r 0 )        n ( r 0 ) > g 0                                n ( r 0 ) < g R({r_0}) = \left\{ \begin{array}{l} g - n({r_0})\;\;\;{n({r_0}) > g}\\ 0\;\;\;\;\;\;\;\;\;\;\;\;\;\;\; {n({r_0}) < g} \end{array} \right. R(r0)={gn(r0)n(r0)>g0n(r0)<g

如果该函数值大于某个阈值且为局部极大值,则认为该点是角点。其中,统计圆形模板中和核心点有相似亮度值的像素个数n的公式如下:

   n ( r 0 ) = ∑ r e D ( r 0 ) c ( r , r 0 ) \;{\rm{ }}n({r_0}) = \sum\limits_{reD({r_0})} {c(r,{r_0})} n(r0)=reD(r0)c(r,r0)

该算法具有速度快、定位精度高、高重复性、平移和旋转不变性等优点。但许多特征位于边缘结构而非真正的角点处,且对噪声敏感、缺少信息量,在处理模糊图像时性能较差。

在经典SUSAN算法的基础上,He等人采用角点预检测来消除伪角,减少计算量,从而提高算法速度。针对传统SUSAN算子只能在单一尺度下检测图像中角点的不足,王冠群等人提出了一种基于高斯变换的多尺度SUSAN角点检测方法。该方法利用高斯变换获得待检测图像的多尺度分层图像,构建高斯金字塔,结合自适应阈值的SUSAN算子检测出不同尺度下的候选角点,将其还原到原始图像中的相应位置构成候选角点集,在候选角点集中经小邻域信息筛选获得最终角点。实验结果表明,该方法不仅能在不同尺度下有效获取有用的角点信息,而且在提高SUSAN算子正确率的同时,降低了角点的伪检率。

1.1.4 FAST角点检测技术

1998年,Trajkovic和Hedley[提出了一种快速角点检测算子,其基本思想是研究某点邻域内通过该点的任意一条直线上的灰度变化情况。首先计算出水平和垂直方向灰度变化值,然后构建一个角点度量函数来判断角点。2006年,Rosten和Drummond提出了高速角点检测算子,其基本思想是利用机器学习来加速角点检测过程。上述两种算法都对图像尺度变化敏感。

近年来,针对当前FAST角点检测算法只能检测单一类型的角点,且单一阈值作用于整幅图像难以取得理想效果等问题,Park等人为解决可穿戴设备的图像分辨率与系统功耗之间的权衡问题,提出了一种新的快速角点检测方法。该方法在计算性能和可重复性方面优于以前的算法。

1.2 基于轮廓曲线的角点检测

相对于基于梯度和基于模板的检测器,基于轮廓的检测器在角点检测前先进行边缘轮廓检测,在轮廓上而非整幅图像上检测角点,因此具有极低的错误检测概率。该方法的角点测度被定义在轮廓上,并且区别于轮廓上的光滑像素点。

1.2.1 基于Freeman链码的角点检测技术

二维线条图像可用方向Freeman链码表示。这种检测方法先分割图像,然后提取图像边界的Freeman链码,将方向改变速率大的点标记为角点。Freeman链码指相邻两像素连线的八种可能方向值,称为八方位链码。该方法计算步骤简洁,但检测效果强依赖于图像分割的质量。由于需要计算夹角,对噪声敏感,在进行检测时必须对图像进行去噪预处理。

2014年,曾接贤等人提出了一种曲率尺度空间与链码方向统计相结合的角点检测方法。2017年,Rachmawati等人提出了一种将高速角点检测与Freeman链码相结合的多边形逼近技术。该方法利用一组图像角点构造了一串有序线段的近似多边形,可进一步用于形状表示和分析领域,作为数字图像的轮廓描述。2018年,刘相湖等人提出了一种对Freeman链码分析的角点检测算法,该方法在Freeman链码发生变化时,通过分析其连续前后多个点的链码是否符合特定规则来判定角点。

1.2.2 基于CSS的角点检测算法

Mokhtarian等人提出了曲率尺度空间(Curvature-Scale-Space, CSS)的角点检测器,利用不同角度下的局部曲率进行角点检测,并在角度下追踪角点以改善定位准确性。然而,CSS角点检测算法对轮廓的局部变化和噪声高度敏感,且难以选择合适的高斯尺度来平滑轮廓和角点阈值。

Zhong等人提出了直接曲率尺度空间(DCSS),该方法将平面曲线的曲率与高斯核直接转换而产生CSS。他们从理论上分析了DCSS在平面曲线拐角检测中的应用,研究了孤立的单角和双角模型的尺度空间行为,定义了若干模型属性,使DCSS图像能够转化为树型组织,从而能够在多尺度意义上进行角点检测。

2016年,李伟生等人提出了一种基于曲率多尺度的自适应角点检测算法AMCP(Adaptive Multi-scale Curvature Polynomial)。该算法结合了尺度多项式的方法,并构造局部曲率显著度LCCS(Local Corners Curvature Saliency),从而用自适应的阈值代替全局阈值,极大地增强了算法应对尺度、旋转等变化的鲁棒性。

1.2.3 利用弦到点的距离累加的角点检测算法

2008年,Awrangjeb等人提出了利用弦到点的距离累加(CPDA)的角点检测算法。该方法在对图像中的角点进行定位时产生最小的定位误差,有效避免了CSS算法中存在的主要问题。然而,该算法仍存在以下缺陷:邻近角点被合并、钝形角点被误删除,以及无法有效剔除圆形角点。

2014年,Jin等人针对基于弦对点距离累加、定位精度低、检测时间复杂度高等缺点,提出了改进方法。他们首先获得单尺度下的候选角点并保留相邻角点,然后计算多尺度下候选角的特征值,从而有效地消除了伪角。

2017年,Hossain等人提出了一种基于CPDA改进的角点检测算法CADT。该方法的预处理和改进步骤与CPDA相似,但有效地减少了定位误差,提高了平均重复性,并降低了角点的伪检率。

1.2.4 基于角度(Angle)的角点检测算法

基于Angle的角点检测算法根据边缘点与左右邻域内其他点形成的夹角最小值来标识该边缘点。它将Angle值固定在一定范围内,其值大小与角点的尖锐度成正比,有效避免了基于CSS和CPDA算法中存在的问题。但是,该方法仍有以下不足:无法检测出邻近角点,难以有效去除圆形角点和虚假角。

2012年,Sadat等人结合了角探测器CPDA和高曲率点探测器IPAN99,为不同的图像变换提供了鲁棒的角点位置。

2017年,金亦挺等人提出了基于角度累加的角点检测算法。该算法首先获取图像边缘,定义反映边缘点特征的角度累加概念,并在"单弦"下计算边缘点角度累加值,作为角点初始响应以获取候选角点。然后,构造候选角点的局部自适应阈值来去除圆形角点,并通过实验确定其支撑邻域范围和比例系数。接着,在"三弦"下获取角点特征值,构造全局阈值来去除伪角点。最后,对曲线端点和T交叉点进行检测,得到最终角点检测结果。

1.2.5 多尺度Gabor滤波器的角点检测

2004年,Gao等人提出了基于Gabor小波的角点检测算子。多尺度Gabor滤波器的角点检测算法克服了在不同图像上的尺度选择问题。该算法首先提取图像边缘轮廓,然后用一组4个尺度8个方向的Gabor滤波器虚部对图像进行平滑处理,并计算每个像素在相同尺度下各方向上Gabor滤波器虚部响应的归一化和。最后,将每个边缘像素点在所有尺度下的乘积作为新的角点测度,当角点测度大于预设阈值时,认定该点为角点。

2014年,Zhang等人提出了一种基于轮廓的角点检测器,该方法利用Gabor滤波器虚部在轮廓上的幅值响应。与传统通过分析边缘轮廓形状和搜索平面曲线上局部曲率极大值来检测角点的方法不同,该角点检测器结合了边缘轮廓的像素及其相应的灰度变化信息。

2016年,田子怡等人提出了一种基于边缘轮廓线的多尺度Gabor滤波器角点检测算法。

2017年,高华提出了一个既利用图像边缘轮廓信息又利用图像灰度信息的基于Log-Gabor梯度方向一致性的角点检测算法,以提高角点检测器的检测性能。

1.3 其他的角点检测技术

此外,许多研究人员也提出或改进了基于角点的检测算子:

2008年,He和Yung提出了一种使用自适应曲率阈值从初始列表中删除圆角的角点检测方法。

刘文进等人提出了一种基于AP聚类角点提取优化的双边滤波(BF)角点检测改进算法。

2015年,孔祥楠等人提出了一种基于各向异性高斯方向导数表示的角点检测器和分类器。该角点检测器融合了基于轮廓和灰度强度的检测思想,提出了一种像素表示为定向角度函数的方法,从而表征了像素周围的局部方向灰度变化。

2016年,Xing等人基于局部区域的自适应阈值,提出了一种新的带填充环和外环的掩码来检测图像中的角点。该方法先利用内填充圆作为响应函数,对图像角领域、目标边缘以及平坦区域等非角区域进行滤波。然后利用复杂的响应函数,同时考虑内圈和外环的边缘,并采取相关算法检测位于薄带、噪声和突出像素上的虚假角点。

2017年,Cho等人提出了一种新的基于非角度测量的角点检测方法。该非角函数消除了位于平坦区域的像素并删除了沿任意方向边缘的像素。

2 常见角点检测算法及其优劣势:

  1. Harris角点检测算法
    • 优点
      • 能够快速检测图像中的角点。
      • 对于旋转、平移、缩放等几何变换具有一定的不变性。
      • 算法原理简单,易于理解和实现。
    • 缺点
      • 对图像亮度的变化比较敏感,可能会误检测出噪声点或者平滑区域。
      • 对于尺度变化比较敏感,可能会漏检一些重要的角点。
      • 在角点密集的区域,可能会出现角点重复检测的情况。
  2. Shi-Tomasi角点检测算法(也称为Good Features to Track):
    • 优点
      • 相对于Harris角点检测,对图像亮度变化和尺度变化的适应性更强。
      • 在角点密集的区域,能够避免角点重复检测的情况。
      • 可以通过设置阈值来控制检测出的角点数量。
    • 缺点
      • 对于旋转不变性不如Harris角点检测好。
      • 算法原理比Harris角点检测稍微复杂一些。
  3. SIFT(Scale-Invariant Feature Transform)算法
    • 优势
      • 具有旋转不变性和尺度不变性,对光照变化也具有较好的鲁棒性。
      • 描述子长度较长(128维),提供丰富的特征信息,适用于高精度匹配场景,如图像拼接、三维重建等。
    • 劣势
      • 计算复杂度较高,不适用于实时应用。
      • 专利曾受保护,商业应用受限,尽管现在专利已过期。
  4. SURF(Speeded Up Robust Features)算法
    • 优势
      • 计算效率高,相比于SIFT,SURF的计算速度大大提升。
      • 鲁棒性强,在不同的光照条件、视角变化下表现良好。
      • 内存占用少,描述子较短(64维),减少了存储需求。
    • 劣势
      • 在一些极端情况下可能不如SIFT稳定。
      • 准确性较低,对噪声和变形更敏感。
  5. FAST(Features from Accelerated Segment Test)算法
    • 优势
      • 速度非常快,适合实时应用,因为它不涉及尺度、梯度等复杂运算。
      • 使用一定邻域内像素的灰度值与中心点比较大小去判断是否为一个角点,操作简单。
    • 劣势
      • 不具有方向性、尺度不变性。
      • 获得的候选点比较多,特征点的选取不是最优的,对旋转变化较大的物体可能会存在检测不准的情况。
  6. ORB(Oriented FAST and Rotated BRIEF)算法
    • 优势
      • 速度快,适用于实时应用,比SIFT和SURF等算法快得多。
      • 旋转不变性,通过给每个特征点定义方向,实现了特征点的旋转不变性。
      • 简单易用,实现较为简单,容易理解和实现。
    • 劣势
      • 在检测过程中存在一定的噪声干扰,可能会导致检测结果误解。
      • 对于旋转变化较大的物体可能会存在检测不准的情况。

参考:
https://www.c-s-a.org.cn/csa/article/pdf/7237?file_name=A8D77C701D04C881E52E8B1CB9B8FEE13FAE6909B074264A01E4C013791FB2E2C5E36A78A9049883&open_type=self

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2241641.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

pipx安装提示找不到包

执行&#xff1a; pipx install --include-deps --force "ansible6.*"WARNING: Retrying (Retry(total4, connectNone, readNone, redirectNone, statusNone)) after connection broken by NewConnectionError(<pip._vendor.urllib3.connection.HTTPSConnection …

‘conda‘ 不是内部或外部命令,也不是可运行的程序或批处理文件,Miniconda

下载了conda&#xff0c;但是在cmd里执行conda --version会显示’conda’ 不是内部或外部命令&#xff0c;也不是可运行的程序或批处理文件。 原因是环境变量里没有添加conda&#xff0c;无法识别路径。 需要在系统环境变量里添加如下路径&#xff1a; 保存之后重新打开cmd&am…

【Qt】使用QString的toLocal8Bit()导致的问题

问题 使用Qt发送一个Http post请求的时候&#xff0c;服务一直返回错误和失败信息。同样的url以及post参数&#xff0c;复制黏贴到postman里就可以发送成功。就感觉很神奇。 原因 最后排查出原因是因为参数中含有汉字而导致的编码问题。 在拼接post参数时&#xff0c;使用了…

设计一致性的关键:掌握 Axure 母版使用技巧

设计一致性的关键&#xff1a;掌握 Axure 母版使用技巧 前言 在快节奏的产品开发周期中&#xff0c;设计师们一直在寻找能够提升工作效率和保持设计一致性的方法。 Axure RP&#xff0c;作为一款强大的原型设计工具&#xff0c;其母版功能为设计师们提供了一个强大的解决方案…

鸿蒙next ui安全区域适配(刘海屏、摄像头挖空等)

目录 相关api 团结引擎对于鸿蒙的适配已经做了安全区域的适配&#xff0c;也考虑到了刘海屏和摄像机挖孔的情况&#xff0c;在团结引擎内可以直接使用Screen.safeArea 相关api 团结引擎对于鸿蒙的适配已经做了安全区域的适配&#xff0c;也考虑到了刘海屏和摄像机挖孔的情况&am…

Android OpenGL ES详解——实例化

目录 一、实例化 1、背景 2、概念 实例化、实例数量 gl_InstanceID 应用举例 二、实例化数组 1、概念 2、应用举例 三、应用举例——小行星带 1、不使用实例化 2、使用实例化 四、总结 一、实例化 1、背景 假如你有一个有许多模型的场景&#xff0c;而这些模型的…

前端传数组 数据库存Json : [1,2,3]格式

一、前端正常传数组&#xff0c;但是value.toString() 即可 const empIds ref([1,2,3]) empIds.value empIds.value.toString() await updateApiRules(empIds.value) // 接口传参 二、后端用String类型接收后转换 String[] empIds updateDO.getEmpId().split("&#x…

《Java核心技术 卷I》用户图形界面鼠标事件

鼠标事件 如果只希望用户能够点击按钮或菜单&#xff0c;那么就不需要显式地处理鼠标事件&#xff0c;鼠标操作将由用户界面中的各种组件内部处理&#xff0c;不过&#xff0c;如果希望用户能使用鼠标画图&#xff0c;就需要捕获鼠标移动&#xff0c;点击和拖动事件。 本节&am…

贪心算法入门(三)

相关文章 贪心算法入门&#xff08;一&#xff09;-CSDN博客 贪心算法入门&#xff08;二&#xff09;-CSDN博客 1.什么是贪心算法&#xff1f; 贪心算法是一种解决问题的策略&#xff0c;它将复杂的问题分解为若干个步骤&#xff0c;并在每一步都选择当前最优的解决方案&am…

企业知识中台:构建智慧企业的核心

在当今数字化时代&#xff0c;企业知识中台已成为构建智慧企业的核心。它不仅是企业知识资产的集中地&#xff0c;也是推动企业创新和提高决策效率的关键。本文将分为四个部分&#xff0c;详细探讨知识中台的概念、重要性、构建步骤以及如何利用HelpLook工具搭建企业知识库。 …

基于Spring Boot的在线性格测试系统设计与实现(源码+定制+开发)智能性格测试与用户个性分析平台、在线心理测评系统的开发、性格测试与个性数据管理系统

博主介绍&#xff1a; ✌我是阿龙&#xff0c;一名专注于Java技术领域的程序员&#xff0c;全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师&#xff0c;我在计算机毕业设计开发方面积累了丰富的经验。同时&#xff0c;我也是掘金、华为云、阿里云、InfoQ等平台…

机器学习 ---线性回归

目录 摘要&#xff1a; 一、简单线性回归与多元线性回归 1、简单线性回归 2、多元线性回归 3、残差 二、线性回归的正规方程解 1、线性回归训练流程 2、线性回归的正规方程解 &#xff08;1&#xff09;适用场景 &#xff08;2&#xff09;正规方程解的公式 三、衡量…

shell脚本(1)

声明&#xff1a;学习视频来自b站up主 泷羽sec&#xff0c;如涉及侵权马上删除文章 感谢泷羽sec 团队的教学 视频地址&#xff1a;shell脚本&#xff08;1&#xff09;脚本创建执行与变量使用_哔哩哔哩_bilibili 本文主要讲解shell脚本的创建、执行和变量的使用。 一、脚本执行…

测试实项中的偶必现难测bug--互斥逻辑异常

问题: 今天线上出了一个很奇怪的问题,看现象和接口是因为数据问题导致app模块奔溃 初步排查数据恢复后还是出现了数据重复的问题,查看后台实际只有一条数据,但是显示在app却出现了两条一模一样的置顶数据 排查: 1、顺着这个逻辑,我们准备在预发复现这个场景,先是cop…

解决MySQL中整型字段条件判断禁用不生效的问题

MySQL中&#xff0c;当尝试将整数与字符串进行比较时&#xff0c;数据库可能会尝试将字符串转换为整数。在这种情况下&#xff0c;空字符串会被转换为整数0&#xff0c;所以0 ! 会被解释为0 ! 0&#xff0c;结果自然是false。 在开发过程中&#xff0c;我们经常需要对数据库中的…

Flink1.19编译并Standalone模式本地运行

1.首先下载源码 2.本地运行 新建local_conf和local_lib文件夹&#xff0c;并且将编译后的文件放入对应的目录 2.1 启动前参数配置 2.1.2 StandaloneSessionClusterEntrypoint启动参数修改 2.1.3 TaskManagerRunner启动参数修改 和StandaloneSessionClusterEntrypoint一样修改…

创建vue插件,发布npm

开发步骤&#xff1a;1.创建一个vue项目&#xff0c;2.开发一个组件。 3.注册成插件。 4.vite和package.json配置。5.发布到npm &#xff11;.创建一个vue项目 npm create vuelatest 生成了vue项目之后&#xff0c;得到了以下结构。 在src下创建个plugins目录。用于存放开发的…

【深度学习】LSTM、BiLSTM详解

文章目录 1. LSTM简介&#xff1a;2. LSTM结构图&#xff1a;3. 单层LSTM详解4. 双层LSTM详解5. BiLSTM6. Pytorch实现LSTM示例7. nn.LSTM参数详解 1. LSTM简介&#xff1a; LSTM是一种循环神经网络&#xff0c;它可以处理和预测时间序列中间隔和延迟相对较长的重要事件。LSTM通…

Queuing 表(buffer表)的优化实践 | OceanBase 性能优化实践

案例问题描述 该案例来自一个金融行业客户的问题&#xff1a;他们发现某个应用对一个数据量相对较小的表&#xff08;仅包含数千条记录&#xff09;访问时&#xff0c;频繁遇到性能下降的情况。为解决此问题&#xff0c;客户向我们求助进行分析。我们发现这张表有频繁的批量插…

【视觉SLAM】4b-特征点法估计相机运动之PnP 3D-2D

文章目录 1 问题引入2 求解P3P 1 问题引入 透视n点&#xff08;Perspective-n-Point&#xff0c;PnP&#xff09;问题是计算机视觉领域的经典问题&#xff0c;用于求解3D-2D的点运动。换句话说&#xff0c;当知道n个3D空间点坐标以及它们在图像上的投影点坐标时&#xff0c;可…