"1조"의 두 판 사이의 차이

CIVIL capstone
이동: 둘러보기, 검색
(구성원 소개)
(상세설계 내용)
 
(사용자 3명의 중간 판 81개는 보이지 않습니다)
1번째 줄: 1번째 줄:
<div>__TOC__</div>
 
  
 
==프로젝트 개요==
 
==프로젝트 개요==
 
=== 기술개발 과제 ===
 
=== 기술개발 과제 ===
''' 국문 : ''' YOLO와 Machine Learning을 결합한 이미지 기반 Pothole 탐지 모델 개발
+
''' 국문 : ''' 딥러닝 활용 이미지 데이터 기반 구조물 손상 다중 분류
  
''' 영문 : ''' Development of image-based Pothole Detection layer model Combining YOLO and Machine Learning
+
''' 영문 : ''' Multi Class Classification of Infrastructure Defects Using Deep Learning Based on Image Data
  
 
===과제 팀명===
 
===과제 팀명===
11번째 줄: 10번째 줄:
  
 
===지도교수===
 
===지도교수===
조수진 교수님
+
문영일 교수님
 +
 
 +
===멘토교수===
 +
김선중 교수님
  
 
===개발기간===
 
===개발기간===
2019년 3월 ~ 2019년 6월 (총 4개월)
+
2023년 3월 ~ 2019년 6월 (총 4개월)
  
 
===구성원 소개===
 
===구성원 소개===
서울시립대학교 토목공학부·과 2016860046 이지수
+
서울시립대학교 토목공학과 2020XXX0** 안**(팀장)
  
서울시립대학교 토목공학부·과 2016860048 홍태욱
+
서울시립대학교 토목공학과 2020XXX0** 김**
  
서울시립대학교 토목공학부·과 2014840010 김승한
+
서울시립대학교 토목공학과 2020XXX0** 박**
  
서울시립대학교 토목공학부·과 2013860017 박진우
+
서울시립대학교 토목공학과 2020XXX0** 편**
 
 
서울시립대학교 토목공학부·과 2013860016 박재성
 
 
 
서울시립대학교 토목공학부·과 2016860044 서영진 (팀장)
 
  
 
==서론==
 
==서론==
 
===개발 과제의 개요===
 
===개발 과제의 개요===
 +
====개발 과제 요약====
 +
1. 딥러닝 모델로 사진 속 손상 분류 및 라벨링
  
====개발 과제의 목표 및 내용====
+
2. 민원인에게 손상에 대한 정보 제공
  
- 서울시에만 발생하는 포트홀의 면적은 70,135로써 무려축구장11.7개의 면적에 달함.  
+
3. 처리 기관에 손상 종류 및 라벨링된 사진 전달
  
- 포트홀로 인한 차량 파손은 빈번하게 일어나며 대형사고로까지 이어져 심각한 금전적 피해 및 인명 사고도 발생하므로 이를 소홀히 여길 수 없다고 판단됨.
+
====개발 과제의 배경====
 +
====배경====
 +
1 현재 안전신문고 민원처리 과정
  
- 기존의 시민들의 제보와 일상적인 점검만으로는 포트홀의 즉각적인 유지보수가 어렵고, 도로 점검에 드는 인력비용은 고비용을 수반하지만 도로파손을 초기에 발견하기엔 역부족이다.  
+
일상 속에서 안전 관련 문제를 발견한 국민은 안전신문고 웹과 앱을 통해 민원을 접수한다. 먼저 신고 유형(도로, 시설물 파손 및 고장/수질오염/교통위반 등) 7가지 중 하나를 선택하고, 관련 사진을 촬영하여 첨부한다. 다음으로 발생 지역을 지도상에서 선택한 후 민원 내용을 작성하고, 연락을 받기 위한 개인정보(이름, 이메일)를 입력하면 안전신문고로 민원이 접수된다.
 +
접수된 민원은 안전신문고의 민원 분류 담당자에 의해 분류되고, 시스템을 통해 신고 지역별 처리 기관이 자동으로 지정되어 민원을 배정받는다. 처리 기관에서는 처리부서 및 담당자를 지정하여 민원을 처리한 후 처리 결과와 답변을 7일 이내로 안전신문고에 전달한다. 이후 민원인은 작성된 처리결과를 SMS를 통해 통보받아 앱, 웹을 통해 확인할 수 있다.
  
- 따라서 딥 러닝을 이용한 포트홀 자동 탐지로 즉각적인 탐지 및 보수를 통한 안정성 확보 및 인력 비용의 절감을 구상하게 되었다.
+
2 시민의 구조물 안전성 의문 제기
  
===관련 기술의 현황===
+
구조물의 손상은 1994년 성수대교, 1995년 삼풍백화점, 그리고 올해 있었던 정자교 붕괴사고처럼 심각한 사고로 이어질 수 있다. 이에 올해 서울역 센트럴자이 외벽 균열로 불안감을 느꼈던 주민들처럼 주위 구조물의 균열, 박리, 철근노출을 확인한 시민들은 구조물이 안전한가에 대한 의문과 불안감을 느끼게 된다.
====관련 기술의 현황 및 분석(State of art)====
 
  
<로봇을 이용한 시공 관리 감독>
 
  
[[파일:A1.jpg]]
+
3 안전신문고 업무 현황
  
