# Image Copy-Move Forgery Detection Based on Fused Features and Density Clustering
## 3 SURF and A-KAzE Descriptors
### SURF Descriptor  
At present, the image CMFD algorithms based on feature points are mainly the SIFT and SURF algorithms. The SURF algorithm uses the Hessian matrix for efficient calculations, which overcomes the shortcomings of SIFT in terms of too high feature dimension and long calculation time [30]. The SURF algorithm simplifies the Gaussian second-order differential template in the Hessian determinant, i.e., converts the convolution smoothing operation, to an addition and subtraction operation. Furthermore, the SURF algorithm has better robustness and lower time complexity compared to the SIFT algorithm. SURF cannot maintain the scale and rotation invariance of SIFT, but it has strong robustness to changes in lighting and affine distortion [31]. SURF determines the key points by computing the extreme points of the scale space through calculating the relevant Hessian matrix. The Hessian matrix \(H(x,\sigma)\) can be represented as:  
\[H(x,\sigma)=\begin{bmatrix}C_{xx}(x,\sigma)&C_{xy}(x,\sigma)\\ C_{xy}(x,\sigma)&C_{yy}(x,\sigma)\end{bmatrix} \tag{1}\]  
In the formula, \(x=(x,y)\), \(C_{xx}(x,\sigma)\) is the convolution of the second-order partial derivative \(\partial G(x,y,\sigma)/\partial x^{2}\) of the Gaussian function and the image at the pixel point. The determinant of matrix \(H(x,\sigma)\) is expressed as:  
\[\det(H)=C_{xx}(x,\sigma)\cdot C_{yy}(x,\sigma)-\begin{bmatrix}C_{xy}(x,\sigma )\end{bmatrix}^{2} \tag{2}\]  
Due to the high time complexity of computing second-order partial derivatives of images, SURF uses rectangular box filters to approximate the second-order partial derivatives of Gaussian functions. The box filter is composed of a simple rectangular template, which speeds up the convolution calculation and reduces the time complexity. Filtering the image with the rectangular box filter can obtain \(C_{xx}(x,\sigma)\), \(C_{xy}(x,\sigma)\), and \(C_{yy}(x,\sigma)\), and the Hessian matrix determinant for each coordinate point can be calculated to obtain the Hessian determinant image. By changing the size of the rectangular box-shaped filter and the scale of the Gaussian function \(\sigma\), scale changes are achieved, thus generating multiple Hessian determinant images and constructing a pyramid image. Using non-maximum suppression to filter key points, we can compare each point with eight neighboring points in the same scale and 18 neighboring points in adjacent scales. If the value of the point is greater than the value of its 26 neighbors and the preset threshold \(T_{S}\) (subscript \({}_{S}\) indicates SURF), the point is determined as a key point.  
The direction of SURF feature points depends on the response of a circular region with a radius of 6 centered on the key point. With the key point as the center, a sector region with an angle of \(\pi/3\) is scanned within the circular region to calculate the total horizontal and vertical Harr feature points of all points in the sector region. The longest vector direction is selected as the main direction of the key point. After determining the direction of the key point, a SURF descriptor is generated. Specifically, a square region in the neighborhood with a side length of 20\(\sigma\) is selected around and aligned with the main direction of the key point. The square region is divided into 4 \(\times\) 4 sub-regions, and 4-dimensional features are calculated for each of the \(5\sigma\times 5\sigma\) grids, including the horizontal and vertical responses of the Harr wavelet in directions \(\sum dx\) and \(\sum dy\), as well as the absolute values of the responses in directions \(\sum|dx|\) and \(\sum|dy|\). Finally, the 4-dimensional features of each sub-region are accumulated into a 64-dimensional feature vector descriptor by dividing it into 16 sub-regions.