ICFVR 2017 - 第三届全球指静脉识别挑战赛

Welcome

RATE is a general platform for biometrics algorithm evaluation and data exploration. It aims at providing a convenient tool for doing biometric research, it solves various problems in conducting biometric experiment - data management and annotation, customizable benchmark and high computation cost in evaluation.

There are 4 main concepts in RATE, they are described in the following sections. Here is the guide to use RATE.

View

View refers to collection of samples (e.g. a group of fingerprint images). View is useful when researchers want to group samples with specific research propose. For example, finger vein verificaion researchers may want to know the general performance on different fingers, they could then create 3 views for index finger, middle finger, and ring finger (finger vein verification just does not like thumb or little finger).

Benchmark

Basically, you upload an algorithm, and RATE runs it for you. There should be a place that you describe the detail of which sample is going to match with which another one - this is called benchmark in RATE. Benchmark is created upon view, all samples referred in a benchmark should be in one specific view. There are many ways to automatically generate a benchmark:

• General benchmark. General benchmark is used for evaluation of an algorithm, because this is the most usual case for one to use RATE, we call them "general". It ramdonly choose classes and samples from a view and generate inner matches and inter matches between samples.
• All inner benchmark. Generate matches so that all samples from a view are matched against all samples in the sample class.
• All inter benchmark. Generate matches so that all samples from a view a re matches against all samples in other classes.
• All benchmark. Generate all possible matches in a view.
• File benchmark. Upload a file filled with wanted matches between samples. Samples are referred by its UUID.

Algorithm

Algorithm is two Win32 excutables in RATE: enroll.exe and match.exe, for the enrollment step and the matching step. The two executables should read input from the command line arguments and output results to the standard output or a designated file with the right exit value. They must obey the following rules

Executable Decription Command line args Standard output Exit value Time Limit Memory limit
Enroll.exe Create template Paths of the input images and output template file None 0: success; Else: fail 30s 2048MB
Match.exe Match two templates Paths of two templates for matching Similarity degree is indicated by a float number between [0-1.0], with 0 meaning not similar at all, and 1 meaning exact the same 0: success; Else: fail 10s 2048MB

Keep in mind that the right exit value is very important, and you may fail the evaluation if you don’t care about it.

The executables will be used in a command line like follows:

    > Enroll.exe \path\to\read\image.bmp \path\to\write\template.t
> Match.exe \path\to\template1.t \path\to\template2.t

• Example code
• There are also time and space limit for each executable. Time requirement for Enroll.exe is within 30 seconds. Time requirement for Match.exe is within 10 seconds. Memory requirement for both excutables is within 2048MB. RATE will be strict on these constraints.
• The evaluation platform is a distributed system running on 32-bit Windows system. Runtime libraries provided are:
• Microsoft Visual C++ 2005 Redistributable Package (x86)
• Microsoft Visual C++ 2005 SP1 Redistributable Package (x86)
• Microsoft Visual C++ 2008 Redistributable Package (x86)
• Microsoft Visual C++ 2008 SP1 Redistributable Package (x86)
• Microsoft Visual C++ 2010 Redistributable Package (x86)
• Microsoft Visual C++ 2010 SP1 Redistributable Package (x86)
• Visual C++ Redistributable for Visual Studio 2012 Update 4
• Visual C++ Redistributable Packages for Visual Studio 2013
• Microsoft Visual C++ Redistributable Packages for Visual Studio 2015 Update 3
• OpenCV 2.4.9
• OpenCV 3.1
• If you would like to use other libraries, make sure that they can work well on a machine with just the same previous environment. Static build might be a good option.