Abstract

Biometric based access control is becoming increasingly popular in the current era because of its simplicity and user-friendliness. This eliminates identity recognition manual work and enables automated processing. The fingerprint is one of the most important biometrics that can be easily captured in an uncontrolled environment without human cooperation. It is important to reduce the time consumption during the comparison process in automated fingerprint identification systems when dealing with a large database. Fingerprint classification enables this objective to be accomplished by splitting fingerprints into several categories, but it still poses some difficulties because of the wide intraclass variations and the limited interclass variations since most fingerprint datasets are not categories. In this paper, we propose a classification and matching fingerprint model, and the classification classifies fingerprints into three main categories (arch, loop, and whorl) based on a pattern mathematical model using GoogleNet, AlexNet, and ResNet Convolutional Neural Network (CNN) architecture and matching techniques based on bifurcation minutiae extraction. The proposed model was implemented and tested using MATLAB based on the FVC2004 dataset. The obtained result shows that the accuracy for classification is 100%, 75%, and 43.75% for GoogleNet, ResNet, and AlexNet, respectively. The time required to build a model is 262, 55, and 28 seconds for GoogleNet, ResNet, and AlexNet, respectively.

1. Introduction

Biometrics science is used to identify people using their physical characteristics. These characteristics are fingerprint, iris, palm, face, DNA, and voice [1]. Among these characteristics, the fingerprint is one the most accurate and reliable for identifying a person [2] since fingerprints are the unique biometric characteristics of any person; therefore, it is used in forensic divisions worldwide for criminal investigations where even the twins have nonidentical fingerprints.

Therefore, fingerprints have been confirmed to be good and secure biometrics. The process of fingerprint identification is to confirm or refuse if a scanned fingerprint belongs to a specific person or not. The increasing commercial applications and number of civilians that depend on fingerprint-based identification lead to a huge fingerprint database. Matching specific fingerprints stored in the database is computationally time-consuming. The subject of automatic fingerprint identification has received intensive attention among researchers.

To solve automatic fingerprint identification, fingerprints can be stored in databases based on the characteristics of their ridge and furrow patterns. In general, fingerprints can be divided into three major classes known as whorl (W), loop (L), and arch (A) according to Galton [3]. The Galton classification scheme is shown in Figure 1. The database of fingerprints can now be indexed based on one of these three classes [4].

Determining the classes that fingerprint belongs to allows fingerprint matching on the portion or index of the database corresponding to that particular class. By doing this, the time required for fingerprint identification is reduced. Such an indexing mechanism for fingerprint forms is the basis of fingerprint classification.

Edward Henry improved the classification of Galton by increasing the number of classes to five [5]. The Edward Henry classification scheme’s five classes are arches, tented arches, left loop, right loop, and whorl, which are shown in Figure 2. Several approaches have been proposed for automatic fingerprint classification. These approaches are categorized based on rule-based, structural-based, frequency-based, and syntactic [6]. Other approaches are statistical-based, neural network-based, and multiclassifier-based [7]. After fingerprint classification is completed, fingerprint matching is required. Figure 3 shows the general fingerprint matching processes.

Preprocessing stage aims to improve and enhance the quality of the image. The preprocessing stage has two functions: ridge enhancement restoration and segmentation of fingerprint images. In the classification stage, the input image is commonly classified into three or five main classes, as shown in Figures 1 and 2. In the stage of feature extraction, the block of the relevant information is extracted that will be applied for identification with the template fingerprint. In the verification stage, the decision is determined based on the percentages or matching results of similarity. Several techniques for fingerprint matching have been proposed. These techniques are minutiae-based [8], correlation-based [9], and pattern-based [10].

The rest of the paper is organized as follows: Section 2 explains the related work. Section 3 shows the proposed method. Section 4 elaborates the used dataset and the mathematical model used to classify the dataset. Section 5 presents results and discussion. Finally, Section 6 concludes the paper.

The classifications of fingerprints shall be made on the basis of following characteristics: ridges, ends, bifurcations, delta, and cores. Fingerprints are classified into whorl, right loop, double loop, left loop, and arch classes based on these characteristics. Most of the fingerprints datasets have a large size. To find a match-out fingerprint of such a large dataset, a correct classification of the images is required. Machine learning (ML) is one of the applications that is attracting the growth of categorization of fingerprints in impractical application domains. As a result, various research studies employing machine learning to classify fingerprints have been done. Therefore, several studies have been conducted for fingerprint classification using ML.

