2401_86401071 2024-07-27 16:21 采纳率: 0%
浏览 5

光束平差法BA优化3D点结果错误一般是哪里的问题?

光束平差法优化数据时候一直有问题,觉得是自己做的数据集有问题,有几个疑惑的地方,希望可以帮忙解答一下,多谢了

1、旋转和平移向量是所有相机与哪一个坐标系的位姿关系?本来我理解的是每个相机与第一个相机的位姿关系,但是这样的话数量就不对了(比如16个相机,就只有15个参数了)

2、三维点坐标是各个相机坐标系下的坐标吗?还是已经完成坐标转换,统一坐标系下的坐标?

比如,我以第一个相机为世界坐标系,那么第一个相机参数(R1、t1、f1、k1_1,k1_2)的R、t是否就是[0 0 0]、[0 0 0]?后面依次是相机2与相机1的位姿关系(即[R2 t2]),相机3与相机1的位姿关系(即[R3 t3])……,这样?

后面的3D点是与前面2D点顺序对应的吗?是转换到同意坐标系下的点吗,还是原始的在各个相机坐标系下的3D点坐标?

补充一下:用的代码是SLAM14讲中的BA_ceres,用他给的数据集(grail.cs.washington.edu)跑出来的结果是对的,但是用了其他的(链接:pan.baidu.com/s/1aVgodL提取码:8z05)运行出来的3D点就不太对。

左图是原始的,右图是BA优化过的

img

  • 写回答

1条回答 默认 最新

  • 专家-司宇[在线] 2024-07-27 16:21
    关注

    引自免费微信小程序:皆我百晓生

    你好,关于你的问题,我将尝试以专家的角度为你解答。你的问题主要集中在光束平差法(BA)优化在3D点云数据中的错误来源以及具体实现细节。特别是在处理不同的数据集时可能遇到的问题,如你所描述的“左图是原始的,右图是BA优化过的”,这也显示了你关注的实际应用场景。

    首先,关于旋转和平移向量的问题,这些向量描述的是相机坐标系与世界坐标系之间的关系。通常,我们会选择一个基准相机作为参考(例如第一个相机),将其设为世界坐标系,其他相机的旋转和平移向量则是相对于这个世界坐标系的。如果你有16个相机,那么你会有15个旋转和平移参数(因为每个相机相对于第一个相机的位姿是独立的,但不需要考虑相机自身内部的旋转或平移)。因此你的理解是正确的。关于相机参数中的R和t,它们描述的是相机相对于世界坐标系的旋转和平移关系,而不是相对于第一个相机的关系。因此,它们并不总是[0 0 0]、[0 0 0]。而是根据实际的相机位置和姿态来确定。

    其次,关于三维点坐标的问题,这些坐标通常是转换到同一坐标系下的点,也就是你所选择的世界坐标系。每个相机在观测到同一个物体时,会在自己的坐标系下生成一套三维点坐标。在进行BA优化时,这些点会被转换到同一坐标系下进行比较和优化。所以,你应该确保你的数据集已经完成了这一步转换。否则,不同相机下的观测点将没有可比性,会导致优化结果不准确。对于你的补充问题中提到的数据集,你需要确认数据集是否已经完成了相应的预处理步骤,特别是坐标转换这一步。同时还需要检查数据集中是否存在异常值或噪声,这些都可能影响BA优化的结果。另外你的代码实现也是关键的一部分,确保你正确地实现了BA算法以及数据处理流程。对于你提到的数据集链接内容有误或损坏的情况,我建议你通过正规渠道下载并检查数据集的有效性。对于使用SLAM14讲中的BA_ceres代码运行正常但使用其他数据集出现问题的现象,这可能是由于数据集本身的差异导致的。不同的数据集可能存在不同的噪声水平、相机标定参数误差等问题,这些因素都会影响BA优化的结果。建议仔细检查数据集的来源和质量并进行适当的预处理和验证以确保其正确性此外我假定你遇到的技术难点可能是由于数据预处理阶段没有正确完成导致的在理解了上述内容后你可能需要更深入地了解你的数据集并对其进行适当的预处理包括去除噪声、异常值等以确保数据的准确性此外还需要确保你的代码实现是正确的包括数据加载、模型构建、优化算法等环节的代码都应该是正确的并且符合你的数据处理流程和数据格式如果可能的话你可以尝试使用一些开源的SLAM实现如ORB-SLAM或者开源的BA库如PCL等进行对比和验证以确认你的代码实现是否正确当然我也注意到你的问题涉及到了一些复杂的数学和编程问题如果你需要更具体的帮助比如需要关于代码实现的建议或者对特定函数的理解我可以尝试提供更详细的解答但是需要注意的是具体的解决方案可能需要针对你的具体情况进行调整如果你能提供更具体的错误信息或者错误数据示例我也许能提供更准确的建议和指导总之对于你的问题我建议你首先确认数据集的质量和预处理情况然后检查你的代码实现最后可以尝试使用开源的SLAM或BA库进行对比和验证希望这些建议能对你有所帮助

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 7月27日