<달 기지 건설을 위한 크레이터 탐지>
+
2021년 안전신문고를 통해 들어온 안전신고 분야의 민원은 총 140만 건이다. 그중 도로, 시설 파손과 노후 교량 붕괴 위험 등 기반 시설 위험 신고는 총 34만 5천 건으로 월평균 약 28,785건이다. 안전신문고 신고처리 현황에서 확인한 연간 시설 관련(시설물의 균열, 처짐, 뒤틀림, 파손, 흘러내림 등) 신고 수는 2019년 39,713건, 2020년 59,342건, 2021년 116,973건, 2022년 128,681건으로 민원 수가 매년 증가하는 추세임을 확인할 수 있다.
  
[[파일:A2.jpg]]
+
====문제점====
 +
1 정보 전달 내용 및 시기
  
<드론을 이용한 관측 및 탐지>
+
시설물의 균열, 처짐, 파손 등과 관련된 시설 분야 민원은 그 상태에 따라 안전 문제로 이어질 수 있다. 하지만 현 상황에서 민원인은 안전신문고 처리 과정의 마지막 단계인 ‘처리결과 통보’에서 자신이 접수한 민원의 답변을 받아볼 수 있다. 민원을 접수하는 단계에서 안전 문제의 발생 원인과 심각 정도를 파악할 수 없으며 약 7일의 민원 처리 기간이 지난 후에도 Fig. 4와 같이 보수 내용과 결과 사진만을 전달받는다.
  
[[파일:A3.jpg]]
+
2 민원 분류 업무 가중
 +
  안전신문고 홈페이지에 있는 홍보영상 ‘위험요소와 불법주정차를 척척 해결해주는 안전신문고’를 보면 안전신문고 민원 분류 업무를 하고 있는 공무원은 “저희들이 (신고를) 접수하고 분류하고 있는데 너무 바빠서 아침에 일찍 와서 하루 종일 이거만 하고 있습니다.”라고 말한다. 이처럼 안전신문고를 통해 접수된 신고는 행정안전부의 담당자가 직접 내용을 확인한 후 민원을 분류하여 시스템 상에서 자동 배정된 처리 기관에 이관하여 처리가 진행된다. 그 결과 시설물 균열, 처짐, 파손 등의 시설 분야 민원만으로 한정할 때에도 분류 담당자들은 연간 약 13만 건의 시설물 민원을 확인, 분류하는 작업을 거친다. 안전신문고를 통해 들어오는 민원이 매년 증가하는 상황에서 민원 분류 담당자의 업무 부담이 가중되고 있다.
  
<드론을 이용한 토공량 산정>
+
3 사진상 손상 위치 확인
 +
  민원인이 촬영한 사진은 촬영자마다 가까이서 찍은 근접 사진이 될 수도 멀리서 찍은 원거리 사진이 될 수도 있다. 앞서 언급한 홍보영상에서 공무원은 “신고된 사진을 자세히 보고 구분을 해줘야지 바로바로 처리가 될 수 있습니다.”라 인터뷰한다. 또한 다른 공무원은 “뭐가 파손됐으니까 어떻게 해달라 그렇게 신고를 해야 하는데 어떤 분들은 급하다 보니까 그냥 사진 1장만 찍고 (신고를 합니다.)”라고 말한다. 민원인이 제공한 사진은 사람에 의해 분류되고, 처리 기관에서 재확인되어 처리 업무가 진행된다. 분류 업무와 처리 업무에서 사진에 담긴 손상이 어떤 것인지, 그리고 어디에 위치하는지를 빠르게 파악하는 것이 중요하지만 현 처리 과정에서는 사람이 직접 눈으로 손상을 찾는다.
  
[[파일:A4.jpg]]
+
====개발 과제의 목표 및 내용====
 +
====목표====
  
< 향후 인공지능을 이용한 자율 주행 건설 현장 >
+
민원인이 신고 유형을 ‘도로, 시설물 파손 및 고장’으로 선택할 때, 우선 기존과 동일하게 안전신문고로 민원이 등록된다. 민원 분류 담당 업무자가 아닌 딥러닝 모델이 민원 사진을 입력 값으로 사진 속 시설물의 손상을 균열, 박리, 철근 노출 중 하나로 신속하게 분류한다. 이후 처리 기관에 시설물 손상의 종류와 민원인이 입력한 위치정보, 손상 사진을 전달한다. 이와 동시에 민원인의 이메일로 손상 종류에 따른 원인 및 발생 가능 피해 사항을 전송하며, 첨부된 매뉴얼을 통해 민원인은 자신이 접수한 민원 사진 속 손상의 안전성을 확인할 수 있다. 이 모든 과정이 자동화되어 안전 문제로 이어질 수 있는 시설 분야 민원을 신속하게 처리할 수 있게 된다.
  
- 안전성, 생산성 향상 기대 가능 -
+
====활용 기술====
 +
사진의 손상을 4가지로 분류하는 CNN 분류 모델을 제작하는 과정에서 과적합을 방지하고 정확도를 높이기 위해 이미지 전처리를 통한 데이터셋을 구성하고, 전이학습 모델인 InceptionV3와 ResNet50를 실험에 사용한다. 하이퍼 파라미터의 시행착오(Trial-and-error) 방식과 자동화된 Optuna를 적용하여 실험을 진행해 최적의 모델을 구성하고자 한다.
  
[[파일:A5.jpg]]
+
====설계 방향====
 +
