A feature detection system comprising: a first visible light camera; a second visible light camera arranged in a fixed spatial relationship with the first visible light camera; a processor; a laser configured to emit a random dot pattern, wherein images captured by the visible light cameras (110A, 110B) include at least a portion of the random dot pattern; and a memory storing detection logic, which when executed by the processor is operable to: generate a 3D point cloud based on a disparity map, the disparity map being generated using the images captured by the first and second visible light cameras; identify at least one predefined geometric shape in the 3D point cloud by using a plane fitting technique; characterized in that the memory is operable to: determine coefficients corresponding to the identified geometric shape using the plane fitting technique, wherein said coefficients define a plane in 3D space; identify boundary pixels based on data captured by at least one of the first and second visible light cameras using an edge detection technique, wherein the boundary pixels correspond to an edge of a feature; and project locations of the boundary pixels onto the identified geometric shape to identify 3D locations of the feature that comprises projecting said locations of the boundary pixels on the plane defined by the coefficients. a first visible light camera; a second visible light camera arranged in a fixed spatial relationship with the first visible light camera; a processor; a laser configured to emit a random dot pattern, wherein images captured by the visible light cameras (110A, 110B) include at least a portion of the random dot pattern; and a memory storing detection logic, which when executed by the processor is operable to: generate a 3D point cloud based on a disparity map, the disparity map being generated using the images captured by the first and second visible light cameras; identify at least one predefined geometric shape in the 3D point cloud by using a plane fitting technique; characterized in that the memory is operable to: determine coefficients corresponding to the identified geometric shape using the plane fitting technique, wherein said coefficients define a plane in 3D space; identify boundary pixels based on data captured by at least one of the first and second visible light cameras using an edge detection technique, wherein the boundary pixels correspond to an edge of a feature; and project locations of the boundary pixels onto the identified geometric shape to identify 3D locations of the feature that comprises projecting said locations of the boundary pixels on the plane defined by the coefficients. generate a 3D point cloud based on a disparity map, the disparity map being generated using the images captured by the first and second visible light cameras; identify at least one predefined geometric shape in the 3D point cloud by using a plane fitting technique; characterized in that the memory is operable to: determine coefficients corresponding to the identified geometric shape using the plane fitting technique, wherein said coefficients define a plane in 3D space; identify boundary pixels based on data captured by at least one of the first and second visible light cameras using an edge detection technique, wherein the boundary pixels correspond to an edge of a feature; and project locations of the boundary pixels onto the identified geometric shape to identify 3D locations of the feature that comprises projecting said locations of the boundary pixels on the plane defined by the coefficients. determine coefficients corresponding to the identified geometric shape using the plane fitting technique, wherein said coefficients define a plane in 3D space; identify boundary pixels based on data captured by at least one of the first and second visible light cameras using an edge detection technique, wherein the boundary pixels correspond to an edge of a feature; and project locations of the boundary pixels onto the identified geometric shape to identify 3D locations of the feature that comprises projecting said locations of the boundary pixels on the plane defined by the coefficients.