SuperVoxels : Store Segmented out Objects

classic Classic list List threaded Threaded
12 messages Options
Reply | Threaded
Open this post in threaded view
|

SuperVoxels : Store Segmented out Objects

Anusha
Hi,

I am trying to segment out the objects (table top objects with the table plane and the wall plane segmented out, captured by kinect), using supervoxels dcoumented in http://pointclouds.org/documentation/tutorials/supervoxel_clustering.php (ubuntu 12.04, 64 bit)

I want to store the pcd files of these segmented out objects separately, is there any way to do so?

Thanks :)
Anusha.
Reply | Threaded
Open this post in threaded view
|

Re: SuperVoxels : Store Segmented out Objects

jpapon
Anusha wrote
I am trying to segment out the objects (table top objects with the table plane and the wall plane segmented out, captured by kinect), using supervoxels dcoumented in http://pointclouds.org/documentation/tutorials/supervoxel_clustering.php (ubuntu 12.04, 64 bit)
Hey there, glad to hear you're trying the supervoxels!

Anusha wrote
I want to store the pcd files of these segmented out objects separately, is there any way to do so?
A couple things - supervoxels aren't supposed to be objects, they're graphs of local surface patches which should violate objects much less than simple voxels of similar size. Additionally, you get an adjacency graph with them that let's you know which supervoxels touch which other ones.

In your case, if you've already removed the table, you'll have a subgraph of supervoxels for each object on the table (assuming no objects touch eachother). To get out a point cloud composing each object, you would need to get two things, the labeled point cloud from getLabeledCloud and the adjacency list from getSuperVoxelAdjacency.

You could then iterate through the adjacency list to find the labels belonging to each subgraph.

Really though, it would be much easier to just do this using plain old euclidean clustering if you've already removed the table.

If you're motivated though you could look into adding a helper function to extract subgraphs though - it's a good idea!

Best,

Jeremie
Reply | Threaded
Open this post in threaded view
|

Re: SuperVoxels : Store Segmented out Objects

Anusha
Thank You so much for the reply Jpapon :)

I used Euclidean clustering for objects which are not touching each other. As it cannot help in clutter, I thought supervoxeling can help in some way, as it is giving list of the adjacent voxels.

I have two things to ask:
1. Still, I am curious to try, segmenting out objects(not touching each other). I do not have much exposure on the functions you mentioned to do the same. It would be really helpful if you can tell me the piece of code to do so.
2. I would like to know the application where supervoxeling is being used, any documentations would be really helpful?

Thanks,
Anusha.
Reply | Threaded
Open this post in threaded view
|

Re: SuperVoxels : Store Segmented out Objects

Sergey
Administrator
Hi Anusha,

Regarding the second point: you may have a look at my blog post "Supervoxel Segmentation" from August 3rd to get an idea of how supervoxels might be used to obtain object segmentation.

Cheers,
Sergey
Reply | Threaded
Open this post in threaded view
|

Re: SuperVoxels : Store Segmented out Objects

desinghkar
Hi Sergey,
Thanks for link.
Just curious to know if this Supervoxel Segmentation is real time. If not how much time does it take to segment the scene?.


On Wed, Sep 18, 2013 at 9:31 AM, Sergey <[hidden email]> wrote:
Hi Anusha,

Regarding the second point: you may have a look at my blog post  "Supervoxel
Segmentation" <http://pointclouds.org/blog/tocs/alexandrov/all.php>   from
August 3rd to get an idea of how supervoxels might be used to obtain object
segmentation.

Cheers,
Sergey



--
View this message in context: http://www.pcl-users.org/SuperVoxels-Store-Segmented-out-Objects-tp4029717p4029732.html
Sent from the Point Cloud Library (PCL) Users mailing list mailing list archive at Nabble.com.
_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users



--
Thanks,
Karthik

_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: SuperVoxels : Store Segmented out Objects

Sergey
Administrator
Karthik,

