Skip to content

DA3-Streaming 在室内近距离宽视角视频中出现 chunk 内/跨 chunk 多重影和局部错位,请教推荐配置与处理方式 #254

Description

@pxzhang16

你好,感谢开源 Depth-Anything-3 和 DA3-Streaming。

我们正在把 DA3-Streaming 用于一个实时视觉建图实验,输入来自移动设备相机拍摄的室内近距离视频。在测试过程中,我们观察到比较明显的点云多重影/ghosting 现象,想请教这是否属于已知限制,以及有没有推荐配置或处理方式。

使用场景

  • 输入:室内近距离连续视频
  • 原始帧:640x360,16:9
  • 相机视角:对角线约 120°
  • Streaming 配置:重叠 chunk,例如 chunk_size=60、overlap=30
  • 可视化方式:每个 streaming chunk 计算完成后,把 chunk 点云增量加载到网页 viewer 中
  • 额外测试:把原始视频居中裁剪为 480x360,只去掉左右两边,保留上下不变

观察到的现象

将输入从 640x360 裁剪到居中 480x360 后,整体建图质量明显变好,说明宽视角边缘畸变确实对结果有较大影响。

但裁剪后仍然能看到一些多重影问题:

  1. 同一个 chunk 内部可能出现多重影
    在视觉参照物不够充分、局部纹理弱、反光/透明/遮挡较多时,一个真实物体有时会在同一个 chunk 内形成多个相近的表面。

  2. 相邻 chunk 之间仍可能有错位
    我理解 DA3-Streaming 会用重叠区域对相邻 chunk 做整体 Sim3 对齐。但实际误差有时是局部的,例如画面左侧和右侧需要的修正量不同。这样即使整体 Sim3 已经尽力对齐,局部仍会留下双层或多层点云。

  3. 如果可视化时把完整 chunk 点云直接 append,overlap 区域可能被重复显示
    我们目前 viewer 是把每个 chunk 的点云增量加载进去。如果 chunk 点云中包含 overlap 帧,那么同一段画面会被相邻 chunk 显示两次。只要两个 chunk 的空间估计略有偏差,overlap 区域的 ghosting 就会更明显。这个部分可能是我们集成方式的问题,不一定是 DA3 本身的问题。

截图中可以看到,椅子、墙面/桌面等区域会出现明显的重复表面。

已尝试的改进

  • 将 16:9 宽视角输入居中裁剪为 4:3,480x360
  • 只去掉左右两侧,不裁上下
  • 裁剪后结果比原始 16:9 明显更好,但仍然存在局部 ghosting 和跨 chunk 错位

想请教的问题

  1. 这种 chunk 内部多重影、跨 chunk 局部错位,是 DA3-Streaming 在室内近距离宽视角视频中的已知限制吗?
  2. 对于约 120° 对角线视角的相机,是否建议在输入 DA3-Streaming 前先做相机标定和去畸变?
  3. Streaming 模式下,导出每个 chunk 点云时,是否应该只导出该 chunk 的非 overlap 新帧,而不是完整 chunk?
  4. 对室内近距离连续视频,有没有推荐的参数组合?例如:
    • 更大的 chunk_size / overlap
    • 不同的 align_method
    • 更严格的 confidence threshold
    • 不同的 ref_view_strategy
    • 是否建议尝试 scale+se3 而不是 sim3
    • loop correction 相关参数如何设置
  5. DA3-Streaming 当前是否支持,或未来是否计划支持 chunk 之间的局部/非刚性校正?也就是不只用一个整体 Sim3,而是允许局部区域有不同修正。
  6. confidence map 有没有推荐用法,用来过滤、融合或抑制重复的近邻表面?

我们目前的理解

我们现在的理解是:

  • 如果一个 chunk 内视觉约束充分,DA3-Streaming 通常能形成比较自洽的局部点云。
  • 如果局部约束不足,一个 chunk 内部就可能已经出现多重影。
  • 相邻 chunk 之间的整体 Sim3 对齐只能解决全局尺度、旋转、平移误差,不能完全解决局部不同方向的偏差。
  • 如果下游 viewer 把包含 overlap 的完整 chunk 点云直接 append,会进一步放大重叠区域的多重影。

这两张截图是裁剪到 480x360 后的结果,已经比原始 640x360 明显改善,但仍能看到局部重复表面和跨 chunk 错位。

Image Image

想请教开发团队:这种理解是否正确?这类场景更推荐从输入预处理、参数配置、streaming 导出方式,还是后处理融合方面入手改进?

谢谢!

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions