Keywords

1 Introduction

Image splicing is a very common and simple tampering manner which creates a composite image by cropping and pasting regions from the same or different images without postprocessing. Spliced images could be so eye-deceiving that they are scarcely distinguished from authentic ones even without any postprocessing. In addition, malicious image splicing manipulation may mislead the public and persuade them to believe something that never exists.

Recently, many techniques have been developed to reveal image splicing tampering. Ng et al. in [1] proposed to use third order moment spectra (i.e. bicoherence) based features for splicing detection. It is claimed that bicoherence is sensitive to quadratic phase coupling (QPC) caused by splicing discontinuity. The detection accuracy as high as 72% over the image dataset [2] was achieved. Johnson and Farid in [3] developed a method to determine whether an image has been tampered with the assumption that both the original part and tampered part were taken under the same or approximately similar lighting conditions. In [4], Fu et al. generated features from Hilbert-Huang Transform (HHT) and moments of characteristic function of wavelet sub-bands, a detection accuracy of 80.15% was reported. Chen et al. in [5] utilized 2-D phase congruency and statistical moments of wavelet characteristic function to capture splicing artifacts. The detection accuracy as high as 82.32% over the image dataset [2] was achieved. In [6], the detection performance of two types of statistical features derived from moments of characteristic functions of wavelet subbands and Markov transition probabilities of difference 2-D arrays, which are proposed by Shi et al., outperformed the prior arts in the field of image splicing detection. Their statistical features have achieved detection rates of 86.82% and 88.31% respectively.

The methods mentioned above have achieved very promising detection results. In this chapter, image splicing detection is considered from a different perspective. The LBP operator is used to model magnitude components of 2-D arrays obtained by applying multi-size block discrete cosine transform (MBDCT) to the test images, all of bins of histograms computed from LBP codes can be served as discriminative features for image splicing detection. Principal component analysis (PCA) is used to reduce the dimensionality of the proposed features. It is expected that the proposed method can detect the splicing introduced trace effectively.

The rest of this chapter is organized as follows. The proposed method is described in Sect. 19.2. The experimental results are reported in Sect. 19.3. Finally, conclusions are drawn in Sect. 19.4.

2 Proposed Method

In this Section, a concrete feature extraction procedure for image splicing tampering detection is proposed, which is shown in Fig. 19.1. The details are as follows.

Fig. 19.1
figure 00191

Feature extraction procedure

2.1 Preprocessing

From a viewpoint of signal processing, image splicing detection can be considered as a problem of weak signal (i.e. splicing artifacts) detection in the background of strong signal (i.e. image content). To reduce the effects caused by the diversity of image content and enhance the splicing artifacts, it is necessary to preprocess images before feature extraction. The block discrete cosine transform (BDCT) has been commonly used in the popular image and video compression schemes such as JPEG and H.264 owing to its good property of decorrelation and energy compaction. In order to capture the splicing artifacts caused by different possible splicing operations, different test images and different pasted image fragments, we first preprocess the test images by multi-size block discrete cosine transform (MBDCT) which is proved to be effective for image splicing detection [6], and resulting BDCT coefficient 2-D arrays are used for subsequent feature extraction.

