1. A computer-implemented method of recognizing an object in a three dimensional point cloud, the method comprising: receiving a first scene three-dimensional (3D) point cloud and a first target object 3D point cloud; projecting the first scene 3D point cloud into a first plurality of two-dimensional (2D) depth images; projecting the first target object 3D point cloud into a second plurality of 2D depth images; detecting the second plurality of 2D depth images in the first plurality of 2D depth images, resulting in a first plurality of 2D detection locations; re-projecting, into 3D space, the first plurality of 2D detection locations; and determining 3D locations of the detected first target object from the re-projected first plurality of 2D detection locations to detect the first target object.