



\section{Introduction}

\ifdefined\isabstract\else Recently, \ac{PV} power production has grown significantly as a result of the countermeasures to fight global warming. For example, the worldwide production has grown from \SI{190}{\tera\watt\hour} in 2014 to \SI{720}{\tera\watt\hour} in 2019~\cite{iea2019}. This is an increase by \SI{379}{\percent}.\fi To ensure constant performance of the power plants, regular inspection is required, since modules might be damaged during manufacturing, transport or installation. This raises the need for fast, accurate and non-invasive inspection methods.

In the last years, \ac{EL} has been widely adopted by the community as a useful tool to conduct inspection of solar modules~\ifdefined\isabstract\cite{kontges2011crack,mayr2019weakly}\else\cite{kontges2011crack,paggi2016global,mayr2019weakly,stromer2019enhanced,deitsch2019automatic}\fi. It allows to identify many types of defects. In particular, disconnected parts of the solar module that to not contribute to the power production (inactive areas), clearly stand out~\cite{buerhop2018evolution}. Previous works have shown that\ifdefined\isabstract\else~the number of cracks is loosely correlated to the power loss~\cite{dubey2018site} and that\fi~the power loss of a module is proportional to the fraction of inactive area, as long as it remains small~\cite{schneller2018electroluminescence}. Recently, \etal{Hoffmann}~\cite{hoffmann2020deep} used deep learning to determine the module power from \ac{EL} measurements. They introduce a visualization technique that allows to quantify the power loss of individual defects or cells as predicted by the model.

\input{fig_compare_el_pl.tex}

However, \ac{EL} imaging comes at a price, since it requires to disconnect and power the string or module. Only recently, \ac{PL} imaging has become popular on an industrial scale. As opposed to \ac{EL}, the modules are excited by a light source and no external powering of modules is required. On the downside, inactive areas do not always show as black areas any more~(\cref{fig:example}). Instead, they appear with various different intensity levels. This has been previously reported by \etal{Doll}~\cite{doll2020contactless}.

In this work, we show that the deep learning-based approach~\cite{hoffmann2020deep} can be used to determine the power from \ac{PL} images of a module, too. To this end, we compile a dataset of \num{54} module \ac{PL} images along with measurements of the peak power $\ensuremath{P_{\text{mpp}}}\xspace$ and retrain the method using the new data. Furthermore, we investigate, if fine-tuning the models that have been released~\cite{hoffmann2020deep} can improve the performance even further. Finally, we show that the visualization technique using \acp{CAM} can be used to identify the inactive areas on \ac{PL} images.


\section{Methodology}\label{sec:methodology}

\input{fig_scatter.tex}

We aim to estimate the power at the maximum power point \ensuremath{P_{\text{mpp}}}\xspace under STC conditions. Here, we use the same approach proposed by \etal{Hoffmann}~\cite{hoffmann2020deep} and estimate \ensuremath{P_{\text{mpp}}}\xspace relative to the nominal power \ensuremath{P_{\text{nom}}}\xspace. This is a sensible approach, since it assures that the estimates \ensuremath{\hat{y}}\xspace are in a similar scale, independent of the nominal power of a module. Then, we obtain the absolute power as
\begin{equation}
    \ensuremath{\hat{P}_{\text{mpp}}}\xspace = \ensuremath{\hat{y}}\xspace\cdot\ensuremath{P_{\text{nom}}}\xspace\,.
\end{equation}
In this work, \ensuremath{\hat{y}}\xspace is computed by linear regression from the embedding of a ResNet18\xspace~\cite{he2016identity}:
\begin{equation}
    \ensuremath{\hat{y}}\xspace = \ensuremath{\weights_{\text{fc}}}\xspace\ensuremath{\myvector{f}_{\text{emb}}}\xspace\,,
\end{equation}
where $\ensuremath{\myvector{f}_{\text{emb}}}\xspace\in\mathbb{R}^{512}$ is given by $\ensuremath{\myvector{f}_{\text{emb}}}\xspace = f(\ensuremath{\myvector{x}}\xspace,\ensuremath{\mymatrix{W}}\xspace)$, $f$ represents the ResNet18\xspace, \ensuremath{\mymatrix{W}}\xspace the parameters of $f$ and \ensuremath{\weights_{\text{fc}}}\xspace is the linear regression.

