Login

Benchmark area: Differential Morph Attack Detection

This benchmark area contains face morphing detection benchmarks. Morphing detection consists in analyzing a face image to determine whether it is the result of a morphing process (mixing faces of two subjects) or not. Algorithms submitted to these benchmarks are required to compare a suspected morph image to a bona fide (not morphed) one and produce a score representing the probability of the suspected morph image to be a morphed face image.

Benchmarks

Currently, this benchmark area contains the following benchmarks:

  • DMAD-TEST: A simple dataset useful to test algorithm compliancy with the testing protocol (results obtained on this benchmark are only visible in the participant private area and cannot be published).
  • DMAD-BIOLAB-1.0: A dataset containing high-resolution face images with frontal pose, neutral expressions and good illumination. The morphed images have been generated from manually selected landmarks, and finally manually retouched. The dataset contains the genuine and morphed images described in [1].
  • DMAD-MORPHDB_D-1.0: A dataset of high-quality images, with frontal pose, natural expression and good illumination. The morphed images have been generated from automatically detected landmarks, and finally manually retouched. The dataset is described in [2].
  • DMAD-MORPHDB_P&S-1.0: The dataset contains the same images of DMAD-MORPHDB_D-1.0, printed on high quality photographic paper by a professional photographer and scanned at 300 DPI. The dataset is described in [2].
  • DMAD-SOTAMD_D-1.0: A dataset containing high-resolution digital face images with frontal pose, natural expression and good illumination collected in the SOTAMD project [3].
  • DMAD-SOTAMD_P&S-1.0: A dataset containing high-resolution printed and scanned face images with frontal pose, natural expression and good illumination collected in the SOTAMD project [3].
  • DMAD-SOTAMD_PM_D-1.0: A dataset containing a subset of the high-resolution digital face images with frontal pose, natural expression and good illumination collected in the SOTAMD project [3]. In particular, it contains only manual post-processed morphed images.
  • DMAD-SOTAMD_UC_P&S-1.0: A dataset containing a subset of the high-resolution printed and scanned face images with frontal pose, natural expression and good illumination collected in the SOTAMD project [3]. In particular, it contains only uncompressed images.
  • DMAD-IMARS-HQ_FULL-1.0: A dataset created in the iMARS project [5] containing high-resolution digital face images with frontal pose, natural expression and good illumination. The bona fide images have been collected in the SOTAMD project [3] while the morphed images have been generated using 16 different state-of-the-art morphing algorithms and multiple morphing factors.
  • DMAD-IMARS-HQ_SMALL-1.0: A dataset containing a subset of the DMAD-IMARS-HQ_FULL-1.0 benchmark. The bona fide attempts are the same contained in the DMAD-IMARS-HQ_FULL-1.0 benchmark while the morphed attempts are the 10% of the morphed attempts in the DMAD-IMARS-HQ_FULL-1.0 benchmark, randomly selected.
  • DMAD-IMARS-HQ_HARD-1.0: A dataset containing a subset of the DMAD-IMARS-HQ_FULL-1.0 benchmark. The bona fide attempts are the same contained in the DMAD-IMARS-HQ_FULL-1.0 benchmark while the morphed attempts have been obtained from the subset of morphed images presenting the highest attack potential, i.e. morphed images successfully verified by three commercial face recognition systems with ten probe images of both contributing subjects.
  • DMAD-IMARS-MQ_FULL-1.0: A dataset containing high-resolution digital face images with frontal pose, natural expression and good illumination collected in the iMARS project [5]. The gate images have been acquired in real scenarios or in laboratory by simulating realistic conditions while the morphed images have been generated using 12 different state-of-the-art morphing algorithms and multiple morphing factors.
  • DMAD-IMARS-MQ_SMALL-1.0: A dataset containing a subset of the DMAD-IMARS-MQ_FULL-1.0 benchmark. The bona fide attempts are the same contained in the DMAD-IMARS-MQ_FULL-1.0 benchmark while the morphed attempts are the 10% of the morphed attempts in the DMAD-IMARS-MQ_FULL-1.0 benchmark, randomly selected.
  • DMAD-IMARS-MQ_HARD-1.0: A dataset containing a subset of the DMAD-IMARS-MQ_FULL-1.0 benchmark. The bona fide attempts are the same contained in the DMAD-IMARS-MQ_FULL-1.0 benchmark while the morphed attempts have been obtained from the subset of morphed images presenting the highest attack potential, i.e. morphed images successfully verified by three commercial face recognition systems with four probe images of both contributing subjects.

