# Feature-Based Image Watermarking Algorithm Using SVD and APBT for Copyright Protection
## 2 Related Work
### SIFT Algorithm  
The SIFT algorithm was proposed by [PERSON] [28] to extract the local scale-invariant feature points, which are used for matching two related images. Generation steps of SIFT feature descriptors are described in the following.  
The first step is scale-space selection. The basic idea of the scale-space approach is to introduce a scale parameter into the visual information processing model and obtain visual processing information at different scales by continuously changing scale parameters. Then, the information is integrated to explore the essential characteristics of the image. The Gaussian convolution kernel [29] is the only linear kernel to achieve the scale transformation, and the scale-space kernel \(f_{\text{out}}\) can be defined as:  
\[f_{\text{out}}=K_{\text{n}}*f_{\text{in}}, \tag{5}\]  
where \(K_{\text{n}}\) is the kernel, \(f_{\text{in}}\) is the input signal, and \(*\) represents the convolution operation.  
Scale-space \(S(x,y,\sigma)\) of image \(I(x,y)\) is shown as:  
\[S(x,y,\sigma)=G(x,y,\sigma)*I(x,y), \tag{6}\]  
\[G(x,y,\sigma)=\frac{1}{2\pi\sigma^{2}}\text{e}^{-(x^{2}+y^{2})/2\sigma^{2}}, \tag{7}\]  
where \(G(x,y,\sigma)\) is the scale variable Gaussian function, \((x,y)\) are the spatial coordinates, and \(\sigma\) is the scale-space factor, which decides the smoothness of the image. A large value of \(\sigma\) represents a smooth image with overview feature, while a small value of \(\sigma\) describes an abundant image with detailed feature. To effectively detect stable points in the scale-space, [PERSON] [28] proposed the difference of Gaussian (DOG) scale-space, presented as:  
\[D(x,y,\sigma)=[G(x,y,k\sigma)-G(x,y,\sigma)]*I(x,y)=S(x,y,k\sigma)-S(x,y, \sigma), \tag{8}\]  
where \(I(x,y)\) is the input image, \(k\) is the multiple between two neighboring scale-spaces, and \(*\) represents the convolution operation. To detect the local maxima and minima of \(D(x,y,\sigma)\), each point is compared with its eight neighbors in the current image and nine neighbors in the scale above and below. With the help of the DOG scale-space image, all extreme points can be detected as feature points.  
The second step is to locate feature points, aiming at orientating the location of feature points precisely. In this way, a large number of extreme points are obtained. However, not all extreme points are feature points. Therefore, a suitable method is needed to eliminate some points.  
The third step is feature point orientation assignment, and the purpose is to achieve the SIFT features of rotation invariance. For scaling the smoothed image \(I_{\text{L}}\), the central derivative of \(I_{\text{L}}\) at each feature point can be computed. The scale and orientation at feature point \((x,y)\) can be calculated by:  
\[\left\{\begin{array}{l}\theta(x,y)=\tan^{-1}2\{\left[I_{\text{L}}(x,y+1)-I_{ \text{L}}(x,y-1)\right]/[I_{\text{L}}(x+1,y)-I_{\text{L}}(x-1,y)]\right\}\\ g(x,y)=\sqrt{\left[I_{\text{L}}(x+1,y)-I_{\text{L}}(x-1,y)\right]^{2}+\left[I_{ \text{L}}(x,y+1)-I_{\text{L}}(x,y-1)\right]^{2}}\end{array}\right., \tag{9}\]  
where \(\theta(x,y)\) is the orientation of the gradient, and \(g(x,y)\) is the magnitude.  
After obtaining the gradient direction and amplitude, the gradient direction of feature points can be determined by a gradient direction histogram. The peak represents the main direction. In the gradient direction histogram, when another peak value equals 80% of the main peak's value, this direction should be set as the auxiliary direction of this feature point. The direction matching has been completed with the location, orientation, and scale, and this step is to find the local image descriptor of the feature points.  
This completes all steps of the SIFT algorithm.