"AI SCANNER"의 두 판 사이의 차이
(→상세설계 내용) |
(→구성원 소개) |
||
(다른 사용자 한 명의 중간 판 22개는 보이지 않습니다) | |||
17번째 줄: | 17번째 줄: | ||
===구성원 소개=== | ===구성원 소개=== | ||
− | 서울시립대학교 토목공학과 | + | 서울시립대학교 토목공학과 2019****** 소**(팀장) |
− | 서울시립대학교 토목공학과 | + | 서울시립대학교 토목공학과 2019****** 김*훈 |
− | 서울시립대학교 토목공학과 | + | 서울시립대학교 토목공학과 2019******김*관 |
− | 서울시립대학교 토목공학과 | + | 서울시립대학교 토목공학과 2019****** 임** |
− | 서울시립대학교 토목공학과 | + | 서울시립대학교 토목공학과 2019****** 조** |
− | 서울시립대학교 조경학과 | + | 서울시립대학교 조경학과 2020****** 이** |
==서론== | ==서론== | ||
71번째 줄: | 71번째 줄: | ||
'''[시장성 분석] | '''[시장성 분석] | ||
+ | |||
+ | [[파일: AISCANNER시설물.JPG]] | ||
''' | ''' | ||
: ◇ 노후 건축물 관리 시장: | : ◇ 노후 건축물 관리 시장: | ||
89번째 줄: | 91번째 줄: | ||
===개발과제의 기대효과=== | ===개발과제의 기대효과=== | ||
====기술적 기대효과==== | ====기술적 기대효과==== | ||
− | + | ||
+ | 1. 다양한 스마트 건설 기술을 단일 공간 시스템에서 편리하게 통합 활용이 가능하다. | ||
+ | |||
+ | 2. 드론 데이터를 활용한 공정 단계별 현황 3D 모델을 제공하고 공사 진척도를 생성할 수 있다. | ||
+ | |||
+ | 3. 구조물 데이터를 3D로 매핑하는 기술에 향후 정합 기능을 도입하여 설계시공 간 정확도를 확인할 수 있다. | ||
+ | |||
+ | 4. 토목 구조물의 손상을 3D 모델링으로 구현하고 손상의 구체적인 위치와 정도를 정량적으로 표시할 수 있다. | ||
+ | |||
+ | 5. 대규모 SOC 시설에서 발주처 및 협력업체들이 통합된 3D 인터페이스에 유지 관리에 필요한 데이xj를 저장하고 공유함으로써 단일 관점에서 다양한 정보를 추출할 수 있다. | ||
+ | |||
+ | 6. 향후 구조물에 계측 센서를 부착하여 실시간으로 발생하는 손상정보와 위치를 기존의 3D 인터페이스에 시각화하여 전달하는 스마트 유지관리 시스템 개발이 가능하다. | ||
+ | |||
====경제적, 사회적 기대 및 파급효과==== | ====경제적, 사회적 기대 및 파급효과==== | ||
− | + | ||
+ | 1. 사용자에게 높은 공학적 지식수준을 요구하지 않아 시설물 유지관리 관련 종사자가 구조물의 형태와 손상을 쉽게 파악할 수 있다. | ||
+ | |||
+ | 2. 2021년 국토안전관리원에 따르면 국내 SOC시설 안전진단업체 안전점검 및 진단 부실률은 10.2%이다. 3D 모델링 기술을 통해 점검자의 역량을 강화하고 구조물 근접 점검 미흡, 구조적 문제 발견 불가 등 기존의 안전 점검 시스템을 보완할 수 있다. | ||
+ | |||
+ | 3. 준공 후 30년 이상 국내 시설물 현황 2022년도 기준 17.3%, 15년 후 61.8%로 노후 시설물의 증가 추세에 따라 향후 시설물 유지관리 시장에서 관리 인력 부족에 따른 스마트 안전 점검 기술의 도입은 필수적이며, 3D 모델링 기술을 통해 현장 여건 상 상주에 따른 어려움, 도면 분실 및 구조물 변경에 따른 도면 제작성, 현장 교육 및 인수인계에 도움을 줄 수 있다. | ||
===기술개발 일정 및 추진체계=== | ===기술개발 일정 및 추진체계=== | ||
− | [[파일: AISCANNER기술로드맵. | + | [[파일: AISCANNER기술로드맵.JPG ]] |
==설계== | ==설계== | ||
107번째 줄: | 126번째 줄: | ||
토목 구조물 손상도 3D 시각화 시스템을 모의 적용할 교내 법학관 교량의 수치이다. | 토목 구조물 손상도 3D 시각화 시스템을 모의 적용할 교내 법학관 교량의 수치이다. | ||
− | + | [[파일:AISCANNER개념설계안1.JPG]] | |
법학관 교량에서 확인할 수 있는 손상의 종류는 다음과 같다. | 법학관 교량에서 확인할 수 있는 손상의 종류는 다음과 같다. | ||
− | + | [[파일:AISCANNER개념설계안2.JPG]] | |
− | |||
− | + | [[파일:AISCANNER개념설계안3.JPG]] | |
나. 데이터셋 요구사항 및 시스템 하드웨어 | 나. 데이터셋 요구사항 및 시스템 하드웨어 | ||
+ | |||
데이터셋은 손상이 분명하게 확인가능한 근접 촬영 이미지와 교량의 구조를 파악할 수 있는 원거리 촬영 이미지로 구성되어야 한다. 드론을 이용하여 손상이 정방향으로 드러나는 근접 이미지와 다양한 각도에서 구조물 형태를 볼 수 있는 이미지를 확보한다. 드론으로 촬영이 어려운 교량 하부 등의 지면과 가까운 촬영의 경우 스마트폰 카메라를 이용하였다. 3D Gaussian-splatting을 이용하여 법학관 교량 규모의 3D 모델을 제작하기 위해서는 최소 200장 이상의 다량의 데이터를 필요로 한다. 또한 데이터를 이용한 딥러닝 학습을 위해 최소 4GB(권장 24GB)의 VRAM을 지닌 고성능 그래픽카드를 요한다. 본 연구에서는 VRAM이 24GB인 RTX 3090을 사용한다. | 데이터셋은 손상이 분명하게 확인가능한 근접 촬영 이미지와 교량의 구조를 파악할 수 있는 원거리 촬영 이미지로 구성되어야 한다. 드론을 이용하여 손상이 정방향으로 드러나는 근접 이미지와 다양한 각도에서 구조물 형태를 볼 수 있는 이미지를 확보한다. 드론으로 촬영이 어려운 교량 하부 등의 지면과 가까운 촬영의 경우 스마트폰 카메라를 이용하였다. 3D Gaussian-splatting을 이용하여 법학관 교량 규모의 3D 모델을 제작하기 위해서는 최소 200장 이상의 다량의 데이터를 필요로 한다. 또한 데이터를 이용한 딥러닝 학습을 위해 최소 4GB(권장 24GB)의 VRAM을 지닌 고성능 그래픽카드를 요한다. 본 연구에서는 VRAM이 24GB인 RTX 3090을 사용한다. | ||
다. 개념 설계안 | 다. 개념 설계안 | ||
− | |||
위 데이터셋 요구사항을 만족하는 2가지 타입의 이미지 데이터를 확보한 후 손상 탐지 딥러닝 모델 및 수동 라벨링을 통해 각각의 이미지의 손상을 종류별로 색깔로 구별하여 마킹한다. 그렇게 확보한 결과물(근접 촬영 이미지)와 구조물 형태가 나타나는 원거리 촬영 이미지를 다시 하나의 학습 데이터셋으로 구축한다. | 위 데이터셋 요구사항을 만족하는 2가지 타입의 이미지 데이터를 확보한 후 손상 탐지 딥러닝 모델 및 수동 라벨링을 통해 각각의 이미지의 손상을 종류별로 색깔로 구별하여 마킹한다. 그렇게 확보한 결과물(근접 촬영 이미지)와 구조물 형태가 나타나는 원거리 촬영 이미지를 다시 하나의 학습 데이터셋으로 구축한다. | ||
+ | |||
+ | [[파일:AISCANNER개념설계안4.JPG]] | ||
+ | |||
+ | |||
새로 구축한 학습 데이터셋으로 고성능 컴퓨팅 환경에서 3D Gaunssian-splatting 모델을 학습하여 3D 모델을 생성한다. 최종 결과물로 획득한 3D 모델은 GUI 환경에서 원하는 시점과 거리에서 손상 정보를 파악할 수 있는 3D 손상도로 활용한다. | 새로 구축한 학습 데이터셋으로 고성능 컴퓨팅 환경에서 3D Gaunssian-splatting 모델을 학습하여 3D 모델을 생성한다. 최종 결과물로 획득한 3D 모델은 GUI 환경에서 원하는 시점과 거리에서 손상 정보를 파악할 수 있는 3D 손상도로 활용한다. | ||
138번째 줄: | 160번째 줄: | ||
위 모델의 상세 정보는 다음과 같다. | 위 모델의 상세 정보는 다음과 같다. | ||
− | + | [[파일:AISCANNER상세1.JPG]] | |
조종기의 인터페이스는 스마트폰(Iphone 13 mini)을 통해 드론의 촬영 화면을 확인 가능하며, 전용 어플리케이션인 DJI GO 4를 사용하였다. 다음은 드론 조종 인터페이스이다. | 조종기의 인터페이스는 스마트폰(Iphone 13 mini)을 통해 드론의 촬영 화면을 확인 가능하며, 전용 어플리케이션인 DJI GO 4를 사용하였다. 다음은 드론 조종 인터페이스이다. | ||
− | + | [[파일:AISCANNER상세2.JPG]] | |
154번째 줄: | 176번째 줄: | ||
촬영 과정 | 촬영 과정 | ||
− | + | ||
+ | [[파일:AISCANNER상세3.JPG]] | ||
외관 손상을 자세히 촬영하기 위해 고도 5m 높이에서 교량 옆면과 2m의 거리를 이격하고 좌에서 우로 비행속도 2km/hr로 이동하며 촬영하였다. | 외관 손상을 자세히 촬영하기 위해 고도 5m 높이에서 교량 옆면과 2m의 거리를 이격하고 좌에서 우로 비행속도 2km/hr로 이동하며 촬영하였다. | ||
− | + | ||
+ | [[파일:AISCANNER상세4.JPG]] | ||
낮은 고도에서 교량 주변의 이미지 데이터를 확보하기 위해 고도 10미터 상승 후 다리 옆면과 15m 거리를 이격하고 좌에서 우로 비행속도 4km/hr로 이동하며 촬영하였다. | 낮은 고도에서 교량 주변의 이미지 데이터를 확보하기 위해 고도 10미터 상승 후 다리 옆면과 15m 거리를 이격하고 좌에서 우로 비행속도 4km/hr로 이동하며 촬영하였다. | ||
− | + | ||
+ | [[파일:AISCANNER상세5.JPG]] | ||
높은 고도에서 교량 주변의 이미지 데이터를 확보하기 위해 고도 60m 상승 후 11km/hr 속도로 교량을 기준으로 원주비행하여 촬영하였다. | 높은 고도에서 교량 주변의 이미지 데이터를 확보하기 위해 고도 60m 상승 후 11km/hr 속도로 교량을 기준으로 원주비행하여 촬영하였다. | ||
− | + | ||
+ | [[파일:AISCANNER상세6.JPG]] | ||
◇ 딥러닝 기반 손상탐지 시스템 개발 | ◇ 딥러닝 기반 손상탐지 시스템 개발 | ||
176번째 줄: | 202번째 줄: | ||
구조물 이미지의 손상 탐지에 우수한 성능을 가지고 있는 CGNet 모델의 학습데이터로는 AI Hub에서 제공하는 구조물 손상 이미지(Cityscapes 형식) 2,380장을 사용하여 학습을 진행하였다. 학습시킨 모델은 각 학습이 진행함에 따라 체크포인트로 저장되며, 이 중 Loss가 가장 적은 모델을 선택하여 본 연구 프로세스에 적용하였다. 근접 촬영을 통한 본 연구에 적용할 이미지를 모델에 통과시켜 자동화 손상 탐지를 진행한다. 손상은 균열, 박락, 백태 3가지로 분류하며 모델로 탐지한 픽셀 단위의 손상을 원본 이미지에 색을 입혀 표시하며, 각 손상은 고유의 인덱스 번호를 가지고 분류된다. | 구조물 이미지의 손상 탐지에 우수한 성능을 가지고 있는 CGNet 모델의 학습데이터로는 AI Hub에서 제공하는 구조물 손상 이미지(Cityscapes 형식) 2,380장을 사용하여 학습을 진행하였다. 학습시킨 모델은 각 학습이 진행함에 따라 체크포인트로 저장되며, 이 중 Loss가 가장 적은 모델을 선택하여 본 연구 프로세스에 적용하였다. 근접 촬영을 통한 본 연구에 적용할 이미지를 모델에 통과시켜 자동화 손상 탐지를 진행한다. 손상은 균열, 박락, 백태 3가지로 분류하며 모델로 탐지한 픽셀 단위의 손상을 원본 이미지에 색을 입혀 표시하며, 각 손상은 고유의 인덱스 번호를 가지고 분류된다. | ||
− | + | [[파일:AISCANNER상세7.JPG]] | |
+ | |||
+ | [[파일:AISCANNER상세8.JPG]] | ||
모델 Config 코드 | 모델 Config 코드 | ||
+ | |||
_base_ = ['../_base_/models/cgnetCrack.py', '../_base_/datasets/cityscapesCrack.py', '../_base_/default_runtime.py'] | _base_ = ['../_base_/models/cgnetCrack.py', '../_base_/datasets/cityscapesCrack.py', '../_base_/default_runtime.py'] | ||
189번째 줄: | 218번째 줄: | ||
# runtime settings | # runtime settings | ||
total_iters = 60000 | total_iters = 60000 | ||
− | train_cfg = dict( | + | train_cfg = dict(type='IterBasedTrainLoop', max_iters=total_iters, val_interval=4000) |
− | |||
val_cfg = dict(type='ValLoop') | val_cfg = dict(type='ValLoop') | ||
test_cfg = dict(type='TestLoop') | test_cfg = dict(type='TestLoop') | ||
209번째 줄: | 237번째 줄: | ||
SfM Points 획득 | SfM Points 획득 | ||
− | + | ||
+ | [[파일:AISCANNER상세9.JPG]] | ||
모델 학습을 위하여 초기 값을 구하기 위해 SfM Points를 추정한다. SfM(Structure from Motion)은 카메라의 위치 추정과 클라우드 데이터로 이미지의 각 점을 추정한다. 각 이미지마다 추정으로 얻은 카메라의 위치와 촬영 방향과 각 점들을 묶어 저장하여 카메라 방향과 점들을 3D 공간에 생성한다. Gaussian Splatting의 Splatting은 3D 공간에 위에서 구한 점들을 흩뿌리듯이 배치하기 때문에 붙여진 이름이다. 점의 군집을 Point Cloud라고 부르며 Point Cloud는 각 이미지마다 저장된다. 카메라의 시점 수는 이미지 데이터의 수와 동일하다. | 모델 학습을 위하여 초기 값을 구하기 위해 SfM Points를 추정한다. SfM(Structure from Motion)은 카메라의 위치 추정과 클라우드 데이터로 이미지의 각 점을 추정한다. 각 이미지마다 추정으로 얻은 카메라의 위치와 촬영 방향과 각 점들을 묶어 저장하여 카메라 방향과 점들을 3D 공간에 생성한다. Gaussian Splatting의 Splatting은 3D 공간에 위에서 구한 점들을 흩뿌리듯이 배치하기 때문에 붙여진 이름이다. 점의 군집을 Point Cloud라고 부르며 Point Cloud는 각 이미지마다 저장된다. 카메라의 시점 수는 이미지 데이터의 수와 동일하다. | ||
219번째 줄: | 248번째 줄: | ||
초기 모델 생성과 동시에 저장되는 변수로는 SfM Points, Covariances, Colors, Opacities 이다. SfM Points는 위에서 설명한 각 이미지 특징인 SfM으로 획득한 Point Cloud이다. Covariances는 공분산 행렬로 스캐일 행렬인 Scale Matrix와 회전 행렬인 Rotation Matrix로 표현된다. 각 점들의 색 표현 특징인 Colors는 구면 조화 함수(Spherical Harmonics)를 사용하여 표현한다. 일반적인 색상인 RGB 값으로 0~255의 값으로 표현되는데, 구면 조화 함수를 사용하는 경우 각도에 따라서 보았을 때 생기는 음영과 채도의 변화에 의한 영향으로 RGB 값이 변화하는 형태를 가진다. 각 픽셀의 표현 값은 구면 좌표계에서 거리(r)를 제외하고 각도(theta, phi)로 극에서의 각도 값과 방위각으로 결정된다. Opacities는 3D Gaussian의 투명도값을 의미하며 0~1의 단일 실수값이다. | 초기 모델 생성과 동시에 저장되는 변수로는 SfM Points, Covariances, Colors, Opacities 이다. SfM Points는 위에서 설명한 각 이미지 특징인 SfM으로 획득한 Point Cloud이다. Covariances는 공분산 행렬로 스캐일 행렬인 Scale Matrix와 회전 행렬인 Rotation Matrix로 표현된다. 각 점들의 색 표현 특징인 Colors는 구면 조화 함수(Spherical Harmonics)를 사용하여 표현한다. 일반적인 색상인 RGB 값으로 0~255의 값으로 표현되는데, 구면 조화 함수를 사용하는 경우 각도에 따라서 보았을 때 생기는 음영과 채도의 변화에 의한 영향으로 RGB 값이 변화하는 형태를 가진다. 각 픽셀의 표현 값은 구면 좌표계에서 거리(r)를 제외하고 각도(theta, phi)로 극에서의 각도 값과 방위각으로 결정된다. Opacities는 3D Gaussian의 투명도값을 의미하며 0~1의 단일 실수값이다. | ||
− | + | [[파일:AISCANNER상세10.JPG]] | |
학습을 통한 변수 업데이트 | 학습을 통한 변수 업데이트 | ||
228번째 줄: | 257번째 줄: | ||
모델을 평가하기 위한 손실함수는 L1, PSNR, SSIM을 사용하였다. | 모델을 평가하기 위한 손실함수는 L1, PSNR, SSIM을 사용하였다. | ||
− | + | [[파일:AISCANNER상세11.JPG]] | |
Ground Truth인 실제 촬영 이미지와 추정된 카메라 포즈에 정사영 하여 정규화 시킨 이미지(Predicted)를 비교하여 Loss 함수를 통해 Loss 값을 계산한다. Adam Optimizer을 사용하여 변수를 업데이트하며 최적화를 진행하는 모델을 지속적으로 Loss 값을 계산하며 최종 30000 회의 학습 모델을 본 연구의 최종 모델로 선정하였다. | Ground Truth인 실제 촬영 이미지와 추정된 카메라 포즈에 정사영 하여 정규화 시킨 이미지(Predicted)를 비교하여 Loss 함수를 통해 Loss 값을 계산한다. Adam Optimizer을 사용하여 변수를 업데이트하며 최적화를 진행하는 모델을 지속적으로 Loss 값을 계산하며 최종 30000 회의 학습 모델을 본 연구의 최종 모델로 선정하였다. | ||
− | + | [[파일:AISCANNER상세12.JPG]] | |
이후 최종적으로 표현된 모델의 점들을 최종 스캐일링 작업인 구면 조화 함수와 Scaling 행렬을 통하여 보정하여 최종 결과물을 제시한다. | 이후 최종적으로 표현된 모델의 점들을 최종 스캐일링 작업인 구면 조화 함수와 Scaling 행렬을 통하여 보정하여 최종 결과물을 제시한다. | ||
◇ 제작 모델 뷰어 GUI 설명 | ◇ 제작 모델 뷰어 GUI 설명 | ||
− | + | ||
+ | [[파일:AISCANNER상세13.JPG]] | ||
+ | |||
제안된 프로세스를 통해 클라우드 포인트로 제작된 3D 모델은 뷰어를 통해서 확인 가능하다. | 제안된 프로세스를 통해 클라우드 포인트로 제작된 3D 모델은 뷰어를 통해서 확인 가능하다. | ||
제작된 모델은 추정한 카메라 위치 뿐 아니라 각 위치에서 모델을 확인 가능하다. | 제작된 모델은 추정한 카메라 위치 뿐 아니라 각 위치에서 모델을 확인 가능하다. | ||
266번째 줄: | 297번째 줄: | ||
====포스터==== | ====포스터==== | ||
− | + | ||
+ | [[파일: AISCANNER포스터(2조).jpg]] | ||
===관련사업비 내역서=== | ===관련사업비 내역서=== | ||
− | + | ||
+ | [[파일:AISCANNER사업비내역서.png]] | ||
===향후계획=== | ===향후계획=== |
2024년 3월 6일 (수) 22:00 기준 최신판
프로젝트 개요
기술개발 과제
국문 : 포인트 클라우드 시스템과 매핑 알고리즘을 활용한 토목 구조물 손상도 3D 시각화 시스템 개발
영문 : Using Point Cloud System and Mapping Algorithm Development of a 3D visualization system for civil engineering structures
과제 팀명
AI SCANNER
지도교수
김선중 교수님
개발기간
2023년 9월 ~ 2023년 12월 (총 4개월)
구성원 소개
서울시립대학교 토목공학과 2019****** 소**(팀장)
서울시립대학교 토목공학과 2019****** 김*훈
서울시립대학교 토목공학과 2019******김*관
서울시립대학교 토목공학과 2019****** 임**
서울시립대학교 토목공학과 2019****** 조**
서울시립대학교 조경학과 2020****** 이**
서론
개발 과제의 개요
개발 과제 요약
드론으로 획득한 수많은 이미지를 대상으로 딥러닝 모델을 활용하여 구조물 손상 탐지 및 라벨링을 진행한다. 손상이 라벨링된 이미지를 3D Gaussian Splatting기술로 구조물의 3D 모델을 구현한다. 도면 자료나 설계도, 별도의 측정 과정 없이 이미지만으로 딥러닝 모델로 탐지한 손상 정보를 모두 담은 단 하나의 3D 모델을 구현하여 쉽고 직관적으로 손상 정보를 파악할 수 있다.
개발 과제의 배경
1. 대표적인 토목 구조물인 교량은 상부와 하부의 유지 보수, 제작 등을 각각의 업체에서 진행한다. 즉, 관리 주체가 다양하며 데이터 연동 기반이 미약하여 의사소통에 어려움이 있다. 따라서 다른 주체가 직관적으로 토목 구조물의 손상 정보를 파악할 수 있는 하나의 통합 손상도 제작을 통해 문제 해결이 필요하다.
2. 많은 선행연구를 통해 이미지에서 손상을 탐지하는 기술은 있지만 엄청난 양의 각각의 이미지에 표현된 손상정보를 통합적으로 다룰 수 있는 기술이 많이 부족한 상황이다. 주로 사용되는 이미지 스티칭 기법은 이미지 수가 많아질수록 왜곡이 심해져 정확한 손상위치 파악이 어렵다. 따라서 구조물의 형태를 고려한 모델링 방법에 손상 정보를 표현하여 왜곡을 최소화한 수단이 필요하다.
개발 과제의 목표 및 내용
[연구 목표]
딥러닝 모델로 찾은 손상 정보를 이미지를 활용하여 모델링하여 3D 손상도를 구현한다.
[연구 내용]
본 연구는 포인트 클라우드(Point Cloud)를 사용하는 모델링을 통해 토목 구조물의 손상을 직관적으로 파악할 수 있도록 하는 데 초점을 맞추고 있다. 포인트 클라우드는 3차원 공간에 퍼져 있는 다수의 포인트로 이루어진 데이터이다. 드론을 이용하여 교량을 비디오로 촬영하고, 다량의 이미지 데이터를 획득한다. 오픈소스 기반의 모델인 3D Gaussian Splatting을 사용하여 2D 이미지로 3D 모델로 제작한다.
3D 모델을 제작하기 전, 손상 정보가 마킹된 이미지 데이터를 구축해야 한다. 따라서 이미지 상의 손상 탐지를 위해서 딥러닝 모델을 활용한다. 손상을 식별하고 라벨링까지 가능하도록 근접 촬영된 이미지들을 대상으로 SAM(Segment Anything Model) 및 CGNet 모델을 통한 손상 탐지 작업을 실시한다. 손상을 종류별로 각각 다른 색상으로 마킹하여 여러 종류의 손상 정보를 쉽게 알아볼 수 있도록 하였다.
최종적으로, 토목 구조물 손상도 3D 시각화 시스템을 개발하고, 교내 법학관 다리에 모의 적용한 결과를 연구의 최종 결과물로 제시한다.
관련 기술의 현황
관련 기술의 현황 및 분석(State of art)
◇ 박준규, 이근왕. (2022.10). 포인트클라우드 데이터와 스케치업을 이용한 건물의 3D 모델링. 대한토목학회 학술대회, 대한토목학회, 66-67
- 디지털트윈국토를 위한 건물의 3차원 모델링을 위해 3D 레이저 스캐너를 이용하여 건물의 포인트 클라우드 데이터를 생성하고, 스케치업을 이용하여 3D 모델을 생성하였다. 포인트클라우드 데이터를 기반으로 효과적으로 건물에 대한 3D 모델을 생성할 수 있다. 연구를 통해 생성된 건물의 3D 모델은 실제 건물과 동일한 형상과 크기를 가지며, 현실에 존재하는 동일한 좌표를 가지게 된다. 포인트 클라우드 데이터를 이용한 3D 모델링은 건물뿐만 아니라 도로, 교량 등 국가 인프라에 대한 디지털트윈국토 구축을 위한 효율적인 방안이 될 것이다.
◇ 김종훈, 황상준, 임성진, 유성연, 이상효. (2023.04). 포인트 클라우드 기반 실내외 스캔 3D모델의 정확성에 관한 기초연구. 대한건축학회 학술발표대회 논문집, 대한건축학회, 678-678
- 점차 증가하는 리모델링 시장에 맞춰 기존 인력중심의 현장조사 및 시공 모델링 과정, 소요부재조사 등의 업무 과정을 최소화 하고 업무를 효율적으로 진행할 수 있도록 드론과 실내 스캐너를 활용하여 스캔 3D모델의 정확성을 실험한다. 드론 및 실내스캐너를 통한 데이터 수집 후 포인트 클라우드 데이터 추출하여 포인트 클라우드 정합 및 치수를 산출하여 산출된 치수 및 도면 치수, 실측데이터를 각 비교하여 정확성을 점차 높이는 것이다.
◇ 메이사(meissa)는 드론을 활용해 공간 데이터를 수집하고 3D 맵핑이 가능한 프로그램을 개발했다. 여기에 AI 기술과 접목해 드론의 자율비행으로 찍은 수천 장의 사진을 하나로 합쳐 단시간 : 안에 3D모델과 정사영상을 생성할 수 있다. 이를 활용해 원격모니터링, 도면 대비 진척 비교, 측량 및 토공량 산출, 위험 구간 알림 등 관리가 가능하다. 전문가가 아닌 누구든 클릭 하나만으로 선을 그어 길이가 몇 미터인지 알 수 있다.
시장상황에 대한 분석
[기존/경쟁 기술/제품 조사 비교]
- ◇ 한국건설기술연구원 스마트 건설 지원 센터에 연구소를 두고 있는 국내 주식회사인 메이사(meissa)는 디지털 트윈을 구현하는 프로그램 회사이다. 현재 구성된 구조물들의 공간 데이터를 드론 및 각종 장비를 이용하여 수집하고 이를 이용하여 3D 모델을 생성한다. 이를 활용하여 모니터링 및 물량 산출, 위험구간 등 관리를 원활하게 가능한 시스템을 제공한다. 현재 각종 대형 건설사와 연구기관에 협약을 맺었으며 많은 시스템을 제공하고 있다. 메이사에서 제공하는 서비스는 드론을 이용하여 30분간 촬영을 진행하고 4시간 정도의 모델링을 거친 후 3D 모델을 제공한다. 매 촬영 시 데이터를 중첩하여 진척도를 확인할 수 있다. 또한 제작된 3D 지도 위에서 메모와 공유 기능을 추가하여 효율적인 의사소통을 가능하게 한다.
- ◇ 현재 상용하고 있는 많은 BIM 기술에서는 현재의 사진 데이터를 통한 3D 시각화와 물량 및 위치 정보를 취득하는 데에 주된 작업이 이루어져 있다. 하지만 구조물의 안정성 확보를 위한 현재 구조물의 손상 상태를 3D 포인트 클라우드 기술을 사용하여 시각화한 기술들은 아직까지 발전 정도가 느린 양상이다. AI SCANNER 조는 수집된 사진 데이터를 CGNet 딥러닝 모델을 도입하여 손상을 탐지하고 이미지 위에 손상정보를 입혀 구조물 손상도를 제작하는 연구를 진행하고자 한다.
[시장성 분석]
- ◇ 노후 건축물 관리 시장:
- - 노후 건축물은 일반적으로 사용승인 후 30년 이상 지난 건축물을 의미하며, 노후 건축물 비율은 2005년 29%, 2010년 34%, 2019년 37.8%로 계속 상승하는 추세이다.
- - 2019년 제정된 건축물관리법은 2020년 5월부터 시행되어 의무적으로 정기점검, 긴급점검 등을 시행하여야 하며 특히 노후 건축물은 모두 적용 대상이다.
- - 2019년 12월 말 기준으로 노후 건축물 비율이 부산은 54.3%, 대구, 대전은 48.9%, 전남은 48.2%로, 건축물의 유지관리를 위해 정기적으로 점검해야 하는 대상이다.
- - 시설물 유지관리 시장 규모는 2007년 1조 8천억 원 수준에서 2016년 4조 원 시장으로 성장하였으며, 시설물 점검과 진단 시장의 규모는 2007년 749억 원에서 2016년 2279억 원까지 성장하였다. 앞으로도 더 커질 전망이다.
- - 정확하고 편리한 시설물 점검·진단 방법이 시설물 유지관리 및 점검·진단 시장에서 시장성을 확보할 전망이다.
- ◇ BIM 기술 도입과 시장 확장:
- - 국토교통부는 BIM (Building Information Modeling) 설계대가 기준을 마련하여 현장의 설계 기술자들이 정당한 대우를 받을 수 있도록 하고, 설계가 더욱 스마트하게 될 수 있는 환경을 조성하고자 한다.
- - 최근 1,000억 원 이상 대형 공사 입찰 시 BIM 설계 적용을 의무적으로 검토하도록 하고 있으나, 대가 기준이 없어 발주청 별로 상이한 기준을 적용하고 있다.
- - 국토교통부는 BIM 설계대가 기준을 업계, 발주청, 전문가의 의견 수렴을 통해 우선하여 마련할 예정이며, 이로써 BIM 설계 기술자들이 정당한 대우를 받을 수 있고 설계 품질 향상과 시공 오류 최소화에 기여할 것으로 기대된다.
위처럼 현재 시장 현황은 노후 건축물 관리와 BIM 기술의 조합이 시장에서 긍정적인 영향을 미칠 가능성을 시사한다. 특히 노후 건축물 유지 보수와 시설물 관리 시장의 성장은 새로운 기술 도입에 대한 수요를 높일 것으로 예상되며, BIM 기술의 확대 적용은 시설물 설계 및 관리를 혁신적으로 개선할 것이다.
개발과제의 기대효과
기술적 기대효과
1. 다양한 스마트 건설 기술을 단일 공간 시스템에서 편리하게 통합 활용이 가능하다.
2. 드론 데이터를 활용한 공정 단계별 현황 3D 모델을 제공하고 공사 진척도를 생성할 수 있다.
3. 구조물 데이터를 3D로 매핑하는 기술에 향후 정합 기능을 도입하여 설계시공 간 정확도를 확인할 수 있다.
4. 토목 구조물의 손상을 3D 모델링으로 구현하고 손상의 구체적인 위치와 정도를 정량적으로 표시할 수 있다.
5. 대규모 SOC 시설에서 발주처 및 협력업체들이 통합된 3D 인터페이스에 유지 관리에 필요한 데이xj를 저장하고 공유함으로써 단일 관점에서 다양한 정보를 추출할 수 있다.
6. 향후 구조물에 계측 센서를 부착하여 실시간으로 발생하는 손상정보와 위치를 기존의 3D 인터페이스에 시각화하여 전달하는 스마트 유지관리 시스템 개발이 가능하다.
경제적, 사회적 기대 및 파급효과
1. 사용자에게 높은 공학적 지식수준을 요구하지 않아 시설물 유지관리 관련 종사자가 구조물의 형태와 손상을 쉽게 파악할 수 있다.
2. 2021년 국토안전관리원에 따르면 국내 SOC시설 안전진단업체 안전점검 및 진단 부실률은 10.2%이다. 3D 모델링 기술을 통해 점검자의 역량을 강화하고 구조물 근접 점검 미흡, 구조적 문제 발견 불가 등 기존의 안전 점검 시스템을 보완할 수 있다.
3. 준공 후 30년 이상 국내 시설물 현황 2022년도 기준 17.3%, 15년 후 61.8%로 노후 시설물의 증가 추세에 따라 향후 시설물 유지관리 시장에서 관리 인력 부족에 따른 스마트 안전 점검 기술의 도입은 필수적이며, 3D 모델링 기술을 통해 현장 여건 상 상주에 따른 어려움, 도면 분실 및 구조물 변경에 따른 도면 제작성, 현장 교육 및 인수인계에 도움을 줄 수 있다.
기술개발 일정 및 추진체계
설계
설계사양
제품의 요구사항
개념설계안
가. 테스트 베드 토목 구조물 손상도 3D 시각화 시스템을 모의 적용할 교내 법학관 교량의 수치이다.
법학관 교량에서 확인할 수 있는 손상의 종류는 다음과 같다.
나. 데이터셋 요구사항 및 시스템 하드웨어
데이터셋은 손상이 분명하게 확인가능한 근접 촬영 이미지와 교량의 구조를 파악할 수 있는 원거리 촬영 이미지로 구성되어야 한다. 드론을 이용하여 손상이 정방향으로 드러나는 근접 이미지와 다양한 각도에서 구조물 형태를 볼 수 있는 이미지를 확보한다. 드론으로 촬영이 어려운 교량 하부 등의 지면과 가까운 촬영의 경우 스마트폰 카메라를 이용하였다. 3D Gaussian-splatting을 이용하여 법학관 교량 규모의 3D 모델을 제작하기 위해서는 최소 200장 이상의 다량의 데이터를 필요로 한다. 또한 데이터를 이용한 딥러닝 학습을 위해 최소 4GB(권장 24GB)의 VRAM을 지닌 고성능 그래픽카드를 요한다. 본 연구에서는 VRAM이 24GB인 RTX 3090을 사용한다.
다. 개념 설계안
위 데이터셋 요구사항을 만족하는 2가지 타입의 이미지 데이터를 확보한 후 손상 탐지 딥러닝 모델 및 수동 라벨링을 통해 각각의 이미지의 손상을 종류별로 색깔로 구별하여 마킹한다. 그렇게 확보한 결과물(근접 촬영 이미지)와 구조물 형태가 나타나는 원거리 촬영 이미지를 다시 하나의 학습 데이터셋으로 구축한다.
새로 구축한 학습 데이터셋으로 고성능 컴퓨팅 환경에서 3D Gaunssian-splatting 모델을 학습하여 3D 모델을 생성한다. 최종 결과물로 획득한 3D 모델은 GUI 환경에서 원하는 시점과 거리에서 손상 정보를 파악할 수 있는 3D 손상도로 활용한다.
이론적 계산 및 시뮬레이션
◇ 이미지 수집 - 드론사양 본 연구에서 이미지 촬영을 위해 DJI Mavic 2 Pro 모델을 사용하였다. 기체의 무게는 907g, 최대 비행시간은 25km/h의 비행 속도를 유지하는 경우 약 30분 동안 주행 가능하며, 최대 비행거리는 18km이다.
위 모델의 상세 정보는 다음과 같다.
조종기의 인터페이스는 스마트폰(Iphone 13 mini)을 통해 드론의 촬영 화면을 확인 가능하며, 전용 어플리케이션인 DJI GO 4를 사용하였다. 다음은 드론 조종 인터페이스이다.
촬영 시 제한 사항
- 드론 개체의 평균 비행 시간이 1회 완충시 약 30분으로 짧기 때문에 정밀 촬영이 필요한 구간과 모델링에 사용될 구간을 미리 구분하여 비행 코스를 계획하고 각 영상 취득 시간을 3분으로 촬영을 진행하였다.
- 3D 모델링의 모델 학습 시간과 연산량을 고려하여 영상물의 해상도는 1920 X 1080 으로 선정하였고, 구조물의 주요 손상을 명확하게 획득하기 위하여 일조량이 풍부한 시간에 촬영을 진행하였다.
- 관심 구조물 주변에 다른 구조물과 나무들로 인하여 드론 기체로 촬영을 하기에 어려움이 존재한다. 이를 보완하기 위하여 스마트폰을 이용하여 드론 촬영으로 담지 못한 부족한 구조물의 영역을 추가적으로 촬영을 진행하였다.
촬영 일시 : 10월 28일 11시 15분 ~ 11시 45분 촬영 장소 : 서울시립대학교 법학관 교량 일대 (서울 동대문구 서울시립대로 163 서울시립대학교)
촬영 과정
외관 손상을 자세히 촬영하기 위해 고도 5m 높이에서 교량 옆면과 2m의 거리를 이격하고 좌에서 우로 비행속도 2km/hr로 이동하며 촬영하였다.
낮은 고도에서 교량 주변의 이미지 데이터를 확보하기 위해 고도 10미터 상승 후 다리 옆면과 15m 거리를 이격하고 좌에서 우로 비행속도 4km/hr로 이동하며 촬영하였다.
높은 고도에서 교량 주변의 이미지 데이터를 확보하기 위해 고도 60m 상승 후 11km/hr 속도로 교량을 기준으로 원주비행하여 촬영하였다.
◇ 딥러닝 기반 손상탐지 시스템 개발
딥러닝 기반 손상탐지
선행 연구로 진행된 탐지 기반 인공지능 서비스는 현재 많은 발전이 진행되었다. 최근 구조물에서의 손상을 면적형과 선형으로 구분하여 이미지에서 손상을 탐지하는 기술이 많은 발전을 이루었는데, 그 중 CNN(Convolutional Neural Network) 모델을 활용한 손상 탐지 기술을 본 시스템에 자동화 손상 탐지로 활용하고자 한다.
CGNet 모델
본 연구 프로세스인 구조물의 손상정보를 담아 아래 3D Gaussian Splatting 기법으로 3D 손상도를 구축하기 위해서는 손상이 담긴 이미지에 손상이 강조된 표시가 필요하다. 이미지 안의 손상에 강조 표시 하는 것을 ‘라벨링 과정’이라고 한다. 라벨링 과정에는 수동 라벨링과 자동화 라벨링이 있으며, 인력 기반의 수동 라벨링과 위에서의 CNN 기반의 손상 탐지를 현재 자동화 라벨링이라고 분류한다. 자동화 라벨링을 수행하기에 앞서 CGNet기반의 Semantic Segmentation 딥러닝 모델을 직접 학습하여 사용하였다. CGNet은 고성능과 고효율성을 모두 고려한 경량화 모델이며, Context Guided(CG) 블록을 통해 복잡한 데이터에서도 세밀하고 정확한 세그멘테이션 결과를 얻을 수 있는 장점이 있다. 또한 다양한 크기의 특징을 추출하는 멀티스케일 접근 방식을 사용하여 큰 객체부터 작은 객체까지 효과적으로 인식 및 분류할 수 있는 장점이 있다.
모델 학습 및 손상 라벨링 과정
구조물 이미지의 손상 탐지에 우수한 성능을 가지고 있는 CGNet 모델의 학습데이터로는 AI Hub에서 제공하는 구조물 손상 이미지(Cityscapes 형식) 2,380장을 사용하여 학습을 진행하였다. 학습시킨 모델은 각 학습이 진행함에 따라 체크포인트로 저장되며, 이 중 Loss가 가장 적은 모델을 선택하여 본 연구 프로세스에 적용하였다. 근접 촬영을 통한 본 연구에 적용할 이미지를 모델에 통과시켜 자동화 손상 탐지를 진행한다. 손상은 균열, 박락, 백태 3가지로 분류하며 모델로 탐지한 픽셀 단위의 손상을 원본 이미지에 색을 입혀 표시하며, 각 손상은 고유의 인덱스 번호를 가지고 분류된다.
모델 Config 코드
_base_ = ['../_base_/models/cgnetCrack.py', '../_base_/datasets/cityscapesCrack.py', '../_base_/default_runtime.py']
- optimizer
optimizer = dict(type='Adam', lr=0.001, eps=1e-08, weight_decay=0.0005) optim_wrapper = dict(type='OptimWrapper', optimizer=optimizer)
- learning policy
param_scheduler = [dict(type='PolyLR',eta_min=1e-4, power=0.9, by_epoch=False, begin=0,end=60000)]
- runtime settings
total_iters = 60000 train_cfg = dict(type='IterBasedTrainLoop', max_iters=total_iters, val_interval=4000) val_cfg = dict(type='ValLoop') test_cfg = dict(type='TestLoop') default_hooks = dict( timer=dict(type='IterTimerHook'),logger=dict(type='LoggerHook', interval=50),param_scheduler=dict(type='ParamSchedulerHook'),checkpoint=dict(type='CheckpointHook', by_epoch=False, interval=4000),sampler_seed=dict(type='DistSamplerSeedHook')) crop_size = (512, 1024) data_preprocessor = dict(size=crop_size) model = dict(data_preprocessor=data_preprocessor)
train_dataloader = dict(batch_size=8) val_dataloader = dict(batch_size=1) test_dataloader = val_dataloader
◇ 3D Gaussian Splatting을 이용한 3D 모델링
SfM Points 획득
모델 학습을 위하여 초기 값을 구하기 위해 SfM Points를 추정한다. SfM(Structure from Motion)은 카메라의 위치 추정과 클라우드 데이터로 이미지의 각 점을 추정한다. 각 이미지마다 추정으로 얻은 카메라의 위치와 촬영 방향과 각 점들을 묶어 저장하여 카메라 방향과 점들을 3D 공간에 생성한다. Gaussian Splatting의 Splatting은 3D 공간에 위에서 구한 점들을 흩뿌리듯이 배치하기 때문에 붙여진 이름이다. 점의 군집을 Point Cloud라고 부르며 Point Cloud는 각 이미지마다 저장된다. 카메라의 시점 수는 이미지 데이터의 수와 동일하다.
좌표계 표현
3D 모델의 초기값으로 구성하기 위하여 각 점들과 카메라의 위치는 정규 근사 좌표계로 표현한다. 정규 근사 좌표계는 카메라의 위치와 대상 피사체와의 거리를 1로 근사하여 표현하기에 스캐일 변환이 필요하다. 정규 근사 좌표계에 표현된 3D 모델은 학습을 진행하기 전 초기 모델로 사용된다.
초기 변수 생성
초기 모델 생성과 동시에 저장되는 변수로는 SfM Points, Covariances, Colors, Opacities 이다. SfM Points는 위에서 설명한 각 이미지 특징인 SfM으로 획득한 Point Cloud이다. Covariances는 공분산 행렬로 스캐일 행렬인 Scale Matrix와 회전 행렬인 Rotation Matrix로 표현된다. 각 점들의 색 표현 특징인 Colors는 구면 조화 함수(Spherical Harmonics)를 사용하여 표현한다. 일반적인 색상인 RGB 값으로 0~255의 값으로 표현되는데, 구면 조화 함수를 사용하는 경우 각도에 따라서 보았을 때 생기는 음영과 채도의 변화에 의한 영향으로 RGB 값이 변화하는 형태를 가진다. 각 픽셀의 표현 값은 구면 좌표계에서 거리(r)를 제외하고 각도(theta, phi)로 극에서의 각도 값과 방위각으로 결정된다. Opacities는 3D Gaussian의 투명도값을 의미하며 0~1의 단일 실수값이다.
학습을 통한 변수 업데이트
초기로 생성한 3D 모델을 위에서의 SfM Points, Covariances, Colors, Opacities, Camera pose의 다섯의 변수를 통하여 Rasterization을 진행한다. Rasterization은 생성된 모델을 카메라의 시점으로 사영시키는 3D를 2D로 변환하는 작업이다. Rasterization 작업을 저장된 각 카메라 시점 마다 수행하고 카메라 시점과 동시에 저장된 Ground Truth 이미지와 비교하여 오차 계산을 수행한다. 딥러닝을 이용하여 학습을 진행하고 위에서 발생한 오차를 적은 방향으로 다섯의 변수를 업데이트한다. 학습은 전체 데이터셋을 모두 사용한 경우 1 Iteration으로 하여 100 Iteration 단위로 전체적인 모델을 업데이트하며 총 30000 Iteration의 결과물을 제시한다.
◇ 3D Gaussian Splatting 모델 학습 진행과 Loss 최소화
모델을 평가하기 위한 손실함수는 L1, PSNR, SSIM을 사용하였다.
Ground Truth인 실제 촬영 이미지와 추정된 카메라 포즈에 정사영 하여 정규화 시킨 이미지(Predicted)를 비교하여 Loss 함수를 통해 Loss 값을 계산한다. Adam Optimizer을 사용하여 변수를 업데이트하며 최적화를 진행하는 모델을 지속적으로 Loss 값을 계산하며 최종 30000 회의 학습 모델을 본 연구의 최종 모델로 선정하였다.
이후 최종적으로 표현된 모델의 점들을 최종 스캐일링 작업인 구면 조화 함수와 Scaling 행렬을 통하여 보정하여 최종 결과물을 제시한다.
◇ 제작 모델 뷰어 GUI 설명
제안된 프로세스를 통해 클라우드 포인트로 제작된 3D 모델은 뷰어를 통해서 확인 가능하다. 제작된 모델은 추정한 카메라 위치 뿐 아니라 각 위치에서 모델을 확인 가능하다. 회귀로 보정된 각 시점에서의 관심 피사체를 확인할 수 있다. 가속도와 속도를 조절하여 제안된 모델의 공간에서 시점을 움직일 수 있으며 확대가 가능하다. 뷰어에서 모델을 선택하여 7000 Iteration의 모델과 30000 Iteration 모델의 차이를 확인 가능하다.
결과 및 평가
완료 작품의 소개
프로토타입 사진 혹은 작동 장면
최종적으로 제작한 작품의 시연 영상이다.
본 연구 프로세스를 적용하여 테스트 베드 3D 모델링을 진행하였다.
본 연구를 프로토타입 모형으로 제작을 진행하였다.
포스터
관련사업비 내역서
향후계획
- 본 개발 과제에서의 최종 결과물은 현재 단일 시간에서 촬영된 이미지들을 가지고 프로세스를 거친 결과물이다. 최근 4D Gaussian-Splatting 이 개발되어 단일 시간이 아닌 각 시간 별로 제작된 이미지 데이터 셋으로 학습을 시켜 동특성을 파악할 수 있다. 기존의 3D가 아닌 시간의 축이 생성되어 4D 로 표현된다. 4D Gaussian-Splatting으로 각 시간 별로 학습시킨 모델은 각 변화량을 가지고 있어 모델의 변화를 단 시간의 학습으로 시각적인 표현을 할 수 있는 장점을 가질 수 있다. 본 과제의 관심인 손상 탐지와 더불어 손상의 변화 양상을 시각적으로 표현이 가능하게 될 것이며, 시도할 경우 좋은 결과물이 예상된다.
- 손상 탐지 모델은 현재 CGNet을 사용하고 있지만 아키텍쳐 및 최적화 알고리즘의 발전으로 뛰어난 성능이 예상된다. 각 손상 영역 별로 학습된 모델들은 손상 탐지를 더욱 정교하게 할 것이다. 또한 모델을 학습하기 위한 데이터 셋은 시간이 지날수록 쌓이며, 반도체 산업의 발전으로 컴퓨팅 성능 또한 발전하여 많은 학습량을 통해 모델 성능을 높일 수 있을 것이다.