The table below reports the main characteristics of each benchmark:

Benchmark Format Morphing Factor Minimum Eye Distance Maximum Eye Distance Bona Fide Attempts Morph Attempts
DMAD-TEST Digital ~[0.4;0.5] 70 160 10 10
DMAD-BIOLAB-1.0 Digital ~[0.4;0.5] 60 240 526 160
DMAD-MORPHDB_D-1.0 Digital ~[0.3;0.4] 80 340 756 396
DMAD-MORPHDB_P&S-1.0 Printed & Scanned ~[0.3;0.4] 80 340 756 396
DMAD-SOTAMD_D-1.0 Digital 0.3 and 0.5 80 1020 3000 30550
DMAD-SOTAMD_P&S-1.0 Printed & Scanned 0.3 and 0.5 80 360 10960 55530
DMAD-SOTAMD_PM_D-1.0 Digital 0.3 and 0.5 90 1020 3000 7050
DMAD-SOTAMD_UC_P&S-1.0 Printed & Scanned 0.3 and 0.5 90 360 2000 5700
DMAD-IMARS-HQ_FULL-1.0 Digital 0.3, 0.5,
W=0.1 and B=0.5,
W=0.2 and B=0.5*
80 1000 3000 504000
DMAD-IMARS-HQ_SMALL-1.0 Digital 0.3, 0.5,
W=0.1 and B=0.5,
W=0.2 and B=0.5*
80 1000 3000 50400
DMAD-IMARS-HQ_HARD-1.0 Digital 0.3, 0.5,
W=0.1 and B=0.5,
W=0.2 and B=0.5*
80 1000 3000 130440
DMAD-IMARS-MQ_FULL-1.0 Digital 0.3, 0.5,
W=0.1 and B=0.5,
W=0.2 and B=0.5*
40 1160 2187 158986
DMAD-IMARS-MQ_SMALL-1.0 Digital 0.3, 0.5,
W=0.1 and B=0.5,
W=0.2 and B=0.5*
40 1160 2187 15899
DMAD-IMARS-MQ_HARD-1.0 Digital 0.3, 0.5,
W=0.1 and B=0.5,
W=0.2 and B=0.5*
40 1160 2187 34698
*Where W and B are the warping and blending factors, respectively (see [6] for more details about).

The following sections report the testing protocol and the performance indicators common to all benchmarks in this area.

Protocol

