## 3 Proposed Method
### Experiments Details
#### 3.4.2 The Implementation Process  
Our model was trained on four NVIDIA GTX2080 GPUs with 16 GB memory and a PC with a 3.4 GHz CPU for roughly 10 h. Experiments were implemented based on the deep learning framework TensorFlow. The operating system was Windows 10. The first part was the nonlinear mapping of the full convolution network; therefore, the selection of the size of the convolution kernel will have a great impact on the whole system. The patch size in the recognition end of the second part was 64; therefore, we directly used the convolution kernel size of \(3\times 3\) for fitting. To learn how the size of kernels in the first convolution layer affected the performance of the network, we trained and tested the network with different sizes of kernels and fixed the rest of the parameters. Table 4 shows the influence of the size of the kernels. It can be noted that the tested kernel sizes within the set {3, 5, 7, 9, 11} showed different performances, while the kernel sizes beyond that range resulted in a higher mean squared error. In order to prevent excessive detail loss in the pooling process and to fuse the features of high and low dimensions to a certain extent, we used the depth concatenation mechanism to learn the distorted images. Skipping one or more layers could accelerate the training speed and prevent gradient vanishing. The comparison of reconstruction errors with and without a depth concatenation is shown in Table 5. We can see that reconstruction took less time to converge and the final error was smaller with depth concatenation. Our system consisted of two parts. One was the regression part of the distortion correction and up-sampling, and the other was the patch crack recognition part guided by the ground truth. We set up a loss function based on mean squared error (MSE) for pixel correction to show the change of the corresponding relationship between pixels before and after the distortion included up-sampling. For the classified structure, in each patch, we simply used an L2 function to identify the crack. Furthermore, during the training process, the stochastic gradient descent (SGD, momentum = 0.9) with mini-batches of 64 samples was applied to update the weight parameters. When we trained one step, we froze the weight of the other branch. Until the performance was stable, we carried out the whole weight \begin{table}
\begin{tabular}{c c c} \hline \hline
**Kernel Size** & **Accuracy (\%)** & **SSIM** \\ \hline Distortion correction Network (\(7\times 7\), \(9\times 9\)) & - & 0.713 \\ Distortion correction Network (\(11\times 11\)) & - & 0.833 \\ Distortion correction Network (Ours) & - & 0.892 \\ Up-sampling network (\(7\times 7\)) & - & 0.757 \\ Up-sampling network (\(9\times 9\)) & - & 0.786 \\ Up-sampling network (Ours) & - & 0.824 \\ Crack detection network (\(3\times 3\)) & 93.1 & - \\ Crack detection network (\(5\times 5\)) & 96.1 & - \\ Crack detection network (Ours) & 98.3 & - \\ \hline \hline \end{tabular}
\end{table} 
Table 4: The network of different steps in this system was affected by the size of the convolution kernel. \begin{table}
\begin{tabular}{c c c c} \hline \hline
**Method** & **PSNR** & **SSIM** & **IFC** \\ \hline Distortion correction network (without depth Concatenation) & 34.1 & 0.813 & 2.312 \\ Distortion correction network (depth concatenation) & 37.5 & 0.892 & 3.145 \\ Up-sampling network (without multiscale label) & 44 & 0.742 & 1.781 \\ Up-sampling network (multiscale label) & 48.2 & 0.863 & 2.124 \\ \hline \hline \end{tabular}
\end{table} 
Table 5: The network of different steps in this system was affected by the size of the convolution kernel. PSNR—Peak Signal to Noise Ratio; IFC—Information Fidelity Criterion. training. The distortion correction and up-sampling were complementary, as their fusion significantly improved both. As [PERSON] et al. [27] proposes, the learning rate based on cosine attenuation should be used for image learning with high detail requirements.