We jointly optimize the parameters of the linear regression \ensuremath{\weights_{\text{fc}}}\xspace and the parameters of the ResNet18\xspace to minimize the mean squared error for all \ensuremath{N}\xspace samples in the training dataset, which is given by
\begin{equation}
    L = \frac{1}{\ensuremath{N}\xspace}\sum_{i=1}^\ensuremath{N}\xspace(\ensuremath{\hat{y}}\xspace_i-\ensuremath{y}\xspace_i)^2\,.
\end{equation}
As common with deep learning approaches, this is done by batch gradient descent. Except for the weight decay \ensuremath{\lambda}\xspace, we use the same hyperparameters that have been reported in the prior work. We found that the network seriously overfits to the training data with the reported setting for \ensuremath{\lambda}\xspace. This is explained by the dataset size, which is much smaller compared to the PVPower dataset~\cite{juelich2020pvpowerdata} used with the reference approach. We heuristically set $\ensuremath{\lambda}\xspace = 0.1$, which consistently gives good results.

\subsection*{Regression maps}\label{subsec:regression-maps}

\etal{Hoffmann}~\cite{hoffmann2020deep} propose to use a modified variant of \acp{CAM} to compute regression maps that give rise to a localized quantification of power losses. In the conventional ResNet18\xspace, \ensuremath{\myvector{f}_{\text{emb}}}\xspace is computed by averaging over the \num{512} feature maps. This is commonly referred to as global average pooling. However, by averaging over the spatial dimensions of the feature maps, the spatial information, which is needed for the localized quantification of power losses, is lost. To this end, they propose to apply a $1\times1$ convolution to the feature maps, reducing the \num{512} maps to a single one, while preserving the spatial information.\ifdefined\isabstract~The resulting map is then used to compute \ensuremath{\hat{y}}\xspace during training and gives the localized power loss at test time.\else~Then, they compute the absolute value and multiply the result by $-1$. This ensures that the resulting regression map \ensuremath{\myvector{{f}_{\text{map}}}}\xspace is strictly negative. The relative power \ensuremath{\hat{y}}\xspace is then computed as
\begin{equation}
    \ensuremath{\hat{y}}\xspace = 1 + \sum_{i,j \in \Omega_{\myvector{f}}} \underbrace{-\text{ReLU}(\myvector{f}_{i,j})}_{\ensuremath{\myvector{{f}_{\text{map}}}}\xspace}\,.
\end{equation}
This way, the network can be trained using only the relative power of the module as supervision signal, while the localized power loss is obtained in a weakly supervised manner. The power loss per cell is computed by integrating over the corresponding area of \ensuremath{\myvector{{f}_{\text{map}}}}\xspace. This approach has shown promising results on \ac{EL} images already. In the following, we show that it performs well on \ac{PL} images as well.\fi

\section{Experiments}\label{sec:experiments}

\input{fig_cam.tex}

In our experiments, we focus on two aspects. First, we show that the power of a module can be estimated from a \ac{PL} image of a module despite the fact that inactive areas are not clearly visible from those images in any case. Second, we show that the regression maps can be used to locate disconnected areas on the module.

\subsection{Data}

For our experiments, we use a small dataset of only \num{54} \ac{PL} images. These images have been recorded under lab conditions with a front-illuminated SI camera with $2048^2$ pixels. Photo excitation has been conducted using our LED PL setup, which has been previously reported~\cite{doll2020contactless}.

The dataset covers \num{6} different types of modules, which we denote as \typea-\typef, with nominal powers ranging from \SIrange[]{230}{345}{\wattpeak} and maximum powers ranging from \SIrange[]{145}{327}{\wattpeak}. The modules of type \typea-\typeb and \typed-\typef feature \num{60} cells arranged in \num{10} columns, while \typec has \num{72} cells in \num{12} columns.

