-
Notifications
You must be signed in to change notification settings - Fork 80
Description
Hi,
thank you for your open source code.
I would like to contribute a python evaluation pipeline that can take in maps as NumPy array and convert it to voxelized pointcloud in pcd file, which can be further sent into your "analysis_py3.py" script. So as a sanity check, I build up a gt map based on frames 00 (4390 - 4530) and run the script, but the result is awful. I checked your "mapgen.hpp" and this is how I built the map:
- I retrive scans 00 (4390 - 4530), transform them to the world frame using their pose, and additionally lift their height by 1.73.
- I notice you use the "intensity" field to store labels. So, I append their 32 bit panoptic labels, which combine the semantic and instance labels, as a 4-th column to the original xyz.
- I voxelize and preserve the labels as the
voxelize_preserving_labelsfunction in "erasor_utils.cpp", where I replace the intensity of voxelized points with the intensity of their nearest neighbor after voxelization with size 0.2. - I save it as a pcd file.
Since I do not filter out any points, I expect to have a result like ~100% preservation (all static point remains) and ~0 rejection (no dynamic point removed at all). However, I got a result like:
| # stat. pts | # dyn. pts | % | # est. stat. pts | # est. dyn. pts | % | Preservation | rejection | F1 |
|---------------+--------------+---------+--------------------+-------------------+---------+----------------+-------------+----------|
| 394718 | 4796 | 1.21504 | 464829 | 7531 | 1.62017 | 48.3761 | 42.6397 | 0.453271 |
Also notice the missmatch of the number of points.
Can you share the procedure of how you created the ground truth map? Are there any steps I missed, such as additional transformations, ruling out particular points, etc.
Thank you very much!
Zinuo