The b × b BDCT of an image can be divided into the following steps:

  1. 1.

    Split the given image into non-overlapping b × b blocks.

  2. 2.

    Perform 2-D DCT on each b × b image block independently. The corresponding DCT coefficient 2-D array Y for a b × b image block X is given as

    $$ Y = {C^T}XC $$
    (19.1)

    Where

    $$ \left\{ \begin{array}{llll} C(k,l) = \frac{1}{{\sqrt {b} }},\quad 0 \leq k \leq b - 1,l = 0 \hfill \\C(k,l) = \sqrt {{\frac{2}{b}}} \cos \bigg(\frac{\pi (2k + 1)l }{2b }\bigg),\quad 0 \leq k \leq b - 1,1 \leq l \leq b - 1 \end{array} \right. $$
    (19.2)
  3. 3.

    Combine all the b × b DCT coefficient 2-D arrays of the given image into a BDCT coefficient 2-D array.

Based on the experimental dataset [2], we empirically choose the block size as 4 × 4, 8 × 8, and 16 × 16 to perform BDCT for a compromise between detection performance and computing complexity when preprocessing the test images.

2.2 Feature Extraction

2.2.1 Brief Review of LBP

LBP [7] is a powerful texture classification method. As shown in Fig. 19.2, given a central pixel g c , g p (p = 0, 1, 2… P−1) is the value of its neighbors, P is the total number of involved neighbors, and R is the radius of the neighborhood. Suppose the coordinate of g c is (x c , y c ), then the coordinates of g p are (x c  + Rcos (2πp/P), y c Rsin (2πp/P)). The gray values of neighbors which do not fall exactly on pixels can be estimated by bilinear interpolation. For the central pixel g c , the LBP coding strategy can be formulated as

Fig. 19.2
figure 00192

Circularly symmetric P neighbor set with radius R

$$ LB{P_{P,R }} = \sum\limits_{p = 0}^{P - 1 } {s({g_p} - {g_c}){2^p}} $$
(19.3)

Where

$$ s(x) = \left\{ \begin{array}{lll} 1,\quad x \geq 0 \hfill \\0,\quad\quad x < 0 \end{array}\right. $$
(19.4)

After the LBP codes of all pixels for a gray image are computed, a histogram is built as a texture descriptor which characterizes important information about spatial structure of image texture.

Furthermore, the U value of an LBP pattern is defined as the number of spatial transitions (bitwise 0/1 changes), it can be formulated as

$$ \begin{array}{llll} U(LB{P_{P,R }}) = \left| {s({g_{p - 1 }} - {g_c}) - s({g_0} - {g_c})} \right| \hfill \\\quad \quad \quad \quad + \sum\limits_{p = 1}^{P - 1 } {\left| {s({g_p} - {g_c}) - s({g_{p - 1 }} - {g_c})} \right|}\end{array} $$
(19.5)

The uniform LBP patterns refer to the patterns which have U values of at most 2 while the remaining patterns are all classified into non-uniform class. Therefore, the number of bins in a histogram computed from LBP codes can be reduced from 2P to P(P−1) + 3 by means of uniformity mapping, the resulting LBP descriptor is denoted as \( LBP_{P,R}^{u2 } \). The uniformity mapping can be implemented with a lookup table of 2P elements. In this chapter, P = 8 and R = 1 are investigated for image splicing detection. Consequently, the number of bins in a histogram computed from \( LB{P_{8,1 }} \) is 256 while that computed from \( LBP_{8,1}^{u2 } \) is 59.

2.2.2 Capturing the Splicing Artifacts Using Local Binary Patterns of DCT Coefficients

From the image splicing procedure, sharp splicing edges could be exposed in a spliced image without any postprocessing, thus the key of image splicing detection is how to capture these splicing artifacts. The splicing manipulation changes the local frequency distribution of the host images. BDCT coefficients can reflect these changes to a certain degree. The essence of the LBP technique is that each element of a given 2-D array is compared with its neighbor elements and then binarized. Hence, LBP coding records the occurrences of various patterns. LBP can be employed to model the magnitude components of the 2-D arrays obtained by applying MBDCT to the test images. It is expect that the LBP operator can reflect the local frequency distribution change of the host images effectively.

In order to catch the artifacts caused by image splicing more sensitively and obtain more discriminative information between authentic images and spliced images, (19.4) can be redefined as

$$ s(x) = \left\{ \begin{array} {lll}1,\quad x \geq \sigma \hfill \\0,\quad x < \sigma \end{array} \right. $$
(19.6)

Based on the experimental dataset [2], \( \sigma \) is selected as 0.9 in the proposed method. The details are given in Sect. 19.3.2. When computing \( LB{P_{8,1 }} \) or \( LBP_{8,1}^{u2 } \) features, we only use the block size as 4 × 4, 8 × 8, and 16 × 16 to generate the MBDCT coefficient 2-D arrays. Therefore, we have 256 × 3 = 768 \( LB{P_{8,1 }} \) features and 59 × 3 = 177 \( LBP_{8,1}^{u2 } \) features for each test image in this specific implementation.

3 Experiments and Results

The Columbia Image Splicing Detection Evaluation Dataset [2] is used to evaluate the efficiency of the proposed method in our experimental work. There are 933 authentic and 912 spliced images in this dataset. Images in this dataset are all in BMP format with a fixed size of 128 × 128 pixels. LIBSVM [8] is used as the classifier. The RBF kernel function is selected for classification. In each experimental, 5/6 of the authentic images and 5/6 of the spliced images are randomly picked out to train the SVM classifier, and the remaining 1/6 of the authentic images and 1/6 of the spliced images are used to test the trained SVM classifier. The optimal parameters for the RBF kernel function of SVM classifier are achieved by cross-validation and grid-search procedure. The above procedure is repeated 100 times for eliminating the effect of randomness caused by image selection for training and testing. Experimental results are evaluated by the average true positive rate (TPR), average true negative rate (TNR) and average detection accuracy over 100 times random experiments.

3.1 Experimental Results

To evaluate the effectiveness of the proposed method, a series of experiments on the Columbia Image Splicing Detection Evaluation Dataset are carried out. Note that \( \sigma = 0.9 \) is set in this implementation. Detection results of \( LB{P_{8,1 }} \) and \( LBP_{8,1}^{u2 } \) features are shown in Table 19.1. As can be seen in Table 19.1, \( LB{P_{8,1 }} \) features perform better than \( LBP_{8,1}^{u2 } \) features even though \( LB{P_{8,1 }} \) features are of higher dimensionality. To avoid the high computational complexity and possible overfitting for SVM classifier, PCA [9] can be used to reduce the dimensionality of the proposed features. PCA achieves a linear transformation of a high dimensional input vector into a low dimensional one whose components are uncorrelated, and the first few features can be considered as dominant features for classification. Detection performance of \( LB{P_{8,1 }} \) and \( LBP_{8,1}^{u2 } \) features after PCA dimensionality reduction is shown in Fig. 19.3. Note that the first 100 dimensional PCA features are used for classification.

Table 19.1 Detection results of \( LB{P_{8,1 }} \) and \( LBP_{8,1}^{u2 } \) features (standard deviation in parentheses)
Fig. 19.3
figure 00193

Detection performance of \( LB{P_{8,1 }} \) and \( LBP_{8,1}^{u2 } \) features after PCA dimensionality reduction

From Fig. 19.3, the observations can be made as follows:

  1. 1.

    For \( LB{P_{8,1 }} \) and \( LBP_{8,1}^{u2 } \) features, the detection accuracy increases dramatically with the increase of dimensionality of dominant features obtained by PCA, and then it fluctuates on comparatively small scales.

  2. 2.

    Compared with Table 19.1, PCA features with dimensionality larger than 40 can perform as well as original \( LB{P_{8,1 }} \) and \( LBP_{8,1}^{u2 } \) features.

  3. 3.

    \( LB{P_{8,1 }} \) features always perform better than \( LBP_{8,1}^{u2 } \) features with dimensionality larger than 30.

3.2 Choice of Threshold \( \sigma \)

In order to select a desired threshold \( \sigma \), we need to find the best detection performance with various thresholds of \( \sigma \). Too small or too large \( \sigma \), the LBP operator will not be able to sensitively catch the artifacts caused by image splicing. The resulting LBP features will also offer relatively small discriminative information. Detection performance of original \( LB{P_{8,1 }} \) and \( LBP_{8,1}^{u2 } \) features for the threshold \( \sigma \) set in the range of 0–2 is shown in Fig. 19.4. From Fig. 19.4, it can easily be seen the best detection performance for the proposed features can be reached when \( \sigma = 0.9 \).

Fig. 19.4
figure 00194

Detection performance of original \( LB{P_{8,1 }} \) and \( LBP_{8,1}^{u2 } \) features with various thresholds of \( \sigma \)

4 Conclusion

In this chapter, local binary patterns of DCT coefficients have been investigated for image splicing detection. Specifically, the LBP operator were used to model magnitude components of 2-D arrays obtained by applying MBDCT to the test images, the resulting LBP features were served as discriminative features for image splicing detection. Owing to the high dimensionality of the proposed features, PCA was therefore used for dimensionality reduction. Experimental results have shown that both \( LB{P_{8,1 }} \) and \( LBP_{8,1}^{u2 } \) features perform well for capturing the image splicing artifacts, but the detection performance of the former outperforms that of the latter. Furthermore, PCA reduced the dimensionality of original features greatly without losing discriminative information. The preliminary study has indicated that our proposal to use local binary patterns of DCT coefficients is effective for capturing the image splicing artifacts. Our future work is to make a further study to enhance the detection performance of the proposed method.