非了说。 2024-03-10 10:52 采纳率: 0%
浏览 108
已结题

ORB SLAM3双目稠密建图

img

img

img


在使用orb slam3进行稠密建图时,建图过程是使用elas计算双目视差,再转换为深度图得到深度,计算出点云的三维坐标。我使用kitti数据集就没有出现这样的问题,如上图1。但是在自制数据集的.bag上运行,就会在点云地图里总是有一些稠密的点在上方(如图二、图三),请问这是因为什么啊?
以下是为双目相机的参数文件。

img

  • 写回答

5条回答 默认 最新

  • 专家-赤兔[在线] 全栈领域优质创作者 2024-03-10 10:54
    关注

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

    在ORB SLAM3中使用自定义数据集进行稠密建图时,你遇到的问题可能与以下几点有关:

    1. 相机参数不准确:从你提供的配置文件MYNT_D_1000_Q.yaml中可以看到相机的内参(fx, fy, cx, cy)和立体基线bf。如果这些参数与实际使用的相机设置不符,将会导致深度估计错误,从而在生成点云地图时出现异常密集区域。请检查并确保这些参数是经过正确标定得出的。

    2. 视差计算问题:ELAS算法在处理不同场景或光照条件下的图像对时可能会有不同的表现。如果你的自制数据集中存在较强的光照变化、运动模糊或者纹理缺失等现象,这可能导致视差计算不准,进而影响到深度图和点云的质量。

    3. 深度阈值设置不当:ThDepth(第37行)设置了深度图的有效范围,超出这个范围的深度值将被丢弃。如果该值设置过小,可能会导致距离较远的点无法出现在点云中;若设置过大,则可能引入噪声或误匹配点。根据你的描述,上方出现稠密点可能是由于ThDepth设置不当或者是深度映射因子(DepthMapFactor)引起的,需要根据实际情况调整这两个参数。

    4. 立体校正问题:尽管你没有提供立体校正参数(LEFT.K, LEFT.D, LEFT.R, LEFT.P等),但如果双目相机未做适当的校正或者校正参数有误,也会影响最终的深度估计及点云生成。

    5. 帧率不匹配:相机fps设置为30.0(第28行),而实际上如果.bag文件中的图像帧率与之不符,可能会导致ORB特征点匹配不稳定,进而影响深度图和点云质量。

    解决方法:

    • 重新标定相机参数,确保yaml文件中的内参、外参以及立体基线信息准确无误。
    • 适当调整深度阈值和其他相关参数,以适应你的数据集特性。
    • 检查立体校正步骤,确认是否已成功应用正确的校正矩阵。
    • 确保图像帧率与配置文件中设置一致,或者修改配置文件以匹配.bag文件的实际帧率。

    同时,你可以尝试使用其他更为稳健的深度估计方法,比如半全局匹配(Semi-Global Matching, SGM)或者其他优化过的视差估计算法,并观察其效果是否有改善。

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月11日
  • 赞助了问题酬金15元 3月11日
  • 创建了问题 3月10日

悬赏问题

  • ¥20 打开谷歌浏览器使用摄像头进行人脸认证登录,系统提示检测到多个摄像头设备疑似攻击,请重新验证。
  • ¥50 服务器被挂外链急需解决
  • ¥15 C语言方阵最基本的氩气放电等离子体鞘层
  • ¥15 QWebEngineView
  • ¥15 docker启动报错,如何解决?(操作系统-linux)
  • ¥15 c#发送hl7 ZRL_Z22取号信息到消息平台无法解析,如何解决?
  • ¥20 unity如何接入最新的Mimo广告SDK
  • ¥15 zynq板子ps端如何实现sata硬盘存储数据
  • ¥50 关于#stm32ADC##emc静电测试#的问题:stm32 DMA+ADC多通道数据,mec静电测试之后通道采集的数据紊乱,有没有清楚能提供帮助的
  • ¥15 求天御6000隔离软件