## 3 Algorithm Overview
Decoder Computations:
2.1. Up-sampling Feature Maps:

```
Input \(Pool_{kmask},Pool_{k}\) for\(k=L\) to 1 do \(F_{dk}\gets Upsample(buff[k],Pool_{k})\) \(F_{dk}\gets BatchNorm(F_{dk})\) \(F_{dk}\gets ELU(F_{dk})\) \(F_{dk}\gets Conv(F_{{{\it deck}}},F_{{{\it dbk}}})\) if\(k>1\)then \(Pool_{k-1}\gets F_{{{\it deck}}}\) else return\(SoftMax(F_{{{\it deck}}})\) endif endfor
```

**Algorithm 3** Batch normalization [PERSON] et al. (2016): Let \(\widehat{x_{1...m}}\) be the normalized values and \(y_{1...m}\) be their linear transformations. The transformation is referred to as: \(BN_{\gamma,\beta}:x_{1...m}\to y_{1...m}\). In this algorithm, \(\epsilon\) is a constant added to the mini-batch variance for numerical stability. ## 4 CSSA Architecture

To devise an enhanced and improved architecture, we have initially proposed a smaller version of the original network. This small version is a complete working model with a reduced number of layers. The idea is to perform experiments on the reduced version and to transfer high performance units (pooling methods, activation techniques) to the extended version. Figure 1 shows the initial base model (reduced version) of the proposed architecture. It is named the Basic Testing CNN Model (BTCM). It is based on encoder-decoder networks, which are presented separately with an image input and a corresponding image output with pixel-wise semantic segmentation. The proposed architecture is a pixel-wise semantic segmentation engine, which is based on two decoupled encoding and decoding FCNs. The aforementioned encoder is based on the initial 13 convolution layers of the VGG-16 [47] network followed by the batch normalized [46] layer, an activation function, the pooling layer and dropout [48] units. Each layer in the proposed CNN is represented by a triplet \((I,W,*)\), where \(I\) is a set of tensors, and each element \(\mathbf{I}=I_{l(l=1,\dots,L)}\) is the input tensor for the \(l\)-th layer of CNN. \(W\) represents the set of tensors, where each element in this set \(\mathbf{W}=W_{lk(k=1,\dots,k^{l})}\) is the \(k\)-th weight filter in the \(l\)-th CNN layer. Additionally, \(K^{l}\) is the number of weight filters in the \(l\)-th layer of the proposed CNN. Here, \(*\) represents a convolutional operation with its operands \(\mathbf{I}\) and \(\mathbf{W}\), where \(\mathbf{I}\in\mathbb{R}^{c\times w_{in}\times h_{in}}\) in which \(c\), \(w_{in}\) and \(h_{in}\) represent channels, width and height, respectively. \(\mathbf{W}\in\mathbb{R}^{c\times w\times h}\), where \(w\leq w_{in}\) and \(h\leq h_{in}\). The decoder network is based on up-sampling layers, de-convolution layers, activation functions, batch normalized layers, dropout layers and a multi-class soft-max classifier layer. The whole architecture is based on an encoder-decoder relation where every decoder corresponds to a pooling unit of the encoder. Thus, the decoder CNN possesses 13 de-convolution layers. The decoder feeds its computations to a multi-class soft-max classifier to output the class probabilities intended for every pixel independently. The network starts its training with an input image and proceeds through the network to final layers. The encoder performs convolution with a set filter banks to yield feature maps, and then, the batch normalization operation is performed. Later, Exponential Linear Units (ELU) [49] carry out activations. Then, the max-pooling operation is performed with a \(2\times 2\) window size and stride-rate of two. In this way, the resultant image is sub-sampled by a factor of two. Whereas numerous pooling layers can offer more translation invariance for robust classification tasks, there is an unnecessary loss of spatial resolution of the feature maps. An image with increasingly lossy boundary details is not useful for segmentation tasks. Therefore, for semantic segmentation, boundary delineation is so important. Hence, there is a need for capturing and storing the boundary information in the encoder feature maps prior to the sub-sampling operation.