没有合适的资源?快使用搜索试试~ 我知道了~
HARA:一种鲁棒的分层旋转平均方法
15777HARA:一种鲁棒旋转平均的分层方法摘要Seong Hun Lee*JavierCivera I3A,萨拉戈萨大学,西班牙{seonghunlee,jcivera} @ unizar.es站平均法。 然而,即使没有任何的外-我们提出了一种新的分层方法,多个旋转平均,被称为HARA。我们的方法基于三元组支持的层次结构来递增地对旋转图进行迭代。其关键思想是通过优先考虑具有许多强三元组支持的边并逐渐添加具有较弱和较少支持的边来构建生成树。这降低了在生成树中添加离群值的风险因此,我们得到了一个强大的初始解,使我们能够过滤离群值之前的非线性优化。通过最小的修改,我们的方法还可以集成有效的2D-2D对应的数量的知识。我们对合成和真实数据集进行了广泛的评估,展示了最先进的结果。1. 介绍我们考虑了存在异常值时的多重旋转平均问题,即,在给定相对旋转R ij = R i R j的部分噪声、离群污染约束集合的情况下,找到多个绝对旋转Ri[35]。该问题可直接应用于从运动恢复结构(SfM)[1,13,15,17,18,20,44,47,62,65,67],多点云配准[3定位和映射(SLAM)[7,8,10,66]。在大多数全局SfM流水线中,多重旋转平均是用于计算相机的初始取向的事实上的标准:在估计图像对之间的相对姿态(例如,通过匹配诸如SIFT [43]之类的特征描述符并使用RANSAC [23]运行5点算法[48],可以解决旋转平均问题并获得相对于公共参考系的绝对旋转。然后,这些初始旋转用于后续操作,例如平移估计[17,62],姿态图优化[10,46],多视图三角测量[38,41]和光束法平差[34,42,57]。因此,所有这些任务都严重依赖于旋转平均算法产生的解决方案因此,在过去的十年中,已经进行了大量的研究努力,以开发可靠的和多功能的ro,*这项工作得到了西班牙政府的部分支持。(PGC 2018 - 096367-B-I 00)和Ara go'nregionalg o vt. (DGAFSET4520R)。输入中的liers,解决大规模旋转平均问题是不平凡的[60,61]。当输入包含离群值时,问题只会变得更糟,这在实践中经常发生[12,46,62]。这些异常值如果处理不当,很容易降低估计精度。通常,旋转平均被公式化为非线性优化问题,并从绝对旋转的一些初始猜测开始迭代求解[12,13,33,54]。然而,如果这个初始猜测受到异常值的严重影响,那么以后就很难获得准确的结果。因此,鲁棒的初始化对于存在异常值的可靠旋转平均是必不可少的。在这项工作中,我们提出了一种新的方法,鲁棒多旋转平均。我们的主要贡献是一个层次化的初始化方案,构造一个旋转图的生成树传播最可靠的约束第一和不太可靠的。我们建立了层次的可靠性的基础上一致的三元组约束的数量,以及他们的一致性水平也就是说,我们认为一个约束是更可靠的,如果它是强有力的支持,由许多其他约束和不太可靠,如果它有较弱或较少的支持。可选地,我们还可以将有效的2D-2D对应的数量并入到层次结构中实验结果表明,该方法可以显著提高旋转平均的鲁棒性。要下载我们的代码 和 补 充 材 料 , 请 访 问 https://seonghun-lee.github.io。2. 相关工作运动平均的早期工作展示了从成对约束估计绝对旋转的各种方法[25,29,30,44,52]。在最近的工作中,重点是(1)在没有离群值的情况下实现全局最优,或者(2)在存在离群值的情况这项工作属于第二组。(1) 无离群值场景中的全局最优方法:在[9,24]中,提出了使用拉格朗日对偶的全局最优方法在以后的工作中,已经提出了更先进的优化方法,以提高速度和可扩展性,同时保证全局最优的15778.Σ.Σ^ ^您的位置:∈JKJK∥ ∥ ∥ ∥国际新闻解[21,22,51]。关于最优方法的最新工作,我们参考[19,45,49]。(2) 存在离群值时的稳健方法:已经提出了各种方法来处理离群值(参见[58]一份调查报告。首先,存在试图检测和去除异常值的方法,[14、31、64]。Govindu [31]通过对随机生成树进行采样来使用基于RANSAC的方法。Zach等人[64]采用一种更易处理的方法,该方法基于从采样回路信息中进行的贝叶斯推断。在[14]中,Crandallet al.在马尔可夫随机场上使用离散置信传播来获得初始解并去除具有大误差的边缘。另一方面,一些方法并不完全去除离群值,而是在优化过程中抑制大的误差在SfM的上下文中,相机i的绝对旋转和平移分别表示为Ri和ti。它们将一个3D点从世界坐标系变换到相机参考坐标系:xi=Rixw+ti。我们用Rjk表示Rj和Rk之间的相对旋转,即,Rjk=RjRk。Rj和Rk之间的角距离被定义为旋转的角度Rj Rk,即,d(Rj,Rk)=。(二)弦距离与角距离的关系式如下[35]:dchord(Rj,Rk):=<$Rj−Rk<$F(3)=2<$2sin(d(R,R)/2)。(四)mization 例如,Hartleyet al.[33]第三十三话在L1范数下进行站平均,以分布式方式更新每个绝对旋转。Wang和Singer [59]使用半定松弛和交替方向方法来最小化基于L1范数的成本函数聊天-如果Rj和Rk都有一个小角度,它们的相对旋转可以使用Baker-Campbell-Hausdorff(BCH)公式[30]近似:RR(u −u)。(五)老化[30]使用具有鲁棒损失函数的迭代重加权最小二乘法(IRLS)。在[3]中,Arrigoniet al.证明了文献[1]中的谱分解方法可以用IRLS方法进行鲁棒化。最近,Shi和Lerman [54]提出了一种称为消息传递最小二乘的替代优化方法,并证明了其优于IRLS方法[12]。其他鲁棒方法直接对优化问题中的异常值的存在进行建模:Boumalet al.[6]考虑噪声模型中的离群值,并通过黎曼信赖域优化计算Arrigoni等人[2,3]本质上包括成本函数中的离群值,并通过低秩和稀疏矩阵分解来估计旋转。另一种流行方法是利用附加的视觉信息(例如,内点特征匹配的数量或相似性得分),以识别内点边缘并获得鲁棒的初始解[13,16,20,26,27,53]。最近,在[50,63]中提出了基于学习的方法虽然这些监督方法可能并不总是很好地推广到不熟悉的设置,但它们在与训练数据类似的数据上显示出令人印象深刻的性能。3. 预备和符号我们用v表示3D向量v的欧几里得范数和Frobenius范数,vF,分别。 我们用旋转矩阵RSO(3)或旋转向量u=θu表示旋转,其中θ和u分别是旋转的角度和单位这两个表示是由Rodrigues公式相关R= Exp(u),u= Log(R)。(一)LogRjRujuk.(6)在下文中,我们列出一些重要的术语:• 节点和边:多个绝对旋转成对地相互关联,因此底层结构可以用图表示。在这种情况下,节点表示未知的绝对旋转,而边表示已知的成对约束。• 邻居:当两个节点通过边连接时,它们是彼此• 固定节点和族:一旦一个节点被初始化为绝对旋转,我们称之为固定的。族是指所有固定节点的集合。初始化的目标是使所有节点都包含在族中。• 基本节点:在初始化过程中,可以随时选择一个固定节点作为基本节点如果满足一定的条件,这是• 一致三元组:节点i、j和k形成一致三元组,当且仅当输入相对旋转满足dchord(Rin,RinRin)<,(7)其中,循环阈值被称为循环阈值。满足Eq.(7)在较小的压力下被描述为如果一个三元组包含一个或多个离群值边缘,则它很可能是不一致的,并且不满足等式(1)。(七)、• 三元组支持的数量:假设一个基节点有几个非家族邻居,包括节点i。邻居i的三元组支持的数量是指由基节点、节点i和基节点的另一个邻居形成的一致三元组的数量。一个简单的例子如图所示。1.一、[11]第12话,你是我的朋友。15779联系我们← −←← −NB1 2 3 4 567非固定节点固定节点内边缘离群边缘4. 方法所提出的方法包括三个步骤:1. 通过以分层方式构建生成树来鲁棒地初始化绝对旋转如果所有边的内点匹配数都是已知的,我们可以选择将其合并到初始化中。2. 过滤不符合初始解的边缘,以尽可能多地去除离群值。3. 使用非线性优化的迭代局部细化为了使初始化步骤更容易理解,我们首先在4.1节中描述简化版本,然后在4.2节中描述完整版本。我们将在4.3节和4.4节分别解释边缘滤波4.1. 分层初始化(简化版)我们通过构造图的生成树来初始化绝对旋转。当我们逐渐扩展树时,我们希望尽可能避免更多的离群边,因此我们首先开始添加最可靠的边。在我们的方法中,有两种模式的树扩展:(1)基于三重支持,或(2)通过单旋转平均。首先,我们设置一个特定的整数阈值s(称为支持阈值),并检查基节点是否有任何具有s或更多三元组支持的非家族邻居。如果是这样,我们将这些邻居添加到家族中,并通过从基节点(Rest)传播来获得它们的旋转(Rest),即R est ← R in R est.(八)51 23 467家庭= {1,2,3,4}图1.在该示例中,基节点(4)具有三个非家庭邻居(5、6和7)。我们检查三重态一致性(Eq.(7))而不直接推断异常值边缘:节点5具有两个三元组支持,即,(3,4,5)和(4,5,7)中,6具有一个支架,即,(4、6、7),并且7具有三个支撑件,即,(3,4,7),(4,5,7)和(4,6,7)。图2.在这里,无论选择哪个家族成员作为基节点,我们都不能形成一致的三元组。在这种情况下,我们让每个家庭成员为他们的非家庭邻居投票,并将投票最多的邻居(节点6)添加到家庭中在从节点1,3和5传播的候选旋转中,我们选择最接近其鲁棒平均值的旋转(使用[40]获得)。算法1:分层搜索(简化)1ss init,family,newFamily;2 将邻居最多的节点添加到族中,newFamily,并将其旋转设置为identity;3 虽然并非所有节点都在族中,NNBB4当newFamily不为空时,例如,如果图中s= 21,我们将在家族中添加节点5和7,而不是6。 如果家族的所有非家族邻居的三元组支持数少于s,则更新s 对于下一个基节点,选择具有最多个支持的非族邻居之后我们重复同样的传播过程另一种扩展树的方法是通过sin添加一个节点。当家族的所有非家族邻居具有零三元组支持时的角度旋转平均 在这种情况下,我们让每个5678910端部选择newFamily的一个成员作为基节点,并将其从newFamily中删除;从基节点到它的非族邻居使用等式(8),并将那些具有s个或更多三元组支持的节点添加到family和newFamily中;如果至少有一个节点添加到newFamily中,则ss init;端家庭成员投票给他们的非家庭邻居,得票最多的一个被添加到家庭。此节点也将成为下一个基。为了确定它的旋转,我们首先通过从投票给它的家族节点传播来获得候选旋转。然后,我们使用[40]中的鲁棒单旋转平均方法对这些旋转进行平均。最后,将最接近结果的候选旋转分配给节点。图2示出了示例。在每次迭代中,我们的初始化算法决定在上述两种树扩展模式我们首先尝试通过调整支持度阈值s来基于三元组支持度进行扩展,当s= 0时,我们通过投票和单次旋转平均来扩展每次向族中添加节点时,我们将s重置为初始值。Alg. 图1总结了该过程,图3显示了一个玩具示例。1112131415161718192021end对于下一个基节点,选择具有具有s个或更多支持的最多非家庭邻居;如果基本节点具有至少一个具有s个或更多支持的,则将基节点添加到newFamily。其他s s1;端如果s=0,则让每个家庭成员投票给他们的非家庭邻居,将投票最多的一个添加到family和newFamily,并通过单次旋转平均来设置其旋转(见图2)。2);s ←sinit;端非固定节点固定节点基本节点内边缘离群边缘15780←← −← −非固定节点固定节点基本节点内边缘生成树边(一)(二)(三)765812412312412391110112391110(iv)(v)(vi)(vii)12412391110765812412391110115121431311765811524121431391110图3.[上]一个玩具的例子。我们展示了s=2和固定循环阈值的初始化算法的步骤(i) 首先,我们选择具有最多邻居的节点(节点1)作为基节点,并将其旋转设置为identity。此节点是族的通过使用Eq.(8),它的邻居得到试探性的旋转。对于每个邻居,我们计算三元组支持的数量(即,支持它的其他邻居的数量),如果它有s个或更多的支持,我们将它添加到族中。在本例中,节点3由另外两个邻居(节点2和4)支持,并且它是唯一添加到族中的节点节点3成为下一个基节点,我们固定它的旋转。此外,边(1,3)变成生成树边。(ii) 我们通过从新的基节点(节点3)传播,重复相同的过程。唯一具有s个或更多支持的非族邻居是节点11,因此我们固定其旋转,将其添加到族中,并选择其作为下一个基节点。(iii) 我们从新的基节点(节点11)传播出去,但是没有邻居有足够的支持。 在这种情况下,我们更新s S1,并检查每个家庭成员有多少邻居有s或更多的支持:节点1有两个(节点2和4),节点3有四个(节点2,4,9,10),节点11有两个(节点9和10)。由于节点3拥有最多,因此它成为下一个基节点。请注意,在完整版的算法中,一旦基节点发生变化,我们就进行计数,并存储结果以供重用(更多细节见4.2节)。(iv) 我们从新的基节点(节点3)传播出去,具有s(= 1)支持的非家族邻居是节点2、4、9和10。这四个节点将添加到族中,并且它们的旋转是固定的。(v) 在家庭中有节点1-4和9-11,它们的非家庭邻居都没有一个支持。在这种情况下,每个家庭成员都为他们的非家庭邻居投票,得票最多的人被添加到家庭中。该节点(节点12)也成为下一个基节点。为了确定它的旋转,我们首先使用[40]对从节点1,3和11传播的候选旋转进行平均。然后,最接近结果的候选旋转被分配给节点12,并且对应的边成为生成树边。在这个例子中,让我们假设它是边(1,12)。(vi) 每次将节点添加到族中时,我们将s重置为初始值(s2)。然后,我们重复从基节点传播出去的过程,并将具有s个或更多支持的邻居添加到族中。在这个例子中,节点12有三个非家族邻居(节点13、14、15),它们都有s个支持。因此,它们三个都将添加到族中,并且它们的旋转是固定的。(vii) 对于家族中的节点1-我们更新s s1并再次检查,但没有一个有单一的支持。现在,和步骤(v)一样,我们让每个家庭成员为他们的非家庭邻居投票,并添加得票最多的一个。重复此过程将节点5-8逐个添加到族中。最后,所有节点都在族中,并且它们的旋转是固定的。该算法返回所有节点的估计旋转。7658 1152412143139111015781i← i+1,←i;s← s−1,i←1,←i;联系我们← ××4.2. 分层初始化(完整版)上一节中描述的简化算法通过首先添加最支持的边来构造生成树在完整的版本中,我们考虑两个方面:循环阈值Eq。以及可选地,有效2D-2D对应的数量。我们强调了两个版本之间的差异在Alg。二、在简化版本中,三元组的一致性完全取决于我们设置的单个阈值在完整版本中,我们设置了多个阈值(阈值1,阈值2,.- 是的- 是的,以升序表示算法2:层次结构(完整版)1ss init,family,newFamily;2 将邻居最多的节点添加到族中,newFamily,并将其旋转设置为identity;3 确定环路阈值V1、V2、.. . ,m;4 i←1,←i;5n表零维n的3D数组ms;(n是节点数,m是循环阈值数,s是支持阈值)6 虽然并非所有节点都在族中,7当newFamily不为空时,8选择newFamily的一个成员作为基节点命令)并在它们之间自适应地切换。 具体地说,我们从最小(最严格)的阈值开始,逐渐转向更大(不太严格)的阈值。因此,建立了以下层次结构:1. 具有许多三元组的邻居节点支持小于10并将其从newFamily中删除;从基节点到它的非族邻居使用等式(8)并将具有s个或更多三元组支持的那些添加到family和newFamily中;更新基本节点的snTable首先,将这些元素添加到家庭中11如果至少有一个节点添加到newFamily,则12s ←sinit,2. 那些在大范围内有许多支持的是接下来添加的。3. 在小的i下有少量支撑的是接下来添加的。4. 那些在大范围内支持较少的人最后加入与简化版本相比的另一个变化是,我们每次尝试时都会存储支持的邻居的数量1314的端15端从基节点传播出去该数据存储在支持的邻居表(SN表)中,该支持的邻居表是一个3D数组,其维度对应于基节点索引、阈值索引和三元组支持的数量我们组织该表,使得位置(x,y,z)处的条目对应于在第y个阈值下具有z个或更多支持的基节点x的非家族邻居的数量。请注意,每次我们更新当前基节点的SN表时,我们都会为所有y= 1,2,. . .,m和z =1,2,. - 是的- 是的 ,sinit。这在Alg的第10行中完成二、维护这个表的优点是,我们可以重用它来迅速找到任何给定s和n的支持邻居数量最多的节点(Alg. 2)。当我们必须在s递减后选择下一个基节点时,这个操作是必要的。虽然SN表中的数据有时可能会过时(因为一些非家庭邻居后来可能会变成家庭成员),但我们至少可以避免必须重复评估所有家庭成员的邻居(即第11行的Alg. 1)。1617181920212223242526272829端部如果基节点具有至少一个非家庭邻居,s或更多支持,则将基节点添加到newFamily。其他如果我是那么其他端端如果s=0,则让每个家庭成员投票给他们的非家庭邻居,将投票最多的一个添加到family和newFamily,并通过单次旋转平均来设置其旋转(见图2)。2);s ←sinit,端我们的方法还可以无缝地集成有效的2D-2D对应的数量的知识这可以通过对Alg的最小修改来完成2:设d1,d2,.. .,d,k(按降序)是我们为有效2D-2D对应的数量然后,我们运行外部循环(第6当第26行中总投票数变为零时,我们将s、SN和SN表重置为初始状态,将对应阈值切换到下一个(d2)并继续。该过程确保最后添加具有非常少的有效对应的边。实施详情:1. 在Alg的第5行中。1和Alg.2、如果newFamily有多个成员,我们选择邻居最多的一个作为基节点。这是因为我们希望首先添加连接良好的节点以最小化漂移。2. 在本文的所有实验中,我们固定sinit= 10,d1= 5,d2= 0。3. 为了获得良好的性能,循环阈值应反映内围边缘的噪声水平。为此,我们使用一个简单的启发式方法来确定它们在Alg的第3行中的值2:对于每个边(i,j),我们对节点i和j的最多10个公共邻居进行采样,形成多达i←1,←i;i←1,←i;在snTable中,查找拥有最多具有s个或更多个三元组支持的非家庭邻居在当前阈值下。选择它作为基节点;15782我(R.Σ关于我们----R对齐我我JKJK”。2n我我对齐JKJKJJKKK.ΣJK∈−10个三联体(i,j,k)。我们计算来自所有边的所有三元组的循环误差(7),并且仅收集以下那些5. 结果我们将我们的方法与以下方法进行比较:R-1.一、然后,我们将循环阈值设置为所收集错误的第10、20和30百分位GoDec1 [2,3],Eig-IRLS2[3],IRLS-10132[12],MPLS4[五十四]4.3. 边缘滤波在得到初始解(Rest,i= 1,2,. - 是的- 是的 ,n),我们接下来在优化解决方案之前过滤全旋转图中的潜在离群边缘。这是通过检查每条边是否符合初始解来完成的。具体来说,我们将edge(j,k)视为离群值,如果满足以下条件,则将其从进一步的操作中[13]第 15自视图实施以来,Hybrid RA中的图滤波(VGF)还没有公开发表,我们自己复制了这一部分。请注意,这部分仅适用于所有边的2D-2D对应关系。所有的方法都在MATLAB中实现,除了混合RA是用C++编写的。我们在配备英特尔第四代i7 CPU(2.8 GHz)的笔记本电脑我们使用两个误差度量来评估准确性n= min三维弦> τ,(9)⊤Rin,R estRest1天。Rgt,RestRnΣ,(13)其中τ是某个阈值(在本工作中我们设置τ= 1虽然该过滤步骤通常增强了针对θ=min。,1天。Rg t,Res tR2。(十四)中等离群值比率(<0. 3),我们发现它有时会降低精度较高的离群值比率。因此,当我们认为离群值比率过高时,我们跳过这一步。在实践中,我们假设这是当来自所有采样三元组的环路误差的中值大于1时的情况(参见第4.2节的实现细节3)。4.4. 局部细化给定初始解和过滤后的约束在 对于(j,k)滤波边缘),我们使用[12]中提出的优化方法执行迭代局部细化。下面,我们简单总结一下这种方法。这里的目标是找到最优更新,使得更新后的解更好地符合约束,即,Rin=. 这是我的错。是的。(十)它们分别表示在将估计的旋转与地面实况对准之后的最优均值和RMS误差旋转R在等式中对 齐。(13)和(14)可以通过分别在L1和L2范数下求解单次旋转平均问题来获得[33,35]。5.1. 合成数据对于各种因素的受控研究,我们在多个设置中运行Monte Carlo模拟:我们以循环顺序生成n个随机旋转,并获得所有可能对的p%的相对旋转。边的建立如下:首先,我们连接所有连续的节点(即,节点1 2,23,...,n1)。然后,我们连接那些由一个节点(即)分离。节点1 3,2 4,...,n11,n2),以及之后,由两个节点、三个节点等分隔的那些向前。 我们继续这个过程,直到p%连接到重新排列它,取两边的Log(1),得到Log. Res tRinRes t=Log. 我知 道了。(十一)总数这导致所有节点以滑动窗口的方式连接到它们的本地邻居。接下来,q%的边缘变为异常值,即,随机相对旋转假设更新很小,我们可以使用方程中的(6)在右边,并获得我们排除了相邻节点之间的边,使得每个节点至少有两条内围边。最后,所有边缘都东部科技 英语中受N(0,σ2)扰动,且它们的顺序是随机的。这些LogRjRjkRkuj−uk,(12)其中,uj和uk是Rj的旋转向量,k,分别。 由于等式的左侧 (十二)已知,将所有过滤边缘的这些方程叠加,得到线性方程组,我们使用线性代数库来求解该线性方程组我们更新旋转,即Rest←Rest <$Ri 对于所 有的i ,把 它们插回 方程。(12)和边缘被用作旋转平均算法的输入通过将n、p、q、σ设置为以下值之一来配置模拟: 一百两百 旋转, p=50,20%,q= 0,5,10,...,50%,σ= 5,10度。对于每个设置,我们生成100个独立的数据集。图图4和图5分别显示了100次和200次旋转的结果我们看到MPLS和HARA是最好的两i i执行方法,特别是在高离群值比率下。1i=1对齐Raligni=1θ157832重复相同的过程,直到收敛。 在行动实践上如[12]中所示,使用IRLS方法和101此外,为了减少算术运算的总数,所有旋转(绝对和相对)都被参数化为四元数。有关更多详细信息,请参阅原始工作[12]。1 http://www.diegm.uniud.it/fusiello/demo/gmf/2代码由[ 3 ]的作者提供。3http://www.ee.iisc.ac.in/labs/cvl/research/旋转平均法/4https://github.com/yunpeng-shi/MPLS5https://github.com/AIBluefisher/GraphOptim15784R-GoDecEig-IRLSIRLS-L0.5MPLSHARAR-GoDecEig-IRLSIRLS-L0.5MPLSHARAn = 100,p = 50%,σ = 5度10.90.80.70.60.50.40.30.20.1n = 100,p = 50%,σ = 10度21.81.61.41.210.80.60.40.2n = 200,p = 50%,σ = 5度10.90.80.70.60.50.40.30.20.1n = 200,p = 50%,σ = 10度10.90.80.70.60.50.40.30.20.1000.10.2 0.3 0.40.5异常值比率000.1 0.20.3 0.40.5异常值比率000.10.2 0.3 0.40.5异常值比率000.1 0.20.3 0.40.5异常值比率R-GoDecEig-IRLSIRLS-L0.5MPLSHARAR-GoDecEig-IRLSIRLS-L0.5MPLSHARAn = 100,p = 20%,σ = 5度7654321n = 100,p = 20%,σ = 10度10987654321n = 200,p = 20%,σ = 5度21.81.61.41.210.80.60.40.2n = 200,p = 20%,σ = 10度21.81.61.41.210.80.60.40.200 0.1 0.2 0.3 0.4 0.5异常值比率000.1 0.20.30.40.5异常值比率000.1 0.2 0.3 0.4 0.5异常值比率000.1 0.20.30.40.5异常值比率图4.模拟结果(100次旋转):我们在等式中绘制最佳平均误差θ1。(13)。 对于密集图(p=50%),IRLS-101、MPLS和HARA表现类似。对于稀疏图图5.模拟结果(200次旋转):我们在等式中绘制最佳平均误差θ1。(13)。IRLS-101、MPLS和HARA执行2类似地,除了对于稀疏图(p=20%),IRLS-12(p=20%),MPLS和HARA对离群值的鲁棒性高于其余的,MPLS在高离群值比率下稍好。5.2. 真实数据不使用内点特征匹配的数量:我们评估了以下真实世界数据集的性能:1DSfM数据集6[62],与[12]中一样,只有那些地面实况可用的相机才用于评估精度,即使那些没有地面实况的相机仍然包括在旋转平均的输入中。表1报告了结果。它表明,在大多数情况下,HARA以相当的速度实现了最先进的精度。使用内点特征匹配的数量:对于本实验,我们仅使用1DSfM数据集6[62],因为其他数据集不提供2D-2D对应性。特征匹配仅适用于具有地面真实值的相机,因此我们忽略其余部分。为了检查对应关系的有效性,我们对L1最佳角度再现误差的正弦值设置阈值(0.01)[37,39]。表2给出了结果。它表明,HARA实现了最先进的结果,有或没有纳入内点匹配的数量。6http://www.cs.cornell.edu/projects/1dsfm/7http://vision.soic.indiana.edu/projects/disco/2在高离群值比率下表现优于其他两个。6. 限制我们的方法的主要限制是,它是敏感的参数,我们设置,特别是循环阈值。目前,我们使用基于采样环路误差的简单启发式方法确定它们的值(第4.2节)。我们注意到,在一些真实的数据集中,这种启发式的微小变化会在初始化精度中引入不可忽略的波动。在未来的工作中,我们计划用一个更强大和可靠的方法来取代这种启发式。7. 结论我们提出了HARA,一种用于鲁棒多旋转平均的分层方法对于旋转图的鲁棒初始化,我们逐步建立一个基于三元组支持层次结构的生成树也就是说,由许多强三元组支持的边比具有较少或较弱三元组的边更这种方法显著降低了异常值对初始解的影响,使我们能够在非线性优化之前过滤异常值。此外,我们表明,我们可以选择性地将有效的2D-2D对应的数量的知识集成到我们的方法中。一项广泛的评估表明,HARA达到了最先进的结果。平均误差(度)平均误差(度)平均误差(度)平均误差(度)平均误差(度)平均误差(度)平均误差(度)平均误差(度)15785数据集R-GoDec [3]Eig-IRLS [3]IRLS-1012 [12个]MPLS100 [五十四][13]第十三话不含VGF†HARA w/o#Inlier匹配名称#视图%边缘θ1θ2时间θ1θ2时间θ1θ2 时间θ1θ2时间θ1θ2 时间θ1θ2 时间ALM627 百分之四十九点五6.3 16.34s3.9 12.221s4.2 12.627s3.7 12.129s4.3 12.7–3.5 11.545sELS24766.8%4.1 10.71s3.3 11.53s2.9 10.34s2.8 10.97s3.1 10.5–2.17.47sGDM742 百分之十七点五51.3 64.817s 65.8 74.229s 37.5 62.312s 40.7 68.774s 44.7 60.0–43.8 72.526sMDR394 百分之三十点七10.2 18.51s 10.9 22.45s7.0 17.14s5.2 14.75s6.4 16.2–4.8 14.514sMND474 百分之四十六点八6.2 18.43s1.9 11.27s1.57.410s1.23.99s1.56.9–1.12.120sND155368.1%5.2 15.56s3.6 14.816s3.5 14.628s2.7 13.527s3.5 14.7–1.66.355sNYC37629.3%6.49.96s3.88.25s3.07.03s3.08.27s3.27.4–2.97.710sPDP354 百分之三十九点五11.4 22.02s4.09.38s4.18.14s3.58.24s5.3 10.4–3.47.49sPIC2508 百分之十点二24.8 40.0150s 81.0 91.2687s6.8 18.6467s4.6 14.6295s7.0 20.1–4.4 13.1289sROF1134 百分之十点九12.6 19.561s3.4 10.452s3.1 10.212s2.8 10.013s3.19.2–2.78.531sTOL508 百分之十八点五6.4 13.18s4.5 10.710s3.99.02s4.09.46s4.4 10.5–4.3 10.013sTFG5433 百分之四点六42.1 54.2722s 59.4 67.1833s3.69.8976s4.5 10.8一九四五年代15.1 17.8–3.5 10.7925sUSQ930 百分之五点九12.0 23.727s6.7 12.822s9.3 22.210s6.3 14.711s9.3 21.7–6.0 12.39sVNC918 百分之二十四点六16.1 36.925s8.6 28.427s8.3 27.528s6.2 18.253s8.4 27.2–6.1 18.1 47步枪YKM45826.5%6.1 11.37s3.89.48s3.58.43s3.59.27s3.58.4–3.06.916sND2715 百分之二十五点三2.7 10.010s1.24.013s1.13.513s1.14.012s1.13.5–1.35.523sACP463 百分之十点七0.81.26s1.11.74s1.21.71s1.42.02s1.21.7–1.21.77sARQ5530 百分之一点五29.7 56.5 1111s 70.1 79.7小行星48944.07.1173s3.26.3118s3.96.9–3.66.8137sSNF7866 百分之零点三内存不足77.3 87.33.8h3.64.2180s4.45.5154s4.36.2–3.64.244sθ1(度):等式中的最佳平均误差θ2(deg):等式(13)中的最佳RMS误差在等式(14)中,%边缘=#边缘/#可能的视图对,以%计。由于MPLS的不确定性[54],我们报告了五次独立运行的中位数混合RA [13]的计算时间不包括在比较中,因为它是唯一用C++实现的方法。表1. 在不知道2D-2D对应关系的情况下对真实数据集的结果:对于所有数据集,HARA都能给出更好或与最新技术水平相当的结果。有趣的是,对于SNF数据集,它所花费的时间比其他数据集少得多。MPLS [54]的结果大多与我们的竞争,除了ELS,ND1,TFG和SNF数据集,HARA的表现明显更好。我们在没有视图图过滤的情况下运行混合RA [13],因为这需要有效的2D-2D对应的数量。 结果这个与IRLS-101[12]相比,该方法在精度方面没有提供太多增益,即使它执行了额外的全局优化2在局部细化之前事实上,混合RA在TFG数据集上的表现比IRLS-101差得多。2数据集IRLS-1012 [12个]MPLS100 [五十四][13]第十三话不含VGF†[13]第十三话关于VGF†HARA w/o#内点匹配带有#inliermatches的名称#视图 %边缘θ1θ2 时间θ1θ2时间θ1θ2 时间θ1θ2 时间θ1θ2 时间θ1θ2 时间ALM577百分之五4.0 12.428s3.7 12.024s4.3 12.8–3.0 10.2–3.5 11.541s3.4 11.040s15786十八点四ELS227百分之七十八2.8 10.12s3.0 11.76s3.09.9–2.17.1–2.17.28s1.84.86sGDM677百分之二十点九37.4 62.28s 40.7 68.681s 34.5 55.3–39.9 68.7–44.1 72.523s 44.3 72.816sMDR34140.7%6.7 16.74s5.1 14.44s6.3 15.8–4.4 13.1–4.8 14.513s4.8 14.811sMND450百分之五十一点八1.57.46s1.23.98s1.56.9–1.12.2–1.12.121s1.12.118sND155368.1%3.5 14.629s2.8 13.630s3.5 14.7–1.76.1–1.66.361s1.55.944sNYC332百分之三十七点四3.17.13s3.18.27s3.47.8–3.07.1–2.97.88s2.65.87sPDP338百分之四十三点三4.18.24s3.58.24s5.2 10.3–3.16.4–3.57.88s3.36.67sPIC2152百分之十三点四6.2 17.04194.7 14.6254s6.3 18.6–4.3 12.1–4.1 11.3 269s4.0 11.3 247sROF1084百分之十一点九3.1 10.216s2.89.713s3.19.4–2.56.7–2.78.730s2.57.625sTOL472百分之二十一点四3.98.92s4.09.44s4.4 10.4–4.09.4–4.3 10.08s4.08.911sTFG5058百分之五点三3.58.9 881s5.3 11.1小行星14664.09.8–5.3 11.8–3.5 10.1 九四八式3.49.6 902sUSQ789百分之七点九6.7 14.25s6.2 12.97s7.9 17.0–6.6 14.8–5.9 11.210s5.8 10.89sVNC836百分之二十九点六8.4 27.532s6.2 18.259s8.4 27.1–6.3 18.0–6.2 18.154s6.2 18.152sYKM437百分之二十九点一3.58.42s3.69.44s3.68.4–3.9 11.8–3.06.911s3.4 11.212sθ1(度):等式中的最佳平均误差θ2(deg):等式(13)中的最佳RMS误差在等式(14)中,%边缘=#边缘/#可能的视图对,以%计。由于MPLS的不确定性[54],我们报告了五次独立运行的中位数混合RA [13]的计算时间不包括在比较中,因为它是唯一用C++实现的方法。表2.了解有效2D-2D对应数量的真实数据集上的结果:性能最好的方法是混合RA [13](
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Android圆角进度条控件的设计与应用
- mui框架实现带侧边栏的响应式布局
- Android仿知乎横线直线进度条实现教程
- SSM选课系统实现:Spring+SpringMVC+MyBatis源码剖析
- 使用JavaScript开发的流星待办事项应用
- Google Code Jam 2015竞赛回顾与Java编程实践
- Angular 2与NW.js集成:通过Webpack和Gulp构建环境详解
- OneDayTripPlanner:数字化城市旅游活动规划助手
- TinySTM 轻量级原子操作库的详细介绍与安装指南
- 模拟PHP序列化:JavaScript实现序列化与反序列化技术
- ***进销存系统全面功能介绍与开发指南
- 掌握Clojure命名空间的正确重新加载技巧
- 免费获取VMD模态分解Matlab源代码与案例数据
- BuglyEasyToUnity最新更新优化:简化Unity开发者接入流程
- Android学生俱乐部项目任务2解析与实践
- 掌握Elixir语言构建高效分布式网络爬虫
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功