Participants can submit their algorithms in one of the following three different forms:

  • an executable in the form of a Win32 console application;
  • a Python script;
  • a Linux dynamically-linked library compliant to NIST FRVT MORPH specifications.

    Win32 console application

  • The executable (detectMorphDifferentially.exe) will take the input from command-line arguments and will append the output to a text file. It evaluates two face images and produces a morph score; the command-line syntax is:
    detectMorphDifferentially.exe <suspectedmorphfile> <label> <probefacefile> <outputfile>
    where:
    suspectedmorphfile the suspected morph face image pathname. The supported image formats are: .BMP, .JPG, .PNG, .JP2, .JPF.
    label an integer describing the format of the suspected morph image:
    - unknown photo format/origin (0),
    - non-scanned digital photo (1),
    - a photo that is printed, then scanned (2).
    probefacefile a face image pathname of the subject known not to be a morph. The supported image formats are: .BMP, .JPG, .PNG, .JP2, .JPF.
    outputfile the output text-file, where a log string (of the form suspectedmorphfile probefacefile result isMorph score) must be appended.
    - result is "OK" if the detection can be performed or "FAIL" if the detection cannot be executed by the algorithm;
    - isMorph is "TRUE" if the image contains a morph or "FALSE" otherwise;
    - score is a floating point value ranging from 0 to 1 representing how confident the algorithm is that the image contains a morph: 0 means certainty that image does not contain a morph and 1 represents certainty that image contains a morph.

  • The executable has to operate only on the explicitly-given inputs, without exploiting any learning technique or template consolidation/update based on previous comparisons.
  • C and C# language skeletons for detectMorphDifferentially.exe are available in the download page to reduce the participants implementation efforts.
  • During the upload process, please select Win32 executable as Algorithm type.

    Python script

  • In the Python script (dmad_detect.py) two functions must be implemented: initialize and detect_morph_differentially.
  • The initialize function initializes all internal parameters and loads auxiliary resources (e.g., configuration files, weights of a pre-trained model, etc.) in preparation of the morphing detection task.
    Signature def initialize(alg_extra_data_folder_path) -> ReturnCode
    Input parameters - alg_extra_data_folder_path: a string with the absolute path to a read-only directory containing auxiliary resources that cannot be directly submitted during the upload process because they exceed the submission file size limit (see below for more information on how to upload large sized files). All auxiliary resources submitted with the Python script can be loaded from the current directory ignoring this parameter.
    Return values - ReturnCode: an IntEnum representing the return value of the function (see the Python script sample in the download page for more details).
  • The detect_morph_differentially takes two input images (suspected and probe) and an associated image label describing the image format/origin and it outputs a binary decision on whether the suspected image is a morph and a score indicating how confident the algorithm thinks it is a morph.
    Signature def detect_morph_differentially(suspected_morph_file_path, label, probe_face_file_path) -> Tuple[ReturnCode, bool, float]
    Input parameters - suspected_morph_file_path: a string containing the suspected morph face image file path. The supported image formats are: .BMP, .JPG, .PNG, .JP2, .JPF.;
    - label: an IntEnum describing the format of the suspected morph image: unknown photo format/origin (0), non-scanned digital photo (1) or a photo that is printed, then scanned (2). See the Python script sample in the download page for more details;
    - probe_face_file_path: a string containing the face image file path of the subject known not to be a morph. The supported image formats are: .BMP, .JPG, .PNG, .JP2, .JPF.
    Return values - ReturnCode: an IntEnum representing the return value of the function (see the Python script sample in the download page for more details);
    - bool: it is True if the image contains a morph or False otherwise;
    - float: it is the morph score ranging from 0 to 1 representing how confident the algorithm is that the image contains a morph: 0 means certainty that image does not contain a morph and 1 represents certainty that image contains a morph.

  • The script has to operate only on the explicitly-given inputs, without exploiting any learning technique or template consolidation/update based on previous comparisons.
  • A Python script sample is available in the download page to reduce the participants implementation efforts.
  • Auxiliary resources (e.g., trained models, configuration files, Python modules, etc.) can be submitted with the Python script during the upload process. If they exceed the submission file size limit, please contact the system administrator at fvcongoing@csr.unibo.it.
  • During the upload process, please select:
    • Python script as Algorithm type.
    • the Docker image on which the submitted script will be executed (see the docker page for more details).

    Linux dynamically-linked library

To submit a Linux dynamically-linked library compliant to NIST FRVT MORPH specifications (v. 3.0 - May 19, 2022) proceed with the following steps:

  1. Create a ZIP file with the following NIST FRVT MORPH folders:
    • lib - containing all participant-supplied software libraries;
    • config – containing all configuration and developer-defined data, e.g., trained models.
  2. Send the ZIP file (using a file sender service or a direct link) from the e-mail address of your FVC-onGoing participant account to fvcongoing@csr.unibo.it.
  3. Wait to receive an e-mail from the FVC-onGoing organizers with a ZIP file attached (containing a TXT file).
  4. Submit the ZIP file (without changing it) to the desired benchmark using the Upload function. During the upload process, please select:
    • NIST dynamic library as Algorithm type.
    • the Docker image on which the submitted library will be executed.

The table below reports the docker images available for the evaluation of a NIST Linux dynamically-linked library on the DMAD benchmark area:

Docker image nameDescription
nist_frvt_ubuntu-20.04.364-bit version of Ubuntu 20.04.3 LTS (Focal Fossa) OS as defined in the NIST FRVT specification v. 2.0, August 29, 2022.

Constraints

During test execution the following constraints will be enforced:

Benchmark Maximum time for each detection
DMAD-TEST 30 seconds
DMAD-BIOLAB-1.0 20 seconds
DMAD-MORPHDB_D-1.0 20 seconds
DMAD-MORPHDB_P&S-1.0 20 seconds
DMAD-SOTAMD_D-1.0 10 seconds
DMAD-SOTAMD_P&S-1.0 10 seconds
DMAD-SOTAMD_PM_D-1.0 10 seconds
DMAD-SOTAMD_UC_P&S-1.0 10 seconds
DMAD-IMARS-HQ_FULL-1.0 3 seconds
DMAD-IMARS-HQ_SMALL-1.0 5 seconds
DMAD-IMARS-HQ_HARD-1.0 4 seconds
DMAD-IMARS-MQ_FULL-1.0 4 seconds
DMAD-IMARS-MQ_SMALL-1.0 8 seconds
DMAD-IMARS-MQ_HARD-1.0 8 seconds

