## 3 Results of the Strain Prediction
### Results and Discussion  
In this section, the trained models are first verified on two test videos; then, the predicted strains are compared with the ground truth. The real strain fields are generated by calculating the spatial derivatives of the displacement fields obtained from the OpenCV library. The program runs on Intel (R) Xeon (R) CPU E5-2620 v4 2.10 GHz, and it takes about 80 ms to calculate each strain field. The deep learning method can directly predict strain fields from image pairs and benefit from the high performance of the GPU, providing a great advantage in run time. Table 4 shows the comparison of the two models in terms of accuracy and processing time. From the test results, it can be demonstrated that StrainnetR and StrainnetD perform similarly in strain prediction, with AEEs of 0.0439 and 0.0427, respectively. The number of parameters of StrainNetD is less than half of those of StrainNetR, but the run time of StrainNetD is 5.95 ms per image pair, which is 2.56 ms slower than that of StrainNetR. This is caused by the different network structures of the two models, due to the use of \(1\times 1\) convolution, StrainetD has much fewer channel inputs and outputs than StrainetR, so the number of parameters is reduced. However, the feature maps of StrainNetD are reduced to half at the transition layer, as shown in Table 3, which leads to it being twice as large as that of StratinetR. As a result, the number of convolution operations, measured in floating point operations per second (flops), is larger than StratinetR. In addition, DenseNet needs to load all of the previous layers, which will result in frequent memory accesses and thus increase the processing time. In summary, StrainNetD is slightly better than StrainNetR in terms of accuracy, but its prediction time for each image pair is 2 ms longer. Obviously, in real-time prediction applications, StrainNetR is much better due to its higher efficiency. As mentioned in the introduction, cracks start to occur when the strain accumulates and exceeds a critical value. Figure 9 reflects the range of crack initiation and growth; the vertical axis is the average strain in the \(y\) direction of each frame. In test data T1, the crack appears at around 1400 frames, and the mean values predicted by StrainNetR and StrainNetD both rise sharply at this time. Although there is still an 0.02 error at the peak value of the strain, the range of crack generation is roughly consistent with the ground truth. Both networks can correctly detect the crack range. \begin{table}
\begin{tabular}{c c c c c} \hline \hline
**Model** & **Parameters (M)** & **Flops (G)** & **AEE** & **Time (ms)** \\ \hline StrainNetR & 1.47 & 0.88 & 0.0439 & 3.39 \\ StrainNetD & 0.57 & 1.27 & 0.0427 & 5.95 \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Average endpoint errors and run times of the test set. Figure 8: Average endpoint error (AEE) in training and validation stages. In terms of processing speed, StrainNetR needs 3 ms to process each image pair as listed in Table 4, whereas the image collection speed is about 0.85 ms per frame, which is approximately one quarter of the prediction time. To achieve real-time strain prediction, we can exploit the observation that the displacement between successive frames is very small, and it is sufficient to use one in four frames as input to the networks (ignoring the three frames between them). Figure 9c,d show the strain prediction using the first, fifth, ninth, etc., frame of the video. Reducing the number of analyzed frames to one quarter, the total image-collection time (about 5260 and 4300 frames) remains the same, and the total strain prediction time (about 1315 and 1075 frames) is reduced to one quarter, such that both will are fairly similar; both take in total approximately 4.5 (T1) and 3.6 (T2) seconds. The results show that even if frames are skipped, the strain can still be well predicted, and the predicted crack range is consistent with the results including all of the frames.