PCL Developers blog

Frits Florentinus

This is my personal page

project:Automated Noise Filtering (ANF)
mentor:Jorge Hernandez

About me

I am an Electrical Engineering student at the Eindhoven University of Technology where I am part of the Video Coding and Architectures research group. Here I work on a project that some day will realize an end-to-end system of a robot autonomously performing HD 3D mapping of an environment.

I am easy to entertain and in my spare time will always find ways to have a lot of fun, though the vast majority of these ways would not have been made possible without the scientific achievements of the human race to date. Yay science!


A more detailed roadmap can be found here.

  • Familiarize myself with Automated Noise Filtering and the TRCS.
  • Test the current PCL filters on the Trimble data sets.
  • Bugfix, patch and enhance the PCL filters module.
  • Give shape to the ANF system.
  • Implementation of the ANF system.
  • Other things to do after full system is working:
    • Implement the MixedPixel class in PCL.
    • Work on the filters module clean up.
    • Look into the possibilities of a weighting system and SRAM.

Recent status updates

Friday, May 25, 2012

I finished the preliminary report for ANF, which I will make available once Mattia is also finished, so that we can start to evaluate the work of this sprint with our mentors.

In the meanwhile I have been struggling with getting my PC ready for PCL developer use again. For the next few weeks I will be finishing some other projects for school and will also be working on my PCL to do list:

  • Implement the MixedPixel class in PCL.
  • Work on the filters module clean up.
  • Finalize the LUM class implementation.
Testing, reporting and continuously learning new things
Friday, May 11, 2012

In the process of reporting for the sprint, Mattia and I have been working more in-depth on getting test results from the system and have been training a classifier. There have also been a few improvements to the system such as a new feature that should aid the distinguishment of leaves.

I have furthermore been learning up on function pointers, functors, boost::bind, boost::function and lambda functions. They will be useful for the filters module clean up.

Friday, May 04, 2012

During the last two weeks I have been working on the report for this sprint, which is becoming bigger and taking more time than I anticipated. I am also aiming to finish the filters module clean up which can be followed here: http://dev.pointclouds.org/issues/614.

Finishing up segmentation
Thursday, April 19, 2012

I have been finishing up the segmentation steps of the system. The following is a typical result when used on the Trimble outdoor sets using the default parameters:

These results are downsampled from the original and the ground segmentation has already taken place. The clusters marked as red are not passed to the SVM classifier. They are either too small and will be marked as isolated and removed without the need for classification, or they are too large in which case they will be classified as background and are never removed.

I upgraded the system with a very basic over-segmentation detection system that performs quite alright. Furthermore, most my time was spent getting the parameterization right: Making all parameters depend on as few global parameters as possible and still allowing to greatly and intuitively vary the clustering needs. Since we are having a chat with the mentors soon, I will discuss these topics in the report that I will write for that chat, which is what I will be working on for the next few days.

Improved segmentation step
Tuesday, April 17, 2012

I have worked on improving the segmentation steps of the system. Initially I wanted to do a separate sub clustering after the euclidean clustering. However, the version I have now performs the advanced segmentation simultaneously with the euclidean clustering. In the future I might add this as a new class to PCL since it could be useful for any type of conditional region growing.

For our purposes this conditional region growing currently checks distance, intensity difference and curvature difference with respect to the candidate points, which results in better clustering than before. However, the balance between over- and under-segmentation is still as tricky as before. Ideally, the trees are clustered into separate leaves so that the SVM has a lot of different training candidates from one set. It is still quite impossible to get this clustering while not having too much clustering in the non-noise parts of the scene. I did manage to condense all the parameters for the segmentation step into one parameter, indicating clustering aggressiveness, so that a user could tweak this balance himself.

An idea I still want to investigate is to use a pyramid or staged system that will only further sub-segment under certain conditions. I think these conditions will need to be more complex than what I am using now (intensity, curvature and location). Although making them too complex could limit the applicability of the system.