1. 서론
선박에는 여객선, 화물선, 유조선, 군함, LNG선 및 특수목적선 등 다양한 선종이 있다. 이들은 각기 다양한 항로와 운항 조건에서 운항되며, 모든 운송 수단 중 가장 부식되기 쉽다. 부식 및 부식 관련 문제는 선박 및 기타 여러 유형의 철 구조물의 노후화와 관련된 구조적 열화를 유발하는 가장 중요한 요인으로 간주된다. 부식으로 인한 안전상의 위협과 건조비, 규모 등의 관점에서 20년 이상 장기간의 수명을 요하므로 선박의 유지 관리는 금전적인 이점을 제공할 뿐 아니라 구조의 치명적인 붕괴를 방지하고 인간과 환경 모두에 유해한 상황 또한 방지할 수 있다[1].
구조물의 유지 관리에는 육안검사가 있는데 이는 표면 결함만 처리하고 구조 및 열화 상태에 대한 대략적인 설명을 제공한다. 육안검사는 검사관의 인증을 받았음에도 불구하고 많은 시간이 소요 되며, 주관적이고 개인의 경험과 자격에 크게 좌 우된다. 또한, 유독가스 혹은 안전상의 이유로 인해 접근이 어려운 위치는 육안검사를 진행하기에 어려움이 있다[2].
최근에는 영상처리 기술을 이미지 분석에 적용하여 소재 표면을 분석하는 방법이 널리 이용되고 있으며, 지난 몇 년 동안 부식 검출을 위한 다양한 알고리즘이 제안되었다. 그 중, 색상과 질감의분석을 통해 부식을 검출하는 알고리즘이 큰 관심을 받았다[3][4]. 그러나 최적의 색상과 질감 특징이 식별되지 않으면 검출 정확도가 크게 떨어진다는 단점이 있다[5].
4차 산업 혁명이 시작되고, 영상처리 기술이 발전함에 따라 인공지능 기능이 더해지면서 최근 많은 기업의 여러 공정 현장에서는 보다 정확한 불량 검출을 위해 딥러닝을 결합하는 시도들이 계속되고 있다[6]. SAR(Synthetic Aperture Radar) 이미지 분류, 차량 검출, 용접 결함 검출 등과 같은연구를 지원하기 위해 점점 더 많은 연구자들이 CNN(Convolutional Neural Network)을 채택하고 있다. 이는 CNN이 부식 검출에도 높은 정확도의 검출을 달성하는 데에 사용될 수 있음을 시사한다[7].
본 연구는 Fig. 1과 같이 딥러닝 기술을 이용한객체 검출 알고리즘 YOLOv5(You Only Look Once version 5)를 통하여 부식 검출을 하기 위해 이미지 패치 분할, 임계처리를 통한 이미지 전처리를 수행한 후, 데이터를 객체 검출 알고리즘으로 학습시킨다. 학습된 모델을 통하여 부식 검출 시, 패치 이미지를 입력 데이터로 사용하므로이미지 후처리를 통해 검출된 이미지를 원본 이미지로 표현하였다.
Fig. 1 Flowchart of the proposed corrosion detection methodology. Image processing is performed before and after the inference step
2. 관련 연구
부식 검사 자동화를 위한 다양한 접근법이 연 구되었다. 이미지 처리를 기반으로 하여 부식의색상과 질감의 분석을 통한 부식 검사와 CNN을기반으로 한 부식 검사 자동화에 관련된 연구가 진행되어왔다.
부식 이미지의 색상과 질감의 분석을 통한 연구는 원본 이미지에서 적절한 패치(patch) 사이즈를 정하여 패치 이미지를 관심 영역으로 설정한 다. 그 후, 질감 분석 단계에서 질감 특성 계산법 중 하나인 GLCM(Gray Level Co-occurrence Matrix)의 에너지값을 계산하여 에너지값이 설정 임계값보다 낮으면 색상 단계로 넘어가고 높으면 배경부로 처리된다. 다음 단계인 색상 비교단계에서 이미지의 색상(Hue), 채도(Saturation) 분포를 나타낸 HS 히스토그램의 분석을 통하여 도출된 부식이 띄는 Hue 채널 임계값, Saturation 채널 임계값에 관심 영역으로 설정된 패치 이미지의 값이 속하게 되면 최종적으로 관심 영역인 패치 이미지를 부식으로 판단하는 알고리즘이다[2][3]. 여기에 부식부의 질감, 색상을 분석 후, SVM(Support Vector Machine)을 사용하여 부식부의 질감, 색상의 특성값의 임계값을 도출하여 부식을 검출하는 알고리즘 또한 연구되었다[4]. 하지만 기존의 이미지 처리 방법을 통한 부식 검출 알고리즘은 배경과 부식 사이의 대비가 큰 이미지에서 허용 가능한 검출 결과를 얻을 수 있으나, 대비가 작은 이미지의 경우 HSV 색 공간에서는 배경부의 색상과 부식부의 색상의 대비가 명확하지 않다. 또한, 일부 이미지는 햇빛의 영향을 받아 기존 이미지 처리 방법을 통한 검출을 진행할 때 만족스럽지 못한 결과를 얻는다.
위 문제점을 해결하기 위해 부식 검사 자동화 연구에 CNN을 활용하였는데, CNN을 기반으로 한 부식 검사 자동화에 대한 연구는 객체 검출 모델 Faster R-CNN(Regions with Convolutional Neural Networks)을 사용하여 검사에 사용할 드론에 탑재할 부식 검출 알고리즘[8]을 통해 기존 이미지 처리 방법을 통한 검출보다 향상된 성능을 보였으며, 부식이 존재하는 원본 이미지를 학습하는 것이 아닌 원본 이미지를 일정 크기의 패치 이미지로 분할하여 CNN을 활용한 부식 검사가 제 시되었다[9][10]. Faster R-CNN을 통해 균열, 부식 등이 라벨링 되어 있는 500×375 사이즈의 이미지를 학습시키고, 학습된 알고리즘을 통해 6000 ×4000 사이즈를 가지는 평가 데이터셋에서의 부식을 검출한다. 검출 시, 학습에 사용되었던 이미지 사이즈인 500×375로 분할된 이미지에서의 부식을 검출하고 이후 후처리를 통해 검출된 이미지를 결합하여 6000×4000 사이즈의 최종 검출 이미지를 도출하며[9], 검출 모델이 아닌 분류 모델ResNet을 통해 corrode/non-corrode로 구분되는두 개의 클래스를 학습시킨다. 이미지에서 부식 검출 시, 일정 패치 영역들을 나누어 이미지 분류 알고리즘을 통해 부식부를 검출하여 원본 이미지를 학습시켰을 때보다 높은 정확도를 얻었다[10]. 이미지분할 모델 FCN(Fully Convolutional Networks), Mask R-CNN, U-Net을 활용한 부식 검사 알고리즘[11]은 위의 세 모델로부터 부식이 분할된 이미지와 이미지 처리를 통한 색상 분할 결과를 결합하여 최종적으로 부식을 분할하였으나, 정확도의 증가는 상대적으로 작았다.
원본 이미지에서 부식부와 배경부의 대비를 증가시키기 위해 기존 이미지 처리에서 사용되는 부식이 띄는 색상 특성을 활용하여 임계처리가 필요 하고, 고해상도의 원본 이미지를 학습/평가하기위한 전처리 방안이 필요하다.
3. 연구 방법
3.1 이미지 패치 분할
부식이 존재하는 원본 이미지는 부식의 형상이일정하지 않으며, 이미지 일부를 차지하는 부식의 경우도 대각으로 넓게 퍼져있으면 이미지 전체가 바운딩 박스(bounding box)로 적용되는 경우가 다수 존재한다. 이로 인해 원본 이미지를 모델에 학습 시 성능이 좋지 않고, 객체 검출 모델에 학습 시 입력 이미지의 크기를 재조정해야 한다는 요구사항과도 적합하기에 이미지 패치(patch) 분할을 적용하여 전처리를 수행하였다[10][12].
원본 이미지의 크기는 1024×768에서 5152× 3864까지 다양한 크기를 지니고 있다. Fig. 2와 같이 패치 사이즈와 좌-우, 상-하 방향으로 오버랩(overlap)을 적용하여 패치 이미지를 얻었다. 사용할 객체 검출 모델 YOLOv5의 사전 학습 모델인 YOLOv5x의 입력 이미지 사이즈에 맞추어 패치 사이즈를 640×640으로 적용하였으며, 오버랩 사이즈로는 320픽셀을 적용하였다. 각 이미지 당 생성되는 패치는 작게는 2개에서 많게는 192개의 이미지가 생성되어 데이터의 수와 부식 이미지의 형상도 다양해져 이미지 증강의 효과까지 기대할 수 있다.
Fig. 2 Preprocessing through image patch segmentation. Apply overlap between patches to prevent missing corrosion
3.2 HSV 임계처리
데이터를 딥러닝 모델에 학습시킬 때, 효율성을 높이고, 입력 신호의 총합을 출력 신호로 변환하는 함수인 활성화 함수의 사용을 용이하게 하기위해서는 데이터의 정규화가 필수적으로 수행되어야 한다. 원본 이미지를 빛의 삼원색을 이용하여색을 표현하는 RGB 색상 채널에서 색상, 채도, 명도의 좌표를 사용하여 색을 표현하는 HSV 색상채널로 식 (1), (2), (3) 을 활용하여 변환 후, 부식부가 가지는 H(Hue) 채널의 값과 S(Saturation) 채널의 값을 분석하여 부식부를 강조하였다 [2][3][13]. 식 (1), (2), (3) 에서 R, G, B는 각 RGB 채널에서의 화소값을 나타내며, H, S, V는변환된 HSV 채널의 화소값을 나타낸다.
\(= \left\{ \begin{array} { l l } { \frac { 60 ( G - B ) } { V - \operatorname { min } ( R , G , B ) } } & { \text { if } V = R } \\ { \frac { 120 + 60 ( B - R ) } { V - \operatorname { min } ( R , G , B ) } } & { \text { if } V = G } \\ { \frac { 240 + 60 ( R - G ) } { V - \operatorname { min } ( R , G , B ) } } & { \text { if } V = B } \end{array} \right.\) (1)
\(= \left\{ \begin{array} { l l } { \frac { V - \operatorname { min } ( R , G , B ) } { V } } & { \text { if } V \neq 0 } \\ { 0 } & { \text { if } V = 0 } \end{array} \right.\) (2)
\(= \operatorname { max } ( R , G , B )\) (3)
부식부는 붉은 계열의 색상을 띄며 5 < Hue < 20, 160 < Hue <180 범위의 값과 Saturation > 180의 값을 가진다. 원본 이미지의 Hue 채널은부식부의 Hue 범위를 제외한 값은 0, 범위 내에있는 값은 유지하여 임계처리하고, S 채널은 부식부의 Saturation 범위를 제외한 값은 유지하고, 범위 내에 있는 값은 255로 변환하여 임계처리 하였다. 최종 이미지는 임계처리한 H 채널 이미지, S 채널 이미지, 원본 이미지의 Value 채널 이미지를 병합 후, RGB 채널로 전환하여 Fig. 3과 같이 나타내었다.
Fig. 3 Raw image and thresholded image. Emphasize corrosion by limiting HSV range
3.3 데이터셋(Dataset) 구성
전체 데이터 중 학습 데이터셋은 모델이 학습하는 과정에서 사용되며, 평가 데이터셋은 모델의 최종 성능을 평가하는 과정에서 사용된다. 부식 데이터는 총 410장으로, 원본 이미지를 사용할 경우 Fig. 4와 같이 학습 데이터셋은 308장, 평가 데이터셋은 102장으로 구성하였다.
Fig. 4 Dataset organization. Total dataset, 75% of them were randomly selected and used as training dataset whereas the remaining 25% were used as test dataset
이미지에 패치를 적용한 데이터는 Fig. 5와 같이 부식이 포함되어있는 데이터와 배경부만 존재하는 데이터로 나뉜다. 그러므로 데이터셋을 구성하는 데 있어 패치 데이터를 얻은 후, 부식이 없는 패치를 제외하여 학습 데이터셋은 8,979장, 평가 데이터셋은 3,528장으로 구성하였다.
Fig. 5 Dataset of patch image. Patches that do not contain corrosion are excluded from the data composition
3.4 YOLOv5
부식 검출을 위한 객체 검출 모델로 YOLOv5알고리즘을 사용하였다. CNN을 기반으로 하는YOLO는 기존 방법에서 최종 출력층의 유닛 구성과 입력 영상에 대한 고정 분할에 따른 추정 방식을 사용한 후 객체 검출과 객체 인식을 하나의 시스템으로 통합하였다. 이를 통해 기존에 널리 사용되는 딥러닝 기반의 객체 검출 방법인 R-CNN (Regions with CNN)에 비해 1,000배, Fast R-CNN에 비해 100배 이상 빠른 속도로 객체 검출이 가능한 알고리즘이다[14]. Fig. 6은 YOLOv5 모델의 아키텍처(architecture)로 YOLOv4와 유사하며 백본(Backbone), 넥(Neck), 헤드(Head) 세부분으로 구성된다. 첫 번째 부분인 백본은 주어진 입력 이미지에서 중요한 특징을 추출한다. YOLOv5 에서 CSPNets(Cross Stage Partial Networks)는 Darknet에 통합되어 CSPDarknet을 백본으로 만든 다. YOLOv3에서 사용하는 Darknet53과 비교하여 CSPDarknet은 동등하거나 더 우수한 정확도와 처리속도에서 상당한 개선을 달성했다. 두 번째 부분인 넥은 주로 피처 피라미드를 생성하는 데 사용되며, 이는 YOLOv5가 서로 다른 동일한 객체를 식별하기 위한 객체 스케일링을 일반화하는 데 도움이 된다. YOLOv5에서 넥은 다양한 본과 detector level에 대한 매개변수 중합(parametric polymerization) 메커니즘으로 PANet(Path Aggregation Network)을 사용한다. 피처 그리드(Grid)는 PANet 에서 제공하는 adaptive 피처 풀링에 의해 모든 피처 레이어에 연결된다. 결과적으로 각 피처 레이어에서 얻은 유용한 정보는 제안된 서브네트워크로 직접 전송할 수 있다. 최종 검출은 헤드 부분에서 수행되며, 이는 이전 YOLOv3, v4와 동일하 다. 헤드는 피처 맵에 대한 앵커박스(Anchor box) 를 생성하고 클래스 확률이 포함된 최종 출력 벡터와 감지된 객체의 바운딩 박스를 출력한다[15].
Fig. 6 Architecture of YOLOv5 network
백본 네트워크의 세 번째 계층은 BottleneckCSP 모듈로, 이미지의 깊은 특징을 추출하도록 설계되었다. BottleneckCSP 모듈은 주로 Fig. 7의 Bottleneck 모듈로 구성되며, 이는 컨볼루션(convolution) 커널 (kernel) 크기가 1×1인 컨볼루션 레이어와 컨볼루션 커널의 크기가 3×3인 컨볼루션 레이어를 연결하는 Residual 네트워크 아키텍처이다. Bottleneck 모듈의 최종 출력은 Residual 구조를 통해 앞서 설명한 네트워크의 출력과 초기 입력을 더한 것이다.
Fig. 7 Structure of Bottleneck module
Fig. 8의 BottleneckCSP 모듈의 초기 입력은 2 개의 경로로 입력되며, 2개의 경로에서 컨볼루션연산을 통해 피처 맵의 채널 수가 절반으로 줄어 든다. 그 후, 두 번째 경로에서의 Bottleneck 모듈과 Conv2d 레이어를 통해 첫 번째 경로와 두번째 경로의 출력 피처 맵을 깊이 연결하여 concat 연산을 사용한다. 마지막으로 BN 계층과 Conv2d 계층을 차례로 거쳐 모듈의 출력 피처 맵을 얻고 이 피처 맵의 크기는 BottleneckCSP 모듈의 입력 크기와 동일하다.
Fig. 8 Structure of BottleneckCSP module
백본 네트워크의 아홉 번째 레이어는 Fig. 9의 SPP(Spatial Pyramid Pooling) 모듈로, 모든 크기의 피처 맵을 고정된 크기의 피처 벡터로 변환하여 네트워크의 receptive field를 개선하도록 설계 되었다. YOLOv5에 속하는 SPP 모듈의 입력 피처 맵의 크기는 512×20×20이다. 먼저, 컨볼루션 커널 크기가 1×1인 컨볼루션 레이어를 통과한 후 256×20×20 크기의 피처 맵이 출력된다. 이 피처 맵과 3개의 병렬 맥스풀링(max pooling) 레이어를 통해 서브샘플링된 출력의 피처 맵을 깊이 연결하면 출력 피처 맵의 크기는 1024×20× 20이 된다. 마지막으로 512 컨볼루션 커널이 있는 컨볼루션 레이어를 통과한 후 크기가 512×20 ×20의 피처 맵을 최종 출력으로 얻는다.
Fig. 9 Structure of SPP module
넥 네트워크는 FPN(Feature Pyramid Network) 을 생성하는 데 주로 사용되는 결합된 이미지 피처의 일련의 feature aggregation 레이어이며, 출력 피처 맵은 검출 네트워크로 전송된다. 이 네트워크의 피처 추출은 bottom-up 경로를 향상시키는 새로운 FPN 구조를 채택하기 때문에 low- level의 피처 전송이 향상되고 스케일이 다른 객체의 검출 능력이 향상되어 크기와 스케일이 다른동일한 물체를 정확하게 인식할 수 있다.
검출 네트워크는 주로 모델의 최종 검출 부분에 사용되며, 이전 레이어에서 출력된 피처 맵에앵커박스를 적용하고 대상 객체의 카테고리 확률, 객체 점수, 위치, 객체를 둘러싼 바운딩 박스가포함된 벡터를 출력한다. YOLOv5 아키텍처의 검출 네트워크는 서로 다른 크기의 이미지에서의 객체를 검출하는 데 사용되는 80×80, 40×40, 20 ×20차원의 피처 맵을 입력으로 갖는 3개의 검출레이어로 구성된다. 각 검출 레이어는 최종적으로21채널의 벡터를 출력한 다음 원본 이미지에서예측된 바운딩 박스와 카테고리를 생성하고 레이블을 지정하여 이미지에서 객체를 검출한다[16].
손실 함수로 IoU(Intersection over Union)를사용할 경우, Fig. 10과 같이 1–IoU를 사용하여 Ground truth 박스 A와 모델이 예측한 박스 B가겹칠수록 0에 가까워지도록 정의한다. 일반적으로손실로는 예측이 잘 될수록 0에 가까워지고 예측이 잘못된 경우일수록 그에 비례하여 손실값이 커져야 한다. 하지만 Fig. 10의 마지막 그림과 같이일반적인 IoU는 두 박스의 교집합이 없으면 0이되므로 Ground truth에 근접하여 교집합이 생기지 않았는지, 큰 오차로 교집합이 생기지 않았는지 알 수 없다. 이에 따라 GIoU(Generalized Intersection of Union)를 이용한 손실값을 통해 문제를 해결한다. GIoU에서는 Fig. 11에서 나타나는 것처럼 IoU 박스에서 Ground Truth와 모델이 예측한 박스를 포괄하는 가장 작은 박스인 C가 추가된다. GIoU의 정의에 따라 식 (4)로 정의되어 A박스와 B박스의 거리가 무한히 멀어지면 GIoU 는 –1로 수렴하게 된다.
Fig. 10 Loss function using IoU
Fig. 11 Loss function using GIoU
\(G I o U = I o U - \frac { | C - ( A \cup B ) | } { | C | }\) (4)
이를 통해 A박스와 B박스와의 교집합이 없는 경우, IoU는 모든 경우가 0인 반면 GIoU는 두박스의 거리에 따라 값의 차이가 나므로 Ground truth에 근접하여 교집합이 생기지 않았는지, 큰오차로 교집합이 생기지 않았는지에 대한 차이를부여할 수 있다[17].
Table 1. GIoU algorithm as Loss
3.5 mAP(mean Average Precision)
mAP는 이진 분류기의 성능 지표로 사용되는재현율(Recall)과 정밀도(Precision)를 이용한 지표 이며, 객체 검출 알고리즘의 성능을 평가하는 데 사용된다.
Table 2를 이용하여 계산한 정밀도는 모든 검출 결과 중 옳게 검출한 비율로 식 (5)와 같다.
\(= \frac { T P } { T P + F P } = \frac { T P } { \text { all detections } }\) (5)
Table 2. Confusion matrix
재현율은 검출해내야 하는 객체 중 정확히 검출된 것의 비율로 식 (6)과 같다.
\(= \frac { T P } { T P + F N } = \frac { T P } { \text { allgroundtruths } }\) (6)
신뢰수준에 대한 임계값 변화에 따른 정밀도와 재현율의 변화를 통해 PR 곡선을 구한 후, PR 곡선에서의 그래프 아래쪽의 면적을 값으로 갖는 AP(Average Precision)를 구하고, 각 클래스별 AP를 평균을 낸 값이 mAP이다. 본 연구에서는 클래스가 부식 하나만 존재하므로 부식에 대한 AP가 mAP로 표현되었다[18].
4. 결과
RGB 색상 공간을 가지는 원본 이미지를 HSV 색상 공간으로 전환하여 부식부가 가지는 색상값인 5 < Hue < 20, 160 < Hue < 180, Saturation > 180을 임계처리한 후, 패치 사이즈 640×640, 오버랩 사이즈 320픽셀로 설정하여 전처리 이미지 데이터셋을 학습 데이터셋 8,979장, 평가 데이터셋은 3,528장으로 구축하였다.
구축된 데이터셋은 NVIDIA GeForce RTX 2070 GPU 기반 CUDA 10.2의 환경에서 학습이 수행되었으며, 학습 파라미터의 사전 학습 모델은 YOLOv5x, 배치 사이즈 4, 이미지 사이즈 640을설정하여 YOLO 알고리즘에 학습시켜 학습에 대한 PR 곡선과 손실 그래프를 도출하였다.
Fig. 12는 학습모델의 손실 그래프이며 학습 데이터셋과 평가 데이터셋의 손실값은 각각 0.014037과 0.023375로 수렴하였다. 학습모델의 손실 그래프에서 학습 데이터셋에 대한 손실값과 평가 데이터셋에 대한 손실값이 모두 감소하는 추이를 보이므로 학습시킨 모델은 과적합이 발생하지 않았다고 판단할 수 있다.
Fig. 12 Loss Graph. The blue line is the train loss according to the epoch, and the red line is the test loss according to the epoch
Fig. 13에서는 학습모델의 학습 데이터셋, 평가 데이터셋에서의 PR 곡선을 통해 mAP를 구하였 다. 학습 시, 클래스는 부식 하나만 존재하므로 도출된 mAP와 부식에 관한 AP는 동일하게 97.9%, 69.3%의 수치를 도출하였다.
Fig. 13 PR curve for the training and test dataset. (a) Training PR curve. (b) Test PR curve
Fig. 15는 학습시킨 가중치를 이용하여 평가 데이터셋의 패치 이미지를 검출한 후, 후처리를 통해 이미지를 원본 이미지로 되돌린 결과다. 부식부와 배경부의 구분이 확실하게 되는 (a), (b), (c) 의 경우 오검출 없이 검출이 잘 이루어졌으나 (d) 와 같이 배경부가 붉은 계열 색상을 띄어 부식부와의 구분이 확실하지 않은 경우, 오검출이 나타 났다. 결과를 세밀하게 분석하기 위해 후처리를통해 부식을 검출한 이미지를 부식으로 검출한 바운딩박스는 1, 그 외는 0으로 갖는 이진화 이미지로 변환하였다. 평가 데이터셋 전체와 평가 데이터셋 중 배경부가 붉은 계열 색상을 띄는 데이터에 관하여 원본 이미지 학습모델과 전처리 이미지 학습모델의 결과를 통해 Table 2의 True Positive, False Negative, False Positive, True Negative를 구하여 Fig. 14에 나타내었다. Table 3은 위의 결과를 통해 정밀도와 재현율 그리고 최종 성능을 평가하는 Accuracy, F1 score의 결과이다. 붉은 색상의 배경을 갖는 Fig. 15의 (d) 와 같은 이미지는 Fig. 14의 (b)와 (d)의 비교를 통해 1종 오류인 False Positive와 2종 오류인 False Negative가 전체 이미지에 관한 결과에 비해 높은 비율을 갖는 것을 확인하였다. 하지만 원본 이미지 학습모델에 비해 1종 오류의 비율이 상당하게 감소하여 Table 3에서의 Accuracy와 F1 score 모두 전처리 이미지 학습모델이 원본 학습모델에 비해 뛰어난 성능을 보였다.
Fig. 14 Confusion matrix. (a) Results of the raw image training model on the entire test dataset, (b) Results of the preprocessed image training model on the entire test dataset, (c) Results of the raw image training model on the test data having the red-color background, (d) Results of the preprocessed image training model on the test data having the red-color background
Fig. 15 Detecting corrosion from test dataset and corrosion location mask image. (a) circular and linear corrosion, (b) circular corrosion, (c) linear corrosion, (d) corrosion with a red background.
Table 3. Performance indicators for the preprocessed and raw images
5. 결론
본 연구에서는 딥러닝 기반 부식 검사 자동화를 위한 이미지 전처리 방안을 410장의 부식 이미지와 딥러닝 기반 객체 검출 모델 YOLOv5를 사용하여 연구하였다. 부식 이미지에서만 발생할 수 있는 특성을 고려하여 이미지 처리 방법 2가지를 제안하고, 실험을 통해 성능을 검증했다.
∙ 이미지 패치 분할
원본 이미지에서 존재하는 부식의 형상은 원형, 사각형 등으로 일정하지 않다. 또한, 이미지 전체가 부식으로 이루어지거나 부식이 대각으로 넓게퍼진 경우로 구성되어있다. 위의 경우 라벨링을통해 정답 데이터를 부여할 때, 바운딩 박스 내에배경이 차지하는 비율이 과도하게 많아 학습을 저 해하며, 검출 시에도 검출의 섬세함이 떨어진다. 부식 이미지 410장의 크기는 1024×768에서5152×3864까지 다양한 크기를 지니고 있다. 사용할 YOLOv5 사전 학습 모델의 입력 이미지의크기인 640×640과 패치 사이즈를 동일하게 하고 좌-우, 상-하 방향으로 오버랩을 적용하여 패치이미지를 얻었다. 이를 통해 바운딩 박스 내의 배경이 차지하는 비율을 감소시켜 검출의 섬세함을 향상시켰으며, 딥러닝 기반 객체 검출 모델에 학습 시, 입력 이미지 크기의 재조정이 필요하다는조건 또한 만족시켰다. 각 이미지마다 생성되는패치는 작게는 2개에서 많게는 192개의 이미지가생성되어 데이터의 수와 부식 이미지의 형상도 다양해져 이미지 증강의 효과까지 얻었다.
∙ HSV 임계값 처리
부식은 붉은색 계통의 색상을 띄며 채도의 수치는 일반적으로 높은 값을 가진다. RGB 색상 공간에서 색상, 채도, 명도의 좌표를 사용하여 색을 표현하는 HSV 색상 공간으로 원본 이미지를 변환 후, 부식부가 가지는 Hue, Saturation 채널의 값을 분석하였다. 원본 이미지에서의 부식은 H 채널에서의 5-20, 160-180 범위의 값을 갖고 S 채널에서는 180 이상의 값을 갖는 것을 확인하였다. 이미지의 픽셀 강도가 모든 범위에 전역적으로 퍼져있으면 이미지에 노이즈가 많아 이미지의 품질이 떨어지며 데이터의 학습을 저해한다. 이에 부식부가 가지는 H 채널의 값을 가지는 픽셀은 유지하고 그 외의 픽셀은 0으로 임계처리를 진행하 였고, S 채널의 값을 가지는 픽셀은 255, 그 외의 픽셀은 유지하여 임계처리를 하였다. 최종적으로 임계처리한 H 채널 이미지와 S 채널 이미지, 원본 이미지의 V 채널 이미지를 병합 후, RGB 채널로 전환하였다. 이를 통해 데이터 정규화, 이미지 품질 향상 및 대비효과를 개선하였다.
이미지 전처리를 통해 구축한 데이터셋을 YOLOv5 객체 검출 모델에 학습하여 도출한 학습 mAP는 97.9%이고, 평가 mAP는 69.3%로 도출되 었다. 원본 이미지를 학습시킨 모델의 평가 mAP 46.7%에 비해 22.6%의 향상을 보였다. 학습시킨 모델을 이용하여 평가 데이터셋에서의 부식 검출 시, 패치 이미지가 입력 데이터로 사용되므로 패치 데이터에서의 부식을 검출하여 원본 이미지로 되돌리는 후처리 과정을 통하여 검출 결과를 확인 하였다. 배경부와 부식부의 구분이 잘되는 이미지의 경우 잘못된 검출 없이 만족스러운 검출 결과를 보였지만, 부식부가 갖는 붉은 계열의 색상을 배경부가 가질 경우, 오검출이 나타났다. 후처리를 통해 검출 이미지를 부식으로 검출한 바운딩박스는 1, 그 외는 0을 갖는 이진화 이미지를 통해 원본 이미지 학습모델과의 성능을 비교하였다. 전체 이미지에 대해서는 Accuracy는 87.54%, F1 score는 82.92%로 원본 이미지 학습모델에 비해
9.22%, 9.37% 상승하였다. 오검출이 나타나는 붉은 색상의 배경부를 갖는 이미지들은 Accuracy는 82.73%, 85.18%로 12.8%, 9.22% 상승하였으나전체 이미지에 관한 결과보다 1종 오류와 2종 오류의 비율이 높았다.
컴퓨터 비전에서의 객체 인식은 주로 패턴인식을 통해 수행되는데, 객체와 배경부의 차이가 일정 수준 나지 않을 경우, 검출 성능이 떨어지게 된다. 배경부와 부식부의 대비 효과를 증가시킬전처리 방안과 추후 1종, 2종 오류가 높게 나타난이미지와 비슷한 데이터를 확보한다면 더욱 다양한 형태의 부식 이미지에서 더 높은 정확도를 이룰 수 있을 것으로 기대된다.
References
- S. Kim, "Apparatus on Corrosion Protection and Marine Corrosion of Ship," Journal of The Korean Institute of Surface Engineering, Vol. 44, No. 3, pp.105-116, (2011). https://doi.org/10.5695/JKISE.2011.44.3.105
- Khayatazad, M., De Pue, L., and De Waele, W. "Detection of corrosion on steel structures using automated image processing," Developments in the Built Environment, vol. 3, pp.100022, (2020).
- Bonnin-Pascual, F., and Ortiz, A. "Chapter Corrosion Detection for Automated Visual Inspection," (2014).
- Hoang, N. D. "Image processing-based pitting corrosion detection using metaheuristic optimized multilevel image thresholding and machine-learning approaches," Mathematical Problems in Engineering, (2020).
- Chu, M., and Thuerey, N. "Data-driven synthesis of smoke flows with CNN-based feature descriptors," ACM Transactions on Graphics (TOG), Vol. 36, No. 4, pp.1-14, (2017). https://doi.org/10.1145/2956233
- D. Kim, S. Boo, H. Hong,W. Yeo, and N. Lee, "Machine Vision-based Defect Detection Using Deep Learning Algorithm," The Korean Society For Nondestructive Testing, Vol. 40, No. 1, pp.47-52, (2020). https://doi.org/10.7779/JKSNT.2020.40.1.47
- Yu, L., Yang, E., Luo, C., and Ren, P. "AMCD: an accurate deep learning-based metallic corrosion detector for MAV-based real-time visual inspection," Journal of Ambient Intelligence and Humanized Computing, pp. 1-12, (2021).
- Chen, Q., Wen, X., Lu, S., Sun, D. "Corrosion detection for large steel structure base on uav integrated with image processing system," In IOP Conference Series: Materials Science and Engineering, Vol. 608, No. 1, pp.012020, (2019). https://doi.org/10.1088/1757-899X/608/1/012020
- Cha, Y. J., Choi, W., Suh, G., Mahmoudkhani, S., Buyukozturk, O. "Autonomous structural visual inspection using region-based deep learning for detecting multiple damage types," Computer-Aided Civil and Infrastructure Engineering, Vol. 33, No. 9, pp.731-747, (2018). https://doi.org/10.1111/mice.12334
- Zhang, S., Deng, X., Lu, Y., Hong, S., Kong, Z., Peng, Y., and Luo, Y. "A channel attention based deep neural network for automatic metallic corrosion detection," Journal of Building Engineering, Vol. 42, pp.103046, (2021).
- Katsamenis, I., Protopapadakis, E., Doulamis, A., Doulamis, N., Voulodimos, A. "Pixel-level corrosion detection on metal constructions by fusion of deep learning semantic and contour segmentation," In International Symposium on Visual Computing, pp.160-169, (2020).
- Yao, Y., Yang, Y., Wang, Y., and Zhao, X. "Artificial intelligence-based hull structural plate corrosion damage detection and recognition using convolutional neural network." Applied Ocean Research, Vol. 90, pp.101823, (2019).
- Petricca, L., Moss, T., Figueroa, G., and Broen, S. "Corrosion detection using AI: a comparison of standard computer vision techniques and deep learning model," In Proceedings of the Sixth International Conference on Computer Science, Engineering and Information Technology, Vol. 91, pp.91-99, (2016).
- Redmon, J., Divvala, S., Girshick, R., and Farhadi, A. "You only look once: Unified, real-time object detection," In Proceedings of the IEEE conference on computer vision and pattern recognition, pp.779-788, (2016).
- Fang, Y., Guo, X., Chen, K., Zhou, Z., and Ye, Q. "Accurate and Automated Detection of Surface Knots on Sawn Timbers Using YOLO-V5 Model," BioResources, Vol. 16, No. 3, (2021).
- Yan, B., Fan, P., Lei, X., Liu, Z., and Yang, F. "A real-time apple targets detection method for picking robot based on improved YOLOv5," Remote Sensing, Vol. 13, No. 9, pp.1619, (2021).
- Rezatofighi, H., Tsoi, N., Gwak, J., Sadeghian, A., Reid, I., and Savarese, S., "Generalized intersection over union: A metric and a loss for bounding box regression," In Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition, pp.658-666, (2019).
- Everingham, M., Eslami, S. A., Van Gool, L., Williams, C. K., Winn, J., and Zisserman, A. "The pascal visual object classes challenge: A retrospective," International journal of computer vision, Vol. 111, No. 1, pp.98-136, (2015). https://doi.org/10.1007/s11263-014-0733-5