민원인이 시설물의 손상 사진을 접수하면 딥러닝 모델은 사진 속 손상의 종류(균열, 박리, 철근노출, 우수)를 분류하며 손상을 라벨링한다. 분류된 정보는 처리 기관과 민원인에게 제공된다. 이때 민원인은 분류된 정보를 바탕으로 손상의 원인과 위험성을 확인할 수 있는 매뉴얼을 메일을 통해 제공받는다.
  
====시장상황에 대한 분석====
+
===관련 기술의 현황===
● 기존&경쟁 에 대한 기술&제품 조사 비교
+
====관련 기술의 현황 및 분석(State of art)====
 +
====민원 처리 기술 현황====
 +
1 ‘빅데이터 정보화 전략계획 수립 및 데이터 분석 용역’ 사업
 +
민원 데이터를 통해 기관별/ 분야별/ 특정 시점별 민원 발생량을 분석하여 사전에 민원을 예측하고 대비해 시민들의 불편을 줄이기 위해 추진된 사업이다. 분석 대상(민원 데이터, SNS)과 민원 데이터 속성(민원 제목, 민원 내용, 답변 내용, 접수일자, 민원 분류 등 총 7개 요소)을 설정하여 데이터를 정제한 후 사전 처리, 특성 추출을 진행, 민원분석 시스템을 구성하여 데이터를 분석했다. 이미지 분석으로 손상 분류 텍스트를 반환하여 민원 과정의 간소화를 목표로 하는 본 과제와 다르게 통계분석과 비정형 텍스트 분석을 기반으로 민원 예측을 목표로 했다는 점에서 차이가 있다.
  
- 조사에 들어간 후 한국도로협회에서 2016년 8월부터 딥 러닝을 활용한 도로 탐지 시스템을 연구 중이며 다른 여러 단체 및 연구진에서도 기술을 연구 중이라는 것을 알게 되었다.
+
2 ‘모바일을 활용한 지역 민원 처리 시스템 개발’ 연구
하지만 연구 진행 단계에 있는 것으로 파악 되었고, 상용화 되기까지는 시일이 걸릴 것이라 추정된다.
+
민원인이 앱(특정 마을 민원)으로 민원을 넣으면 앱은 민원 내용, 사진, 위치정보, 민원인의 핸드폰 번호를 서버로 전달하고 서버는 다양한 민원 데이터들을 데이터베이스로 저장하면서 관리한다. 민원 정보들로부터 관리자는 민원 처리 현황을 작성하게 되고, 서버를 통해 다시 해당 민원인에게 전달되며, 민원 데이터로부터 민원 맵이 구성되어 주민들과 행정기관은 마을의 민원을 파악할 수 있다. 현재 안전신문고의 시스템과 크게 다르지 않고, 민원 데이터들을 데이터베이스에 저장하여 작성된 처리 현황으로 마을 별 맵을 구성하여 신고자 외의 사람들도 확인할 수 있다는 장점이 있지만 데이터 분류와 처리 현황 작성을 사람이 맡아 본 과제와의 연관성은 적다.
  
● 시장성 분석
+
3 '토픽 모델링을 활용한 교통경찰 민원 분석’ 연구
 +
국민의 치안 수요를 탐색하고자 ‘교통경찰 관련 국민신문고 민원 데이터’를 대상으로 토픽 모델링 방법 중 하나인 잠재 디리클레 할당(Latent Dirichlet Allocation)을 통해 민원 데이터를 분석하여 토픽(ex. 개인형 이동장치)에 따른 높은 비중의 키워드(ex. 범칙금, 전기자전거, 개인)를 추출했다. 공공데이터와 민원 데이터를 사용했다는 점은 본 연구와 동일하지만, 텍스트 데이터를 사용한다는 점과 치안 수요 파악으로 정책과 교육 자료에서의 활용을 목표로 한다는 점이 다르다.
  
현재 이 기술을 연구 중인 단체들 중 선구적이라 판단되는 한국 도로협회의 도로 탐지 방식을 예로 들면
+
4 'Vision Transformer를 활용한 안전신문고 이미지 분류‘ 연구
 +
Vision Transformer를 활용해 안전신문고의 신고 이미지를 유형별로 분류하는 연구로 시설물 분야의 손상(균열, 박리, 철근노출)을 분류하는 본 연구와 다르게 위험 유형을 도로, 보행자, 시설물로 나눠 많은 수의 민원을 처리할 수 있다는 강점을 지니지만 적은 데이터 수로 인해 사전 학습된 모델을 사용하였다는 한계점을 지니고 있다.
  
[[파일:A6.jpg]]
+
5 (중국) CNN 및 딥러닝 활용 건물 품질 민원 분류
 +
  건설 산업 품질 관련 문제가 발생하여, 민원 텍스트 데이터를 기반으로 제작한 CNN 딥러닝 모델을 통해 건설 품질(누수, 균열, 파손) 민원을 분류하는 연구를 진행하였다. CNN 분류 모델이 민원 처리의 효율성을 향상시킬 수 있었지만, 정확도를 개선하기 위한 추가 연구로 전이 학습 및 분류 네트워크와 결합된 하이브리드 기법의 필요성을 제안하였다.
  
다음 사진과 같이 지정된 차량을 이용한 탐지 방식이다.
+
6 (인도) 민원 처리를 위한 AI 기술 활용 정보 관리 모델
현재 우리 조가 진행하는 방식이 차량의 블랙 박스를 이용한
+
  이미지 처리 데이터 마이닝 기법을 활용해 민원 이미지 등록하면 텍스트를 추출하여 전달 부서에 대한 데이터를 생성하는 연구를 진행하였다. 이미지 입력 시 텍스트를 반환한다는 점이 본 연구와 유사하지만, 이를 토목 분야에 접목시켜 차별성을 두고자 한다.
