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

The results of the ReconstructionSystem usually fail, and registration result is not ideal #1264

Closed
MaxChanger opened this issue Oct 23, 2019 · 7 comments · Fixed by #1292
Closed
Labels

Comments

@MaxChanger
Copy link

I have tested the living room data of redwood in your tutorial. The first time I got a particularly bad result, but when I ran the second time I found that the result was barely acceptable. So I ran it many times, but I got different results every time. How should I understand this problem ?
There are four failed cases:
four_error_result

@theNded
Copy link
Contributor

theNded commented Oct 23, 2019

See #797 #831
Can you try either of [Disable OpenMP] or [Disable joblib]?

@MaxChanger
Copy link
Author

Thanks @theNded, I will check and try it.

@MaxChanger
Copy link
Author

See #797 #831
Can you try either of [Disable OpenMP] or [Disable joblib]?

I try to turn off multithreading by using "python_multi_threading": false , in config/tutorial.json, but did not find obvious improvements.

I did some testing, and then found something interested, I hope you can help me to ensure it.

the command recommend in official tutorial like this:

python run_system.py config/tutorial.json --make --register --refine --integrate

Obviously, we can roughly divide it into two categories, fragment generation and registration.

①  python run_system.py config/tutorial.json --make 
②  python run_system.py config/tutorial.json --register --refine --integrate

After using ① to generate the fragments, we keep the fragments folder unchanged, no matter how many times the ② command is used, the result is almost the same every time.

But once we regenerate the fragments using command ①, the result may be different.

@theNded
Copy link
Contributor

theNded commented Oct 30, 2019

Interesting, can you check if there is any corrupted fragment in your failure reconstruction? You may use this tool to visualize the fragments:
https://github.com/intel-isl/Open3D/blob/master/examples/Python/ReconstructionSystem/debug/visualize_fragments.py

Also, do you have OpenCV installed? There will be an indicator telling you whether ORB+5pt is used in making fragments depending on the existence of OpenCV.

@MaxChanger
Copy link
Author

yes, opencv is installed by conda.

I also use the visualize_fragments.py to show the ply file, but it seems to just open all the .ply files in the fragments folder, and use open3d to visualize them. All ply files can be visualized very well.

And what is the meaning of corrupted fragment? A damaged ply file that cannot be opened?

@theNded
Copy link
Contributor

theNded commented Oct 30, 2019

Ah, I wanted to check if there's any fragment that doesn't make sense. They seem to be correct according to your description. Then the problem should be within registration.

@MaxChanger
Copy link
Author

I agree with your opinion, I also think that because of the registration failed, the final result is not good.
But after my test, I can't find out if the registration itself has a problem (--register --refine --integrate), or in the make fragments stage(--make), as show in #1281

So I don't know what I should do, improve the precision of the registration or optimize the make fragments section.

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

Successfully merging a pull request may close this issue.

2 participants