liuyuan-pal/Gen6D

拍摄的物体与GenMOP数据集中的高度相似,但是效果出现较大偏差

Opened this issue · 4 comments

感谢你们团队的努力贡献!我在学习使用时遇到了一些问题。
我对自己的充电头进行了拍摄,然而通过predict.py得到的结果有严重的偏差,如图:
0
0

我注意到GenMOP数据集中有plug_cn这一物体
image

于是我对自己的充电头进行拍摄,并将GenMOP中plug_cn-ref中的文件按照Custom_object中的目录存放,如下:
image
image

database.db是我在colmap上生成的,meta_info.txt是参考custom_object中的流程制作的,Z+的方向我也特别进行了翻转:
image

最后执行predict.py
image

得到最开始展示的结果,
0
对比GenMOP中eval得到的结果:
image

我对这种偏差感到疑惑,特别是在检测上出现这么大的偏差,我在反思是不是哪一步数据处理出现错误。我也不确定在eval.py对GenMOP中的数据进行推理时有没有用到mask中提供的信息。

希望您能给我一些提示和帮助,以及如果后续我想微调detect,或者增加关键点的检测,有没有什么好的建议。再次对你们团队表示感谢!
@liuyuan-pal

你的object_point_cloud.ply有问题
image
如果这里对了的话,reference image应该是物体在中心的。

我也看了之前提到的裁剪的相关问题,这也是因为我点云裁剪不够紧凑导致的吗,以下是我裁剪出来的的点云:
image

@liuyuan-pal

@liuyuan-pal我发现了问题所在,还是我的Z+没有正确设置的原因,这是我参考数据库中GenMOP的meta_info发现的,谢谢

我还想了解一下关于拍照时,相机焦距的倍率会不会对结果产生影响,因为现在手机默认的一倍焦距是广角相机会出现畸变,于是我都是使用二倍焦距进行拍摄,但是即便我按上述修正的meta_info,依然有效果上的差距。所以我提出了这个疑问。

横屏拍摄,一倍焦距
image

竖屏拍摄,2倍焦距
image

你这里看上去还是错的,reference image是不对的。genmop里面因为要align reference和query,里面对坐标系做了一些变换,可能导致这里object point cloud还是不对了。我建议你先尝试一下我给的那个mouse的例子,如果OK,你再试试别的物体。

不用广角模式,手机的焦距可以认为是不变的。这个可能不同手机差异比较大。但是只要我们固定一个倍率拍摄,这个对结果影响不大。因为colmap会自动算一个焦距出来。