본문 바로가기
Researches/Pointclouds

pointcloud 머신러닝/AI 트레이닝 데이터셋 전처리(Pre-processing)

by DevKev 2022. 6. 23.

기술이야 빠르게 발전하겠지만, 아직까지 civil engineering 분야에서 혹은 적어도 내 분야에서 부족한 부분이라고 생각이 드는 부분은 3D sanner를 활용한 정밀 탐상 자료에 대한 분석, 그 중에서도 점군(pointcloud)의 분류(classification) 문제가 현재 부족하다.

 

구조공학(structural engineering) 쪽에 몸을 담고 있는 필자는 분류된 데이터를 활용하여 어떤 부분이 구조적으로 취약한지, 앞으로 보수가 더욱 필요할지에 대해서 제시를 할 수 있도록 연구를 하고 있기 때문에 이 post에서는 내가 가지고 있는 pointcloud dataset에 대한 전처리(pre-processing) 과정에 대해서 정리를 해보도록 하겠다.


정답 데이터 (Ground-truth data)

일단 분류하기에 앞서 pointcloud raw data는 어느 부분이 결함이 있고 없는지에 대한 정보가 전혀 없다. 우리가 가지고 있는 정보는 오직 x, y, z 점 좌표 그리고 운 좋다면 r, g, b 색깔 정보와 점의 nx, ny, nz 법선 벡터 일 것이다.

아마도 나를 포함한 많은 사람들이 가장 많이 본 건 차량이 달리면서 취득한 라이다 센서를 통한 poincloud 분류 영상일 것 같은데, 다음의 영상의 SageMaker 혹은 상용프로그램이나 CloudCompare와 같은 open-source 프로그램을 이용해 수동으로 '우리가 만든 모델이 우리가 원하는 답으로 예측해줬으면 하는 데이터에 라벨링(labeling)' 이 먼저 수행되어야 한다. 굉장히 많은 점을 언제 분류 하고 있냐? 하는데 실제로 이렇게들 진행한다고 한다.

Labeling 3D point clouds with Amazon SageMaker Ground Truth - part 2 by Julien Simon

따라서, 나도 내 dataset의 ground-truth data를 CloudCompare를 이용해 만들어봤다. 내가 분류해야하는 문제는 3d scan하여 생성된 노후 부식 관로의 pointcloud에서 어느 부분이 부식으로 인해 감육이 되었는지 

 

전체 pointcloud 중 부식(corrosion)으로 분류한 결과

 

 


데이터 전처리 (Data pre-processing)

 


머신러닝 모델 트레이닝 (Machine learning model training)