SupervoxelSegmentation is relatively fast. It takes about 770 ms to process a typical Kinect cloud with the default voxel and seed resolution settings. Taking into account that my laptop is three years old, I would expect that a more modern hardware will be able to perform at least at 2 Hz. A nice thing about SupervoxelSegmentation though is that it could process merged point clouds, i.e. you may accumulate them at the full Kinect frame rate and segment once in a while.

Speaking about the post-processing that is described in my blog post, it takes no time. Sorting of the edges list is perhaps the most expensive operation in that algorithm.

Regards,
Sergey
Reply | Threaded
Open this post in threaded view
|

Re: SuperVoxels : Store Segmented out Objects

desinghkar
Wow!
Thats awesome!
Is your code up to date in the trunk that I can try out? 


On Wed, Sep 18, 2013 at 11:21 AM, Sergey <[hidden email]> wrote:
Karthik,

SupervoxelSegmentation is relatively fast. It takes about 770 ms to process
a typical Kinect cloud with the default voxel and seed resolution settings.
Taking into account that my laptop is three years old, I would expect that a
more modern hardware will be able to perform at least at 2 Hz. A nice thing
about SupervoxelSegmentation though is that it could process merged point
clouds, i.e. you may accumulate them at the full Kinect frame rate and
segment once in a while.

Speaking about the post-processing that is described in my blog post, it
takes no time. Sorting of the edges list is perhaps the most expensive
operation in that algorithm.

Regards,
Sergey



--
View this message in context: http://www.pcl-users.org/SuperVoxels-Store-Segmented-out-Objects-tp4029717p4029734.html
Sent from the Point Cloud Library (PCL) Users mailing list mailing list archive at Nabble.com.
_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users



--
Thanks,
Karthik

_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: SuperVoxels : Store Segmented out Objects

Sergey
Administrator
Karthik,

Just to make it clear: SupervoxelSegmentation is not my work, it was recently contributed by Jeremie Papon. As far as I see from pull requsts on github, he continues to improve the code, but it is totally usable already.

My work (that is, things described in the blog) has not been transferred to PCL yet because it is a work-in-progress.

Regards,
Sergey
Reply | Threaded
Open this post in threaded view
|

Re: SuperVoxels : Store Segmented out Objects

desinghkar
Thanks Sergey for the update! 



On Wed, Sep 18, 2013 at 11:45 AM, Sergey <[hidden email]> wrote:
Karthik,

Just to make it clear: SupervoxelSegmentation is not my work, it was
recently contributed by Jeremie Papon. As far as I see from pull requsts on
github, he continues to improve the code, but it is totally usable already.

My work (that is, things described in the blog) has not been transferred to
PCL yet because it is a work-in-progress.

Regards,
Sergey



--
View this message in context: http://www.pcl-users.org/SuperVoxels-Store-Segmented-out-Objects-tp4029717p4029736.html
Sent from the Point Cloud Library (PCL) Users mailing list mailing list archive at Nabble.com.
_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users



--
Thanks,
Karthik

_______________________________________________
[hidden email] / http://pointclouds.org
http://pointclouds.org/mailman/listinfo/pcl-users
Reply | Threaded
Open this post in threaded view
|

Re: SuperVoxels : Store Segmented out Objects

WilliamChan
In reply to this post by Sergey
Hi Sergey,
I have read all of your blog. And it need RandomWalker segmentation. But I do not know how to use it in pcl very clearly. I have searched it in GitHub too, and found only the head files.And it's already too hard for me to understand. Can you share an example with me? Thank you very much in advanced!
William
Reply | Threaded
Open this post in threaded view
|

Re: SuperVoxels : Store Segmented out Objects

Sergey
Administrator
Hi William,

The code to run Random Walker segmentation on a point cloud is available here: https://github.com/taketwo/tcs.
Also included are example apps with GUI and CLI.

Cheers,
Sergey
Reply | Threaded
Open this post in threaded view
|

Re: SuperVoxels : Store Segmented out Objects

WilliamChan
Got it! Thanks!