# Self-Supervised Remote Sensing Image Dehazing Network Based on Zero-Shot Learning
## 3 Methodology
### The DCP Module  
The degradation of images under hazy conditions can be represented by the haze imaging model [37], which is expressed as follows:  
\[I(x)=J(x)t(x)+A(1-t(x)) \tag{1}\]  
where \(I(x)\) and \(J(x)\) denote the observed hazy image and its corresponding clean image at pixel location \(x\), respectively. \(t(x)\) represents the atmospheric transmission, which is the fraction of light that reaches the camera after passing through the atmosphere at the same location. \(A\) represents the global atmospheric light, which refers to the color and intensity of the light scattered by the atmosphere.  
In accordance with Equation (1), the estimation of \(t\) and \(A\) is essential to derive \(J\) from \(I\). However, this is an ill-posed problem. To address this, the _DCP_ has proven to be one of the most effective image-dehazing priors, as it is observed from the statistics of a large number of hazy and clean images. The dark channel of \(J\) can be formulated by calculating the minimum intensity in each local region as follows:  
\[J^{dark}(x)=\min_{y\in\omega(x)}\biggl{(}\min_{c\in\{r,g,h\}}(J^{c}(y))\biggr{)} \tag{2}\]  
where \(\omega(x)\) is a local window of size \(w\times w\) centered at pixel \(x\), and \(J^{c}(y)\) denotes the \(c\)-th color channel intensity at pixel \(y\). The _DCP_ implies that the dark channel value in a hazy image is a reliable estimate of the haze intensity. Typically, the dark channel of a clean image tends to be zero, i.e.:  
\[J^{dark}\to 0 \tag{3}\]  
Therefore, by applying the _DCP_ to both sides of Equation (1), we can obtain:  
\[\min_{y\in\omega(x)}\biggl{(}\min_{c\in\{r,g\}}(I^{c}(y))\biggr{)}=\min_{y\in \omega(x)}\biggl{(}\min_{c\in\{r,g\}}(J^{c}(y))\biggr{)}t(x)+A(1-t(x)) \tag{4}\]  
where \(\min_{y\in\omega(x)}\biggl{(}\min_{c\in\{r,g\}}(I^{c}(y))\biggr{)}\) denotes \(I^{dark}\), i.e., the dark channel of the hazy image \(I\). Thus, we can reformate Equation (4) by incorporating Equations (2) and (3) as follows:  
\[t(x)=1-\frac{I^{dark}}{A} \tag{5}\]  
Consequently, once \(A\) is obtained, \(t\) can be estimated. Typically, \(A\) is located in the haziest and brightest region of a hazy image. Therefore, we select the top 0.1 percent of the brightest pixels in the dark channel and calculate their average pixel value as \(A\). Once \(t\) and \(A\) are determined, the clean image \(J\) can be inferred by inverting Equation (1) as follows:  
\[J(x)=\frac{I(x)-A}{t(x)}+A \tag{6}\]  
While the _DCP_ offers a simple and effective way for image dehazing, it may fail in the sky region of an image. Therefore, we use the CNN to refine \(J\) and \(t\) for further  
Figure 1: The overall framework of the proposed zero-shot dehazing network. Initial outputs \(t\) and \(J\) from the _DCP_ module are deemed insufficient. Yet, after refining them using two RefineNets, a more detailed version of \(t\), i.e., \(t^{\prime}\), is generated, and the issue of over-enhancement in the sky region of \(J\) is resolved, resulting in the enhanced output \(t^{\prime}\).  
improvement. Moreover, to compute the dark channel more efficiently and integrate the _DCP_ module into the entire network, we implement the _DCP_ using the max pooling operation [17] with a kernel size of \(5\times 5\) as follows:  
\[I^{dark}(x)=-maxpool(-\min_{c\in R,C,B}(I^{c}(x))) \tag{7}\]  
By doing so, we separate the input hazy image \(I\) into three components, \(A\), \(t\), and \(J\), for subsequent refinement.