탐지 방식 이라는 점에서 특별한 장비 차량이 필요하지 않다는
 
점에서 경쟁력을 갖출 것이라 판단된다.
 
  
● 사회성 분석
+
====딥러닝 기술 현황====
 +
1 이미지 기반 손상 탐지(CNN) 모델
 +
현장 손상 탐지의 단점을 극복하기 위해 여러 손상 탐지 기법들이 개발되었다. 특히 컴퓨터 비전과 딥러닝의 발전과 함께 이미지 기반 구조물 손상 탐지가 활발히 사용되고 있다(Lingxin et al., 2022). 이미지 기반 구조물 손상 탐지에 사용되는 CNN 딥러닝 모델은 특성 추출(Feature extraction)과 분류기(Classifier)로 이루어져 있어서 두 과정을 한 번에 진행할 수 있다는 장점이 있다. 학습 과정은 다음과 같다(Gu et al., 2018).
 +
1) 이미지가 학습되는 과정에서 합성 곱이 진행되면서 특성들이 추출된다.
  
- 고속으로 주행되는 차량에 포트홀은 큰위협이 되며, 도로 파손 영역의 사이즈가
+
2) 추출된 이미지는 특성 지도를 통해 확인되며 분류를 위한 지표가 된다.
15cm 이상이 될 경우 바퀴가 빠지면서 펑크가 나거나 바퀴 축이 휘는 등의 손상이
 
생길 수 있다. 국내 고속도로의 관리 수준이 매우 높음에도 불구하고 기존의 인적자원의
 
육안점검에 의한 관리체계는 고비용을 수반하면서도 도로 파손을 조기에 발견하기에는
 
역부족이라 한다. 따라서 이 기술이 체계화 및 상용화 될 수 있다면 도로의 개선된 안정성
 
확보 및 비용의 절감에 도움이 될 것이라 생각한다.
 
  
===개발과제의 기대효과===
+
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.딥 러닝에 대해 모르는 사람도 프로그램을 구동할 있는가?
+
====시장상황에 대한 분석====
 +
1 안전신문고의 인력 및 예산
 +
2019년 기준 행정안전부의 공무원 4~5명만이 안전신문고 관련 안전신고 접수 및 분류를 담당하는 업무에 투입되었다. 안전신문고 예산 역시 문제를 보이고 있는데 하나의 접수에 적어도 3번(접수 확인, 처리 기과 배정 안내, 처리 결과 통보, 처리 기간 연장, 추가 답변 등)의 문자를 발송해 주었으나 2022년부터 공공요금 예산 부족으로 접수 안내가 제외되었다. 이때 딥러닝 모델을 통해 안전신문고 분류 작업을 대체하면 해당 인력과 예산을 절감할 있게 된다.
  
-설명서를 첨부하고 필요한 부분에 있어서는 쉽게 구동할 있게 제작한다.
+
2 구조물 손상 분류 필요 영역
 +
구조물 손상 분류 모델을 제작하였을 때 안전신문고 민원 분류가 아닌 다른 사용처를 조사한 결과 다음과 같은 영역에서 활용 가능하다는 것을 확인하였다.
 +
먼저 주변 신축 공사로 인한 건물 손상 파악에 도움을 줄 있다. 건축주와 시공사, 인접 건물 소유주는 주변 공사로 인해 건물이 손상되었을 경우 바닥의 침하, 균열 등의 하자의 발생과 피해 정도를 파악해야 한다. 여기서 손상 분류 모델을 통해 인근 공사 현장의 시공 행위로 건물에 발생한 피해를 사진 촬영이라는 방법으로 손상을 분류하여 정리할 수 있다.
 +
다음으로 완공 및 시공 중인 구조물의 하자 파악에 사용될 수 있다. 구조물에서 균열이 발생하면 구조물의 품질이 저하되며, 물에 노출되어 있는 부분에서는 누수를 수반하고, 심한 경우에는 구조물의 붕괴사고로 이어질 수 있다. 하지만 콘크리트 구조물에 균열이 존재한다고 하여 위험한 것은 아니며, 손상의 크기와 위치, 원인 등에 따라 안전할 수도 있다. 이때 손상 분류 모델은 구조물에 발생한 하자를 신속하게 판단하여 전문가에게 사전 정보를 전달하고 구조물의 소유주에게 하자 관련 정보를 제공하는 보조 역할을 수행할 수 있다.
  
2.사진 인식에 대한 정확도가 기대치 만큼 충족되는가?
+
===개발과제의 기대효과===
 +
시설 분야 민원 분류 업무를 딥러닝 모델이 대체하여 행정안전부 민원 분류 담당자의 업무 부담을 줄이고 인력 및 인력비를 절감할 수 있다. 동시에 빠른 분류 결과에 따른 신속한 대처로 시민의 안전을 확보할 수 있다. 또한 딥러닝 모델은 손상 위치의 라벨링을 진행하여 민원 처리 담당자가 사진상에서 손상 위치를 빠르게 판단할 수 있도록 돕는다. 민원 접수 과정에서 이미지 데이터가 누적되며 모델의 지속적인 업데이트가 가능하다. 새로 지정한 안전정보 제공 단계를 통해 민원인이 구조물의 손상별 원인 및 심각 정도를 민원 접수와 동시에 확인할 수 있어 안전성에 대한 의문과 불안감을 신속하게 해소할 수 있다.
  