\ifdefined\isabstract
\else
Prior to processing by the network, images are preprocessed. Here, images are cropped and scaled to a common resolution. Furthermore, they are normalized such that the mean intensity $\mu$ over all images computes as $\mu=0$ and the standard deviation $\sigma$ is $\sigma=1$. During training, we apply online data augmentation similar to the reference method. This includes random horizontal and vertical flips as well as slight rotations of the images.
\fi


\subsection{Results}

\input{tab_results.tex}

Since the dataset is small, it is challenging to draw meaningful conclusions from the result. To overcome this issue, we conduct a three-fold \ac{CV} and join the results of all folds. Here, we perform a stratified split, such that the distribution of \ensuremath{y}\xspace is similar for all three folds.

We train two different variants of the model. First, we stick to the procedure from the reference method and initialize the network with weights computed by pretraining on ImageNet. We denote this variant \imagenet. Second, we use the weights that has been published with the reference implementation for initialization. Since this has first been trained on ImageNet and then finetuned on the PVPower dataset~\cite{juelich2020pvpowerdata}, we denote this variant \pvpower. The results are summarized by~\cref{tab:results} and~\cref{fig:scatter-all}. Here, we also include a baseline that is computed by calculating the mean of \ensuremath{y}\xspace over every sample of the respective training set and use the result as the prediction \ensuremath{\hat{y}}\xspace for every sample of the corresponding test set. This gives a lower bound to the error.\ifdefined\isabstract\else~Every model that is better than weighted random predictions should surpass this lower bound.\fi~From~\cref{tab:results} we see that, despite the very small dataset, both variants perform much better than the baseline. Furthermore, we observe that pretraining on the PVPower dataset improves the results slightly.

Finally, we show and exemplary regression map in~\cref{fig:cam} and compare it to the \ac{EL} image of the same module. In summary, we see that the magnitude of predicted power loss per cell is consistent to the amount of inactive area as seen from the \ac{EL} image, although the inactive area is not always visible in the \ac{PL} image. For example, cells C1 and C2 have a similar appearance in the \ac{PL} image, although C2 is damaged more severely, which can only be seen from the \ac{EL} image.\ifdefined\isabstract\else~However, the model prediction is consistent to the \ac{EL} image, since C2 is predicted to have a higher power loss.\fi~Furthermore, we find that the model recognizes that inactive areas might appear as darker or brighter regions. This can be seen from cells B3 and C5. \ifdefined\isabstract\else~Although B3 is mostly dark in the \ac{PL}, whereas C5 has only few dark spots, they are predicted to have a similar power loss.\fi

\ifdefined\isabstract
\section{Discussion of the Significance of this Work for the Field}

The determination of the power of a module is of significant interest, since it is vital to the efficient operation of \ac{PV} power plants. Only recently, \ac{EL} imaging has been used to determine the power of a module~\cite{hoffmann2020deep}. However, this requires to disconnect every single module or string. \ac{PL} imaging provides efficient means to speed up measurements, since an external light source is used for excitation and no disconnection of modules is required any more. On the downside, \ac{PL} images complicate the interpretation, since inactive areas are not easily visible any more~\cite{doll2020contactless}. We show that power prediction can be performed using \ac{PL} imaging despite the challenging interpretability. Furthermore, we depict that deep learning is capable of learning relevant features using a relatively small dataset. Finally, we show that these features can be used to identify inactive areas as well.
\fi

\section{Summary}

We experimentally show that \ac{PL} images of solar modules can be used to determine the power of a module with a MAE of \resultsmaew{pvpower}, although inactive areas are not well represented by this modality. To this end, we compile a dataset of \num{54} \ac{PL} images along with their powers and train a deep neural network to predict the module power. Furthermore, we apply the approach by \etal{Hoffmann}~\cite{hoffmann2020deep} to compute regression maps that allow to quantify the localized power loss. Using these maps, we qualitatively show that the network learns the weakly supervised localization of inactive areas and that the results are consistent to reference \ac{EL} images.

We are confident that the quantitative results will become better, if a larger training dataset is used. Further, we believe that these preliminary results will amplify research in the field of \ac{PL} imaging for solar module inspection. For example, they can help to perform root cause analysis for damaged modules using \ac{PL} images only.




