1. A method of extracting a feature from a point cloud, the method comprising: receiving a three-dimensional (3-D) point cloud representing objects in a scene, the 3-D point cloud containing a plurality of data points; generating a plurality of hypothetical features based on data points in the 3-D point cloud, wherein the data points corresponding to each hypothetical feature are inlier data points for the respective hypothetical feature and the respective hypothetical feature has the appearance of a geometric two-dimensional manifold, wherein the plurality of hypothetical features are planar features and the geometrical parameters for each respective planar feature comprise a normal vector and an orthogonal distance from the respective planar feature to an origin; and selecting a hypothetical feature, which provides a value of a quality function that is closer to a desired value than the value of the quality function provided by the other hypothetical features, as representative of an object in the scene; calculating new inlier data points based on the geometrical parameters of a fraction of the inlier data points; wherein generating each of the plurality of hypothetical features comprises: selecting at least three data points; calculating geometrical parameters for the respective hypothetical feature based on the at least three data points; and using the calculated geometrical parameters to determine the point-to-feature distance for each data point, wherein each data point whose respective point-to-feature distance is less than or equal to a first threshold value is identified as an inlier data point.