A novel approach to train random forests on GPU for computer vision applications using local features

The random forests (RF) classifier has recently gained momentum in the computer vision field, thanks to its successful application in human body tracking, hand pose estimation and object detection. In this article, we present a novel approach to train RF on a graphics processing unit (GPU) for computer vision applications where simple per-pixel features are computed. Besides leveraging the processing power of the GPU to accelerate the training, we reformulate the training problem to limit costly image transfers when it is not possible to store the entire data set in GPU memory. Furthermore, our implementation supports arbitrary image types and allows the user to specify custom features. We extensively compare our approach with the state of the art on publicly available data sets, and we obtain a reduction in training time of up to 18 times. Finally, we train our implementation on a large data set (around 100 K images), demonstrating that our approach is suitable for training RF on the vast data sets typically used in computer vision.

[1]  Håkan Grahn,et al.  CudaRF: A CUDA-based implementation of Random Forests , 2011, 2011 9th IEEE/ACS International Conference on Computer Systems and Applications (AICCSA).

[2]  Christian Cipriani,et al.  PARLOMA – A Novel Human-Robot Interaction System for Deaf-Blind Remote Communication , 2015 .

[3]  Pushmeet Kohli,et al.  Real-Time Face Reconstruction from a Single Depth Image , 2014, 2014 2nd International Conference on 3D Vision.

[4]  Andy Liaw,et al.  Classification and Regression by randomForest , 2007 .

[5]  Henrik Boström,et al.  gpuRF and gpuERT: Efficient and Scalable GPU Algorithms for Decision Tree Ensembles , 2014, 2014 IEEE International Parallel & Distributed Processing Symposium Workshops.

[6]  Lale Akarun,et al.  Real time hand pose estimation using depth sensors , 2011, 2011 IEEE International Conference on Computer Vision Workshops (ICCV Workshops).

[7]  Jörg Stückler,et al.  Semantic mapping using object-class segmentation of RGB-D images , 2012, 2012 IEEE/RSJ International Conference on Intelligent Robots and Systems.

[8]  Sven Behnke,et al.  CURFIL: Random Forests for Image Labeling on GPU , 2015, VISAPP.

[9]  Gary R. Bradski,et al.  Learning OpenCV - computer vision with the OpenCV library: software that sees , 2008 .

[10]  Antonio Criminisi,et al.  Decision Forests: A Unified Framework for Classification, Regression, Density Estimation, Manifold Learning and Semi-Supervised Learning , 2012, Found. Trends Comput. Graph. Vis..

[11]  Li-Yi Wei,et al.  Parallel white noise generation on a GPU via cryptographic hash , 2008, I3D '08.

[12]  Gaël Varoquaux,et al.  Scikit-learn: Machine Learning in Python , 2011, J. Mach. Learn. Res..

[13]  Antonio Criminisi,et al.  Object Class Segmentation using Random Forests , 2008, BMVC.

[14]  Andrew W. Fitzgibbon,et al.  Real-time human pose recognition in parts from single depth images , 2011, CVPR 2011.

[15]  Mihai Budiu,et al.  Parallelizing the Training of the Kinect Body Parts Labeling Algorithm , 2011 .

[16]  Toby Sharp,et al.  Implementing Decision Trees and Forests on a GPU , 2008, ECCV.

[17]  Leo Breiman,et al.  Random Forests , 2001, Machine Learning.

[18]  Toby Sharp,et al.  Real-time human pose recognition in parts from single depth images , 2011, CVPR.

[19]  Derek Hoiem,et al.  Indoor Segmentation and Support Inference from RGBD Images , 2012, ECCV.