The study by [11] implemented a fingerprint classification system using a fuzzy neural network classifier and its output in the recognition method. The classification scheme is based on the extraction of the fingerprint feature, which involves encoding the singular points along with their relative positions and directions from a fingerprint image of the binaries. Analysis of images is carried out in four steps, namely, segmentation, estimation of directional image, extraction of singular points, and encoding of features. This involves the encoding of the singular points (core and delta) with direction and location.

Zhang and Yan [12] presented ridge tracing analysis and curves features for fingerprint classification. SVM is an ML algorithm that adopts a robust approach to fingerprint classification. The presented approach provided a system of classification that was highly accurate. The algorithm’s benefit is seen when classifying fingerprints into different classes.

Moreover, Hong and Wang et al. [13] proposed a combination of the SVM and the naive Bayes to classify the fingerprints based on the number of fingerprint core and delta points.

While Wang et al. [14] proposed a fingerprint classification algorithm based on a depth neural network to improve classification accuracy, they adopted the softmax regression for fuzzy classification. They gave the “suspicious” fingerprints a secondary class.

Furthermore, Kouamo and Tangha [15] proposed a fingerprint authentication model using a neural network with a multilayer perceptron structure and extraction algorithm. They used probability calculations to identify the subblocks of the input image. More recently neural network fingerprint classification method is [16] where the proposed method is retrained over AlexNet, GoogleNet, and ResNet with an average precision of 95.55%, 92.51, and 94, 88 respectively.

Matching fingerprints is the mechanism by which the similarity scores between the two fingerprints match. Due to its intraclass correlation diversities from the fingerprint images of the same finger and its correlation similarities from the fingerprint images of different fingers, fingerprint matching is a challenging pattern-recognition problem. This form of diversity occurs particularly due to the pressure of the finger, the placement-rotation of the finger, the dryness of the skin and finger cuts, and so on. For the form of similarity similarities, this happens primarily when the method only describes the print for three types of fingerprint patterns (arch, loop, and whorl). Several studies have been proposed for fingerprint matching; here is a review of some of them.

Peralta et al. [17] proposed a general technique of decomposition for the matching algorithm based on minutiae. It breaks up the matching scores into very comprehensive processes. Any minute algorithm can be adapted to frameworks like MapReduce or Apache Spark by decomposition.

In another study conducted by Lee et al. [18], they proposed a new partial fingerprint matching for all sensors in mobile devices using minutiae and ridge-form features (RSFs). RSFs are the small ridge segments that observe unique edge shapes. There have been numerous algorithms of fingerprint classification developed [12, 1926]. Among them, the generally used features are orientation and singularities image information. Combining these characteristics is a common occurrence. Unfortunately, singularity points are not always present in a fingerprint image: either the acquisition process was not perfect, resulting in a fractured fingerprint, or the fingerprint belongs to the arch class. Pseudosingularity points will be discovered and extracted in the circumstances mentioned above, allowing for fingerprint categorization and matching [27].

The geometric properties of major ridge curves in a fingerprint image called orientation field flow curves were used to achieve a manual fingerprint categorization (OFFCs) [28]. Recently, a method for detecting a fingerprint’s reference point was proposed, which involved examining the curvatures of the fingerprint ridges, more information [29], which had a total execution time of 143 milliseconds for the most important stages. Distinctive Ridge Point (DRP), a recent fingerprint feature, has been developed [30], along with an enhancement triangle-based representation that includes minutiae. In this method, to achieve better outcomes, this strategy must reduce the dependence of ridge points on minutiae. Recently, a receiver operating characteristic (ROC) [31] curve model was suggested that used a weighted empirical approach to account for both the order constraint and the within-cluster correlation structure. As a result, the additional time complexity is required for statistical assessment of performance fingerprint matching data. Most recently, a novel technique [32] has been offered for fingerprint reconstruction that takes into account orientation field direction and minutiae density, although the suggested method for reconstruction of orientation field simply takes into account the local orientation pattern.

In the next section, we present the proposed model for fingerprint classification based on neural networks and matching based on bifurcation minutiae extraction.

3. Proposed Model

