点击下方
卡片
,关注
「计算机视觉工坊」
公众号
选择
星标
,干货第一时间送达
作者:无偏估计 | 编辑:3DCV
链接:https://zhuanlan.zhihu.com/p/694366189
点云配准示意图
点云配准是计算机视觉和机器人技术里最基础的任务之一。趁着最近一篇相关工作被接收,想着总结一些我对这个任务的看法,希望对同样对这个任务感兴趣的朋友们有所帮助。如有偏颇,请在评论区或者通过邮件等联系方式,畅所欲言。
题外话:说来蛮有缘分,研究生发表的第一篇论文[1]就是做点云配准。当时没什么想法,好在有师兄相助,就开始做了。不过也挺幸运,给的几个idea全都work,指标刷过SOTA,幸运地被录用了。毕业答辩时,一位老师问了一个看似简单,却很灵魂拷问的问题,“你的工作很丰富,但你的研究课题到底是什么?你是做点云配准的吗?”。我心中闪过一个傲娇的想法,当然不是,点云配准只是其中一个部分,但更矛盾的是,我当时对这个经典任务的实践与理解,也就仅限于训训网络,刷刷指标,并不能称得上“研究过”。现在回看,我觉得我更不应该有那种傲娇的想法。麻雀虽小肝胆俱全,点云配准任务虽小,但里面涉及到的数据关联理论,图论,概率论,优化理论一点也不少,与领域里一些更系统性的任务,比如SLAM,使用到的理论基础重合度非常高,颇有“治大国若烹小鮮”的意味。
好了,开始进入正题!需要说明的是,
本系列文章并不会详细介绍哪种算法,而是以更宏观的视角去聊聊点云配准,然后引用一下相关文献方便读者进一步了解学习。
点云配准是一个研究了很多年的基础任务,很难详尽地列举总结所有类型的方法。我的知识面也不足以覆盖所有前人工作,如果有其他好的方案,欢迎在评论区补充。
点云配准问题
对于一个任务的了解,我比较喜欢先搞明白它的输入和输出,然后再看相关的具体工作,并对他们进行归纳,最后思考问题的本质和痛点。
从实际场景出发,对于现实世界的一个物体,比如下图的一个飞机,我们用两个距离传感器(比如LiDAR)对其进行测量,分别得到两个
点云(配准的输入)
,一般称为source和target,每个点云就是一些在各自传感器坐标系下的xyz坐标,点云配准就是去找到一个
位姿(配准的输出)
,对source进行变换,尽可能与target
对齐(需要优化的目标函数)
。
这里的挑战在于:
一般情况下,我们对真值位姿一无所知。
(No reliable initial transformation)
两个点云是传感器对物体的采样,物体是连续的,但点云是离散的,这意味着没有一个点到另一个点的精准的对应关系。如图xi的准确品牌点是yi,但yi其实是不存在的(但却可以找到差不多的匹配点,比如周围灰色五角星)。
(No exact point-to-point correspondence)
由于通常两个传感器都是从一边观测,因此他们的观测都是局部的,换句话说两个点云只有部分的重叠区域,比如Q1和Q2。(Partial overlap)
更糟的是,俩传感器还可能不是同一个传感器,测量误差的分布(比如一个准,一个不准)和点云的分布(比如Fov,扫描pattern不同)还不一样。(Cross modal)
其中,按照第一点我们可以把点云划分为全局配准(gobal registration,又称coarse registration)和局部配准(local registration,又称fine registration)两种。前者是认为位姿先验完全不可知,后者是有一个比较好的位姿先验。在机器人应用里,回环,重定位,multi-session SLAM等场景下的点云配准,由于没有可信的初始位姿,通常属于全局配准,相比之下,LiDAR odometry用到的点云算法都可以算作局部配准的范畴,因为连续两帧点云之间的相对位姿往往接近于单位矩阵。
另外需要注意的是,从应用的角度上讲,解决一个普适的点云配准问题固然振奋人心,但如果真要解决实际应用中的点云配准问题,也大可不必。针对这四个挑战,我们在实际应用里或多或少都能找到一些trick去回避他们,我举一些例子:
挑战一
:有时候虽然我们做的是全局配准问题,比如回环下的配准,我们并不是完全不知道位姿先验的,比如如果你使用移动车辆采集点云,那配准的相对位姿的俯仰角和横滚角应该是比较接近0的,因为车是在地面上的,这种先验可以大大减少我们的位姿搜索空间。
挑战二
:虽然没有点到点的精准匹配,但没有又怎样呢,构建一个最小二乘问题,测量虽然有噪声,但估计的位姿也可能是很准的。再退一步说,如果你的任务是全局配准,配准精度往往不是很重要,因为可以再用ICP[2]或者NDT[3]修正。ICP(点到面,或者点到线ICP变种),NDT以及更泛化的GICP[4]的好处是,算法的损失函数都不是点到点,而是点到一个分布,比如线,面,高斯分布,从而减轻了没有exact correspondence的问题。
挑战三
:在局部配准的情况下,因为有了比较好的先验位姿,我们往往是可以知道重叠区域在哪里的。
挑战四
:第四点更简单了,一般大家用的都是同一种传感器。
点云配准常见算法框架
在这一节,让我们对点云配准算法流程进行归纳,然后把它们对应到具体的算法上去。作为一个严谨的科研选手,我不能说哪一种就是好的或者坏的,因为不同场景或者不同实现方式,确实没有绝对的好坏。
常见框架一:端到端配准
最直接的,让我们输入两个点云,经过一个强大的模型,然后得到一个位姿。比如PWCLO-Net[5],PointNetLK[6]等。这类方法利用了网络强大的拟合能力,当训练集分布与测试集分布一致时,可以表现出又好又快的效果。然而从另一角度讲,这类方法其实是让网络给定两个Nx3点云,将其映射到位姿空间(最小表示是6维),这个映射的灵活度是很高的,如果只提供位姿监督信号,可能不足以把这个映射给学对[7]。
常见框架二:搜索最优位姿
这类框架有点像一个人不停的尝试变换source点云,来看怎么把source与target对齐。代表性方法参考文献[10]和[11],均使用了分支定界算法。这类方法基本上主攻两点:第一,如何更高效率的搜索,包括如何减小搜索空间,如何加快遍历速度;第二,因为每次搜索都要算一下目标函数(得分),因此如何更快的得到得分也是关键。
常见框架三:构建匹配关系+位姿鲁棒估计
更进一步,大部分点云配准算法包含
构建匹配关系
(correspondences)和
位姿鲁棒估计
(robust estimation)两步骤,因此我们可以把点云配准算法分成两个部分,前端和后端,分别负责上面两个步骤。一个常用的获得匹配关系的做法是对原始点云提取关键点(比如ISS)和相应的描述子(比如FPFH),通过描述子的匹配获得匹配关系。之后,如果我们获得了正确的匹配关系(以点到点,分布到分布,点到线等形式),那么我们就可以基于这些匹配关系构建一个目标函数,然后就很容易的基于一些闭式解,比如SVD[8],求得位姿。
然而事实并没有那么理想,这些匹配关系往往存在一些外点。这个外点的含义很广泛,比如
非overlap区域,动态物体,错误的匹配关系
等。一般情况下我们并不针对外点的类比做相应的处理,而是设计一个通用的外点去除算法,比如基于图论的方法[9],去除外点后,再基于剩下的匹配关系去构建目标函数。更进一步的,我们会对目标函数加一些鲁棒核函数去抑制没去干净的外点的影响[9]。
另一个可以归于该框架的算法是我们熟知的ICP,ICP也可以理解为我们用先验位姿+最近邻去获得匹配关系,然后通过限定最近邻的查询范围去除可能的错误匹配关系,最后通过SVD得到位姿。
如果说框架二是漫无目的地尝试不同位姿,实现点云对齐,那相比之下这种框架三的奥妙在于,它
提前获得了“对齐的目标”
,即得到两个点云的匹配关系,目标就是让匹配上的这些点对齐。这使得我们把问题从在一个庞大的位姿空间找到一个最佳位姿让点云对齐,化归成了如何得到准确的匹配关系,并去除错误的匹配关系。而后者虽然听起来多了一步,但无论是获得匹配关系(或者是data association)还是外点去除(或者说robust estimation),都是计算机视觉和机器人学里经典的研究内容,有很多优秀的方法的可以参考借鉴。
框架四:一个更一般性的框架
在这个框架里,我们尝试将上述三个框架统一到一个框架里。这个框架分为绿色框和棕色框圈住的两个部分。在这个框架里,点云被处理成“配准单位”和“评估单位”,这两个单位在取值范围上没有什么区别,他们可以是{原始点云,降采样后的点云,关键点,占用栅格/体素,segments等等},但在用途上有着区分。
在第一个部分里,配准单位被生成用于生成配准的目标函数,以获得一个或者多个位姿变换候选。比如我们可以用关键点作为配准单位,用描述子获得匹配关系,然后用匹配点之间的距离作为目标函数,最小化该目标函数以获得位姿变换。在第二个部分里,点云被处理成评估单位,该评估单位用于构建一个用于评估在给定位姿变换下的点云对齐质量。比如在框架二里,分支定界方法常常把target点云处理为占用栅格地图,给定一个位姿,把source点云变换到占用栅格地图下,得到占用概率,用于评估对齐质量。
在框架一里,网络在训练的时候使用原始点云,或者降采样后的点云作为配准单位,优化的loss相当于配准目标函数,但在inference阶段,直接输入配准单位,然后用训练好的网络参数计算出一个位姿变换。
在框架二里,配准单位=评估单位,配准目标函数+对齐质量函数=0。也就是说,框架二只考虑配准单位的对齐,它认为配准单位的对齐,比如关键点的对齐,就相当于点云的对齐。或者说,框架二只包含第一部分,因为位姿变换候选的个数仅为1。
在框架三里,我们没有设计配准单位和配准目标函数,而是用整个可能的位姿空间作为位姿变换候选集合,然后设计一个对齐质量函数去评估这个空间里哪个位姿是最优的。
那么有没有一个具体方法完全符合框架四呢?有的,其实就是很经典的关键点(也可以是其他配准单位)匹配+RANSAC。在这个方法里,假设我们有N个匹配关系,在RANSAC框架下,我们每次随机选三个生成一个位姿候选,然后对齐质量函数设计为符合该位姿候选的匹配关系数量,这样不停迭代,找到最优位姿候选。除此之外,G3Reg[14]也属于这一框架,它会在第一个部分生成若干个可能的位姿变换候选,然后在第二部分找到最优的那个。类似的,GeoTransformer[12]也会在每个匹配的patch内用dense point匹配生成一个位姿候选,然后用所有的点匹配找到最佳位姿候选。
一些应该思考的问题
最后,我们同样不拘泥于具体的算法,而是介绍几个在设计任何算法时都应该考虑到的问题:
这个匹配关系内点率最好高一点,这样后端就省事一点。
怎么也得有三个正确的匹配关系,因为这是点云配准需要的最少个数。
如果使用一些特征去配准,比如点线面,这些元素是否在设定的应用场景里足够常见,显著,且可重复?比如说实话点云里的关键点,特别是稀疏的LiDAR点云,关键点可重复性并不高,因此我们一般只是对点云做体素降采样,然后给剩下的每个点都提取描述子,然后做匹配。在室内场景下,点特征是不多的,但线和面却相对丰富。
在流程三里,我们举了基于关键点匹配的例子,然而即使关键点对齐了,那也只能说明两个点云的一部分被对齐了,不能代表两个原始点云被对齐了
即便我们用两个原始点云去对齐,但很多时候两个点云只有partial overlap,也就是有些地方肯定是对不齐的。因此在函数设计的时候应该考虑这部分的影响,通常的做法是把不重叠的部分当成外点,添加鲁棒核函数,减弱外点的影响
对于配准目标函数,如果他不是一个凸函数,那么定义了这样一个目标函数,我们如何找到全局最优解去最小化它?即便找到了全局最优解最小化它,就一定能证明点云对齐了吗?同样,对齐质量函数最大的位姿候选,一定就是最好的吗?(我好像杠精一样,哈哈,吐槽一下自己)
有时候,对齐质量函数确实能反应点云被对齐,但就能证明求出的位姿变换就是对的吗?
比如在场景结构比较重复的区域,如走廊,公路,点云对齐得很好,但求出的变换可能是错的,有时也称这种场景是退化的。另一方面,我们是否可以给出一些指标,指示场景退化的程度,或者我们配准算法的结果的可信度[32]。
两个位置,配准到哪个看起来都是对的
几何空间的一致性,比如利用刚体变换的长度保持性质[9]
聊聊如何构建匹配关系
在接下来的章节里,我想详细聊一下框架三。首先是如何在前端构建点云的匹配关系。前端的职能可以看成由三个部分构成。第一个部分是对点云的一个“
降采样
”,得到用于配准的“
配准单位
”,比如关键点。这是因为我们一般不会使用整个原始点云进行配准,一是点云中特征不太强的部分会加强匹配的模糊性(ambiguity),二是原始点云数量太多,算法一般处理不过来。第二部分是对这些配准单位构建描述子,用于匹配。第三个部分是匹配策略。
题外话:当人们介绍一个领域的时候,习惯尽可能地列举尽可能多的方法,然后再描述他们各自的好处。但写到这里的时候,我突然觉得“以终为始”或许会是一种更冷静且高效的思维方式。以终为始不是说到达了一个终点,然后再重新出发,而是想清楚了目标,然后再努力实现。这让我想起本科竞赛指导老师说的,比赛最后的名次其实在方案定下时已经确定了。目标决定了行为结果的上界,同时也指导着行为的发展。因此,
我们先介绍一下一个好的配准单位应该是什么样的,然后再进行方法的举例。
配准单位在场景中的出现的频率以及可重复性(Repeatability)。频率是指这种单位在点云中要尽可能多,比如平面相比于点在室内环境下就很多;可重复性是指同一个配准单位要尽可能在两帧点云中都出现,这样我们才有更大的可能性获得正确的匹配关系。
显著的(Saliency)。比较形象的例子是一些角点,这些点往往模糊性(ambiguity)更小,匹配成功的几率更大。
能大概还原表示原始点云的结构特征。这个“大概还原”是个很模糊,见仁见智的说法,我举个反例,如果我们从室外点云中抽取抽取四个点去做配准,即使配上这四个点,可能也不能说明原来的点云被配准了,因为原来点云可能能采样出很多个相同几何分布的四个点,我们不知道到底配的是哪四个点。但是呢,太多了也不行,比如用整个原始点云,这样可能会很浪费时间。
使用segments作为配准单位
下面我们再列举几种常见的配准单位例子:
对原始点云进行体素降采样[12],用降采样后的点云进行配准。这样不仅保留了点云的原始几何结构,不会太大影响最后配准的精度,同时也节约了配准算法的时间。更一步的,也可以处理成占用栅格地图[10],相比于普通体素降采样,占用栅格提供了占用,非专用,unknown三种状态。
提取一些关键点[13]。关键点常常是指点云结构中的一些角点,它们被认为显著的(Saliency)并是可重复的(repeatable),关键点的提取不仅减小了配准计算负担,同时也减轻了匹配的模糊性(ambiguity)。
对点云进行基于几何的聚类,得到一些segments[14,15],或者通过语义分割得到一些带语义的segments[25]。后者有语义标签,对segments之间的匹配更有利,但同时也增加了对点云语义分割模型的依赖。Segments用的人很少,可能大家觉得用segment的中心不是很准确,但它其实是一个很不错的配准单位。它不仅最大程度的还原了点云的结构特征,同时保证了稀疏性,只要对中心的不确定性进行合理的建模(比如G3Reg[14]),就能获得不错的配准性能。由关键点组成的特定集合。比如由三个关键点组成的三角形[16,17],由四个关键点组成的四边形[18]。
第二个部分是为这些配准单位计算一个描述子,描述子之间的距离描述了配准单位之间的相似性,从而通过最近邻查找可以获得配准单位的匹配关系。一个好的描述子应该具备以下几点:
局部性(Locality)。描述子应该记载除了配准单位的坐标外,周围或者本身(如果它足够大)的信息。
有特异性的(Discriminative)。同属于一个空间点的不同的配准单位的描述子应该尽可能的近,相反,不属于同一个空间点的应该尽可能的远。
紧凑且高效(Compactness and efficiency)。一个维度较低的描述子会使得最近邻查询的时间减少,同时,提取描述子的过程也应该是高效的。
旋转平移不变性(Rotation and translation invariance)。由于全局配准的假设之一是没有初始位姿,那么无论在任何坐标系下,配准单位的描述子都应该是相近的。
下面我们聊一下常见的描述子是如何满足了上述条件:
为了满足局部性,一般在描述子构建的过程中,邻域点都会被加入进来,以最近邻查找[19]或者体素卷积的形式[20]。
特异性的实现在手工设计的方法里主要取决于特征的构建,在深度学习方案里一般通过数据增强和度量学习损失去实现[20,12]。
常见的描述子维度一般都不高,比如33维,然后用KDTree管理。然而也有一些特殊的描述子,比如三角形描述子,因为其较低的维度和规范的描述子定义,可以使用哈希表进行管理,从而更快地查询。这类方法在机器人[17]和测绘领域[16]都能看到。
旋转平移不变性的实现就八仙过海各显神通了。最基本常见的方案就是在设计描述子的时候加一些具有该性质的特征,比如长度,夹角[19]。其次也可以通过构建局部坐标系实现[21]。对于深度学习方法,网络的设计有时候也能保证这一性质[22]。
最后,对于匹配策略来说,这里存在一个鲁棒性和效率的平衡。如果要让效率最佳化,我们可以只考虑描述子互为最相似的匹配对,并且规定最相似要远大于此相似以保证特异性,但这样很可能遗漏正确的匹配关系,甚至导致正确包含的正确匹配不足三个。另一个极端是,我们抛弃描述子,对配准单位进行all to all的匹配[23],这种方案只要配准单位可重复性较高,它所生成的匹配关系大概率能包含三个正确匹配,但就是外点率太高。一个balance的选择或许是基于描述子的互为Top K相似的匹配关系,但这就仁者见仁智者见智了。有一个比较实用的匹配策略可以看参考文献[24]
聊聊如何去除外点
有时候,我觉得研究者似乎太过于强调数据关联的重要性,无论是在点云配准,还是其他计算机视觉,机器人任务,比如SLAM,大家觉得只要我把前端搞好,输入正确的匹配关系到后端,后端不用什么改进,系统就能work的很好。话虽然是这样没错,但现实是我们有时候为了效率不得不使用一个比较差的前端,或者我们没有能力构建一个强大的前端。大家(也可能只是初学者的我)或许忽略了一个强大的能处理巨量外点的后端是多么的有用,如下图所示。
强大的后端[14]甚至可以处理外点率高达99%的匹配关系
正如前文所提到的,去除外点,对位姿进行鲁棒估计其实一个非常经典的研究课题,在鲁棒统计,计算机视觉和机器人学里都有涉及[26]。比较常用的两个思想是M-estimator(加鲁棒核函数)和一致性最大化。常见的鲁棒核函数如下图所示
这些鲁棒核函数通过限制较大残差对目标函数的影响,以抑制外点的影响。然而残差是基于当前状态(在点云配准里就是位姿变换)计算的,因此一个好的状态初始值影响着M-estimator的估计精度以及是否能达到全局最优解。为此,当没有一个好的初始解时,我们通常配合GNC对构造的优化问题进行求解[27]。GNC通过将原鲁棒核函数松弛成一个凸函数(可以得到全局最优解),然后渐进恢复原鲁棒核函数进行实现。凸函数恢复到原函数的每一步里,上一步的求解状态都会作为下一步求解初始值,以保证收敛到全局最优。
另一个我很喜欢很喜欢的思想就是一致性最大化。那也就是对于总匹配关系集合,我们总是能找到一些相互一致的子集合,其中最大的那个相互一致的子集合,我们认为往往它们是由内点构成的。这里我们省去了对一致的定义,因为它与具体方法和任务有关。
RANSAC就是实现一致性最大化的经典的启发式算法。它每次都会统计符合当前模型hypothesis的样本的数量,然后选取符合样本数量最大的那个hypothesis。然而,这种随机采样的方法在外点率很高的时候,复杂度是指数级的[28]。因此如果你没有一个好的前端,最好还是别用RANSAC当后端。
另一个我很喜欢的实现最大一致性的技术路线是基于图理论的[9,14,23,29]。
对于输入的匹配关系,我们会用它们构建一个兼容性(一致性)图。每个节点代表一个匹配关系,并且我们会定义一个一致性测试,如果通过了测试,两个节点之间会有一条边。团(clique)是一个任意两个节点都有边的子图。一个图里可能有好几个团,一个团也可能包含好几个子团。我们把不被任何团包含的团叫做极大团(maximal),把含有节点最多的极大团的叫做最大团(maximum)。一致性最大化的核心idea就在于,我们一般认为内点构成的团就是最大团[9]。也有的论文认为是极大团[29]。(事实是两个情况都存在)
一致性测试如上图所示,它利用了刚体变换的长度保持性质。虽然看图更好理解,但文字的说明也是彰显笔者的责任心的。对于两个匹配关系,如果匹配点的长度发生了明显改变,超过一个阈值,那么就认为这两个匹配关系至少存在一个错误匹配关系。
这里的一个非常关键但很少人注意到的点是这个阈值该怎么选。非常理想的情况下,这个阈值应该接近0。但由于配准单位的提取误差,匹配误差等等因素,这个阈值不那么好选,甚至对于不同配准单位实例是不一样的。为此,G3Reg[14]和Pagor[30]就选择使用多个阈值,构建多个一致性图,求得到多个最大团,也就是多个可能的内点集。最好它们会估计出多个位姿候选,并设计一种验证方案去找到最优的候选。这种方式在它们论文里叫做distrust and verify,听起来很时尚,但其实也可以叫做大家常说的hypothesis generation and evaluation。不过这样做的效果立竿见影,配准的鲁棒性提升了不少,以至于即使前端很菜,也能在大部分情况下得到正确的位姿估计,比如下图视频展示了G3Reg在低overlap下的配准效果。
即便如此,基于图理论的方法依然有他的局限性。构造这样的一个一致性图需要n平方的复杂度和内存,对于匹配关系很多的场景,这是无法接受的[31]。
写在最后
看到最后,你或许发现就如同看到了一篇意图再不能明显的推广软文,就差说今天肯德基疯狂星期四了。哈哈。不过鉴于我也掏心掏肺地讲了那么多关于点云配准的所获所得,请原谅我的小私心。另外,很遗憾有一些更好的点云配准方法,我或是没有详细说明,或是陷于篇幅而遗漏。但我相信是金子总要发光的,如果读者想做这方面的研究,一定会按图索骥从而获得更广泛的对该领域的Review。
最后,感谢阅读,谢谢!
参考文献
[1]End-to-End 3D Point Cloud Learning for Registration Task Using Virtual Correspondences
[2]Iterative closest point - Wikipedia
[3]Normal distributions transform
[4]Generalized-ICP
[5]PWCLO-Net: Deep LiDAR Odometry in 3D Point Clouds Using Hierarchical Embedding Mask Optimization
[6]PointNetLK: RobustR & Efficient Point Cloud Registration using PointNet
[7]Correspondence Matrices are Underrated
[8]Least-squares fitting of two 3D point sets
[9]TEASER: Fast and Certifiable Point Cloud Registration
[10]Real-time loop closure in 2D LIDAR SLAM
[11]3D-BBS: Global Localization for 3D Point Cloud Scan Matching Using Branch-and-Bound Algorithm
[12]Geometric Transformer for Fast and Robust Point Cloud Registration
[13]D3Feat: Joint Learning of Dense Detection and Description of 3D Local Features
[14]G3Reg: Pyramid Graph-based Global Registration using Gaussian Ellipsoid Model
[15]SegMatch: Segment based place recognition in 3D point clouds
[16]Automatic registration of large-scale urban scene point clouds based on semantic feature points
[17]STD: Stable Triangle Descriptor for 3D place recognition
[18]Keypoint-based 4-Points Congruent Sets – Automated marker-less registration of laser scans
[19]Fast Point Feature Histograms (FPFH) for 3D registration
[20]Fully Convolutional Geometric Features
[21]SpinNet: Learning a General Surface Descriptor for 3D Point Cloud Registration
[22]RoReg: Pairwise Point Cloud Registration with Oriented Descriptors and Local Rotations
[23]CLIPPER: A Graph-Theoretic Framework for Robust Data Association
[24]Stress-Testing Point Cloud Registration on Automotive LiDAR
[25]Outram: One-shot Global Localization via Triangulated Scene Graph and Global Outlier Pruning
[26]Estimation Contracts for Outlier-Robust Geometric Perception
[27]Graduated Non-Convexity for Robust Spatial Perception: From Non-Minimal Solvers to Global Outlier Rejection
[28]Performance Evaluation of RANSAC Family
[29]3D Registration With Maximal Cliques
[30]Pyramid Semantic Graph-based Global Point Cloud Registration with Low Overlap
[31] ARCS: Accurate Rotation and Correspondence Search
[32]Learning-based Localizability Estimation for Robust LiDAR Localization
本文仅做学术分享,如有侵权,请联系删文。
计算机视觉技术交流群
目前我们已经建立了3D视觉方向多个社群,包括
2D计算机视觉
、
大模型
、
工业3D视觉
、
SLAM
、
自动驾驶
、
三维重建
、
无人机
等方向,细分群包括:
2D计算机视觉:
图像分类/分割、目标/检测、医学影像、GAN、OCR、2D缺陷检测、遥感测绘、超分辨率、人脸检测、行为识别、模型量化剪枝、迁移学习、人体姿态估计等
大模型: