|project:||Automated benchmark generation for object-part segmentation|
I am a PhD student at the University of Goettingen - Germany. My research interests include computer vision (most specifically object / part recognition) as well as machine learning. I have been heavily working with PCL and OpenCV in my research.
This project consists of two parts: First, implementation of the paper [Stein et al. accepted for CVPR 2014]. The focus of this segmentation is getting nameable parts of objects for e.g. robot applications (for instance the handle of a hammer to pick it up or the head, hands, ... of a human). Second, automated generation of artificial scenes to create a unit-test/benchmarking functionality for 3D segmentation. I will implement a shape generator to dynamically assemble these scenes.
I finished the work on the shape generator module. It became quite a versatile tool. Here is an overview what one can do:
Here are some examples how we can create a table top scenario consisting of a table, a cup on top and a saw which cuts into the table using recipes (shown on the right side). First we make and compile a recipe file for a table leg:
Next we will combine four legs plus a cylindrical plate to a full table (we set the variable Label to keep, which preserves different labels for the object’s parts):
If we set Label to unique it will tell the generator to give only the table parts unique labels (not the parts the parts consist of :) )
This labeling would make sense if you want to test for instance part segmentation algorithms like LCCP.
Now let us combine the table and two objects. We have multiple options for the labeling now: First: Each object gets its own label:
Second: Give the parts of the objects their own label:
Or keep the labels of the parts and parts of parts unique :) :
Just to mention: All points have normal information attached:
The work on the lccp implementation is mainly done and the pull request is awaiting its approvel. Thanks a lot for the help of the pcl community (especially Sergey and Victor). Thanks to your comments the lccp algorithm is now in a much better shape. Talking about shapes: The next milestone in this GSOC project is the implementation of a shape generator which can be used to create various labeled scenes which can be used to create unit tests or benchmarks for part and/or object segmentation algorithms. I have written a big part of the code already. Now the question is: To which module of pcl should this generator go? I think about putting it into the geometry module. Any comment on this is more than welcome! The next image shows an assembled animal-like object which has been generated from simple geometric shapes (mainly geons).
Hello everybody, this is my first blog post to this project. The last weeks I have been busy implementing the LCCP algorithm in PCL. The algorithm can be used to split a point cloud into regions which are isolated by concave boundaries to all other regions. It turns out that this is a highly valuable segmentation as it often retrieves (bottom-up!) nameable parts like handles, heads and so on. Especially robotic applications may find this useful. Together with Jeremie I will introduce it at this year’s CVPR 2014 conference (S. C. Stein, M. Schoeler, J. Papon, F. Woergoetter: Object Partitioning using Local Convexity). We will have a poster next Tuesday afternoon. So if you are around, you are more than welcome to visit us there. In the meantime I hope I get the pull request through, so that everybody interested can play around with the algorithm. It will be located in the segmentation module. There is also an example pcl_example_lccp_segmentation. To get you interested the following image shows an