Identification of fingerprints is the oldest forensic science known to humans. Over time, fingerprints have proved to be the fastest, most accurate, and most cost-effective means of identifying unknown deceased persons, especially in a mass disaster setting. In addition, the fingerprint is one of the most accurate and discriminating biometrics that has been investigated and used to identify human beings for hundreds of years [33]. In order to address the limitations of existing contact-based fingerprint identification systems, improve recognition accuracy, and reduce time analysis function, a fingerprint database with categories and prepossessing using neural network classification technique has attracted growing attention in order to improve accuracy and reduce the time for fingerprint classification and matching. Figure 4 shows the architecture of the proposed model.

Algorithm 1 for the proposed model is given in the following box.

Step 1: Preprocessing the dataset (image categorization using categorization method, 2D grayscale to 3D color, binarization, and thinning) and a test set of fingerprint images.
Step 2: Training the dataset using CNNs (GoogleNet, AlexNet, and ResNet).
Where 70% of data are for training and 30 for testing.
Step 3: Input the image and preprocess the image (2D grayscale to 3D color, binarization, and thinning).
Step 4: Classify the input image using neural network classifiers.
Step 5: After the input fingerprint is classified into a specific pattern, matching using minutiae extraction will be done.
Categorization method:
(1)For (i = 1, i = length of data set, i++)
(2){
(3)X = read image
(4)if X satisfies {x˙ = y, y˙ = −x(x2 − 1)2}
(5)OR {x˙ = y, y˙ = −x(x2 − 1)2 + 0.2y(x2 − 1)2} OR {x˙ = y, y˙ = −x(x2 − 1)2 − 0.2y(x2 − 1)2} OR {x˙ = y, y˙ = −x(x2 − 1)2 + 0.9y(x2 − 1)2}
(6)THEN
(7)X belong to Whorl patterns
(8)else if X satisfies x˙ = y2, y˙ = 0.001xORx˙ = y2, y˙ = 0.5x
(9){ − }
(10){ − }
(11)ORx˙ = y2, y˙ = 5x THEN
(12){ − }
(13)X belong to Arch patterns; else
(14)X belong to loop patterns
(15)}

System 1 shows the mathematical model for the concentric whorl pattern, which is illustrated in Figure 5; see [4].

System 2 represents the mathematical model for the upper right-lower left (UR-LL) spiral whorl pattern, which is shown in Figure 6; see [4].

System 3 describes the mathematical model for the lower right-upper left (LR-UL) spiral whorl pattern, which is explained in Figure 7; see [4].

System 4 clarifies the mathematical model for the composite whorl with the S core pattern, which is shown in Figure 8; see [4].

System 5 represents the mathematical model for the plain arch pattern, which is appeared in Figure 9; see [35].

System 6 shows the mathematical model for the tented arch pattern, which is shown in Figure 10; see [35].

System 7 represents the mathematical model for the strong arch pattern, which is explained in Figure 11; see [35].

3.1. Preprocessing

A fingerprint image has a lot of redundant information when it is captured. To get an acceptable and accurate image, the problems such as images with scars, too dry or too moist fingers, or incorrect pressure must be overcome. Hence, the input fingerprint images need to be preprocessed. The preprocess for fingerprint images can be done using some processes such as image enhancement, normalization, filtering, noise reduction, binarization, and thinning [36]. In this research, binarization and thinning are applied since they are widely used before fingerprint classification and matching. In the proposed architecture, preprocessing consists of three phases: 2D grayscale to 3D color, binarization, and thinning.(i)2D grayscale to 3D color: the main idea to convert from 2D grayscale to 3D color is that the CNNs just accept the image with 3D color so that the following MATLAB function is used for converting:AugmentedTrainingSet = augmentedImageDatastore(imageSize, trainingSet, ‘ColorPreprocessing’, ‘gray2rgb’); augmentedTestSet = augmentedImage-Datastore (imageSize, testSet, ‘ColorPreprocessing’, ‘gray2rgb’);(ii)The separation of the object and background is known as binarization. The applied imbinarize function (I) using MATLAB generates a binary image from 2D grayscale or 3D color image by replacing all values above a globally determined threshold with 1s and setting all other values to 0s. By default, imbinarize uses Otsu’s method, which chooses the threshold value to minimize the intraclass variance of the threshold black and white pixel [37]. Imbinarize uses a 256-bin image histogram to compute Otsu’s threshold.(iii)One way to make a skeleton is through thinning algorithms. The technique takes a binary image of a fingerprint and makes the ridges that appear in print just one pixel wide without changing the overall pattern and leaving gaps in the ridges creating a sort of “skeleton” of the image. Thinning makes it easier to find minutiae and removes a lot of redundant data that would have resulted in longer process time and sometimes different results [38].