-학습방법을 다양하게 시도해서 요구되는 정확도를 높인다.
+
===기술개발 일정 및 추진체계===
 
+
====개발 일정====
3.수익을 창출할 수 있는가?
+
[[파일:202301개발일정.jpg]]
 
 
-현 연구안이 공공기관에 채택이 된다면 실제 수익을 기대할 수 있다.
 
 
 
4.단가가 저렴한가?
 
 
 
-프로그래밍 관련 예산만 소요된다.
 
  
 +
==설계==
 +
===설계사양===
 +
====제품의 요구사항====
 +
[[파일:202301요구사항.jpg]]
 
====설계 사양====
 
====설계 사양====
 +
[[파일:202301설계사항.jpg]]
  
도로 면을 포장한 아스팔트-콘크리트 재료의 물리적인 특성과 시멘트-콘크리트 재료의 화학적 특성에 따라 도로 노면에 다양한 파손이 나타난다. 아스콘 포장도로 노면에서는 주로 포트홀이나 균열현상이 일어난다. 이는 고속으로 주행되는 차량에 경제적, 인명적으로  큰 위협을 가져다 줄 수 있으므로포트홀의 즉각적인 탐지 및 보수를 위해 딥 러닝을 활용한 자동 탐지를 기획하였다.
+
===개념설계안===
 +
[[파일:202301개념설계안.jpg]]
  
 
===상세설계 내용===
 
===상세설계 내용===
● Image 학습 카테고리 수집&분류
+
1 Input
 +
안전신문고를 통해 민원을 접수할 때 입력하는 정보인 민원 유형, 위치, 사진, 민원인 이메일을 입력 값으로 사용하며 예시는 Table 11과 같다. 이때 본 과제에서는 구조물의 손상 분류 모델을 목적으로 민원 유형이 “도로, 시설물 파손 및 고장”에 해당하는 경우로 한정한다.
  
[[파일:B1.jpg]]
+
2 CNN 분류모델
  
Crack(Asphalt)
+
2.1 모델
 +
특징을 추출하는 부분인 feature extraction은 전이학습 모델의 가중치들을 사용했으며 4개의 손상 종류를 구분하기 위한 fully connected layer는 마지막 layer에 ‘softmax’ 함수를 사용하여 다중 분류가 가능하도록 구성하였다. 과적합을 방지하기 위해 L2 Regularization과 Dropout을 배치하여 높은 정확도를 얻을 수 있게 구성하였다.
 +
학습 양상을 살펴보기 위해 학습용 데이터/검증용 데이터 = 90%/10%가 사용되었다. 같은 손상에 대해 여러 각도에서 찍은 경우가 존재하여 이미지 순서대로 학습에 사용될 시 과적합이 발생할 것으로 예상하여 무작위 입력될 수 있도록 설정하였다.
  
- 462장 -
+
2.2 모델 학습
 +
이미지 데이터를 활용한 딥러닝 구현을 위해서는 고성능 컴퓨터가 필요함에 따라 사양은 CPU: Intel(R) Xeon(R) Silver 4216, RAM: 128GB, GPU: RTX 3090, SSD: 1TB이다. Python 언어로 tensorflow 라이브러리를 사용하였으며, 코드는 Window 기반의 jupyter notebook에 작성되었다.
  
[[파일:B2.jpg]] 
+
2.3 Trial-and-error
 +
  데이터셋의 구성과 하이퍼 파라미터의 결정에 따른 정확도를 살펴보기 위해 결과들을 확인하며 다음 실험을 구성하였다. Loop 문을 활용하여 여러 조합을 이용하여 확인하면 더 많은 범위의 변수들을 다룰 수 있지만, 이미지 데이터 학습은 50,926장 기준 10회 반복 학습에 약 6시간 이상이 소요되어 경험 법칙에 따라 진행하였다.
  
Manhole 
+
3 DeepLabV3+
  
- 159장 -
+
3.1 Case
   
+
손상 종류에 대한 각각의 모델을 제작해야 됨에 따라 손상 분류 모델을 학습시키기 위해 사용된 데이터셋에 비해 적은 양을 사용하였다. 본 프로젝트에서는 손상 종류 중 “균열”에 대한 모델을 제작하는 것을 목표로 하였다. 참고한 예제에 비해 훈련 데이터가 많지만 이미지 상에서 균열의 크기가 작은 경우가 대부분이라 데이터 증식을 적용하는 케이스를 만들어 비교하고자 했다. 데이터 증식 방법으로는 무작위로 뒤집거나, 밝기를 조절, 명암을 주는 방식의 코드를 작성하였다. 이에, 진행된 실험 케이스는 학습용 데이터 3,000장, 검증용 데이터 490장을 사용하여 하이퍼 파라미터를 바꾸며 진행하였다.
[[파일:B3.jpg]]
+
[[파일:202301DeepLapCase.jpg]]
 +
  Case 2일 때 가장 높은 정확도를 보였으며, 각 케이스에 대한 모델에 학습에 사용되지 않은 이미지를 넣었을 때 나오는 mask 결과는 다음과 같다. 첫 번째 사진은 코드 상에서 전처리가 된 원본 이미지이며, 두 번째 사진은 균열에 대한 mask 라벨이다. 마지막 사진은 첫 번째 사진이 DeepLabV3+를 통과하여 만들어진 mask 정보를 원본 이미지 위에 오버레이 시킨 것이다.
 +
