loicland / superpoint_graph

Large-scale Point Cloud Semantic Segmentation with Superpoint Graphs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Questions about the partition step?

linlinge opened this issue · comments

Q1:
In the partition step, a 10-nearest neighbor adjacent graph is established at first. But the paper do not mention how to set the edge weight, and I find it in the code that is demonstrated in the following:
image
I am confused about this formula, why not using 1/distances ?

Q2:
when I use the l0-cut pursuit algorithm, it isn't work. Is there anything that I should be pay attention, for an example, some parameters?

Q1 - 1/d would be unstable for very small distances, and cause numerical errors for doubled points. Furthermore, the weights would not be unitless, and changing from cm to inches for example would change the results. 1/(lambda + d/d0) is unitless and more stable. However this is a heuristics and I am sure there are better ways to do it.

Q2 - what error are you receiving?

Q1:

Thank you very much! This explanation inspired me a lot.

Q2:

For the l0-cut algorithm, I try it with another example. Look at the figure bellow
image
This is a simple point cloud with 18 points. And the segment on each point is its corresponding normal. If I use the normal as the feature, and aim to partition this point cloud into two parts as bellow:
image
By refering your code, I write the code as:
image
Here, feature1 stores the normals and is a nx3 matrix, n is the number of points (n=18). Then l0-cut pursuit only returns one cluster.
Then I change the feature1 to feature2
image
I got an answer like this
image
This result is not as expected. It seems l0-cut pursuit is sensitive to the dimension of the feature. Besides, when I apply it to a more complex point cloud, it returns a result with one cluster again even through I changed the dimention as above. So, where did I do wrong, feature design, parameter tuning or something else?

could you send me an archive with the features, source, target as .npy for your toy example? I will take a look as soon as I find a few minutes.

I submit them to link:
https://drive.google.com/drive/folders/14TPQuUJIE7-AOP9Zg_mz3gX7yLzA0Ikb?usp=sharing
By a way, these are my parameters:
image

Hi!

We are releasing a new version of SuperPoint Graph called SuperPoint Transformer (SPT).
It is better in any way:

✨ SPT in numbers ✨
📊 SOTA results: 76.0 mIoU S3DIS 6-Fold, 63.5 mIoU on KITTI-360 Val, 79.6 mIoU on DALES
🦋 212k parameters only!
⚡ Trains on S3DIS in 3h on 1 GPU
Preprocessing is x7 faster than SPG!
🚀 Easy install (no more boost!)

If you are interested in lightweight, high-performance 3D deep learning, you should check it out. In the meantime, we will finally retire SPG and stop maintaining this repo.