voxel51 / fiftyone

The open-source tool for building high-quality datasets and computer vision models
https://fiftyone.ai
Apache License 2.0
7.92k stars 522 forks source link

[FR] Add support for rendering `Segmentation` primitives when the corresponding `Sample` is a pointcloud/pcd file. #4204

Open SergioRAgostinho opened 3 months ago

SergioRAgostinho commented 3 months ago

Proposal Summary

Add support for rendering fiftyone.Segmentation when the corresponding Sample is a pointcloud/pcd file. Currently, semantic segmentation needs to baked into the point cloud's RGB fields. This has two drawbacks:

I've noticed fiftyone.Detection primitives are rendered correctly already in the 3D viewer, but the segmentation masks seem to be ignored.

Motivation

What areas of FiftyOne does this feature affect?

Details

I have a proposal in term of user experience, ideally I would like to see segmentation masks being mapped to into the "Shade by" panel of the 3D viewer. The color assignment for points should follow same policy you're using for segmentation masks in 2D

Screenshot 2024-03-26 at 23 26 52

Willingness to contribute

The FiftyOne Community welcomes contributions! Would you or another member of your organization be willing to contribute an implementation of this feature?

swheaton commented 3 months ago

Thanks again @SergioRAgostinho ! We have some exciting new 3D work going on (coming soon) and a new format. Let me circulate this internally to see what we think. At the very least, if you are willing to contribute the feature, we would have you wait until this new format is out.

SergioRAgostinho commented 3 months ago

Now you got me hyped. Out of curiosity do you have a "rough" (non-binding) time horizon when we might see this new format being integrated?

swheaton commented 3 months ago

Now you got me hyped. Out of curiosity do you have a "rough" (non-binding) time horizon when we might see this new format being integrated?

That's awesome! Love to see it. Yeah we will still support pcd media type for backwards compatibility but we will move to a new 3d media type that is more like a 'Scene' concept so encompasses PCD but much more as well. If interested, here is the branch where it's being worked on: https://github.com/voxel51/fiftyone/pull/3985. Comments welcome, although we will not be increasing feature scope at this time.

For timeline, our initial version will be out in the next few months, depending on when the next few feature releases occur - it's very close to being in develop. Then we'll see what the community thinks and go from there.

SergioRAgostinho commented 3 months ago

visualizer

This is looking really cool. I'll definitely take it for a spin once it lands in develop.

The coderabbit.ai demo reviewing https://github.com/voxel51/fiftyone/pull/3985 was also pretty amazing.

swheaton commented 3 months ago

The coderabbit.ai demo reviewing https://github.com/voxel51/fiftyone/pull/3985 was also pretty amazing.

Yeah we started trying it out recently, interesting results so far. And free for open source