[[파일:202301DeepLapOverLay.jpg]]
 +
Case 1, 2, 3 모두 맨눈으로 확인하였을 때 굵은 균열을 잘 탐지하는 모습을 나타내었다. 특히, Case 2의 경우 중심의 균열에서 뻗어 나간 얇은 가지 모양 또한 식별하여 mask로 표현하였다. 결과적으로 큰 위험성이 있는 균열 형태의 위치가 파악될 수 있는 수준의 모델이 개발되었다. 균열의 위치를 파악하기 위한 용도로 사용하기 위해 가장 좋은 성능을 보인 case 2의 하이퍼 파라미터를 가진 모델을 저장하였다.
  
Road Drain(배수구)
+
4 정보 전달
  
- 116장 -
+
4.1 처리 기관
   
+
  현재 안전신문고에서는 민원 위치 데이터를 기반으로 시스템 상에서 자동으로 처리 기관을 배정한다. 딥러닝 모델이 분류한 손상의 종류를 민원 데이터에 추가하여 민원을 처리 기관에 신속하게 이관할 수 있다. 본 과제에서는 Fig. 16과 같이 처리 기관명(ex. 마포구청)의 엑셀 파일에 위치, 손상 종류, 사진을 저장하여 확인할 수 있도록 한다. 추가로 손상 종류가 균열일 경우 DeepLabV3+를 통한 손상 위치 라벨링 이미지를 제공한다.
[[파일:B4.jpg]]
 
  
Pothole
+
4.2 민원인
 +
민원인은 민원 접수 후 바로 이메일을 제공받을 수 있다. 이메일에 포함되는 내용은 1) 시설물의 손상 종류 및 원인, 2) 손상 종류별 손상 정도 판단 기준, 3) 발생 가능한 피해 사항이다. 추가로 첨부된 손상별 매뉴얼을 통해 시설물 안전성에 대한 의문과 불안감을 현 처리 기간인 7일보다 빠르게 해소할 수 있다.
 +
[[파일:202301민원인이메일.jpg]]
  
- 786장 -
+
5 Output Algorithm
  
[[파일:B5.jpg]]
+
5.1 입력 값 지정
 +
앞서 언급한 것과 같이 알고리즘에 들어갈 input data는 손상 이미지, 위치 정보, 민원인 이메일이다. 결과가 도출되는지 실험하기 위한 이미지를 입력하기 위해 Fig. 18과 같이 민원 사진으로 쓰일 균열, 박리, 철근노출, 우수(손상 없음) 이미지를 촬영하여 구글 드라이브 image 폴더에 저장하였고 이는 모델 제작에 사용되지 않았다. 모델에 입력 값을 주기 위한 코드는 다음과 같으며 image_path는 이미지가 저장된 구글 드라이브 주소, source_location은 위치정보, source_email은 민원인의 이메일 주소이다.
  
Plant
+
이미지 위치 및 input data
  
– 450장 -
+
image_path = "/content/drive/MyDrive/SOC/image/crack.jpg"
  
 +
source_location = "서울특별시 동대문구 시립로 123"
  
[[파일:B6.jpg]]
+
source_email = "gus6376@naver.com"
  
  
 +
5.2 CNN 분류 모델
 +
CNN 분류 모델로 이미지 데이터에서 가장 균열, 박리, 철근노출, 우수 중 가장 확률이 높은 값을 추출한다. 앞선 image_path의 사진을 전처리 후 model로 저장된 CNN 손상 분류 모델을 통해 확률 값(output)으로 출력하여 가장 큰 값의 인덱스를 predicted_class_label에 저장한다.
  
● Image Augmentation
+
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]]
  
[[파일:B7.jpg]]
+
==결과 및 평가==
 +
===완료 작품의 소개===
 +
====프로토타입 사진 혹은 작동 장면====
 +
[[파일:Colab.jpg]]
  
이미지를 12% // 20% 만큼 밝게
+
[[파일:202301결과.jpg]]
     
 
[[파일:B8.jpg]]
 
  
이미지를 12% // 20% 만큼 어둡게
+
====포스터====
 
+
[[파일:포스터01.jpg]]
[[파일:B9.jpg]]
 
 
이미지를 30,45,60도만큼 회전시켜서
 
 
 
 
 
 
● ALEXNET을 이용한 학습 ( MATLAB 이용 )
 
 
 
[[파일:B10.jpg]]
 
 
 
● Training + Validation : Testing의 세트 비율
 
 
 
[[파일:B11.jpg]]
 
 
● ALEXNET을 이용한 Deep Learning의 결과
 
 
 
[[파일:B12.jpg]]       
 
 
 
[[파일:B13.jpg|200픽셀|섬네일|왼쪽]]
 
[[파일:B15.jpg|200픽셀|섬네일|오른쪽]]
 
[[파일:B14.jpg|200픽셀|섬네일|가운데]]
 
 
 
 
 
● 결과에 따른 해석
 
 
 
- 총 Image Set 12292장을 Training Set 8610장 + Test Set 3682장을 Epoch 10만큼 학습시킨 결과.
 
 
 
- 학습 결과 정확도 98.75 퍼센트로 높은 값을 기대할 수 있었다.
 
 
 
