# Image Copy-Move Forgery Detection Based on Fused Features and Density Clustering
## 3 SURF and A-KAzE Descriptors
### A-Kaze Descriptor  
A-KAAZE is a feature-based image matching algorithm used for tasks such as image feature detection, matching, and object tracking. The A-KAAZE algorithm was developed from the KAZE algorithm and employs a new feature detection method called accelerated scale space extrema detection (ASSED), which can detect local extrema points in scale space faster [32]. ASSED searches for local extrema points by comparing the Laplacian of the Gaussian transformation at different scales. In smooth areas, the response of the Gaussian Laplacian transformation is small, so only local extrema points can be detected in larger scale spaces. The design of ASSED enables the A-KAAZE algorithm to detect local extrema points in larger scale spaces quickly, thus extracting features in smooth regions. A-KAAZE's feature descriptor includes multi-scale and multi-directional features. The feature descriptor, particularly for smooth regions, has distinct response values at different scales, making it robust at various scales and enabling it to extract features in smooth regions. At the same time, the feature descriptor can also calculate the main direction, making them invariant to orientation and allowing them to match the same feature points at multiple rotation angles, enhancing feature stability and discriminability. In the A-KAAZE feature detection method, a non-linear scale space is constructed using non-linear diffusion filtering. Non-linear diffusion filtering considers the changes in pixel intensity at different scales as the divergence of some form of flow function. The classical non-linear diffusion formula is defined as:  
\[\frac{\partial L}{\partial t}=div[c(x,y,t)\cdot\
abla L] \tag{3}\]  
In the formula, \(div\) represents the divergence operator, \(\
abla\) represents the gradient operator, \(L\) represents the brightness information of the image, and \(c(x,y,t)\) represents the transfer function, which can be expressed as:  
\[c(x,y,t)=g(|\
abla L_{\sigma}(x,y,t)|) \tag{4}\]  
where \(\
abla L_{\sigma}\) represents the gradient of image \(L_{\sigma}\) after Gaussian smoothing and time \(t\) is used as a scale parameter; the larger its value, the simpler the representation of the image. In this article, the conduction function used to extract key points with A-KAAZE detector is [33]:  
\[g_{2}=\frac{1}{1+\frac{|\
abla L_{\sigma}|^{2}}{\lambda^{2}}} \tag{5}\]  
In the formula, \(\lambda\) is the contrast factor that controls the level of diffusion; the larger its value, the less corresponding edge information will be retained. The fast explicit diffusion (FED) algorithm is used to build an image pyramid and obtain one group of images, each with two layers. Then, group \(O\) and layer \(S\) are mapped to scale \(\sigma\) through the corresponding formula:  
\[\sigma_{i}(o,s)=2^{o+\frac{s}{5}},o=0,1,\ldots,O-1,s=0,1,\ldots,S-1,i=0,1, \ldots,M-1 \tag{6}\]where \(M\) is the number of images in the image pyramid, and \(M=O\times S\). The unit of linear filtering is scale \(\sigma_{i}\), and the unit of non-linear diffusion filtering is time. The transformation of \(\sigma_{i}\to t_{i}\) is realized by the following formula:  
\[t_{i}=\frac{1}{2}\sigma_{i}^{2},i=0,1,\ldots,M-1 \tag{7}\]  
where \(t_{i}\) is evolutionary time. A set of evolutionary time values is obtained through this mapping, and a non-linear scale space is constructed through these time values. The key point detection of A-KAAZE is similar to SURF; it calculates the Hessian determinant of image \(L^{i}\) in the non-linear scale space as follows:  
\[L^{i}_{Hessian}=\sigma_{i,n}^{2}\left(L^{i}_{xx}L^{i}_{yy}-L^{i}_{xy}L^{i}_{ xy}\right) \tag{8}\]  
In the formula, \(\sigma_{i,n}\) represents the scale-normalized scaling factor, and \(\sigma_{i,n}=\sigma^{i}/2\sigma^{i}\). A-KAAZE determines the key points in the same way as SURF.