PCL Developers blog

Jinwoo Lee

project:Particle filter on GPU
mentor:Koen Buys

About me

I am a Master student of ‘Visual Computing Laboratory’ in School of Computer Science, Kookmin University.

Project Description

Particle filters are commonly used in tracking objects in 2D images and 3D point clouds. In the current version of PCL, Ryohei Ueda from Univ. of Toko did successfully implement the particle filter algorithm in pcl::tracking based on OpenMP implementation. Since the particle filter is easy to parallelize, I have the plan to further improve the performance of the particle filter based on CUDA implementation. The improved particle filter based on GPU will be helpful to develop the real-time critical applications with PCL.

Recent status updates

Design CUDA functions
Thursday, June 14, 2012

Design CUDA functions based on PF on PCL and Kinfu.

  • ParticleXYZRPY, PointXYZRGB -> should be changed
  • Octree for search nearest point.
  • Random number generator for sampling.
  • Reduction step for ‘update’ function
  • After complete one period, I need to think about more general PF.
Studying particle filter on PCL
Wednesday, May 30, 2012

Particle filter(PF) on PCL is little bit different with general algorithm.

PF on PCL it contains
  • resample - update each particles
  • weight - calc each particle weights based on coherence between reference cloud and query cloud
  • update - Update representative state of particles

In general PF, motion is given from system with uncertainty, but PF on PCL use camera motion calculated in prev frame.

Setting up environment
Wednesday, May 16, 2012

I prefer Windows and visual studio for development. I also prepared Ubuntu and development tools (cmake, code, build, subversion tools).

I’m reading papers and text about particle filter.

  • Min-An Chao; Chun-Yuan Chu; Chih-Hao Chao; An-Yeu Wu, “Efficient parallelized particle filter design on CUDA,” Signal Processing Systems (SiPS), 2010 IEEE Workshop on Digital Object Identifier, pp.299-304


  • Analysing particle filter and CUDA API on PCL
  • Writing draft headers for particle filter