allows more informative ones to pass further. This feature recalibration is achieved by using channel attention [@hu2018squeeze] and spatial attention [@woo2018cbam] mechanisms. **(1) Channel attention (CA)** branch exploits the inter-channel relationships of the convolutional feature maps by applying *squeeze* and *excitation* operations [@hu2018squeeze]. Given a feature map $\mathbf{M} \in \mathbb{R}^{H\times W \times C}$, the squeeze operation applies global average pooling across spatial dimensions to encode global context, thus yielding a feature descriptor $\mathbf{d} \in \mathbb{R}^{1\times 1 \times C}$. The excitation operator passes $\mathbf{d}$ through two convolutional layers followed by the sigmoid gating and generates activations $\mathbf{\hat{d}} \in \mathbb{R}^{1\times 1 \times C}$. Finally, the output of CA branch is obtained by rescaling $\mathbf{M}$ with the activations $\mathbf{\hat{d}}$. **(2) Spatial attention (SA)** branch is designed to exploit the inter-spatial dependencies of convolutional features. The goal of SA is to generate a spatial attention map and use it to recalibrate the incoming features $\mathbf{M}$. To generate the spatial attention map, the SA branch first independently applies global average pooling and max pooling operations on features $\mathbf{M}$ along the channel dimensions and concatenates the outputs to form a feature map $\mathbf{f} \in \mathbb{R}^{H\times W \times 2}$. The map $\mathbf{f}$ is passed through a convolution 