"1조"의 두 판 사이의 차이
202201soc01 (토론 | 기여) (→이론적 계산 및 시뮬레이션) |
Adciv20230101 (토론 | 기여) (→상세설계 내용) |
||
(사용자 3명의 중간 판 45개는 보이지 않습니다) | |||
1번째 줄: | 1번째 줄: | ||
− | |||
==프로젝트 개요== | ==프로젝트 개요== | ||
=== 기술개발 과제 === | === 기술개발 과제 === | ||
− | 국문 : | + | ''' 국문 : ''' 딥러닝 활용 이미지 데이터 기반 구조물 손상 다중 분류 |
− | 영문 : | + | ''' 영문 : ''' Multi Class Classification of Infrastructure Defects Using Deep Learning Based on Image Data |
===과제 팀명=== | ===과제 팀명=== | ||
− | + | 1조 | |
===지도교수=== | ===지도교수=== | ||
문영일 교수님 | 문영일 교수님 | ||
+ | |||
+ | ===멘토교수=== | ||
+ | 김선중 교수님 | ||
===개발기간=== | ===개발기간=== | ||
− | + | 2023년 3월 ~ 2019년 6월 (총 4개월) | |
===구성원 소개=== | ===구성원 소개=== | ||
− | 서울시립대학교 토목공학과 | + | 서울시립대학교 토목공학과 2020XXX0** 안**(팀장) |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | 서울시립대학교 토목공학과 2020XXX0** 김** | ||
− | 서울시립대학교 토목공학과 | + | 서울시립대학교 토목공학과 2020XXX0** 박** |
− | + | 서울시립대학교 토목공학과 2020XXX0** 편** | |
− | 서울시립대학교 토목공학과 | ||
==서론== | ==서론== | ||
===개발 과제의 개요=== | ===개발 과제의 개요=== | ||
====개발 과제 요약==== | ====개발 과제 요약==== | ||
− | + | 1. 딥러닝 모델로 사진 속 손상 분류 및 라벨링 | |
− | |||
− | |||
− | + | 2. 민원인에게 손상에 대한 정보 제공 | |
− | + | 3. 처리 기관에 손상 종류 및 라벨링된 사진 전달 | |
====개발 과제의 배경==== | ====개발 과제의 배경==== | ||
− | + | ====배경==== | |
− | + | 1 현재 안전신문고 민원처리 과정 | |
− | |||
− | |||
− | + | 일상 속에서 안전 관련 문제를 발견한 국민은 안전신문고 웹과 앱을 통해 민원을 접수한다. 먼저 신고 유형(도로, 시설물 파손 및 고장/수질오염/교통위반 등) 7가지 중 하나를 선택하고, 관련 사진을 촬영하여 첨부한다. 다음으로 발생 지역을 지도상에서 선택한 후 민원 내용을 작성하고, 연락을 받기 위한 개인정보(이름, 이메일)를 입력하면 안전신문고로 민원이 접수된다. | |
+ | 접수된 민원은 안전신문고의 민원 분류 담당자에 의해 분류되고, 시스템을 통해 신고 지역별 처리 기관이 자동으로 지정되어 민원을 배정받는다. 처리 기관에서는 처리부서 및 담당자를 지정하여 민원을 처리한 후 처리 결과와 답변을 7일 이내로 안전신문고에 전달한다. 이후 민원인은 작성된 처리결과를 SMS를 통해 통보받아 앱, 웹을 통해 확인할 수 있다. | ||
− | + | 2 시민의 구조물 안전성 의문 제기 | |
+ | 구조물의 손상은 1994년 성수대교, 1995년 삼풍백화점, 그리고 올해 있었던 정자교 붕괴사고처럼 심각한 사고로 이어질 수 있다. 이에 올해 서울역 센트럴자이 외벽 균열로 불안감을 느꼈던 주민들처럼 주위 구조물의 균열, 박리, 철근노출을 확인한 시민들은 구조물이 안전한가에 대한 의문과 불안감을 느끼게 된다. | ||
− | |||
+ | 3 안전신문고 업무 현황 | ||
+ | 2021년 안전신문고를 통해 들어온 안전신고 분야의 민원은 총 140만 건이다. 그중 도로, 시설 파손과 노후 교량 붕괴 위험 등 기반 시설 위험 신고는 총 34만 5천 건으로 월평균 약 28,785건이다. 안전신문고 신고처리 현황에서 확인한 연간 시설 관련(시설물의 균열, 처짐, 뒤틀림, 파손, 흘러내림 등) 신고 수는 2019년 39,713건, 2020년 59,342건, 2021년 116,973건, 2022년 128,681건으로 민원 수가 매년 증가하는 추세임을 확인할 수 있다. | ||
− | ==== | + | ====문제점==== |
− | + | 1 정보 전달 내용 및 시기 | |
− | + | 시설물의 균열, 처짐, 파손 등과 관련된 시설 분야 민원은 그 상태에 따라 안전 문제로 이어질 수 있다. 하지만 현 상황에서 민원인은 안전신문고 처리 과정의 마지막 단계인 ‘처리결과 통보’에서 자신이 접수한 민원의 답변을 받아볼 수 있다. 민원을 접수하는 단계에서 안전 문제의 발생 원인과 심각 정도를 파악할 수 없으며 약 7일의 민원 처리 기간이 지난 후에도 Fig. 4와 같이 보수 내용과 결과 사진만을 전달받는다. | |
− | + | 2 민원 분류 업무 가중 | |
+ | 안전신문고 홈페이지에 있는 홍보영상 ‘위험요소와 불법주정차를 척척 해결해주는 안전신문고’를 보면 안전신문고 민원 분류 업무를 하고 있는 공무원은 “저희들이 (신고를) 접수하고 분류하고 있는데 너무 바빠서 아침에 일찍 와서 하루 종일 이거만 하고 있습니다.”라고 말한다. 이처럼 안전신문고를 통해 접수된 신고는 행정안전부의 담당자가 직접 내용을 확인한 후 민원을 분류하여 시스템 상에서 자동 배정된 처리 기관에 이관하여 처리가 진행된다. 그 결과 시설물 균열, 처짐, 파손 등의 시설 분야 민원만으로 한정할 때에도 분류 담당자들은 연간 약 13만 건의 시설물 민원을 확인, 분류하는 작업을 거친다. 안전신문고를 통해 들어오는 민원이 매년 증가하는 상황에서 민원 분류 담당자의 업무 부담이 가중되고 있다. | ||
− | + | 3 사진상 손상 위치 확인 | |
− | + | 민원인이 촬영한 사진은 촬영자마다 가까이서 찍은 근접 사진이 될 수도 멀리서 찍은 원거리 사진이 될 수도 있다. 앞서 언급한 홍보영상에서 공무원은 “신고된 사진을 자세히 보고 구분을 해줘야지 바로바로 처리가 될 수 있습니다.”라 인터뷰한다. 또한 다른 공무원은 “뭐가 파손됐으니까 어떻게 해달라 그렇게 신고를 해야 하는데 어떤 분들은 급하다 보니까 그냥 사진 1장만 찍고 (신고를 합니다.)”라고 말한다. 민원인이 제공한 사진은 사람에 의해 분류되고, 처리 기관에서 재확인되어 처리 업무가 진행된다. 분류 업무와 처리 업무에서 사진에 담긴 손상이 어떤 것인지, 그리고 어디에 위치하는지를 빠르게 파악하는 것이 중요하지만 현 처리 과정에서는 사람이 직접 눈으로 손상을 찾는다. | |
− | |||
− | === | + | ====개발 과제의 목표 및 내용==== |
− | ==== | + | ====목표==== |
− | |||
− | + | 민원인이 신고 유형을 ‘도로, 시설물 파손 및 고장’으로 선택할 때, 우선 기존과 동일하게 안전신문고로 민원이 등록된다. 민원 분류 담당 업무자가 아닌 딥러닝 모델이 민원 사진을 입력 값으로 사진 속 시설물의 손상을 균열, 박리, 철근 노출 중 하나로 신속하게 분류한다. 이후 처리 기관에 시설물 손상의 종류와 민원인이 입력한 위치정보, 손상 사진을 전달한다. 이와 동시에 민원인의 이메일로 손상 종류에 따른 원인 및 발생 가능 피해 사항을 전송하며, 첨부된 매뉴얼을 통해 민원인은 자신이 접수한 민원 사진 속 손상의 안전성을 확인할 수 있다. 이 모든 과정이 자동화되어 안전 문제로 이어질 수 있는 시설 분야 민원을 신속하게 처리할 수 있게 된다. | |
− | + | ====활용 기술==== | |
− | + | 사진의 손상을 4가지로 분류하는 CNN 분류 모델을 제작하는 과정에서 과적합을 방지하고 정확도를 높이기 위해 이미지 전처리를 통한 데이터셋을 구성하고, 전이학습 모델인 InceptionV3와 ResNet50를 실험에 사용한다. 하이퍼 파라미터의 시행착오(Trial-and-error) 방식과 자동화된 Optuna를 적용하여 실험을 진행해 최적의 모델을 구성하고자 한다. | |
− | |||
− | + | ====설계 방향==== | |
+ | 민원인이 시설물의 손상 사진을 접수하면 딥러닝 모델은 사진 속 손상의 종류(균열, 박리, 철근노출, 우수)를 분류하며 손상을 라벨링한다. 분류된 정보는 처리 기관과 민원인에게 제공된다. 이때 민원인은 분류된 정보를 바탕으로 손상의 원인과 위험성을 확인할 수 있는 매뉴얼을 메일을 통해 제공받는다. | ||
− | + | ===관련 기술의 현황=== | |
+ | ====관련 기술의 현황 및 분석(State of art)==== | ||
+ | ====민원 처리 기술 현황==== | ||
+ | 1 ‘빅데이터 정보화 전략계획 수립 및 데이터 분석 용역’ 사업 | ||
+ | 민원 데이터를 통해 기관별/ 분야별/ 특정 시점별 민원 발생량을 분석하여 사전에 민원을 예측하고 대비해 시민들의 불편을 줄이기 위해 추진된 사업이다. 분석 대상(민원 데이터, SNS)과 민원 데이터 속성(민원 제목, 민원 내용, 답변 내용, 접수일자, 민원 분류 등 총 7개 요소)을 설정하여 데이터를 정제한 후 사전 처리, 특성 추출을 진행, 민원분석 시스템을 구성하여 데이터를 분석했다. 이미지 분석으로 손상 분류 텍스트를 반환하여 민원 과정의 간소화를 목표로 하는 본 과제와 다르게 통계분석과 비정형 텍스트 분석을 기반으로 민원 예측을 목표로 했다는 점에서 차이가 있다. | ||
− | + | 2 ‘모바일을 활용한 지역 민원 처리 시스템 개발’ 연구 | |
+ | 민원인이 앱(특정 마을 민원)으로 민원을 넣으면 앱은 민원 내용, 사진, 위치정보, 민원인의 핸드폰 번호를 서버로 전달하고 서버는 다양한 민원 데이터들을 데이터베이스로 저장하면서 관리한다. 이 민원 정보들로부터 관리자는 민원 처리 현황을 작성하게 되고, 서버를 통해 다시 해당 민원인에게 전달되며, 민원 데이터로부터 민원 맵이 구성되어 주민들과 행정기관은 마을의 민원을 파악할 수 있다. 현재 안전신문고의 시스템과 크게 다르지 않고, 민원 데이터들을 데이터베이스에 저장하여 작성된 처리 현황으로 마을 별 맵을 구성하여 신고자 외의 사람들도 확인할 수 있다는 장점이 있지만 데이터 분류와 처리 현황 작성을 사람이 맡아 본 과제와의 연관성은 적다. | ||
− | + | 3 '토픽 모델링을 활용한 교통경찰 민원 분석’ 연구 | |
+ | 국민의 치안 수요를 탐색하고자 ‘교통경찰 관련 국민신문고 민원 데이터’를 대상으로 토픽 모델링 방법 중 하나인 잠재 디리클레 할당(Latent Dirichlet Allocation)을 통해 민원 데이터를 분석하여 토픽(ex. 개인형 이동장치)에 따른 높은 비중의 키워드(ex. 범칙금, 전기자전거, 개인)를 추출했다. 공공데이터와 민원 데이터를 사용했다는 점은 본 연구와 동일하지만, 텍스트 데이터를 사용한다는 점과 치안 수요 파악으로 정책과 교육 자료에서의 활용을 목표로 한다는 점이 다르다. | ||
− | + | 4 'Vision Transformer를 활용한 안전신문고 이미지 분류‘ 연구 | |
+ | Vision Transformer를 활용해 안전신문고의 신고 이미지를 유형별로 분류하는 연구로 시설물 분야의 손상(균열, 박리, 철근노출)을 분류하는 본 연구와 다르게 위험 유형을 도로, 보행자, 시설물로 나눠 많은 수의 민원을 처리할 수 있다는 강점을 지니지만 적은 데이터 수로 인해 사전 학습된 모델을 사용하였다는 한계점을 지니고 있다. | ||
− | + | 5 (중국) CNN 및 딥러닝 활용 건물 품질 민원 분류 | |
+ | 건설 산업 품질 관련 문제가 발생하여, 민원 텍스트 데이터를 기반으로 제작한 CNN 딥러닝 모델을 통해 건설 품질(누수, 균열, 파손) 민원을 분류하는 연구를 진행하였다. CNN 분류 모델이 민원 처리의 효율성을 향상시킬 수 있었지만, 정확도를 개선하기 위한 추가 연구로 전이 학습 및 분류 네트워크와 결합된 하이브리드 기법의 필요성을 제안하였다. | ||
− | + | 6 (인도) 민원 처리를 위한 AI 기술 활용 정보 관리 모델 | |
+ | 이미지 처리 및 데이터 마이닝 기법을 활용해 민원 이미지 등록하면 텍스트를 추출하여 전달 부서에 대한 데이터를 생성하는 연구를 진행하였다. 이미지 입력 시 텍스트를 반환한다는 점이 본 연구와 유사하지만, 이를 토목 분야에 접목시켜 차별성을 두고자 한다. | ||
+ | ====딥러닝 기술 현황==== | ||
+ | 1 이미지 기반 손상 탐지(CNN) 모델 | ||
+ | 현장 손상 탐지의 단점을 극복하기 위해 여러 손상 탐지 기법들이 개발되었다. 특히 컴퓨터 비전과 딥러닝의 발전과 함께 이미지 기반 구조물 손상 탐지가 활발히 사용되고 있다(Lingxin et al., 2022). 이미지 기반 구조물 손상 탐지에 사용되는 CNN 딥러닝 모델은 특성 추출(Feature extraction)과 분류기(Classifier)로 이루어져 있어서 두 과정을 한 번에 진행할 수 있다는 장점이 있다. 학습 과정은 다음과 같다(Gu et al., 2018). | ||
+ | 1) 이미지가 학습되는 과정에서 합성 곱이 진행되면서 특성들이 추출된다. | ||
− | + | 2) 추출된 이미지는 특성 지도를 통해 확인되며 분류를 위한 지표가 된다. | |
− | |||
− | |||
− | |||
− | |||
− | + | 3) 분류기에서 사용자가 설정한 이미지의 class가 도출된다. | |
− | |||
− | |||
− | |||
− | |||
+ | 2 CNN 모델 활용 예시 | ||
+ | Cha & Choi (2017)는 332장의 콘크리트 균열 이미지를 활용하여 발생한 손상을 외부 요인(빛, 그림자 등)의 영향을 줄이며 98.22%의 CNN 모델 정확도를 도출하였다. 그러나 박리, 부식 등의 손상을 탐지할 수 없어 추후 구조물 상태 점검을 위한 모델 개발을 제안하였다. | ||
+ | 다음으로 Fan et al. (2019)은 40,000개의 RGB 도로 균열 이미지 데이터 셋을 이용하여 균열과 정상 상태로 분류하여 99.9%의 정확도를 얻었다. 이외의 다양한 CNN 모델 개발을 통한 손상을 분류하고 탐지하는 연구들이 활발히 이루어지고 있다(Sony et al., 2020). | ||
+ | 여러 연구들을 통해 CNN 모델이 이미지 기반 구조물 손상 탐지에 사용되어 높은 정확도를 얻을 수 있음을 확인하였다. 그러나 대부분 한 가지의 손상 종류(균열, 박리, 철근 노출 등)의 이진 분류 문제(손상, 정상)를 해결하고 있기에 다중 분류 CNN 모델에 대한 문헌조사를 진행하였다. 먼저 Farooq et al.(2017)은 GoogLeNet, ResNet의 전이학습을 활용하여 MRI 사진을 통한 알츠하이머 환자의 3가지 상태를 구분하는데 CNN 모델이 다른 기법들에 비해 높은 정확도가 도출됨을 나타냈다. 다음으로 Murugan(2018)은 모델 구조를 발전시켜 사람, 말, 고양이, 개의 4가지 분류를 연구하여 높은 정확도를 보였다. | ||
+ | 3 DeepLabV3+ | ||
+ | DeepLabV3+는 Sementic segmentation의 기법으로써 인공지능이 이미지에 있는 객체를 픽셀 단위로 분류하는 것이다. Depthwise separable convolution과 Atrous convolution을 결합한 Atrous Separable convolution을 제안하였다(Chen et al., 2018). 컴퓨터 계산이 효율적이고 객체 탐지(Object detection)에 비해 일반적인 사용이 가능하다. 이미지 상에서 클래스를 구분하여 탐지할 수 있어 많은 연구 분야에서 사용된다. Fully Convolutional Networks, U-Net, Mask R-CNN 등의 기법들의 비해 우수한 성능을 가지고 있다(Guo et al., 2018). | ||
+ | 4 DeepLabV3+ 활용 예시 | ||
+ | Han et al. (2022)은 강구조물 표면의 손상에 대하여 DeepLabV3+와 YOLO V3 모델을 결합하여 손상 탐지의 정확도를 증가시켰다. 또한, 픽셀 수준의 손상 탐지를 진행하여 미세한 균열을 탐지하는데 성공하였다. 다음으로 Fu et al. (2021)은 교량에 발생한 균열을 DeepLabV3+ 모델 훈련을 통해 높은 mIoU 값을 도출하였다. 더불어, Dense-DeepLabV3+을 제안함으로써 기존의 모델뿐만 아니라 더 발전된 양상의 효과를 제시하였다. | ||
+ | ====시장상황에 대한 분석==== | ||
+ | 1 안전신문고의 인력 및 예산 | ||
+ | 2019년 기준 행정안전부의 공무원 4~5명만이 안전신문고 관련 안전신고 접수 및 분류를 담당하는 업무에 투입되었다. 안전신문고 예산 역시 문제를 보이고 있는데 하나의 접수에 적어도 3번(접수 확인, 처리 기과 배정 안내, 처리 결과 통보, 처리 기간 연장, 추가 답변 등)의 문자를 발송해 주었으나 2022년부터 공공요금 예산 부족으로 접수 안내가 제외되었다. 이때 딥러닝 모델을 통해 안전신문고 분류 작업을 대체하면 해당 인력과 예산을 절감할 수 있게 된다. | ||
+ | 2 구조물 손상 분류 필요 영역 | ||
+ | 구조물 손상 분류 모델을 제작하였을 때 안전신문고 민원 분류가 아닌 다른 사용처를 조사한 결과 다음과 같은 영역에서 활용 가능하다는 것을 확인하였다. | ||
+ | 먼저 주변 신축 공사로 인한 건물 손상 파악에 도움을 줄 수 있다. 건축주와 시공사, 인접 건물 소유주는 주변 공사로 인해 건물이 손상되었을 경우 바닥의 침하, 균열 등의 하자의 발생과 피해 정도를 파악해야 한다. 여기서 손상 분류 모델을 통해 인근 공사 현장의 시공 행위로 건물에 발생한 피해를 사진 촬영이라는 방법으로 손상을 분류하여 정리할 수 있다. | ||
+ | 다음으로 완공 및 시공 중인 구조물의 하자 파악에 사용될 수 있다. 구조물에서 균열이 발생하면 구조물의 품질이 저하되며, 물에 노출되어 있는 부분에서는 누수를 수반하고, 심한 경우에는 구조물의 붕괴사고로 이어질 수 있다. 하지만 콘크리트 구조물에 균열이 존재한다고 하여 위험한 것은 아니며, 손상의 크기와 위치, 원인 등에 따라 안전할 수도 있다. 이때 손상 분류 모델은 구조물에 발생한 하자를 신속하게 판단하여 전문가에게 사전 정보를 전달하고 구조물의 소유주에게 하자 관련 정보를 제공하는 보조 역할을 수행할 수 있다. | ||
+ | ===개발과제의 기대효과=== | ||
+ | 시설 분야 민원 분류 업무를 딥러닝 모델이 대체하여 행정안전부 민원 분류 담당자의 업무 부담을 줄이고 인력 및 인력비를 절감할 수 있다. 동시에 빠른 분류 결과에 따른 신속한 대처로 시민의 안전을 확보할 수 있다. 또한 딥러닝 모델은 손상 위치의 라벨링을 진행하여 민원 처리 담당자가 사진상에서 손상 위치를 빠르게 판단할 수 있도록 돕는다. 민원 접수 과정에서 이미지 데이터가 누적되며 모델의 지속적인 업데이트가 가능하다. 새로 지정한 안전정보 제공 단계를 통해 민원인이 구조물의 손상별 원인 및 심각 정도를 민원 접수와 동시에 확인할 수 있어 안전성에 대한 의문과 불안감을 신속하게 해소할 수 있다. | ||
+ | ===기술개발 일정 및 추진체계=== | ||
====개발 일정==== | ====개발 일정==== | ||
− | [[파일: | + | [[파일:202301개발일정.jpg]] |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==설계== | ==설계== | ||
===설계사양=== | ===설계사양=== | ||
====제품의 요구사항==== | ====제품의 요구사항==== | ||
− | [[파일: | + | [[파일:202301요구사항.jpg]] |
− | |||
− | |||
− | |||
− | |||
− | |||
====설계 사양==== | ====설계 사양==== | ||
+ | [[파일:202301설계사항.jpg]] | ||
===개념설계안=== | ===개념설계안=== | ||
− | + | [[파일:202301개념설계안.jpg]] | |
− | + | ===상세설계 내용=== | |
− | + | 1 Input | |
− | + | 안전신문고를 통해 민원을 접수할 때 입력하는 정보인 민원 유형, 위치, 사진, 민원인 이메일을 입력 값으로 사용하며 예시는 Table 11과 같다. 이때 본 과제에서는 구조물의 손상 분류 모델을 목적으로 민원 유형이 “도로, 시설물 파손 및 고장”에 해당하는 경우로 한정한다. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | === | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
+ | 2 CNN 분류모델 | ||
− | + | 2.1 모델 | |
+ | 특징을 추출하는 부분인 feature extraction은 전이학습 모델의 가중치들을 사용했으며 4개의 손상 종류를 구분하기 위한 fully connected layer는 마지막 layer에 ‘softmax’ 함수를 사용하여 다중 분류가 가능하도록 구성하였다. 과적합을 방지하기 위해 L2 Regularization과 Dropout을 배치하여 높은 정확도를 얻을 수 있게 구성하였다. | ||
+ | 학습 양상을 살펴보기 위해 학습용 데이터/검증용 데이터 = 90%/10%가 사용되었다. 같은 손상에 대해 여러 각도에서 찍은 경우가 존재하여 이미지 순서대로 학습에 사용될 시 과적합이 발생할 것으로 예상하여 무작위 입력될 수 있도록 설정하였다. | ||
− | + | 2.2 모델 학습 | |
+ | 이미지 데이터를 활용한 딥러닝 구현을 위해서는 고성능 컴퓨터가 필요함에 따라 사양은 CPU: Intel(R) Xeon(R) Silver 4216, RAM: 128GB, GPU: RTX 3090, SSD: 1TB이다. Python 언어로 tensorflow 라이브러리를 사용하였으며, 코드는 Window 기반의 jupyter notebook에 작성되었다. | ||
− | - | + | 2.3 Trial-and-error |
− | + | 데이터셋의 구성과 하이퍼 파라미터의 결정에 따른 정확도를 살펴보기 위해 결과들을 확인하며 다음 실험을 구성하였다. Loop 문을 활용하여 여러 조합을 이용하여 확인하면 더 많은 범위의 변수들을 다룰 수 있지만, 이미지 데이터 학습은 50,926장 기준 10회 반복 학습에 약 6시간 이상이 소요되어 경험 법칙에 따라 진행하였다. | |
− | + | 3 DeepLabV3+ | |
− | + | 3.1 Case | |
+ | 손상 종류에 대한 각각의 모델을 제작해야 됨에 따라 손상 분류 모델을 학습시키기 위해 사용된 데이터셋에 비해 적은 양을 사용하였다. 본 프로젝트에서는 손상 종류 중 “균열”에 대한 모델을 제작하는 것을 목표로 하였다. 참고한 예제에 비해 훈련 데이터가 많지만 이미지 상에서 균열의 크기가 작은 경우가 대부분이라 데이터 증식을 적용하는 케이스를 만들어 비교하고자 했다. 데이터 증식 방법으로는 무작위로 뒤집거나, 밝기를 조절, 명암을 주는 방식의 코드를 작성하였다. 이에, 진행된 실험 케이스는 학습용 데이터 3,000장, 검증용 데이터 490장을 사용하여 하이퍼 파라미터를 바꾸며 진행하였다. | ||
+ | [[파일:202301DeepLapCase.jpg]] | ||
+ | Case 2일 때 가장 높은 정확도를 보였으며, 각 케이스에 대한 모델에 학습에 사용되지 않은 이미지를 넣었을 때 나오는 mask 결과는 다음과 같다. 첫 번째 사진은 코드 상에서 전처리가 된 원본 이미지이며, 두 번째 사진은 균열에 대한 mask 라벨이다. 마지막 사진은 첫 번째 사진이 DeepLabV3+를 통과하여 만들어진 mask 정보를 원본 이미지 위에 오버레이 시킨 것이다. | ||
+ | [[파일:202301DeepLapOverLay.jpg]] | ||
+ | Case 1, 2, 3 모두 맨눈으로 확인하였을 때 굵은 균열을 잘 탐지하는 모습을 나타내었다. 특히, Case 2의 경우 중심의 균열에서 뻗어 나간 얇은 가지 모양 또한 식별하여 mask로 표현하였다. 결과적으로 큰 위험성이 있는 균열 형태의 위치가 파악될 수 있는 수준의 모델이 개발되었다. 균열의 위치를 파악하기 위한 용도로 사용하기 위해 가장 좋은 성능을 보인 case 2의 하이퍼 파라미터를 가진 모델을 저장하였다. | ||
− | + | 4 정보 전달 | |
− | + | 4.1 처리 기관 | |
+ | 현재 안전신문고에서는 민원 위치 데이터를 기반으로 시스템 상에서 자동으로 처리 기관을 배정한다. 딥러닝 모델이 분류한 손상의 종류를 민원 데이터에 추가하여 민원을 처리 기관에 신속하게 이관할 수 있다. 본 과제에서는 Fig. 16과 같이 처리 기관명(ex. 마포구청)의 엑셀 파일에 위치, 손상 종류, 사진을 저장하여 확인할 수 있도록 한다. 추가로 손상 종류가 균열일 경우 DeepLabV3+를 통한 손상 위치 라벨링 이미지를 제공한다. | ||
− | + | 4.2 민원인 | |
+ | 민원인은 민원 접수 후 바로 이메일을 제공받을 수 있다. 이메일에 포함되는 내용은 1) 시설물의 손상 종류 및 원인, 2) 손상 종류별 손상 정도 판단 기준, 3) 발생 가능한 피해 사항이다. 추가로 첨부된 손상별 매뉴얼을 통해 시설물 안전성에 대한 의문과 불안감을 현 처리 기간인 7일보다 빠르게 해소할 수 있다. | ||
+ | [[파일:202301민원인이메일.jpg]] | ||
− | + | 5 Output Algorithm | |
− | + | 5.1 입력 값 지정 | |
+ | 앞서 언급한 것과 같이 알고리즘에 들어갈 input data는 손상 이미지, 위치 정보, 민원인 이메일이다. 결과가 도출되는지 실험하기 위한 이미지를 입력하기 위해 Fig. 18과 같이 민원 사진으로 쓰일 균열, 박리, 철근노출, 우수(손상 없음) 이미지를 촬영하여 구글 드라이브 image 폴더에 저장하였고 이는 모델 제작에 사용되지 않았다. 모델에 입력 값을 주기 위한 코드는 다음과 같으며 image_path는 이미지가 저장된 구글 드라이브 주소, source_location은 위치정보, source_email은 민원인의 이메일 주소이다. | ||
− | + | 이미지 위치 및 input data | |
+ | image_path = "/content/drive/MyDrive/SOC/image/crack.jpg" | ||
+ | source_location = "서울특별시 동대문구 시립로 123" | ||
− | + | source_email = "gus6376@naver.com" | |
− | |||
− | + | 5.2 CNN 분류 모델 | |
+ | CNN 분류 모델로 이미지 데이터에서 가장 균열, 박리, 철근노출, 우수 중 가장 확률이 높은 값을 추출한다. 앞선 image_path의 사진을 전처리 후 model로 저장된 CNN 손상 분류 모델을 통해 확률 값(output)으로 출력하여 가장 큰 값의 인덱스를 predicted_class_label에 저장한다. | ||
− | + | 5.3 DeepLabV3+ | |
+ | predicted_class_label에 저장된 값이 균열일 때 DeepLabV3+(model1)를 통해 이미지에 라벨링을 추가하여 crack_visualization.jpg로 저장한다. | ||
− | + | 5.4 이메일 전송 | |
− | + | smtplib을 활용하여 민원인의 이메일로 손상 종류별 정보와 매뉴얼을 담은 이메일을 전송한다. CNN 분류 모델로 결정된 predicted_class_label마다 다른 이메일 내용(text)과 첨부파일(attachment)을 지정한다. 이때 손상 종류가 우수라면 매뉴얼을 첨부하지 않는다. | |
− | + | 5.5 처리 기관 전달 | |
− | + | 처리 기관에 전달하기 위해 먼저 행정구역별 구청, 군청, 시청명을 파일명으로 하는 엑셀 파일을 사진과 같이 구글 드라이브에 저장하였다. nput data인 위치 정보를 바탕으로 선택한 처리 기관 엑셀 파일에 위치(source_location), 손상 종류(predicted_class_label), 이미지(균열의 경우 라벨링된 이미지)를 저장한다. | |
− | + | [[파일:202301엑셀저.jpg]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
==결과 및 평가== | ==결과 및 평가== | ||
===완료 작품의 소개=== | ===완료 작품의 소개=== | ||
====프로토타입 사진 혹은 작동 장면==== | ====프로토타입 사진 혹은 작동 장면==== | ||
+ | [[파일:Colab.jpg]] | ||
+ | |||
+ | [[파일:202301결과.jpg]] | ||
====포스터==== | ====포스터==== | ||
+ | [[파일:포스터01.jpg]] | ||
===관련사업비 내역서=== | ===관련사업비 내역서=== | ||
+ | [[파일:202301사업비내역.jpg]] | ||
− | + | ===개선 방향=== | |
− | === | + | DeepLabV3+를 사용한 모델 제작에 있어 현 프로젝트에서는 손상 종류 “균열”에 대해서만 진행하였다. 다른 손상 종류 또한 제시된 딥러닝 학습 과정을 바탕으로 개발할 수 있다. 또한, 훈련용 이미지 데이터셋을 더욱 정교하게 제작하거나 수량을 늘린다면 더욱 높은 정확도의 모델을 얻을 수 있다. 최종적으로 제작된 모델들을 조합하면 다양한 손상 종류에 대한 정보를 제공할 수 있는 알고리즘이 만들어진다. |
− | |||
− | |||
− | |||
− | |||
− |
2023년 6월 18일 (일) 06:39 기준 최신판
프로젝트 개요
기술개발 과제
국문 : 딥러닝 활용 이미지 데이터 기반 구조물 손상 다중 분류
영문 : Multi Class Classification of Infrastructure Defects Using Deep Learning Based on Image Data
과제 팀명
1조
지도교수
문영일 교수님
멘토교수
김선중 교수님
개발기간
2023년 3월 ~ 2019년 6월 (총 4개월)
구성원 소개
서울시립대학교 토목공학과 2020XXX0** 안**(팀장)
서울시립대학교 토목공학과 2020XXX0** 김**
서울시립대학교 토목공학과 2020XXX0** 박**
서울시립대학교 토목공학과 2020XXX0** 편**
서론
개발 과제의 개요
개발 과제 요약
1. 딥러닝 모델로 사진 속 손상 분류 및 라벨링
2. 민원인에게 손상에 대한 정보 제공
3. 처리 기관에 손상 종류 및 라벨링된 사진 전달
개발 과제의 배경
배경
1 현재 안전신문고 민원처리 과정
일상 속에서 안전 관련 문제를 발견한 국민은 안전신문고 웹과 앱을 통해 민원을 접수한다. 먼저 신고 유형(도로, 시설물 파손 및 고장/수질오염/교통위반 등) 7가지 중 하나를 선택하고, 관련 사진을 촬영하여 첨부한다. 다음으로 발생 지역을 지도상에서 선택한 후 민원 내용을 작성하고, 연락을 받기 위한 개인정보(이름, 이메일)를 입력하면 안전신문고로 민원이 접수된다. 접수된 민원은 안전신문고의 민원 분류 담당자에 의해 분류되고, 시스템을 통해 신고 지역별 처리 기관이 자동으로 지정되어 민원을 배정받는다. 처리 기관에서는 처리부서 및 담당자를 지정하여 민원을 처리한 후 처리 결과와 답변을 7일 이내로 안전신문고에 전달한다. 이후 민원인은 작성된 처리결과를 SMS를 통해 통보받아 앱, 웹을 통해 확인할 수 있다.
2 시민의 구조물 안전성 의문 제기
구조물의 손상은 1994년 성수대교, 1995년 삼풍백화점, 그리고 올해 있었던 정자교 붕괴사고처럼 심각한 사고로 이어질 수 있다. 이에 올해 서울역 센트럴자이 외벽 균열로 불안감을 느꼈던 주민들처럼 주위 구조물의 균열, 박리, 철근노출을 확인한 시민들은 구조물이 안전한가에 대한 의문과 불안감을 느끼게 된다.
3 안전신문고 업무 현황
2021년 안전신문고를 통해 들어온 안전신고 분야의 민원은 총 140만 건이다. 그중 도로, 시설 파손과 노후 교량 붕괴 위험 등 기반 시설 위험 신고는 총 34만 5천 건으로 월평균 약 28,785건이다. 안전신문고 신고처리 현황에서 확인한 연간 시설 관련(시설물의 균열, 처짐, 뒤틀림, 파손, 흘러내림 등) 신고 수는 2019년 39,713건, 2020년 59,342건, 2021년 116,973건, 2022년 128,681건으로 민원 수가 매년 증가하는 추세임을 확인할 수 있다.
문제점
1 정보 전달 내용 및 시기
시설물의 균열, 처짐, 파손 등과 관련된 시설 분야 민원은 그 상태에 따라 안전 문제로 이어질 수 있다. 하지만 현 상황에서 민원인은 안전신문고 처리 과정의 마지막 단계인 ‘처리결과 통보’에서 자신이 접수한 민원의 답변을 받아볼 수 있다. 민원을 접수하는 단계에서 안전 문제의 발생 원인과 심각 정도를 파악할 수 없으며 약 7일의 민원 처리 기간이 지난 후에도 Fig. 4와 같이 보수 내용과 결과 사진만을 전달받는다.
2 민원 분류 업무 가중
안전신문고 홈페이지에 있는 홍보영상 ‘위험요소와 불법주정차를 척척 해결해주는 안전신문고’를 보면 안전신문고 민원 분류 업무를 하고 있는 공무원은 “저희들이 (신고를) 접수하고 분류하고 있는데 너무 바빠서 아침에 일찍 와서 하루 종일 이거만 하고 있습니다.”라고 말한다. 이처럼 안전신문고를 통해 접수된 신고는 행정안전부의 담당자가 직접 내용을 확인한 후 민원을 분류하여 시스템 상에서 자동 배정된 처리 기관에 이관하여 처리가 진행된다. 그 결과 시설물 균열, 처짐, 파손 등의 시설 분야 민원만으로 한정할 때에도 분류 담당자들은 연간 약 13만 건의 시설물 민원을 확인, 분류하는 작업을 거친다. 안전신문고를 통해 들어오는 민원이 매년 증가하는 상황에서 민원 분류 담당자의 업무 부담이 가중되고 있다.
3 사진상 손상 위치 확인
민원인이 촬영한 사진은 촬영자마다 가까이서 찍은 근접 사진이 될 수도 멀리서 찍은 원거리 사진이 될 수도 있다. 앞서 언급한 홍보영상에서 공무원은 “신고된 사진을 자세히 보고 구분을 해줘야지 바로바로 처리가 될 수 있습니다.”라 인터뷰한다. 또한 다른 공무원은 “뭐가 파손됐으니까 어떻게 해달라 그렇게 신고를 해야 하는데 어떤 분들은 급하다 보니까 그냥 사진 1장만 찍고 (신고를 합니다.)”라고 말한다. 민원인이 제공한 사진은 사람에 의해 분류되고, 처리 기관에서 재확인되어 처리 업무가 진행된다. 분류 업무와 처리 업무에서 사진에 담긴 손상이 어떤 것인지, 그리고 어디에 위치하는지를 빠르게 파악하는 것이 중요하지만 현 처리 과정에서는 사람이 직접 눈으로 손상을 찾는다.
개발 과제의 목표 및 내용
목표
민원인이 신고 유형을 ‘도로, 시설물 파손 및 고장’으로 선택할 때, 우선 기존과 동일하게 안전신문고로 민원이 등록된다. 민원 분류 담당 업무자가 아닌 딥러닝 모델이 민원 사진을 입력 값으로 사진 속 시설물의 손상을 균열, 박리, 철근 노출 중 하나로 신속하게 분류한다. 이후 처리 기관에 시설물 손상의 종류와 민원인이 입력한 위치정보, 손상 사진을 전달한다. 이와 동시에 민원인의 이메일로 손상 종류에 따른 원인 및 발생 가능 피해 사항을 전송하며, 첨부된 매뉴얼을 통해 민원인은 자신이 접수한 민원 사진 속 손상의 안전성을 확인할 수 있다. 이 모든 과정이 자동화되어 안전 문제로 이어질 수 있는 시설 분야 민원을 신속하게 처리할 수 있게 된다.
활용 기술
사진의 손상을 4가지로 분류하는 CNN 분류 모델을 제작하는 과정에서 과적합을 방지하고 정확도를 높이기 위해 이미지 전처리를 통한 데이터셋을 구성하고, 전이학습 모델인 InceptionV3와 ResNet50를 실험에 사용한다. 하이퍼 파라미터의 시행착오(Trial-and-error) 방식과 자동화된 Optuna를 적용하여 실험을 진행해 최적의 모델을 구성하고자 한다.
설계 방향
민원인이 시설물의 손상 사진을 접수하면 딥러닝 모델은 사진 속 손상의 종류(균열, 박리, 철근노출, 우수)를 분류하며 손상을 라벨링한다. 분류된 정보는 처리 기관과 민원인에게 제공된다. 이때 민원인은 분류된 정보를 바탕으로 손상의 원인과 위험성을 확인할 수 있는 매뉴얼을 메일을 통해 제공받는다.
관련 기술의 현황
관련 기술의 현황 및 분석(State of art)
민원 처리 기술 현황
1 ‘빅데이터 정보화 전략계획 수립 및 데이터 분석 용역’ 사업
민원 데이터를 통해 기관별/ 분야별/ 특정 시점별 민원 발생량을 분석하여 사전에 민원을 예측하고 대비해 시민들의 불편을 줄이기 위해 추진된 사업이다. 분석 대상(민원 데이터, SNS)과 민원 데이터 속성(민원 제목, 민원 내용, 답변 내용, 접수일자, 민원 분류 등 총 7개 요소)을 설정하여 데이터를 정제한 후 사전 처리, 특성 추출을 진행, 민원분석 시스템을 구성하여 데이터를 분석했다. 이미지 분석으로 손상 분류 텍스트를 반환하여 민원 과정의 간소화를 목표로 하는 본 과제와 다르게 통계분석과 비정형 텍스트 분석을 기반으로 민원 예측을 목표로 했다는 점에서 차이가 있다.
2 ‘모바일을 활용한 지역 민원 처리 시스템 개발’ 연구
민원인이 앱(특정 마을 민원)으로 민원을 넣으면 앱은 민원 내용, 사진, 위치정보, 민원인의 핸드폰 번호를 서버로 전달하고 서버는 다양한 민원 데이터들을 데이터베이스로 저장하면서 관리한다. 이 민원 정보들로부터 관리자는 민원 처리 현황을 작성하게 되고, 서버를 통해 다시 해당 민원인에게 전달되며, 민원 데이터로부터 민원 맵이 구성되어 주민들과 행정기관은 마을의 민원을 파악할 수 있다. 현재 안전신문고의 시스템과 크게 다르지 않고, 민원 데이터들을 데이터베이스에 저장하여 작성된 처리 현황으로 마을 별 맵을 구성하여 신고자 외의 사람들도 확인할 수 있다는 장점이 있지만 데이터 분류와 처리 현황 작성을 사람이 맡아 본 과제와의 연관성은 적다.
3 '토픽 모델링을 활용한 교통경찰 민원 분석’ 연구
국민의 치안 수요를 탐색하고자 ‘교통경찰 관련 국민신문고 민원 데이터’를 대상으로 토픽 모델링 방법 중 하나인 잠재 디리클레 할당(Latent Dirichlet Allocation)을 통해 민원 데이터를 분석하여 토픽(ex. 개인형 이동장치)에 따른 높은 비중의 키워드(ex. 범칙금, 전기자전거, 개인)를 추출했다. 공공데이터와 민원 데이터를 사용했다는 점은 본 연구와 동일하지만, 텍스트 데이터를 사용한다는 점과 치안 수요 파악으로 정책과 교육 자료에서의 활용을 목표로 한다는 점이 다르다.
4 'Vision Transformer를 활용한 안전신문고 이미지 분류‘ 연구
Vision Transformer를 활용해 안전신문고의 신고 이미지를 유형별로 분류하는 연구로 시설물 분야의 손상(균열, 박리, 철근노출)을 분류하는 본 연구와 다르게 위험 유형을 도로, 보행자, 시설물로 나눠 많은 수의 민원을 처리할 수 있다는 강점을 지니지만 적은 데이터 수로 인해 사전 학습된 모델을 사용하였다는 한계점을 지니고 있다.
5 (중국) CNN 및 딥러닝 활용 건물 품질 민원 분류
건설 산업 품질 관련 문제가 발생하여, 민원 텍스트 데이터를 기반으로 제작한 CNN 딥러닝 모델을 통해 건설 품질(누수, 균열, 파손) 민원을 분류하는 연구를 진행하였다. CNN 분류 모델이 민원 처리의 효율성을 향상시킬 수 있었지만, 정확도를 개선하기 위한 추가 연구로 전이 학습 및 분류 네트워크와 결합된 하이브리드 기법의 필요성을 제안하였다.
6 (인도) 민원 처리를 위한 AI 기술 활용 정보 관리 모델
이미지 처리 및 데이터 마이닝 기법을 활용해 민원 이미지 등록하면 텍스트를 추출하여 전달 부서에 대한 데이터를 생성하는 연구를 진행하였다. 이미지 입력 시 텍스트를 반환한다는 점이 본 연구와 유사하지만, 이를 토목 분야에 접목시켜 차별성을 두고자 한다.
딥러닝 기술 현황
1 이미지 기반 손상 탐지(CNN) 모델
현장 손상 탐지의 단점을 극복하기 위해 여러 손상 탐지 기법들이 개발되었다. 특히 컴퓨터 비전과 딥러닝의 발전과 함께 이미지 기반 구조물 손상 탐지가 활발히 사용되고 있다(Lingxin et al., 2022). 이미지 기반 구조물 손상 탐지에 사용되는 CNN 딥러닝 모델은 특성 추출(Feature extraction)과 분류기(Classifier)로 이루어져 있어서 두 과정을 한 번에 진행할 수 있다는 장점이 있다. 학습 과정은 다음과 같다(Gu et al., 2018).
1) 이미지가 학습되는 과정에서 합성 곱이 진행되면서 특성들이 추출된다.
2) 추출된 이미지는 특성 지도를 통해 확인되며 분류를 위한 지표가 된다.
3) 분류기에서 사용자가 설정한 이미지의 class가 도출된다.
2 CNN 모델 활용 예시
Cha & Choi (2017)는 332장의 콘크리트 균열 이미지를 활용하여 발생한 손상을 외부 요인(빛, 그림자 등)의 영향을 줄이며 98.22%의 CNN 모델 정확도를 도출하였다. 그러나 박리, 부식 등의 손상을 탐지할 수 없어 추후 구조물 상태 점검을 위한 모델 개발을 제안하였다. 다음으로 Fan et al. (2019)은 40,000개의 RGB 도로 균열 이미지 데이터 셋을 이용하여 균열과 정상 상태로 분류하여 99.9%의 정확도를 얻었다. 이외의 다양한 CNN 모델 개발을 통한 손상을 분류하고 탐지하는 연구들이 활발히 이루어지고 있다(Sony et al., 2020). 여러 연구들을 통해 CNN 모델이 이미지 기반 구조물 손상 탐지에 사용되어 높은 정확도를 얻을 수 있음을 확인하였다. 그러나 대부분 한 가지의 손상 종류(균열, 박리, 철근 노출 등)의 이진 분류 문제(손상, 정상)를 해결하고 있기에 다중 분류 CNN 모델에 대한 문헌조사를 진행하였다. 먼저 Farooq et al.(2017)은 GoogLeNet, ResNet의 전이학습을 활용하여 MRI 사진을 통한 알츠하이머 환자의 3가지 상태를 구분하는데 CNN 모델이 다른 기법들에 비해 높은 정확도가 도출됨을 나타냈다. 다음으로 Murugan(2018)은 모델 구조를 발전시켜 사람, 말, 고양이, 개의 4가지 분류를 연구하여 높은 정확도를 보였다.
3 DeepLabV3+
DeepLabV3+는 Sementic segmentation의 기법으로써 인공지능이 이미지에 있는 객체를 픽셀 단위로 분류하는 것이다. Depthwise separable convolution과 Atrous convolution을 결합한 Atrous Separable convolution을 제안하였다(Chen et al., 2018). 컴퓨터 계산이 효율적이고 객체 탐지(Object detection)에 비해 일반적인 사용이 가능하다. 이미지 상에서 클래스를 구분하여 탐지할 수 있어 많은 연구 분야에서 사용된다. Fully Convolutional Networks, U-Net, Mask R-CNN 등의 기법들의 비해 우수한 성능을 가지고 있다(Guo et al., 2018).
4 DeepLabV3+ 활용 예시
Han et al. (2022)은 강구조물 표면의 손상에 대하여 DeepLabV3+와 YOLO V3 모델을 결합하여 손상 탐지의 정확도를 증가시켰다. 또한, 픽셀 수준의 손상 탐지를 진행하여 미세한 균열을 탐지하는데 성공하였다. 다음으로 Fu et al. (2021)은 교량에 발생한 균열을 DeepLabV3+ 모델 훈련을 통해 높은 mIoU 값을 도출하였다. 더불어, Dense-DeepLabV3+을 제안함으로써 기존의 모델뿐만 아니라 더 발전된 양상의 효과를 제시하였다.
시장상황에 대한 분석
1 안전신문고의 인력 및 예산
2019년 기준 행정안전부의 공무원 4~5명만이 안전신문고 관련 안전신고 접수 및 분류를 담당하는 업무에 투입되었다. 안전신문고 예산 역시 문제를 보이고 있는데 하나의 접수에 적어도 3번(접수 확인, 처리 기과 배정 안내, 처리 결과 통보, 처리 기간 연장, 추가 답변 등)의 문자를 발송해 주었으나 2022년부터 공공요금 예산 부족으로 접수 안내가 제외되었다. 이때 딥러닝 모델을 통해 안전신문고 분류 작업을 대체하면 해당 인력과 예산을 절감할 수 있게 된다.
2 구조물 손상 분류 필요 영역
구조물 손상 분류 모델을 제작하였을 때 안전신문고 민원 분류가 아닌 다른 사용처를 조사한 결과 다음과 같은 영역에서 활용 가능하다는 것을 확인하였다. 먼저 주변 신축 공사로 인한 건물 손상 파악에 도움을 줄 수 있다. 건축주와 시공사, 인접 건물 소유주는 주변 공사로 인해 건물이 손상되었을 경우 바닥의 침하, 균열 등의 하자의 발생과 피해 정도를 파악해야 한다. 여기서 손상 분류 모델을 통해 인근 공사 현장의 시공 행위로 건물에 발생한 피해를 사진 촬영이라는 방법으로 손상을 분류하여 정리할 수 있다. 다음으로 완공 및 시공 중인 구조물의 하자 파악에 사용될 수 있다. 구조물에서 균열이 발생하면 구조물의 품질이 저하되며, 물에 노출되어 있는 부분에서는 누수를 수반하고, 심한 경우에는 구조물의 붕괴사고로 이어질 수 있다. 하지만 콘크리트 구조물에 균열이 존재한다고 하여 위험한 것은 아니며, 손상의 크기와 위치, 원인 등에 따라 안전할 수도 있다. 이때 손상 분류 모델은 구조물에 발생한 하자를 신속하게 판단하여 전문가에게 사전 정보를 전달하고 구조물의 소유주에게 하자 관련 정보를 제공하는 보조 역할을 수행할 수 있다.
개발과제의 기대효과
시설 분야 민원 분류 업무를 딥러닝 모델이 대체하여 행정안전부 민원 분류 담당자의 업무 부담을 줄이고 인력 및 인력비를 절감할 수 있다. 동시에 빠른 분류 결과에 따른 신속한 대처로 시민의 안전을 확보할 수 있다. 또한 딥러닝 모델은 손상 위치의 라벨링을 진행하여 민원 처리 담당자가 사진상에서 손상 위치를 빠르게 판단할 수 있도록 돕는다. 민원 접수 과정에서 이미지 데이터가 누적되며 모델의 지속적인 업데이트가 가능하다. 새로 지정한 안전정보 제공 단계를 통해 민원인이 구조물의 손상별 원인 및 심각 정도를 민원 접수와 동시에 확인할 수 있어 안전성에 대한 의문과 불안감을 신속하게 해소할 수 있다.
기술개발 일정 및 추진체계
개발 일정
설계
설계사양
제품의 요구사항
설계 사양
개념설계안
상세설계 내용
1 Input
안전신문고를 통해 민원을 접수할 때 입력하는 정보인 민원 유형, 위치, 사진, 민원인 이메일을 입력 값으로 사용하며 예시는 Table 11과 같다. 이때 본 과제에서는 구조물의 손상 분류 모델을 목적으로 민원 유형이 “도로, 시설물 파손 및 고장”에 해당하는 경우로 한정한다.
2 CNN 분류모델
2.1 모델
특징을 추출하는 부분인 feature extraction은 전이학습 모델의 가중치들을 사용했으며 4개의 손상 종류를 구분하기 위한 fully connected layer는 마지막 layer에 ‘softmax’ 함수를 사용하여 다중 분류가 가능하도록 구성하였다. 과적합을 방지하기 위해 L2 Regularization과 Dropout을 배치하여 높은 정확도를 얻을 수 있게 구성하였다. 학습 양상을 살펴보기 위해 학습용 데이터/검증용 데이터 = 90%/10%가 사용되었다. 같은 손상에 대해 여러 각도에서 찍은 경우가 존재하여 이미지 순서대로 학습에 사용될 시 과적합이 발생할 것으로 예상하여 무작위 입력될 수 있도록 설정하였다.
2.2 모델 학습
이미지 데이터를 활용한 딥러닝 구현을 위해서는 고성능 컴퓨터가 필요함에 따라 사양은 CPU: Intel(R) Xeon(R) Silver 4216, RAM: 128GB, GPU: RTX 3090, SSD: 1TB이다. Python 언어로 tensorflow 라이브러리를 사용하였으며, 코드는 Window 기반의 jupyter notebook에 작성되었다.
2.3 Trial-and-error
데이터셋의 구성과 하이퍼 파라미터의 결정에 따른 정확도를 살펴보기 위해 결과들을 확인하며 다음 실험을 구성하였다. Loop 문을 활용하여 여러 조합을 이용하여 확인하면 더 많은 범위의 변수들을 다룰 수 있지만, 이미지 데이터 학습은 50,926장 기준 10회 반복 학습에 약 6시간 이상이 소요되어 경험 법칙에 따라 진행하였다.
3 DeepLabV3+
3.1 Case
손상 종류에 대한 각각의 모델을 제작해야 됨에 따라 손상 분류 모델을 학습시키기 위해 사용된 데이터셋에 비해 적은 양을 사용하였다. 본 프로젝트에서는 손상 종류 중 “균열”에 대한 모델을 제작하는 것을 목표로 하였다. 참고한 예제에 비해 훈련 데이터가 많지만 이미지 상에서 균열의 크기가 작은 경우가 대부분이라 데이터 증식을 적용하는 케이스를 만들어 비교하고자 했다. 데이터 증식 방법으로는 무작위로 뒤집거나, 밝기를 조절, 명암을 주는 방식의 코드를 작성하였다. 이에, 진행된 실험 케이스는 학습용 데이터 3,000장, 검증용 데이터 490장을 사용하여 하이퍼 파라미터를 바꾸며 진행하였다.
Case 2일 때 가장 높은 정확도를 보였으며, 각 케이스에 대한 모델에 학습에 사용되지 않은 이미지를 넣었을 때 나오는 mask 결과는 다음과 같다. 첫 번째 사진은 코드 상에서 전처리가 된 원본 이미지이며, 두 번째 사진은 균열에 대한 mask 라벨이다. 마지막 사진은 첫 번째 사진이 DeepLabV3+를 통과하여 만들어진 mask 정보를 원본 이미지 위에 오버레이 시킨 것이다.
Case 1, 2, 3 모두 맨눈으로 확인하였을 때 굵은 균열을 잘 탐지하는 모습을 나타내었다. 특히, Case 2의 경우 중심의 균열에서 뻗어 나간 얇은 가지 모양 또한 식별하여 mask로 표현하였다. 결과적으로 큰 위험성이 있는 균열 형태의 위치가 파악될 수 있는 수준의 모델이 개발되었다. 균열의 위치를 파악하기 위한 용도로 사용하기 위해 가장 좋은 성능을 보인 case 2의 하이퍼 파라미터를 가진 모델을 저장하였다.
4 정보 전달
4.1 처리 기관
현재 안전신문고에서는 민원 위치 데이터를 기반으로 시스템 상에서 자동으로 처리 기관을 배정한다. 딥러닝 모델이 분류한 손상의 종류를 민원 데이터에 추가하여 민원을 처리 기관에 신속하게 이관할 수 있다. 본 과제에서는 Fig. 16과 같이 처리 기관명(ex. 마포구청)의 엑셀 파일에 위치, 손상 종류, 사진을 저장하여 확인할 수 있도록 한다. 추가로 손상 종류가 균열일 경우 DeepLabV3+를 통한 손상 위치 라벨링 이미지를 제공한다.
4.2 민원인
민원인은 민원 접수 후 바로 이메일을 제공받을 수 있다. 이메일에 포함되는 내용은 1) 시설물의 손상 종류 및 원인, 2) 손상 종류별 손상 정도 판단 기준, 3) 발생 가능한 피해 사항이다. 추가로 첨부된 손상별 매뉴얼을 통해 시설물 안전성에 대한 의문과 불안감을 현 처리 기간인 7일보다 빠르게 해소할 수 있다.
5 Output Algorithm
5.1 입력 값 지정
앞서 언급한 것과 같이 알고리즘에 들어갈 input data는 손상 이미지, 위치 정보, 민원인 이메일이다. 결과가 도출되는지 실험하기 위한 이미지를 입력하기 위해 Fig. 18과 같이 민원 사진으로 쓰일 균열, 박리, 철근노출, 우수(손상 없음) 이미지를 촬영하여 구글 드라이브 image 폴더에 저장하였고 이는 모델 제작에 사용되지 않았다. 모델에 입력 값을 주기 위한 코드는 다음과 같으며 image_path는 이미지가 저장된 구글 드라이브 주소, source_location은 위치정보, source_email은 민원인의 이메일 주소이다.
이미지 위치 및 input data
image_path = "/content/drive/MyDrive/SOC/image/crack.jpg"
source_location = "서울특별시 동대문구 시립로 123"
source_email = "gus6376@naver.com"
5.2 CNN 분류 모델
CNN 분류 모델로 이미지 데이터에서 가장 균열, 박리, 철근노출, 우수 중 가장 확률이 높은 값을 추출한다. 앞선 image_path의 사진을 전처리 후 model로 저장된 CNN 손상 분류 모델을 통해 확률 값(output)으로 출력하여 가장 큰 값의 인덱스를 predicted_class_label에 저장한다.
5.3 DeepLabV3+
predicted_class_label에 저장된 값이 균열일 때 DeepLabV3+(model1)를 통해 이미지에 라벨링을 추가하여 crack_visualization.jpg로 저장한다.
5.4 이메일 전송
smtplib을 활용하여 민원인의 이메일로 손상 종류별 정보와 매뉴얼을 담은 이메일을 전송한다. CNN 분류 모델로 결정된 predicted_class_label마다 다른 이메일 내용(text)과 첨부파일(attachment)을 지정한다. 이때 손상 종류가 우수라면 매뉴얼을 첨부하지 않는다.
5.5 처리 기관 전달
처리 기관에 전달하기 위해 먼저 행정구역별 구청, 군청, 시청명을 파일명으로 하는 엑셀 파일을 사진과 같이 구글 드라이브에 저장하였다. nput data인 위치 정보를 바탕으로 선택한 처리 기관 엑셀 파일에 위치(source_location), 손상 종류(predicted_class_label), 이미지(균열의 경우 라벨링된 이미지)를 저장한다.
결과 및 평가
완료 작품의 소개
프로토타입 사진 혹은 작동 장면
포스터
관련사업비 내역서
개선 방향
DeepLabV3+를 사용한 모델 제작에 있어 현 프로젝트에서는 손상 종류 “균열”에 대해서만 진행하였다. 다른 손상 종류 또한 제시된 딥러닝 학습 과정을 바탕으로 개발할 수 있다. 또한, 훈련용 이미지 데이터셋을 더욱 정교하게 제작하거나 수량을 늘린다면 더욱 높은 정확도의 모델을 얻을 수 있다. 최종적으로 제작된 모델들을 조합하면 다양한 손상 종류에 대한 정보를 제공할 수 있는 알고리즘이 만들어진다.