Figure 12 shows the preprocessing image after applying binarization and thinning.

3.2. Neural Network

ML algorithms are a field of Artificial Intelligence (AI) that provides computers with intelligence by studying the underlying relationships between the data and making decisions without explicit programming. Since the late 1990s, several and numerous ML algorithms have been implemented to mimic sensory human responses such as speech and vision but have generally failed to achieve satisfaction at the human level [39, 40]. The challenging nature of Machine Vision (MV) tasks produces a specific class of neural networks called CNN [41].

CNN is considered one of the best strategies for learning image content and shows state-of-the-art results related to image recognition, segmentation, detection, and retrieval-related tasks [4244]. CNN’s success has attracted attention outside academia, industry, and companies including Google, Microsoft, AT&T, NEC, and Facebook that have formed active study groups to explore CNN’s new architectures [45]. At present, deep CNN-based models are employed by most of the frontrunners in image processing competitions. CNN is also a special one-size-fits-all multilayer neural network developed to recognize visual patterns directly from pixel images with minimal preprocessing [46]. Figure 13 shows the structure of a CNN. This research uses the AlexNet, GoogleNet, and ResNet CNN architecture classifier [47] for training fingerprint datasets.

3.2.1. AlexNet

The usage of AlexNet [47, 48] since the beginning of deep CNNs was limited to hand digit recognition tasks and did not scale well to all classes of images. AlexNet [49] is considered as the first deep CNN architecture, which showed groundbreaking results for image classification and recognition tasks. AlexNet was proposed by Lee et al. [18]. They improved the learning capacity of the CNN by doing it deeper and by applying several parameter optimizations strategies [49]. Technology constraints in the early 2000s curtailed the learning ability of deep CNN architecture by limiting it to limited dimensions. To gain from CNN’s representational ability, AlexNet was simultaneously trained on two NVIDIA GTX 580 GPUs to address hardware deficiencies. With AlexNet, feature extraction stages have been expanded from 5 (LeNet) to 8 to render CNN accessible for different image categories [47].

3.2.2. GoogleNet

GoogleNet is called Inception-V1. The key goal of GoogleNet’s architecture was to achieve high precision and reduce computational costs [50]. It presented the latest definition of the initiation block in CNN, where it integrates multiscale convolutionary transformations through the notion of separating, transforming, and merging. This block encapsulates filters of different sizes (1 × 1, 3 × 3, and 5 × 5) to capture various scales of spatial information (at both fine and coarse grain levels). In GoogleNet, convolutionary layers are substituted in small blocks, as suggested in the Network in Network (NIN) architecture, such as replacing each layer with micro-NN [51]. GoogleNet’s exploitation of the concept of splitting, transforming, and merging has helped resolve a problem related to understanding various types of variations found in the same category of various pictures. GoogleNet’s emphasis was on making the CNN parameter effective in addition to increasing learning efficiency.

3.2.3. ResNet (2015)

Residual Neural Network (ResNet) was introduced by He et al. [52] as a novel architecture featuring “skip connections” and fast batch normalization. These skip connections are also known as gated units or gated recurrent units and have a clear resemblance to recent effective elements introduced in RNNs [53]. This technique is able to train a NN with 152 layers while still having lower complexity than VGGNet [54]. It achieves a top-5 error rate of 3.57%, which beats human-level performance on this dataset.

3.3. Classification Method

In general, the study of fingerprints for matching purposes involves a comparison of several print pattern features. These include patterns that are aggregate features of ridges, as well as minutia points that are unique features contained within patterns. The three main classifications for fingerprints include the loop arch and whorl. Therefore, this research categorized the dataset into three main fingerprint patterns (arches, loops, and whorls) that make CNN works efficiently. To categorize the dataset into three main fingerprint patterns, mathematical systems for each pattern were used to identify pattern types.

3.3.1. Whorls

