# Fully Symmetric Convolutional Network for Effective Image Denoising
## 3 Deep Symmetric Convolutional-Deconvolutional Network
### FSCN Architecture  
FSCN is a powerful visual model that yields hierarchies of features. The network trains end-to-end and pixel-to-pixel by itself. It learns convolutional-deconvolutional mappings from corrupted images to the clean ones without using image priors. Convolutional layers learn efficiently from image inputs and ground truths. It is fine-tuned from its learned representations, and the learned filters correspond to bases to reconstruct the shape of an input. It is used to capture the different level of shape details where the lower layers tend to capture overall shape while fine details are encoded in the higher layers. Deconvolution layers multiply each input pixel by a filter, and sums over the resulting output. Noisy activations are suppressed effectively while retaining the shape of the input by the deconvolution process. FSCN can separate the noisy observation from image structure through hidden layers by incorporating convolution and deconvolution layers with ReLu. Figure 1 illustrates the skeleton of the proposed FSCN architecture for denoising. This architecture comprises a chain of successive symmetric convolutional-deconvolutional layers. The output of the architecture is an effective denoised image which has a noisy image input. Figure 2 demonstrates the details of the FSCN architecture. Each layer of data is a three-dimensional array of size \(h\times w\)\(\times\)\(c\), where \(h\) and \(w\) are spatial dimensions and \(c\) is the channel or feature dimension. The first layer is the image with size \(h\times w\), and \(c\) = 1 for gray image and \(c\) = 3 for the color image. The FSCN architecture with depth \(N\) has two types of layers: (i) Convolution (Conv) with ReLu for odd layers and (ii) Deconvolution (Deconv) with ReLu for even layers. For Conv with ReLu layers located at 2\(l\)\(-\)1 position, (\(l\) = 1, 2, 3, 4, and 5) filters (\(f\)) of size \(m\times n\times c\) are used to generate feature maps (\(F\)) which are capable of achieving favorable performance in many computer vision tasks. Here, Conv layers act as feature extractor which preserves the primary components of objects in the image while eliminating the corruptions, and ReLu is then utilized for nonlinearity. For Deconv with ReLu layers located at 2\(l\), (\(l\) = 0, 1, 2, 3, 4) filters (\(f\)) of size \(m\times n\) are used. Deconv layers are combined with Conv layers to recover even the subtle loss of image details during the convolution process. The last layer has only one kernel to obtain an image output. Figure 1: The architecture of the proposed FSCN. The FSCN architecture can be formulated mathematically as follows. The convolutional and deconvolutional layers are expressed as  
\[G_{0}=\ x_{i} \tag{1}\]  
where \(x_{i}\) is the noisy image and \(G_{0}\) denotes the zeroth group that contains the noisy image. The architecture is split into various groups where the output of each group is fed as input to the following groups. Each group performs convolution (\(\otimes\)) and deconvolution (\(\oplus\)) operations. \[G_{1}=\ C_{2}\oplus(C_{1}\otimes G_{0}+b_{1})+b_{2} \tag{2}\]  
The input noisy image is fed as input to group \(G_{1}\), where the first convolution operation is performed with the noisy image which is followed by the deconvolution operation. Similarly, the next group receives the output from the previous group and performs the second set of convolution-deconvolution operations and is given by the following equation:  
\[G_{2}=\ C_{4}\oplus(C_{3}\otimes G_{1}+b_{3})+b_{4} \tag{3}\]  
Assuming that we have a network with \(l\) layers, the convolution-deconvolution operations are performed for each group \(G_{k}\). According to the architecture, the output of the \(i\)th layer can be obtained by the following equation:  
\[y_{i}=G_{k-1}=\ C_{N-l}\oplus(C_{N-l-1}\otimes G_{k-2}+b_{N-l-1})+b_{N-l} \tag{4}\]  
where \(y_{i}\) represents the clean version of the ground truth image and \(N\) depth.