# Computer Vision and Image Processing Approaches for Corrosion Detection
## 4 Corrosion Detection Approaches
### Texture Analysis  
Texture analysis (as depicted in Figure 4) is one of many image processing techniques that can be used for corrosion detection. Computer vision also uses this technique for the object classification of computer image analysis. This technique calculates the edge boundaries of various textured corroded areas in the images. The enhancement of classification accuracy is possible via texture analysis, which effectively reduces errors when detecting isolated data. A fundamental aspect of this technique is that the corroded materials will increase the surface roughness over time. It can be measured using the surface pit depths, which provide shadow lengths that are produced from a single incident light source. Then, reconstructing a pseudo 3D material exterior allows for the average corrosion rate to be obtained. The corroded area is segmented from the edge pixels in the image. These edge pixels lie on a corroded region boundary with different grayscale values. The difference between the edge pixels and neighboring pixels is calculated to determine an accurate corroded boundary. The intensity characteristic is used to measure discontinuities between grayscale values in the image. Examples of the texture analysis technique in literature can be observed in [81; 82; 83; 84]. The texture analysis technique can accurately detect, recognize, and classify corroded regions in images. The identification of both corroded and non-corroded areas is possible.  
Furthermore, the texture analysis approach can be a combination of any existing segmentation methods, including region-based, thresholding-based, edge detection, clustering, etc. Hence, we propose a combination of edge detection and thresholding-based methods by using the active contour segmentation method. Active contour has been proven to be accurate for segmenting objects with uneven, blurry, and weak boundaries [85; 86; 87; 88]. Thus, this method will be modified to accommodate weak corrosion boundaries by formulating an initial contour, curve restrainer, and stopping function. Then, the thresholding of pixel  
Figure 4: Texture analysis of a ship structure image.  
property method will be used to lead the modified active contour to segment the accurate corrosion regions. The preliminary results of the proposed method are illustrated in Figure 5. From this figure, it can be observed that the active contour can be used to segment corrosion boundaries on ship structure images. Nevertheless, more analysis in terms of recognition accuracy and segmentation accuracy needs to be undertaken in order to analyze the accuracy and efficiency of the proposed method. Moreover, Table 2 represents the other corrosion detection approaches in the computer vision and image processing literature.  
\begin{table}
\begin{tabular}{c c c c} \hline \hline
**Detection Approach** & \multicolumn{2}{c}{**Description**} & **Limitation** \\ \hline  & \(\bullet\) & Historical data and machine learning to predict downstream test post on ship. & \\  & \(\bullet\) & Survival, regression, and classification & \\  & \(\bullet\) & analysis for evaluation. & \\  & \(\bullet\) & Detect and estimate maintenance time of corrosion progress. & \\  & \(\bullet\) & Effective corrosion control via mechanism for external corrosion prevention. & \\ \hline  & \(\bullet\) & Assess corrosion effect on bulk carrier. & \\  & \(\bullet\) & Identify and mitigate the effects of corrosion on a ship’s hull. & \\  & \(\bullet\) & & \\ \end{tabular}
\begin{tabular}{c c c} \hline \hline  & \(\bullet\) & Sensitivity of a model used in maintenance planning can be adversely affected by the absence of historical data. \\  & \(\bullet\) & Unexpected corrosion behavior can still happen. \\ \hline \hline \end{tabular}
\end{table}
Table 2: Summary of corrosion detection approaches in computer vision and image processing.  
Figure 5: Preliminary results of the proposed hybrid segmentation method: (**a**) Segmentation mask; (**b**) Segmentation result.