We have considered three mathematical systems of the whorl patterns as mentioned above in the categorization method: concentric, spiral, and composite with “S” core [4]. If the image satisfies one of these systems, then it belongs to whorl patterns. Figure 5 shows the phase portrait of the concentric whorl, Figures 6 and 7 show the phase portrait for the spiral whorl, and Figure 8 shows the phase portrait for the composite with the “S” core. The pattern of the concentric has three equilibrium points, the origin is center, and the points (1, 0) and (−1, 0) are cusps; also, there are two orbits between the endpoints from the above side and below side. On the other hand, the pattern of the spiral has three equilibrium points, the origin is spiral out, and the points (1, 0) and (−1, 0) are cusps. In addition, the image has connection orbits between the origin and the other two points on the left and right sides. In the pattern of the composite with the “S” core, the spiral core is twisted more as “S” with the existence of the cusps.

3.4. Arches

To complete the categorization method on the dataset for the three main patterns in fingerprint (whorls, arches, and loops), we have to state the three mathematical models for arch patterns which are plain, tented, and strong arch; see [55]. The phase portrait of all classes of arch fingerprint has only one singular point at the origin, that is, cusp with varying in the length of its vertical ridges in the middle. The plain pattern is represented by equation (5).

3.5. Matching

After preprocessing, the image is taken as an input to binarization and thinning to be performed. Then, the pattern of the input image is determined. Minutiae is extracted from the thinning image, and matching is conducted in a specific part in the database that is determined during classify input image stage to reduce time complexity function. The type of minutiae can also be classified into ridge bifurcation and ridge ending. Figure 14 shows an example of a ridge ending and bifurcation. A ridge bifurcation minutia is a point where a ridge splits from a single path to two paths, while a ridge ending minutia is a point where a ridge terminates.

Ultimately, if the image does not belong to the previous systems, then the image belongs to the form of loops pattern.

4. Dataset Description

In order to evaluate the proposed model, we use the FVC2004 [56] competitions dataset. These datasets are commonly used as benchmarks for evaluating fingerprint matchers in the context of fingerprint verification. Figure 15 shows a sample of fingerprints of the dataset. FVC2004 was also revealed via mailing lists and online magazines affiliated with biometrics. The creation of four new databases was performed using three commercially available scanners and a synthetic fingerprint generator [57]. The subset of each database consists of 80 fingerprints made available to the participants from 10 fingers.

5. Experimental Results

5.1. Experiments Setting

In this section, we describe a number of experiments conducted to test the proposed model for fingerprint classification and matching. The proposed model implementation runs using a MATLAB environment with a PC containing 4 GB of RAM and 4 Intel cores i5 (2.0 GHz each). In our experiments, we used the FVC2004 dataset to test the proposed model. The performance evaluation of the proposed model is done under three different CNN architectures, ResNet, AlexNet, and GoogleNet. The data have trained with various convolutional layers to find the best architecture of CNN. The CNN-based classifier has been implemented with varying layer numbers, and the GoogleNet has been implemented with 22 layers, where ResNet-18 has been implemented with 18 layers; finally, AlexNet has been implemented with 8 layers. Figure 16 shows the list of parameters setting and their candidate values for different CNN models. In order to make a fair experiment, different CNN models run under the same options.

5.2. Results and Discussion

To analyze the effect of the proposed model, different CNN architecture classifiers were applied. CNN architecture classifiers used in this paper are GoogleNet, AlexNet, and ResNet. The following presents results and a discussion of each CNN architecture classifier.

5.2.1. ResNet Results

The first experiments are performed by applying ResNet-18 to the proposed model. Table 1 shows the results that are obtained from the experiment. The training accuracy used to report during training corresponds to the accuracy of the particular training at the defined iteration. Figure 17 shows training and testing accuracy and training and testing loss with respect to iteration. From the results, we can observe that training accuracy rises to 100% in iterations 15, 69, 87, 99, and 102, which means that there is overfitting in training. The testing accuracy rises to 75% in iterations 99, 102, and 108. The overall validation accuracy is 75%. The time required to build a model for training and testing for all iterations is 55 seconds. Loss is used to optimize a deep learning algorithm. The loss is measured on training and testing, and its meaning is dependent on how well the model in these two sets is doing. It is observable that when the accuracy is high, the loss is low.

5.2.2. AlexNet Results

From the results in Table 2, we can observe that training accuracy rises to 100% in iterations 87, 90, and 102. The testing accuracy rises to 81.25% in iteration 96. The overall validation accuracy is 43.75%. The time required to build a model for training and testing for all iterations is 28 seconds. It is observable that when the accuracy is high, the loss is low. Figure 18 shows accuracy and loss for AlexNet-8, showing “training and testing accuracy” and “training and testing loss” with respect to iteration.

5.2.3. GoogleNet Results

In the experiment of the GoogleNet-22 that is applied to the proposed model, Table 3 shows the results that are obtained from training of the GoogleNet-22 architecture to the proposed model. Figure 19 obtained results from the experiment.

From the results, we can observe that training accuracy rises to 100% in iterations 48, 57, 60, 63, 66, 69, 78, 81, 84, 87, 90, 93, 96, 99, 102, 105, and 108.

The testing accuracy rises to 100% in iterations 60, 63, 66, 75, 78, 90, 93, 96, 99, 102, 105, and 108. The overall validation accuracy is 100%. The time required to build a model for training and testing for all iterations is 262 seconds. It is observable that when the accuracy is high, the loss is low.

5.2.4. Comparison of CNN Architecture Classifier

In addition, it has three main categories of fingerprints (whorls, arches, and loop). After applying three CNNs (ResNet, AlexNet, and GoogleNet) mentioned in the previous section using the MATLAB tool, the accuracy results are 100%, 75%, and 43.75% for GoogleNet, ResNet, and AlexNet, respectively. The training time results are 262, 55, and 28 for GoogleNet, ResNet, and AlexNet, respectively. Figures 20 and 21 show the accuracy and time results, respectively. According to Figure 20, GoogleNet is the accurate one. According to Figure 21, the AlexNet is the faster one. Furthermore, the fingerprint could be utilized to solve one of the most difficult problems in the system and network security: user authentication. For user authentication, time is critical. The embedded access points for trusted data and resources access in HPC systems [58] are one of interesting related work that discussed one possible solution for user authentication in network security and it is a hardware implementation in hight-performance computing field. A free database biometric authentication system is presented, with a tamper-resistant smartcard serving as the storage device. Furthermore, fingerprint processing units have been incorporated in hardware, resulting in embedded access points capable of hiding various biometric authentication system attack points. Its access point prototype, which was created with FPGA technology, a smartcard read/write device, and the AES algorithm to encrypt the biometric template, yielded intriguing results in terms of recognition rates. This interesting related work could be integrated with this proposed method as future work and other many network [59, 60] problems to produce a new efficient method.

In CNNs, adding more layers leads to extracting more features that indicate that highly accurate results could be achieved with more computation time. The main goal of the GoogleNet architecture was to get high accuracy so that the motivation for the GoogleNet is creating Inception CNN module to make a deeper CNN by adding 22 layers and almost 12 times fewer parameters than AlexNet. Thus, the highly accurate results could be achieved with more computation time. Second, the ResNet in this research had 18 layers, so it is between AlexNet and GoogleNet in the accuracy and time computation. Finally, AlexNet had 8 layers, so it is faster with less accurate.

6. Conclusion

In this paper, we have proposed a fingerprint classification and matching model based on a mathematical model using different CNN architectures. To the best of our knowledge, this is the first such attempt to tackle complex fingerprint classification issues using CNN. In our proposed model, the fingerprint image is classified into three main categories arch, loop, and whorl, and matching is performed based on bifurcation minutiae extraction. Binarization and thinning model has been used in order to improve image quality. In this paper, we have implemented and tested the proposed model with three CNN architectures, namely, GoogleNet, AlexNet, and ResNet. From the obtained results, GoogleNet provides better results in terms of accuracy. Moreover, AlexNet provides better results in terms of time training. On the other hand, the usage of reconfigurable hardware devices is a viable solution to some of the issues that plague software-based solutions. Indeed, they enable the creation of embedded and tamper-resistant devices, which are particularly helpful in contexts where security is critical. Novel hardware implementation in the field of high-performance computing is presented in [58] that could be integrated with the proposed method to produce a more effective and efficient algorithm.

Data Availability

The data used to support the findings of this paper are available online and FVC2004 free Database fingerprint dataset. They are at “http://bias.csr.unibo.it/fvc2004/” website [6].

Conflicts of Interest

The authors declare that they have no conflicts of interest.