Skip to content

训练损失收敛情况 #19

Description

@shuqiao24

感谢你的提问。

1)关于相机内参
训练和测试阶段的相机内参是可以不同的,这在设计上是允许的,也是常见设置(训练使用合成数据内参,测试使用真实相机内参)。
但需要注意:推理阶段使用的相机内参必须与测试图像严格对应,否则会直接导致位姿估计出现明显偏差。

2)关于 depth_scale
这里设置为 0.1 主要是为了提高深度图的量化精度。
在以 uint16 格式存储时:

  • depth_scale = 1 → 分辨率为 1 mm
  • depth_scale = 0.1 → 分辨率为 0.1 mm

更小的 depth_scale 可以保留更细腻的深度信息,通常对位姿估计更有利。这个参数本身一般不会导致明显的位姿偏差问题。

3)关于你当前的位姿偏差问题
目前提供的信息还比较有限,比较难直接判断具体原因。可以考虑从以下几个方面排查:

(1)相机内参是否正确
请重点检查推理阶段使用的内参是否与测试数据完全一致(包括 fx, fy, cx, cy)。这是最常见的问题来源之一。

(2)渲染数据设置
如果你的物体是金属/弱纹理物体,建议在数据生成时开启:

  • 随机基础颜色(base color)
  • 金属度(metallic)和高光(specular)随机化
    否则模型容易过拟合单一外观,影响泛化。

(3)对称性问题
部分物体可能存在旋转对称性(例如近似二阶旋转对称)。这种情况下,即使视觉上“看起来对齐”,数值误差也可能较大。
建议检查 HCCE 编码的预测结果(例如可视化编码或统计错误率),判断是否存在对称性引起的歧义。

(4)训练是否充分
默认的 50000 步在大多数情况下是够用的,但如果数据分布较复杂,或者是新数据集,也可以尝试继续训练或观察 loss / 编码误差是否已经收敛。

如果方便的话,建议补充以下信息,有助于进一步定位问题:

  • 训练过程中的日志(loss 或编码误差变化)
  • HCCE 编码的可视化结果
  • 测试结果示例(预测 vs GT 对比)
  • PBR 渲染生成的训练数据图像(RGB)

PBR 渲染图像可以帮助判断渲染质量、材质设置以及是否存在明显的 domain gap 问题。

额外地,提供一个正确的效果图:

Image

Originally posted by @WangYuLin-SEU in #12

尊敬的作者您好!
我正在使用贵团队开源的 HCCEPose 代码,在 ITODD 数据集的 train_pbr 数据上训练单个物体。训练配置基本采用原论文代码中的默认设置:batch size 为 24,学习率为 2e-4,计划训练约 50000 次迭代。
训练初期 loss 下降很快,但经过几百至几千次迭代后,日志中的 front/back surface loss 长期在 0.2~0.3 左右波动,下降速度明显变慢。请问在 ITODD 上完成约 50000 次迭代后,front loss、back loss、mask loss 以及 total loss 通常大约会收敛到什么范围?
此外,如果 front/back loss 长期保持在 0.2~0.3,这是否属于正常现象,还是说明训练或数据预处理可能存在问题?
感谢您的帮助!

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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions