chensong1995 / HybridPose

HybridPose: 6D Object Pose Estimation under Hybrid Representation (CVPR 2020)
MIT License
412 stars 64 forks source link

关于FPS生成关键点的步骤的问题 #63

Closed makangzhe closed 3 years ago

makangzhe commented 3 years ago

非常感谢您的工作,以及您公布的代码供我们参考学习,下面是我在研究学习的时候遇到的几个问题。

  1. 在我修改了数据集处理脚本linemod.py代码之后,通过下面这行代码加载您预先标注好的3D关键点 pts3d_name = os.path.join(base_dir, 'keypoints',object_name, 'keypoints_3d.npy') 然后乘上真实的旋转和平移,将其投影到2D平面上,得到的2D关键点,发现与您的keypoints_2d.npy 标注的值是不一样的。 如下图,所有的2D关键点都在图片中标注的不准了,类别是小鸭子。

0_0_pts_gt 0_1_pts_gt 下面是我写的投影函数 sendpix2

您能帮我分析一下是什么原因嘛?

2.另外一个问题就是我在Bounding box进行图片可视化的时候,我用的是LINEMOD目录下的,corner.txt(这个可能是运行PVNet时候放进去的,有点忘记了,应该不影响吧,都是同一个ply文件生成的),然后进行可视化的时候。感觉物体没有框进去,如下图,蓝色为GT,绿色是预测的。 11_0_bbx 23_0_bbx 请问这个是不是原图裁切,导致偏移? 还是需要重新生成新的corner.txt?

希望能够得到您的回复与解答,万分感谢!!!

chensong1995 commented 3 years ago

makangzhe 好,

感谢你对我们工作的关注!Linemod 的 3D 数据和 2D 图像之间并不能直接用 p_2d = K * R * P_3d + t 这个投影公式关联起来。请参考 这个文件 从 139 行至 156 行的代码来计算投影关系。

希望这有帮到你!

makangzhe commented 3 years ago

已成功解决,非常感谢您的回答,确实是因为模型没有做对齐操作导致的。