naurril / SUSTechPOINTS

3D Point Cloud Annotation Platform for Autonomous Driving
GNU General Public License v3.0
785 stars 206 forks source link

有个问题需要请教一下,关于KITTI投影问题。 #123

Open hehualin-tut opened 1 year ago

hehualin-tut commented 1 year ago

我看到您在使用KITTI数据集时的内参矩阵使用的是P2的前三列,其最后一列相对于0号相机的位置关系并没有被用到,但是外参矩阵又左乘了R0_rect,我不太能理解为什么不使用P2的最后一列,是不是因为这样的话内参矩阵就不是3by3的了,但是如果不加上相对于0号相机的偏移的话会造成投影不准确。您有什么解决办法吗,就是把P2最后一列用上,或者说我该如何使用3by4的内参矩阵

naurril commented 1 year ago

可以把p2拆成两个矩阵,p2 = p2[:,0:3] (inv(p2[:, 0:3]) p2)

hehualin-tut commented 1 year ago

我试了下,结果不是一样的吗?一个矩阵左乘它本身的逆不相当于E吗?结果还是P2本身啊

hehualin-tut commented 1 year ago

就是说我现在有两个不同的数据集一个是kitti数据集一个是diar-v2x数据集,后一个数据集是中国的数据集,现在两个数据集点云投影到图像上都有点问题,让我很困扰,不知道是数据本身问题还是代码中的某一些问题所导致的,所以我想请教下。 ps:如果有时间的话,您可以试一试v2x的一小部分数据,看是否会出现我这样的问题 最后,感谢您的工作和您的回答。

naurril commented 1 year ago

我试了下,结果不是一样的吗?一个矩阵左乘它本身的逆不相当于E吗?结果还是P2本身啊

我意思是把p2拆成3×3和3x4两个矩阵,把后面的3x4的部分和r0_rect, tr_velo_to_cam乘到一起去当外参

naurril commented 1 year ago

就是说我现在有两个不同的数据集一个是kitti数据集一个是diar-v2x数据集,后一个数据集是中国的数据集,现在两个数据集点云投影到图像上都有点问题,让我很困扰,不知道是数据本身问题还是代码中的某一些问题所导致的,所以我想请教下。 ps:如果有时间的话,您可以试一试v2x的一小部分数据,看是否会出现我这样的问题 最后,感谢您的工作和您的回答。

kitti的就算是不用p2的偏移,应该也只差几个像素,你说的有问题是差多少

hehualin-tut commented 1 year ago

有的至少差10个像素,并且在前后方向也就是类似于深度方向差的较为明显。不排除是kitti本身问题。