- 하지만 Augmentation을 진행했다고는 하나 아예 하얗게 날아가거나 너무 어두워서 어떤 이미지인지 구분이 힘든 상태에서 정확하게 이미지를 구별하는 모습을 보여주었다.
 
 
 
- 따라서 Image Set 내부의 이미지만 판별하도록 현재 모델이 Overfitting(과학습)상태에 이르렀음을 의심해 볼 수 있다.
 
 
 
- 이는 곧 실시간으로 블랙박스에 연결해 포트홀을 실시간으로 탐지하기엔 부적절하다는 결과를 도출했다.
 
 
 
 
 
● TensorFlow로 학습 ( Python 언어 이용 )
 
- 학습하는데 사용된 Image Set는 ALEXNET과 동일하다
 
[[파일:B16.jpg]]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
● TensorFlow와 ALEXNET의 문제점 파악
 
 
 
[[파일:B17.jpg]]
 
 
 
[[파일:B18.jpg]]
 
 
 
[[파일:B19.jpg]]
 
 
 
[[파일:B20.jpg]]
 
 
 
[[파일:B21.jpg]]
 
 
 
[[파일:B22.jpg]]
 
 
 
 
 
● TensorFlow와 ALEXNET의 단점 고찰
 
 
 
- 위와 같은 사례들을 보면 판단을 잘못하거나 여러 가지 물체가 있는 경우에는 아예 물체 종류구별에서 꼬여버리는 상황이 발생하였다.
 
 
 
- 또한 ALEXNET에서 사용한 모델의 경우 육안으로 구별하기 힘든 상황임에도 불구하고 특정 물체라고 판단한 것을 보아 OVERFITTING을 의심해 볼 수 있는 상황이었다.
 
 
 
- 고속으로 달리는 도로 위에서 위와같은 탐지 결과를 보이게 되면 포트홀을 탐지하는데 어려움을 겪을 것이 자명하므로 학습방향이 잘못되었음을 판단할 수 있었다.
 
 
 
- 따라서 여태까지 진행했던 ALEXNET과 TENSORFLOW 모델을 포기하고 정확한 물체를  탐지하기 보단 빠르게 물체를 탐지할 수 있는 YOLO 모델을 이용하기로 선회하였다.
 
 
 
- 또한 기존 학습이미지 세트를 이용한 모델이 블랙박스 동영상에서 포트홀을 탐지할 수 있는지 다시한번 고찰해 볼 수 있는 결과를 가져왔다.
 
 
 
 
 
 
 
 
 
 
 
 
 
● YOLO v2&v3로 학습 ( C++ 언어 이용 )
 
 
 
- 실제 현장보다 두드러진 포트홀 조성 환경을 위해 찍은 도로배경에서 직접 포트홀 합성을 진행하여 Image Set를 제작하였다.
 
 
 
- 또한 크랙, 맨홀, 식물, 포트홀, 하수구 5개의 이미지 분류에서 크랙과 식물을 제외한 맨홀, 포트홀, 하수구 3개의 이미지 분류만 사용하게 되었다.
 
 
 
- 포트홀,맨홀,하수구 가 합성된 Original Image SET은 782장이다.( 포트홀 단독 이미지 : 483장, 포트홀,배수구,맨홀이 섞인 이미지 299장 )
 
 
 
- 합성된 이미지에 중 어디에 포트홀,맨홀,하수구가 있는지 Labeling도 별도로 진행하였다.
 
 
 
- 포트홀 사고현장에서 추출한 포트홀 이미지도 2184장으로 학습을 진행하였다.
 
 
 
- v2와 v3 모델로 포트홀을 합성한 Image Set1, 영상에서 추출한 Image Set2,이 둘을 혼합한 Image Set3 세가지 방법으로 각각 학습을 진행하여 최적의 상황을 결과로 도출하였다.
 
 
 
 
 
 
 
 
 
● YOLO 로 학습시키기 전 최대한 포트홀 현장과 비슷하게 이미지 합성( 학습에 사용된 합성 Image Set = 782장 )
 
 
 
[[파일:B23.jpg]]
 
 
 
 
 
 
 
● YOLO 로 학습시키기 전 실제 포트홀 사고 현장을 첨부하였다.( 학습에 사용된 실제 사고 현장 Image set = 2184장 )
 
 
 
 
 
 
 
[[파일:B24.jpg]]
 
 
 
[[파일:B25.jpg]]
 
 
 
[[파일:B26.jpg]]
 
 
 
[[파일:B27.jpg]]
 
 
 
 
 
 
 
 
 
● 학습 도중 중복되는 배경으로 인해 Overfitting을 방지하기 위해 모든 이미지들을 Random하게 밝기를 조절해주는 코드를 작성해 적용하였다.
 
좌우 비슷한 이미지의 밝기가 다르게 적용되어 있는 상황(배경보다는 포트홀의 이미지들이 비슷하여 overfitting이 많이 발생)
 
 
 
 
 
[[파일:B28.jpg]]
 
 
 
 
 
[[파일:B29.jpg]]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
● YOLO로 학습하기 전 Labeling 진행
 
 
 
 
 
[[파일:B30.jpg]]
 
 
 
[[파일:B31.jpg]]
 
 
 
[[파일:B32.jpg]]
 
 
 
 
 
포트홀,맨홀,배수구를 지정해주어 특정 부분을 학습하도록 인식시켜 주었다.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
● YOLO v2 & v3로 학습 진행 및 결과
 
 
 
