WHAT IS FPRFRAMEWORK?
FPRFramework is a SDK for researching in fingerprint and palmprint recognition.
AGREEMENT ON THE USE OF FPRFRAMEWORK SDK AND ANY GENERATED DATA
1) to cite  in any paper of mine or my collaborators that makes any use of the software or data generated from this software.
 M. A. Medina-Pérez, O. Loyola-González, A. E. Gutierrez-Rodríguez, M. García-Borroto, and L. Altamirano-Robles, "Introducing an experimental framework in C # for fingerprint recognition," Lecture Notes in Computer Science, vol. 8495, pp. 132–141, 2014.
2) to use the software and generated data for research purposes only.
3) not to provide the software (in any form) to third parties.
THIS SOFTWARE IS PROVIDED BY MIGUEL ANGEL MEDINA-PÉREZ AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL MIGUEL ANGEL MEDINA-PÉREZ OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
FREQUENTLY ASKED QUESTIONS (FAQ)
- What is the difference between this framework and the one published in CodeProject? Answer: This version is restricted only for research purpose while the one in CodeProject is under the CPOL license. This version includes bug fixes, new evaluation protocols, and many new classes such as the wrappers for MCC SDK 1.4, SourceAFIS, and MINDTCT. It also allows working with palmprints.
- How must the coordinates and angle of each minutia be represented? Answer: For each minutiae, the information available comprise the location (x and y coordinates) and the angle. The origin of the coordinate system is located in the left top corner of the image. This way, values of "x" increase from left to right and values of "y" increase from top to bottom. The orientation of the minutiae is represented in degrees and it increases in clockwise sense. The orientation of a ridge ending is represented by the angle between the horizontal axis and the line starting at the end of the ridge and running through the middle of the ridge. The orientation of a bifurcation is determined by the angle between the horizontal axis and the line starting at the minutia point and running through the middle of the valley between the bifurcating ridges. The following image shows examples of two types of minutiae that are used in this framework. IMPORTANT: For every external SDK (e.g. MCC SDK 1.4 and SourceAFIS) used in our framework, we encode/decode the minutiae to/from the format required by the external SDK.
- Why SdkMCC does not work? Answer: Download MCC SDK 1.4 and copy all files in the output folder of your solution.
- Why SourceAFISMatcher does not work? Answer: Download SourceAFIS and copy all files in the output folder of your solution.
- Why MindtctWrapper does not work? Answer: Copy mindtct.exe in the output folder of your solution.
- Where are the compiled assemblies? Answer: All the generated assemblies appear in folder "FPRFramework\bin".
- Who to execute the evaluation methodology of palmprint minutiae descriptors using LPIDB v1.1? Answer: Download the database LPIDB v1.0 and the annotation database LPIDB v1.1. You should have 51 folders, named P0000XX, where XX correspond to a number. In every folder, you should have the palmprint images, the minutiae in XML format, the orientation images, and the matching minutiae of each palmprint.
To run the experiments, in the resources path, indicate the parent folder containing the 51 folders of the images. In the experiment, indicate
LPIDBMinutiaeDescriptorsEvaluation. The minutia extractor and orientation image are irrelevant, as this information is loaded from the LPIDB v1.1 dataset. Lastly, the skeleton image provider is only relevant for
LiuDescriptorLocalMatching, as these are the only latent palmprint minutiae descriptors that use the skeleton images.
The matchers that are available for
DMCDoubleCylinderCodeRotInvariantLocalMatching(Cappelli et al., 2012)
ILMDLocalMatcher(Laadjel et al., 2010)
LiuDescriptorLocalMatcher(Liu et al., 2013)
M3gl1_5_LocalMatching(Medina-Pérez et al., 2012)
MinutiaCodeLocalMatcher(Jain and Feng, 2009)
MinutiaNPletLi2007LocalMatcher(Li et al., 2007)
MinutiaNPletRao2016LocalMatcher(Rao et al., 2016)
MinutiaNPletTan2009LocalMatcher(Rao et al., 2009)
ModifiedRadialTriangulationLocalMatcher(Wang et al., 2012)
M3gl1_5_LocalMatching has different options for the
FeatureProvider, please use the feature provider