-
Notifications
You must be signed in to change notification settings - Fork 175
Description
Hi everyone,
I'm currently running my KPConv pipeline for the first times using a small sample of real training data. The dataset comes from a Mobile Mapping System (MMS) and is set along a mountain road, not an urban scene.
I've run into a persistent issue: the model tends to fixate on the most represented class, ignoring the rest of the semantic space.
Dataset imbalance
Initially, asphalt and vegetation were massively overrepresented.
I tried compensating with proportional class_w weights , but saw little improvement.
To isolate the issue, I created a testing dataset excluding those dominant classes, focusing only on objects.
Still, the model showed a strong bias toward the class with the most points. Only till I started greatly penalizing biased classed weights tarted to show action, yet going bias after 300 epoch for example.
What I’ve tried
Only after drastically reducing the weight of the dominant class (class 5) did other classes begin to appear in predictions.
However, around epoch 300, the model tends to collapse back into a single-class bias, ignoring minority classes again.
I haven’t used augmentations yet, I initially avoided them, fearing they might distort object geometry in this type of dataset. But now I’m reconsidering whether that’s contributing to the issue.
Validation behavior
mean IoU hovers around 9%, and preds unique during validation are consistently [0, 2], even when truth unique includes up to 5 classes.
I suspect the current val_radius and max_val_points might be limiting the representativity of validation chunks. I’ve increased them and am running a new experiment.
What I’m considering
Activating light augmentations to break geometric repetition.
Increasing val_radius to 1.0 and max_val_points to 50k for richer validation chunks.
Running inference on the training cloud itself to visualize segmentation in the best-case scenario.
Possibly increasing dataset size — currently it covers about a 200m stretch of road.
Has anyone encountered similar behavior with KPConv on imbalanced datasets? Is this kind of semantic collapse expected in outdoor scenes like this? Or is it just a matter of carefully tuning weights, chunk parameters, and augmentations until it stabilizes?
Any tips or insights would be hugely appreciated!
notice parameters says layers=1 but I've tested that all architecture runs , this is because itseems the log prints prior to loading architecture, but during training I see go trough it all.