Comments (11)
Ciao @AlexPasqua and @francescofact,
after quite some debugging I rooted the problem in the loading of the *.pcd
file via Open3D. As you probably noticed the points are located in a grid and this is cause the floats seem to be ignored (rounded) on loading:
Loading point cloud from pointclouds/pointcloud_116.pcd using Open3DHandler.
First point cloud points:
0. [-0. 11. 0.]
- [-0. 8. 0.]
- [0. 7. 0.]
- [-0. 8. 0.]
- [-0. 7. 0.]
(In reality the first point is located at -0.20108423 11.055668 0.56653374!)
So what I did was converting your *.pcd
point cloud into a *.ply
file:
import open3d as o3d
pcd = o3d.io.read_point_cloud("pointclouds/pointcloud_116.pcd")
o3d.io.write_point_cloud("pointclouds/pointcloud_116.ply", pcd)
... and this could be loaded and displayed correctly inside labelCloud:
Loading point cloud from pointclouds/pointcloud_116.pcd using Open3DHandler.
First point cloud points:
0. [-0. 11. 0.]
- [-0. 8. 0.]
- [0. 7. 0.]
- [-0. 8. 0.]
- [-0. 7. 0.]
============================================= Loading pointcloud_116.pcd =============================================
Successfully loaded point cloud from pointclouds/pointcloud_116.pcd!
Number of Points: 78011
Number of Colors: None
Point Cloud Center: [-2.76 0.35 0.35]
Point Cloud Minimums: [-96. -18. 0.]
Point Cloud Maximums: [ 57. 195. 25.]
Initial Translation: [ 2.76 -0.35 -263.79]
======================================================================================================================
There is currently no active bounding box to manipulate.
There is currently no active bounding box to manipulate.
Alignmode was changed to False!
Imported 0 labels from labels/pointcloud_116.json.
Loaded 0 bboxes!
There is currently no active bounding box to manipulate.
Intialized widget.
Resized widget.
Showing GUI...
File labels/pointcloud_116.json already exists, replacing file ...
Exported 0 labels to labels/pointcloud_116.json in CentroidFormat formatting!
Loading next point cloud...
Loading point cloud from pointclouds/pointcloud_116.ply using Open3DHandler.
First point cloud points:- [-0.20108423 11.055668 0.56653374]
- [-0.14641869 8.0501413 0.27004918]
- [0.42134565 7.7175632 0.21332707]
- [-0.76665801 8.4111414 0.18340768]
- [-0.14466441 7.9536901 0.12580046]
============================================= Loading pointcloud_116.ply =============================================
Successfully loaded point cloud from pointclouds/pointcloud_116.ply!
Number of Points: 78011
Number of Colors: None
Point Cloud Center: [-3.03 0.33 0.35]
Point Cloud Minimums: [-96.05 -18.34 -0.34]
Point Cloud Maximums: [ 57.49 195.42 25.65]
Initial Translation: [ 3.03 -0.33 -264.82]
I would say this is a bug of Open3D but when running in interactive Python the same code as in labelCloud it suddenly works:
>>> import open3d as o3d
>>> o3d.__version__
'0.15.2'
>>> pcd = o3d.io.read_point_cloud("pointclouds/pointcloud_116.pcd")
>>> pcd.points[0]
array([-0.20108423, 11.055668 , 0.56653374])
You can bypass this problem in shorthand by converting your point clouds into a different file format (like shown above). I will look into the issue with *.pcd
files but am a bit clueless atm. due the same code producing different results depending if is used inside labelCloud or ipython.
from labelcloud.
Hello @ch-sa
On Windows the point cloud is rendered correctly, while on three different linux machines the same point cloud is rendered as sparse points.
from labelcloud.
FYI: @francescofact , @AlexPasqua
This issue seems only to happen after initializing a QApplication
:
import sys
from PyQt5.QtWidgets import QApplication
import open3d as o3d
QApplication(sys.argv)
pcd = o3d.io.read_point_cloud("pointcloud_116.pcd")
print(f"First point: {pcd.points[0]}") # prints "First point: [-0. 11. 0.]"
I opened a bug ticket in Open3D for this:
isl-org/Open3D#4969
You can follow the progress there and until then maybe use a different format.
from labelcloud.
Hi @AlexPasqua,
so how did you get the point cloud in the second picture to load correctly?
Which format are you using and can you provide an example point cloud?
Best,
@ch-sa
from labelcloud.
Thanks for the reply @ch-sa ,
so how did you get the point cloud in the second picture to load correctly?
I didn't manage to load the point cloud correctly, but a colleague of mine did, and I took that screenshot while on a video call with him.
Our setups seem identical, same Ubuntu version (20.04.3 LTS), same python version (3.8.10), same versions of the packages in requirements.txt etc.
Which format are you using and can you provide an example point cloud?
My point clouds are in .pcd
format.
HERE I provide the point cloud depicted in the screenshots in my first comment.
Hope to receive some news soon,
Best
from labelcloud.
I loaded your point cloud and it looks like this:
Is that what you expected? I checked the file and it is a colorless point cloud with 78011 points, which were all loaded by labelCloud:
========================== Loading pointcloud_116.pcd ==========================
Generating colors for colorless point cloud!
Number of Points: 78.011
Point Cloud Center: [-2.76 0.35 0.35]
Point Cloud Minimums: [-96. -18. 0.]
Point Cloud Maximums: [ 57. 195. 25.]
Initial Translation: [ 2.76 -0.35 -263.79]
Successfully loaded point cloud from pointclouds/pointcloud_116.pcd!
================================================================================
If this is what you expected and it is not working like that on your system, it looks like a setup issue. Then please provide the following to help debugging:
- Output of
pip list
orconda list
config.ini
from your project folder.labelCloud.log
or copy the content of your terminal when trying to load the point cloud
from labelcloud.
Is that what you expected?
It's difficult to tell from that point of view, try to load this label (in KITTI format) and zoom to one of the bounding boxes, it the boxes are empty, than it's my same problem. There should be points (specifically in the shape of a cone) within the boxes.
Also, I tried to use a tool called Supervisely, and here the same pointcloud is loaded correctly
Then please provide the following to help debugging:
- Output of
pip list
orconda list
config.ini
from your project folder.labelCloud.log
or copy the content of your terminal when trying to load the point cloud
- Output of
pip list
:
Package Version
----------------------- --------------------
addict 2.4.0
anyio 3.5.0
apturl 0.5.2
argon2-cffi 21.3.0
argon2-cffi-bindings 21.2.0
asttokens 2.0.5
attrs 21.4.0
Babel 2.9.1
backcall 0.2.0
beautifulsoup4 4.10.0
bleach 4.1.0
blinker 1.4
Brlapi 0.7.0
certifi 2019.11.28
cffi 1.15.0
chardet 3.0.4
cheroot 8.6.0
CherryPy 18.6.1
Click 7.0
colorama 0.4.3
command-not-found 0.3
cryptography 2.8
cupshelpers 1.0
cycler 0.11.0
dbus-python 1.2.16
debugpy 1.5.1
decorator 5.1.1
defer 1.0.6
defusedxml 0.7.1
deprecation 2.1.0
distro 1.4.0
distro-info 0.23ubuntu1
entrypoints 0.3
executing 0.8.3
fonttools 4.30.0
httplib2 0.14.0
idna 2.8
importlib-resources 5.4.0
ipykernel 6.9.2
ipython 8.1.1
ipython-genutils 0.2.0
ipywidgets 7.7.0
jaraco.classes 3.2.1
jaraco.collections 3.5.1
jaraco.context 4.1.1
jaraco.functools 3.5.0
jaraco.text 3.7.0
jedi 0.18.1
Jinja2 3.0.3
joblib 1.1.0
json5 0.9.6
jsonschema 4.4.0
jupyter-client 7.1.2
jupyter-core 4.9.2
jupyter-packaging 0.11.1
jupyter-server 1.15.6
jupyterlab 3.3.2
jupyterlab-pygments 0.1.2
jupyterlab-server 2.11.2
jupyterlab-widgets 1.1.0
keyring 18.0.1
kiwisolver 1.4.0
language-selector 0.1
launchpadlib 1.10.13
lazr.restfulclient 0.14.2
lazr.uri 1.0.3
louis 3.12.0
macaroonbakery 1.3.1
MarkupSafe 2.1.1
matplotlib 3.5.1
matplotlib-inline 0.1.3
mistune 0.8.4
more-itertools 8.12.0
nbclassic 0.3.7
nbclient 0.5.13
nbconvert 6.4.4
nbformat 5.2.0
nest-asyncio 1.5.4
netifaces 0.10.4
notebook 6.4.10
notebook-shim 0.1.0
numpy 1.21.5
oauthlib 3.1.0
olefile 0.46
open3d 0.14.1
packaging 21.3
pandas 1.4.1
pandocfilters 1.5.0
parso 0.8.3
pexpect 4.6.0
pickleshare 0.7.5
Pillow 9.0.1
pip 22.0.4
portend 3.1.0
prometheus-client 0.13.1
prompt-toolkit 3.0.28
protobuf 3.6.1
psutil 5.9.0
ptyprocess 0.7.0
pure-eval 0.2.2
pycairo 1.16.2
pycparser 2.21
pycups 1.9.73
Pygments 2.11.2
PyGObject 3.36.0
PyJWT 1.7.1
pymacaroons 0.13.0
PyNaCl 1.3.0
PyOpenGL 3.1.6
pyparsing 3.0.7
PyQt5 5.14.2
PyQt5-Qt5 5.15.2
PyQt5-sip 12.9.1
pyRFC3339 1.1
pyrsistent 0.18.1
python-apt 2.0.0+ubuntu0.20.4.5
python-dateutil 2.8.2
python-debian 0.1.36ubuntu1
pytz 2021.3
pyxdg 0.26
PyYAML 6.0
pyzmq 22.3.0
reportlab 3.5.34
requests 2.22.0
requests-unixsocket 0.2.0
scikit-learn 1.0.2
scipy 1.8.0
screen-resolution-extra 0.0.0
SecretStorage 2.3.1
Send2Trash 1.8.0
setuptools 60.10.0
simplejson 3.16.0
six 1.14.0
sniffio 1.2.0
soupsieve 2.3.1
stack-data 0.2.0
systemd-python 234
tempora 5.0.1
terminado 0.13.3
testpath 0.6.0
threadpoolctl 3.1.0
tomlkit 0.10.0
tornado 6.1
tqdm 4.63.0
traitlets 5.1.1
ubuntu-advantage-tools 27.2
ubuntu-drivers-common 0.0.0
ufw 0.36
unattended-upgrades 0.1
urllib3 1.25.8
wadllib 1.3.3
wcwidth 0.2.5
webencodings 0.5.1
websocket-client 1.3.1
wheel 0.37.1
widgetsnbextension 3.6.0
xkit 0.0.0
zc.lockfile 2.0
zipp 3.7.0
-
The file
config.ini
from my lableCloud folder: download here -
The file
.lableCloud.log
from my labelCloud folder: download here
from labelcloud.
@ch-sa
As my colleague @francescofact made me notice, on Windows it works, but only after removing the version of PyQt5 from requirements.txt
from labelcloud.
Hey @AlexPasqua,
so is the same point cloud looking differently on windows than my screenshot posted above?
(There were some issues with PyQt5 gut Windows, which is why I previously limited the PyQt versions to am older version. But this seems to have been fixed, so I dropped this limitation in the newest release of labelCloud.)
from labelcloud.
Hey @francescofact,
thanks for the screenshots. That's really odd. Seems like an issue with OpenGl, cause there is no difference in the logic between the operating systems.
Will try to have a look on it tomorrow.
from labelcloud.
Thanks for the support @ch-sa 😃
from labelcloud.
Related Issues (20)
- Is there some predefined matrix for kitti data coordinates? HOT 4
- Can't edit with shortcuts after selection change HOT 5
- cannot install requirements, open3d not available HOT 1
- How to label pointcloud semantic segmentation label? HOT 1
- A small feature improvement suggestion HOT 1
- Labeling workflow improvements HOT 4
- ailed to load driver: iris & failed to load driver: swrast. how can i do? HOT 3
- Label tool suggest HOT 2
- the visualization of 3D bounding box HOT 1
- Format conversion HOT 1
- the point cloud view zooms in and out very slowly HOT 1
- Problem in opening large point cloud HOT 1
- Is there any evaluation metrics for kitti untransformed kind dataset on 3D object detection? HOT 1
- OpenGL Error 1283 HOT 4
- Unable to execute labelCloud.py HOT 2
- Unable to export Kitt format Label HOT 1
- abelCloud does not show the corresponding bounding box after setting the path to the label HOT 1
- showing multiple perspective images per pcd HOT 3
- Labels shift in height when repeatedly loaded HOT 4
- How to modify a completed label? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from labelcloud.