如何添加相机姿态信息以合并来自不同视点的点云

问题描述

我正在从事3D场景重建的项目,但我坚持从不同的角度组合点云。到目前为止,我所得到的是来自CNN的深度图和摄像机姿态,该CNN将视频帧作为输入来预测深度​​和姿态。到目前为止,我已经创建了只有一帧及其深度图的点云,并考虑了相机的固有特性,如下所示:

pixel_x,pixel_y = np.meshgrid(np.linspace(0,image_width-1,image_width),np.linspace(0,image_height-1,image_height))
camera_points_x = np.multiply(pixel_x-camera_intrinsics[0,2],depth_image/camera_intrinsics[0,0])
camera_points_y = np.multiply(pixel_y-camera_intrinsics[1,depth_image/camera_intrinsics[1,1])
camera_points_z = depth_image
camera_points = np.array([camera_points_x,camera_points_y,camera_points_z]).transpose(1,2,0).reshape(-1,3)

相机固有的位置是:

camera_intrinsics  = [[fx 0 cx],[0 fy cy],[0  0  1]]

然后,我尝试根据两个非连续的帧(更确切地说是序列的第一个和最后一个,此处为两个样本first frame last frame)为每个点创建一个单点云,我已经应用了相机外部参数给定的相关旋转和平移。我没有使用预测的预测,而是使用了来自地面真实性的预测(这里是结果in yellow the point cloud from the first frame,in blue the one from the last frame)。我认为将变换应用于点云的顶点是不正确的,因为它们是相交的,而它们应该彼此远离。相反,我应该将其应用于点云的原点,但我不知道该怎么做。

有人可以向我解释我该怎么做吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)