# Denoising Multiscale Back-Projection Feature Fusion for Underwater Image Enhancement
## 3 Methodology
### Revisiting the Back-Projection Algorithm  
The back-projection algorithm [30] is a classic algorithm that has wide application for super resolution, medical image processing, and so on. In the field of super resolution (SR), the aim is to recover a high-resolution (HR) image from a low-resolution (LR) image. Unlike deep learning methods, where filters are typically learnable, this algorithm uses a fixed, back-projection kernel for reconstruction. The back-projection algorithm improves image quality by iteratively computing a reconstruction error and integrating it back into the HR image. For a single, low-resolution image, \(l^{l}\), let the subscripts \(l\) and \(h\) represent the low-resolution and high-resolution images, respectively, and let \(t\) denote the iterative count. The iterative back-projection process can be summarized as follows:  
1. **Initialization:** The algorithm initializes the low-resolution image for the first iteration as \[l^{l}_{0}=l^{l}.\] (1)
2. **Reconstruction of high-resolution image:** At each iteration, a high-resolution image, \(l^{h}_{t}\), is reconstructed from the previous iteration's low-resolution image, \(l^{l}_{t-1}\): \[l^{h}_{t}=(l^{l}_{t-1}*p_{t})\uparrow_{s},\] (2) where \(p_{t}\) is a constant back-projection kernel, differing from deep learning filters that are typically trained. Here, \(*\) denotes a spatial convolution operator, and \(\uparrow_{s}\) is the upsampling operator with a scaling factor, \(s\). Figure 1: Details of the framework for the denoising multiscale back-projection feature fusion network. The left part illustrates the encoders, where each \(EB\) denotes an encoder with DeMBFF. The right side of the figure shows the structure of the decoders, in which \(DB\) represents a decoder with DeMBFF. The superscripts denote the indices of the encoders and decoders. Each encoder \(EB\)/decoder \(DB\) fuses the multiscale features from prior features. 3. **Reconstruction error computation:** We compute the reconstruction error, \(e_{r}(I_{t}^{h})\), which is defined as the difference between the low-resolution image and the synthesized high-resolution image of \(I_{t}^{h}\) by using the following equation: \[e_{r}(I_{t}^{h})=(I_{t}^{h}*g_{t})\downarrow_{s}-I_{t-1}^{l},\] (3) where \(\downarrow_{s}\) represents downsampling with scaling factor \(s\). \(g_{t}\) is a blur filter, which is an unlearned predefined parameter. 4. **Back-projection of error to high-resolution image:** The high-resolution image is updated by back-projecting the reconstruction error as follows: \[I_{t}^{h}\leftarrow I_{t}^{h}+(e_{r}(I_{t}^{h})*p_{t})\uparrow_{s},\] (4) where \(p_{t}\) is the same filter as in Equation (2). The high-resolution image on the right side of this expression is from the reconstruction step in Equation (2). The reconstruction error, \(e_{r}(I_{t}^{h})\), is from Equation (3). Since the traditional back-projection process is sensitive to parameter choices, such as the number of iterations, \(t\), filters, \(p_{t}\), and the blur operator, \(g_{t}\), [PERSON] et al. [33] proposed an end-to-end trainable deep back-projection network (DBPN) based on the original algorithm. DBPN consists of up-projection and downprojection units, as shown in Figure 2. The up-projection unit takes the previously computed LR feature map, \(L\), as input and maps it to an HR map, \(H_{1}\). Then, it is mapped back to the LR map (\"back-project\"). The residual between the observed LR map, \(L\), and the reconstructed map, \(L_{1}\), is mapped to the HR again, which produces a new map: \(H_{2}\). The final output of the up-projection unit, \(H_{L}\), is the sum of the two intermediate HR maps, \(H_{1}\) and \(H_{2}\). In contrast, the downprojection unit tries to map an HR map, \(H\), to its LR map, \(L_{H}\). The process is similar to that of the up-projection unit. First, the HR map is downsampled to the LR map, and then it is mapped back to the HR map, \(H_{1}\).