A method for performing fingerprint recognition, the method comprising: capturing, by a mobile device having a camera, a storage medium, instructions stored on the storage medium, and a processor configured by executing the instructions, images depicting a plurality of fingers of a subject; detecting, with the processor using a finger detection algorithm, the plurality of fingers depicted in one or more of the images, wherein the step of detecting the plurality of fingers comprises applying a plurality of finger detection algorithms, wherein the step of detecting the plurality of fingers comprises: detecting, by the processor using a first finger detection algorithm, at least one candidate set of fingers depicted in the one or more images; computing, by the processor, a quality score for the at least one candidate set, wherein the quality score is representing a likelihood that the at least one candidate set of fingers represents the plurality of fingers; and based on the quality score not meeting a prescribed threshold, selecting another finger detection algorithm and repeating the preceding detecting and computing steps; identifying, with the processor from one or more of the images according to a segmentation algorithm, a respective fingertip segment for each finger among the plurality of fingers; extracting, with the processor for each finger, discriminatory features from the respective fingertip segment; and generating a biometric identifier including the extracted discriminatory features; storing the generated biometric identifier in the memory with the processor. capturing, by a mobile device having a camera, a storage medium, instructions stored on the storage medium, and a processor configured by executing the instructions, images depicting a plurality of fingers of a subject; detecting, with the processor using a finger detection algorithm, the plurality of fingers depicted in one or more of the images, wherein the step of detecting the plurality of fingers comprises applying a plurality of finger detection algorithms, wherein the step of detecting the plurality of fingers comprises: detecting, by the processor using a first finger detection algorithm, at least one candidate set of fingers depicted in the one or more images; computing, by the processor, a quality score for the at least one candidate set, wherein the quality score is representing a likelihood that the at least one candidate set of fingers represents the plurality of fingers; and based on the quality score not meeting a prescribed threshold, selecting another finger detection algorithm and repeating the preceding detecting and computing steps; identifying, with the processor from one or more of the images according to a segmentation algorithm, a respective fingertip segment for each finger among the plurality of fingers; extracting, with the processor for each finger, discriminatory features from the respective fingertip segment; and generating a biometric identifier including the extracted discriminatory features; storing the generated biometric identifier in the memory with the processor. detecting, by the processor using a first finger detection algorithm, at least one candidate set of fingers depicted in the one or more images; computing, by the processor, a quality score for the at least one candidate set, wherein the quality score is representing a likelihood that the at least one candidate set of fingers represents the plurality of fingers; and based on the quality score not meeting a prescribed threshold, selecting another finger detection algorithm and repeating the preceding detecting and computing steps; identifying, with the processor from one or more of the images according to a segmentation algorithm, a respective fingertip segment for each finger among the plurality of fingers; extracting, with the processor for each finger, discriminatory features from the respective fingertip segment; and generating a biometric identifier including the extracted discriminatory features; storing the generated biometric identifier in the memory with the processor.