Each detection attempt that violates one of the above constraints results in a failure to detect.

The following time breaks are enforced between two consecutive submissions to the same benchmark by the same participant.

Benchmark Minimum break
DMAD-TEST 6 hour(s)
DMAD-BIOLAB-1.0 15 day(s)
DMAD-MORPHDB_D-1.0 15 day(s)
DMAD-MORPHDB_P&S-1.0 15 day(s)
DMAD-SOTAMD_D-1.0 15 day(s)
DMAD-SOTAMD_P&S-1.0 15 day(s)
DMAD-SOTAMD_PM_D-1.0 15 day(s)
DMAD-SOTAMD_UC_P&S-1.0 15 day(s)
DMAD-IMARS-HQ_FULL-1.0 30 day(s)
DMAD-IMARS-HQ_SMALL-1.0 15 day(s)
DMAD-IMARS-HQ_HARD-1.0 15 day(s)
DMAD-IMARS-MQ_FULL-1.0 30 day(s)
DMAD-IMARS-MQ_SMALL-1.0 15 day(s)
DMAD-IMARS-MQ_HARD-1.0 15 day(s)

Performance Evaluation

For each algorithm, bona fide (evaluating bona fide face images) and morph (evaluating morphed face images) attempts are performed to compute Bona fide Presentation Classification Error Rate (BPCER) and Attack Presentation Classification Error Rate (APCER). As defined in [4] the BPCER is the percentage of bona fide presentations falsely classified as morphing presentation attacks while the APCER is the proportion of morphing attack presentations falsely classified as bona fide presentations.

Although it is possible to reject images, this is strongly discouraged. In fact, rejection is fused with other error rates for measuring the performance indicators; in particular, each rejection will be considered as a detection of a morphed image (isMorph="TRUE" and score=1).

For each algorithm the following performance indicators are reported:

  • EER (detection Equal-Error-Rate: the error rate for which both BPCER and APCER are identical)
  • BPCER10 (the lowest BPCER for APCER10%)
  • BPCER20 (the lowest BPCER for APCER5%)
  • BPCER100 (the lowest BPCER for APCER1%)
  • REJNBFRA (Number of bona fide face images that cannot be processed)
  • REJNMRA (Number of morphed face images that cannot be processed)
  • Average detection time
  • Maximum amount of memory allocated
  • Bona fide and Morph detection score distributions
  • APCER(t)/BPCER(t) curves, where t is the detection threshold
  • DET(t) curve (the plot of BPCER against APCER)

Terms and Conditions

All publications and works that cite DMAD Benchmark Area must reference [3].

Bibliography

[1] M. Ferrara, A. Franco and D. Maltoni, "On the Effects of Image Alterations on Face Recognition Accuracy", in Thirimachos Bourlai, Face Recognition Across the Electromagnetic Spectrum, Springer, 2016.
[2] M. Ferrara, A. Franco and D. Maltoni, "Face Demorphing", IEEE Transactions on Information Forensics and Security, vol.13, no.4, pp.1008-1017, April 2018.
[3] K. Raja, M. Ferrara, A. Franco, L. Spreeuwers, I. Batskos, F. de Wit, M. Gomez-Barrero, U. Scherhag, D. Fischer, S. Venkatesh, J. M. Singh, G. Li, L. Bergeron, S. Isadskiy, R. Ramachandra, C. Rathgeb, D. Frings, U. Seidel, F. Knopjes, R. Veldhuis, D. Maltoni, C. Busch, "Morphing Attack Detection - Database, Evaluation Platform and Benchmarking", IEEE Transactions on Information Forensics and Security, November 2020.
[4] ISO/IEC JTC1 SC37 Biometrics, ISO/IEC IS 30107-3:2017, IT – Biometric presentation attack detection – Part 3: Testing and Reporting, 2017.
[5] iMARS Project Web Site. https://imars-project.eu
[6] M. Ferrara, A. Franco and D. Maltoni, "Decoupling texture blending and shape warping in face morphing", International Conference of the Biometrics Special Interest Group (BIOSIG), Darmstadt, Germany, September 2019.


For information or suggestions: fvcongoing@csr.unibo.it Copyright © 2024 Biometric System Laboratory