[[파일:B33.jpg]]
 
 
 
v2를 iteration 10000회로 진행한 결과
 
 
 
[[파일:B34.jpg]]
 
  
v3를 iteration 4000회로 진행한 결과
+
===관련사업비 내역서===
 +
[[파일:202301사업비내역.jpg]]
  
 
+
===개선 방향===
 
+
DeepLabV3+를 사용한 모델 제작에 있어 현 프로젝트에서는 손상 종류 “균열”에 대해서만 진행하였다. 다른 손상 종류 또한 제시된 딥러닝 학습 과정을 바탕으로 개발할 있다. 또한, 훈련용 이미지 데이터셋을 더욱 정교하게 제작하거나 수량을 늘린다면 더욱 높은 정확도의 모델을 얻을 수 있다. 최종적으로 제작된 모델들을 조합하면 다양한 손상 종류에 대한 정보를 제공할 있는 알고리즘이 만들어진다.
 
 
진행된 학습을 토대로 모델이 이미지를 평가한 결과
 
 
 
[[파일:B35.jpg]]
 
 
 
 
실제 포트홀 사고 영상에서 포트홀을 탐지한 결과
 
 
 
[[파일:B36.jpg]]
 
[[파일:B37.jpg]]
 
 
 
● YOLO v2 & v3 학습결과에 대한 고찰
 
 
 
- 여러 가지 테스트 영상을 이용하여 결과를 파악해 본 결과 포트홀 탐지에 대해서는 어느정도 만족스러운 결과를 도출 해 내는데 성공하였다.
 
 
 
- 하지만 블랙박스 특성 상 여러 가지 예기치 못한 사물이 영상에 많이 보이는데 그때마다 포트홀 비슷한 사물은 포트홀로 인식하는 오류도 파악할 있었다.
 
 
 
- 또한 블랙박스로 학습 Image Set를 제작했을 때 저화질 사진도 학습으로 이용했음을 감안하면 오류도 감안해야 했었다.
 
 
 
- 이는 학습에 사용된 합성 이미지가 완벽하게 실제 환경과 같아질 순 없었으므로 이와 같은 결과를 도출할 있었던 듯 하다.
 
 
 
==결과 및 평가==
 
===완료 작품의 소개===
 
 
 
====포스터====
 
[[파일:Soc2.JPG]]
 

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 구조물 손상 분류 필요 영역

구조물 손상 분류 모델을 제작하였을 때 안전신문고 민원 분류가 아닌 다른 사용처를 조사한 결과 다음과 같은 영역에서 활용 가능하다는 것을 확인하였다.
먼저 주변 신축 공사로 인한 건물 손상 파악에 도움을 줄 수 있다. 건축주와 시공사, 인접 건물 소유주는 주변 공사로 인해 건물이 손상되었을 경우 바닥의 침하, 균열 등의 하자의 발생과 피해 정도를 파악해야 한다. 여기서 손상 분류 모델을 통해 인근 공사 현장의 시공 행위로 건물에 발생한 피해를 사진 촬영이라는 방법으로 손상을 분류하여 정리할 수 있다.
다음으로 완공 및 시공 중인 구조물의 하자 파악에 사용될 수 있다. 구조물에서 균열이 발생하면 구조물의 품질이 저하되며, 물에 노출되어 있는 부분에서는 누수를 수반하고, 심한 경우에는 구조물의 붕괴사고로 이어질 수 있다. 하지만 콘크리트 구조물에 균열이 존재한다고 하여 위험한 것은 아니며, 손상의 크기와 위치, 원인 등에 따라 안전할 수도 있다. 이때 손상 분류 모델은 구조물에 발생한 하자를 신속하게 판단하여 전문가에게 사전 정보를 전달하고 구조물의 소유주에게 하자 관련 정보를 제공하는 보조 역할을 수행할 수 있다.

개발과제의 기대효과

시설 분야 민원 분류 업무를 딥러닝 모델이 대체하여 행정안전부 민원 분류 담당자의 업무 부담을 줄이고 인력 및 인력비를 절감할 수 있다. 동시에 빠른 분류 결과에 따른 신속한 대처로 시민의 안전을 확보할 수 있다. 또한 딥러닝 모델은 손상 위치의 라벨링을 진행하여 민원 처리 담당자가 사진상에서 손상 위치를 빠르게 판단할 수 있도록 돕는다. 민원 접수 과정에서 이미지 데이터가 누적되며 모델의 지속적인 업데이트가 가능하다. 새로 지정한 안전정보 제공 단계를 통해 민원인이 구조물의 손상별 원인 및 심각 정도를 민원 접수와 동시에 확인할 수 있어 안전성에 대한 의문과 불안감을 신속하게 해소할 수 있다.

기술개발 일정 및 추진체계

개발 일정

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+를 사용한 모델 제작에 있어 현 프로젝트에서는 손상 종류 “균열”에 대해서만 진행하였다. 다른 손상 종류 또한 제시된 딥러닝 학습 과정을 바탕으로 개발할 수 있다. 또한, 훈련용 이미지 데이터셋을 더욱 정교하게 제작하거나 수량을 늘린다면 더욱 높은 정확도의 모델을 얻을 수 있다. 최종적으로 제작된 모델들을 조합하면 다양한 손상 종류에 대한 정보를 제공할 수 있는 알고리즘이 만들어진다.