1. A method for detecting a three-dimensional (3D) geometric boundary from a set of two or more input images acquired by a single stationary non-stereoscopic imaging camera of a scene illuminated by a set of two or more light sources, wherein in each input image the scene is illuminated by a combination of the light sources, and wherein at least two images in the set of input images are illuminated by different combinations of the light sources, wherein the illumination conditions are unknown in one or more of the following ways, unknown light positions, unknown light intensities, unknown light combinations, comprising steps of: obtaining, for each pixel location, a set of patches, wherein each patch in the set is extracted from an identical region of a different input image from the set, wherein the region contains the pixel location, and wherein pixels at the location in all of the input images correspond to the same point in the scene; and determining, for each pixel location, a confidence value that the location is on the 3D geometric boundary, wherein the determining for each location further comprises: arranging pixel intensity or color values of the set of patches in a τ×m matrix, where τ is a number of the pixels in each patch and m is a number of the input images, so that each column of the matrix represents one patch; applying a singular value decomposition (SVD) to the matrix to obtain singular values; and determining the confidence value for the pixel location as a function of the singular values, wherein the steps are performed in a processor.