1. A system for filtering, segmenting and recognizing objects, comprising: one or more processors and a memory, the memory having executable instructions encoded thereon, such that upon execution of the instructions, the one or more processors perform operations of: down sampling a three-dimensional (3D) point cloud having a plurality of data points in 3D space to generate a down-sampled 3D point cloud P with reduced data points in the 3D space; identifying and removing a ground plane in the down-sampled 3D point cloud to leave non-ground data points in the down-sampled 3D point cloud; generating a set of 3D candidate blobs by clustering the non-ground data points to generate a plurality of 3D blobs, each of the 3D blobs having a cluster size; extracting features from each 3D candidate blob, the features being vectors that represent morphological characteristics of each 3D candidate blob; and classifying at least one of the 3D candidate blobs as a pre-defined object class based on the extracted features by assigning a semantic meaning to a segmented real-world individual object.
5. The system as set forth in claim 1 , wherein identifying and removing the ground plane further comprises operations of: randomly selecting three non-collinear unique points from the down-sampled 3D point cloud P; computing plane model coefficients from the three non-collinear unique points; computing distances from all points in the down-sampled 3D point cloud P to the plane model; and determining a number of points p* belonging to the down-sampled 3D point cloud P whose distance to the plane model falls between a pre-defined range; and designating a plane with a largest number of points p* that fall within the pre-defined range as the ground plane; and removing the points p* that are included in the ground plane from the down-sampled 3D point cloud P data to leave non-ground data points.