-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Vector3dVector function slow #403
Comments
Yeah it is slow. This is annoying.
Takes around 100ms. Strange thing is, I tested it on a very old version of Open3D and it is blazing fast. We need more time to investigate. |
hello... we encounter the same problem trying to visualize in realtime a PC. But Vector3dVector is really far to slow to do something workable. |
I found some clue.
outputs:
but after the PR #127, it become
However, I haven't found a solution yet. The main purpose PR was to upgrade pybind 2.0 to 2.2. I have compared commits between before and after this PR, but src/Python/py3d.h and src/Python/py3d_eigen.cpp are untouched. I think python binding of open3d need to be optimized in accordance with pybind 2.2. |
Is there anyway we can identify it is a problem of pybind11 2.2 or it's a problem of our implementation? If it is a pybind11 2.2 issue, we should try their latest version or file a bug report on their repo. |
Well, for us vector3dvector is a core feature of open3d. We work a lot with numpies. Not only for visualization but also for example to send realtime scan streams over tcpip to a server. |
Some updates.
|
Hi!, are there some news on this issue? |
The ticket on pybind11 is still hanging: pybind/pybind11#1481 |
Update: We have heard back from Wenzel. The root cause is that we are casting a large vector of small vectors (std::vectorEigen::Vector3d) to python. (The new version of) Pybind11 does checks for all these casts to try to avoid copy. So in our case pybind11 does lots of checks which drag the performance down. There are a couple of workarounds that can help this. We are looking into them and trying to find the best solution asap. |
Thank you for the support! i will test it in the weekend :) |
can we directly install the new version through anaconda? with pip install open3d? or should we build the new version from source? |
before the next release, we'll need to build from source to get the latest version |
Addressed in #657. @VinceDT @ArgosVR @richipower: Please check :) |
When using numpy with |
On same note as @heethesh, the hot fix is to use |
np.float64, it works for me |
Thanks for this great library.
I am using the Vector3dVector function to convert my numpy array of about 200.000 points of xyz rgb data to open3d. The functions takes about 200 ms for setting the points and the colors each. Is there any reason for this quite slow operation or anything I can do about it?
The text was updated successfully, but these errors were encountered: