The popular tool called
Receiver Operating Characteristics (
ROC) graph [
54] is adopted. In the ROC graph, the horizontal axis presents
False Positive Rate (
FPR) and the vertical axis presents
True Positive Rate (
TPR). Their calculation formulas are defined below.
where
\(N_d\) is the number of different images,
\(N_f\) is the number of different images incorrectly distinguished,
\(N_s\) is the number of similar images, and
\(N_t\) is the number of similar images successfully identified. Note that the
\(P_{\rm {{FPR}}}\) and
\(P_{\rm {{TPR}}}\) correspond to discrimination and robustness, respectively. A group of points with the coordinates
\((P_{\rm {{FPR}}}, P_{\rm {{TPR}}})\) are calculated by using some thresholds and these points are used to plot an ROC curve. According to the meanings of
\(P_{\rm {{FPR}}}\) and
\(P_{\rm {{TPR}}}\), an ROC curve near the top left corner makes better classification than that far away from the corner.
In this section, the used datasets are identical to Sections
4.1 and
4.2. The selection of block size
\(S \times S\) is discussed. In the experiments, only the
S value is different and other parameters are kept the same. The selection sizes are
\(S=16\),
\(S=32\), and
\(S=64\). Figure
9 shows the ROC curves of different
S values. It can be seen that the ROC curve of
\(S=16\) is slightly nearer than the curves of
\(S=32\) and
\(S=64\), illustrating a little better performance of classification. Therefore, compared to
\(S=32\) and
\(S=64\),
\(S=16\) can provide a better classification performance. The
area under the ROC curve (
AUC) is calculated and its interval ranges from 0 to 1. A greater AUC value indicates superior classification performance. Table
5 compares the AUC values, hash length and the running time of different
S values. The AUCs of
\(S=16\),
\(S=32\), and
\(S=64\) are 0.99976, 0.99967, and 0.99958, respectively. Clearly,
\(S=16\) has the largest AUC value, but the AUC difference among these
S values are not large. For example, the AUC difference between
\(S=16\) and
\(S=32\) is 0.00009, while the AUC difference between
\(S=16\) and
\(S=64\) is 0.00018. The hash lengths of
\(S=16\),
\(S=32\), and
\(S=64\) are 160, 88, and 70 bits, respectively. The running time of
\(S=16\),
\(S=32\), and
\(S=64\) is 0.226, 0.096, and 0.074 seconds, respectively. In view of the whole performances of the AUC, hash length, and time, the selection of
\(S=32\) is preferable for our algorithm.