# Privacy-Friendly Datasets of Synthetic Fingerprints for Evaluation of Biometric Algorithms
## 3 Research Methodology
### Training of Generative Models
#### 3.1.3 Pix2 pix Architecture  
Pix2 pix is a conditional GAN architecture proposed for image-to-image translation. Examples are converting satellite views to street views, summer landscape to winter landscape, or daylight pictures to night pictures. In our considerations, the generator \(G\) of pix2 pix converts the minutia map \(M\) derived from a minutiae list \(L\) as described in Section 3.1.2 to a synthetic fingerprint image \(I^{*}\), see Equation (1). Figure 2: Construction of a minutiae map. Minutiae extraction is followed by minutiae encoding either by ”directed lines” (DL) or by ”pointing minutiae” (PM). Black color is used for endings and white for bifurcations. Minutiae orientation is given by the angle \(\theta_{i}\). The fingerprint is from the Neurotechnology CrossMatch dataset [51]. \[I^{*}=G(M)=G(Enc(L))=G(Enc(MinExt(I))) \tag{1}\]  
The basic characteristics of the pix2 pix are that it uses convolutional neural network (CNN) layers, which consist of strided convolutions. Especially for compressing the image data, the stride, which is a parameter of CNN, helps in determining how many pixels should be passed moving over the given image. Even though pooling can be used for down-sampling the image, striding has the advantage that it can learn the parameters by itself through training. The network also uses the normalization technique, which helps to reduce model training time and an internal covariance shift. The standard approach is using batch normalization in \(G\) to make a gradient flow smoother for handling overfitting. The network also uses the dropout layer, which randomly drops out some neuron outputs in the layers. The activation functions are either ReLU or Leaky-ReLU for achieving non-linearity. **Generator with Skips. ** The role of \(G\) is to take a minutiae map \(M\) as an input and generate the fingerprint \(I^{*}\) as close to the original fingerprint \(I\) as possible. The backbone of \(G\) is the U-Net network introduced in [52]. The proposed U-Net mainly contributes to extending the architecture [53], which also converges with good metrics for a small number of training samples. There are other proposed approaches where the network architecture is referred to as Encoder-Decoder [54; 55]. In such networks, the encoder takes the input, progressively down-samples it, compresses it into a bottleneck representation, and progressively up-samples it. Here, the key information is the bottleneck representation. In contrast to such networks, the U-Net-based networks have skip connections, meaning that the contracting layers (down-sampling) are concatenated with corresponding expansion layers (up-sampling). The information that is being passed through the contracting path helps for localizing high resolution features. The generator \(G\) is visualized in Figure 3. The contracting layers apply \"Conv 2d\", \"Instance-Norm\", and \"Leaky-ReLU\" operations, while the expansion layers apply \"Conv-Transpose 2d\" and \"Instance-Norm\" operations. The very first and very last layers apply no normalization. The very last layer finishes the processing with \"Tahn\" activation. Even though the proposed generator \(G\) utilizes U-Net, no image modifications such as cropping, corner-cut, etc., are made at the contracting path, meaning that the input and output dimensions are the same. The generator loss comprises adversarial loss and \(L1\) loss, see Equation (2). \[Loss_{G}=Loss_{Adv}+Loss_{L1} \tag{2}\]  
The adversarial loss is derived from the discriminator \(D\) and is computed with binary cross entropy (\(BCE\)), see Equation (3). \[Loss_{Adv}=BCE(D(G(M))) \tag{3}\]  
The \(L1\) loss is computed by taking the mean absolute error (\(MAE\)) between the original image \(I\) and generator synthesized image \(I^{*}\) and multiplied with a penalty factor \(\lambda\); see Equation (4). \(\lambda\) helps to reduce the visual artifacts in some applications. \[Loss_{L1}=\lambda\cdot MAE(I^{*},I) \tag{4}\]  
**PatchGAN-based Discriminator.