Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

I don't know why the point cloud checked by the DSOviewer is different from the point cloud of the saved output ply file. #63

Open
beepbeep08 opened this issue Feb 24, 2021 · 7 comments

Comments

@beepbeep08
Copy link

I don't know why the point clouds checked by the DSOviewer and the point cloud of the saved output ply file is different.
the point cloud checked by the DSOviewer is perfect, but output ply file is not.
It even seemed that only two points were saved.The number of lines stored and cnt_point(kf->numPoints()) is the same. and I checked output ply file through the point cloud viewer tool Meshlab .
Why is all the data stored so differently? my data have loop closing.The number of lines stored ply file and cnt_point is the same.

please help me.

@mgladkova
Copy link

Hi @beepbeep08. Have I understood you correctly that you are referring to the differences between a pointcloud visualized by DSOViewer and a pointcloud saved in PLY file? If so, please note that DSOViewer filters points with high depth variance for visualization (see arguments in refreshPC function call). I presume if you apply the same thresholds while saving PLY file, your pointclouds would be the same.

@beepbeep08
Copy link
Author

beepbeep08 commented Mar 2, 2021

Hello,@mgladkova. Thanks for answer. I apply the same thresholds while saving PLY file, but Nothing has changed.
PLY file have a 400,000 cnt_point, meshlab visualized only 3~10 point.
run your code with kitti dataset, A pointcloud visualized by DSOViewer and a pointcloud saved in PLY file are same.
Screenshot from 2021-03-02 17-37-38
snapshot00

What else can I do?

@mgladkova
Copy link

mgladkova commented Mar 2, 2021

That's quite strange, indeed, but we can try to debug it together.

  1. When do you call the function to save a pointcloud? In case you need an example, there is one for TUM Mono sequences.
  2. Also can you check you .ply file, in particular value of element vertex entry?

@beepbeep08
Copy link
Author

1.i call the function to save a pointcloud at same section like one for TUM Mono sequences.
and also I call the function in viewer's run() function, before " printf("QUIT Pangolin thread!\n");" line. both saved files is exactly same.

  1. I can check my ply files, the entrys are like this.
    ply
    format ascii 1.0
    element vertex 76668
    property float x
    property float y
    property float z
    end_header
    -1.06285 -0.661688 0.84488
    -0.615564 -0.662488 0.845402
    -0.517721 -0.662663 0.845516
    -0.18226 -0.663263 0.845908
    0.1532 -0.663863 0.8463

  2. I try to visualized the ply file in Unity, and I could see that the stored pointcloud data's central axis strangely, but the details were stored somewhat similar. if you want my ply file, example ply file is here. to visualize in Unity, the file is converted acsii to binary little-endian. this file is original file.
    map_out_final.zip
    it about the 3m length*1m width hallway.

@mgladkova
Copy link

Thank you for the information! I have tried to visualize your map_out_final.ply file in meshlab and I can see a pointcloud of more than 10 points (meshlab reports 76668 vertices). The coordinate system of 3D points is local to the first camera pose, since the latter is assigned to an identity transformation. Nevertheless, in meshlab you can transform the pointcloud using Manipulations tool, which includes rotation, translation and scale of your choice.

@wz8530
Copy link

wz8530 commented Jul 20, 2023

Has anyone solved this problem?

@Richardcvpr
Copy link

感谢您的信息!我尝试在 meshlab 中可视化您的 map_out_final.ply 文件,我可以看到超过 10 个点的点云(meshlab 报告 76668 个顶点)。3D 点的坐标系对于第一个相机位姿而言是局部的,因为后者被分配给恒等变换。尽管如此,在网格实验室中,您可以使用操作工具来转换点云,其中包括您选择的旋转、平移和缩放。

is it possible to solve this problem by modify the code ? or how could i solve this problem?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants