1. 가변성을 고려한 3차원 이미지 스캔 기반
건축 MEP 역설계 자동화 기술
KICT
2016.10.22
한국건설기술연구원 ICT융합연구소
강 태 욱
laputa99999@gmail.com
https://www.facebook.com/laputa999
※MEP(Mechanical, Electrical, and Plumbing): 기계, 전기, 배관
본 연구는 2015년 산업통상자원부 (3D객체 역설계 기반 MEP 설비 유지관리 시스템 개발)에 지원
에의해 수행되었음.
ample-C
Input Segmentation
Cylinder ExtractionRevit Output
2. KICT
개요
최근 3차원 이미지 스캔 작업을 통해 획득된 3차원 Point Cloud (PCD)를 활용하는 사례가 점차 많아지고 있다.
이는 3차원 이미지를 손쉽게 획득할 수 있는 LiDAR, 드론 등 기술이 발전하고, 3차원 공간정보 컨텐츠 요구가
증가했기 때문이다. 다만, 아직은 역설계 시, 많은 수작업이 필요한 상황이다. MEP 역설계는 건축 다른 분야에
비해 작업이 복잡하고, 스캔 데이터가 불완전하며, 대용량 데이터이다. 본 연구는 MEP분야에서 역설계 작업량이
상대적으로 많은 배관 파이프를 대상으로 불완전한 대용량 MEP 3D PCD-SEMM(Split-Extraction-Merge-
Mapping)알고리즘과 역설계 작업흐름 가변성을 지원하는 RWDL(Reverse engineering Workflow Description
Language) 를 제안한다.
3D 포인트 클라우드 기반 역설계 (출처: 미국 Bethesda 병원, FARO 라이다 장비 활용. Kevin P. Corbley, 2012.8)
파이프 형상
반자동 추출
3. KICT
3차원 이미지 스캔 기반 역설계 기술 소개 및 발전 방향
P 2
LiDAR 기반 스캔
포토그래메트리
기반 스캔
3차원 이미지 스캔 노이즈 필터링 / 정합
역설계 형상 모델링
BIM 모델링
로보틱스 기반 3차원
이미지 스캔
형상 자동/반자동
모델링
BIM 자동/반자동
역설계
작업 진입
불가 영역
노동집약적
스캔 작업
노동집약적
모델링 작업
기존 3차원 이미지 스캔
Drone-based 3D image scan
Rover-based scan
문제 개선 방향
…
작업 및 문제점 인터뷰/조사
다양한
작업대상물
Scan Segment BIM object
4. KICT
유스케이스 시나리오 정의
engineer
viewer
BIM modeler
login RE3D BIM server
<<viewer>>
importing RE3D project file
<<viewer>>
loading RE3D project file including point cloud from BIM server
<<viewer>>
converting shape to BIM pipe object
<<console>>
loading RE3D project file
<<addin>>
loading point cloud file
<<addin>>
generating BIM pipe object from RE3D project’s model information
<<addin>>
<<call>>
creating RE3D project file
<<console>>
segmentation
<<console>>
extracting straight cylinder
<<console>>
extracting L-bow cylinder
<<console>>
saving point cloud file into file system (.pcd)
adding point cloud file (.xyz, .pcd)
loading point cloud file into memory
1. Basic
function
support
2. Script
support
(python)
3.
Performance
upgrade
4. Web-
based RE3D
App support
MajorAPI Pipe extraction Python support Spatial indexing RESTAPI
Projectfile management Customization LOD support Cloudsupport
Uploading files intoserver Pipe accessories Streamingsupport Mesh up with
Visualizingpointclouds ObjectmatchingusingICP Google earth...
Measuring pointclouds
Data exchange PCD file-basedexchangebetween RE3D,Viewer,Addin.
Memory File-basedexchange
Interface call consideration
5. KICT
역설계 데이터 평활화 처리 아키텍처 설계 / 알고리즘 구현
P 11
Database
-Name: string
+CreateIndexing()
Pipe
-Point1: PointXYZ
-Point2: PointXYZ
-Radius: real
Object
-Name:string
PropertySet
-Name: string
-Category:string
*
Property
-Name:string
-Type
-Value:string
*
*
Plane
-A: real
-B: real
-C: real
-D: real
ReverseDesignStrategy
-Name:string
+begin()
+action()
+end()
PointReferenceCloud
-PointCloudID: integer
-Name: string
-LOD: integer
PointXYZ
-PointCloudID: integer
-PointCloudZone: interger
-X: real
-Y: real
-Z: real
*
Filtering
ReverseDesignProgram
-Name: string
*
ShapeMatchingRuleSet
-Name:string
RANSACSegmentation
ShapeMatchingRule
-Name:string
*
Validation
Skeletonization
Recognization
*
PointCloud
-Name: string
PointCloudZone
-LOD: integer
-Zones
*
PointNormal
-PointID: integer
-X: real
-Y: real
-Z: real
*
RegionGrowingSegmentation RegionFiltering LaplacianSkelationization
6. KICT
역설계 데이터 평활화 처리 아키텍처 설계 / 알고리즘 구현
P 11
Database
-Name: string
+CreateIndexing()
Pipe
-Point1: PointXYZ
-Point2: PointXYZ
-Radius: real
Object
-Name:string
PropertySet
-Name: string
-Category:string
*
Property
-Name:string
-Type
-Value:string
*
*
Plane
-A: real
-B: real
-C: real
-D: real
ReverseDesignStrategy
-Name:string
+begin()
+action()
+end()
PointReferenceCloud
-PointCloudID: integer
-Name: string
-LOD: integer
PointXYZ
-PointCloudID: integer
-PointCloudZone: interger
-X: real
-Y: real
-Z: real
*
Filtering
ReverseDesignProgram
-Name: string
*
ShapeMatchingRuleSet
-Name:string
RANSACSegmentation
ShapeMatchingRule
-Name:string
*
Validation
Skeletonization
Recognization
*
PointCloud
-Name: string
PointCloudZone
-LOD: integer
-Zones
*
PointNormal
-PointID: integer
-X: real
-Y: real
-Z: real
*
RegionGrowingSegmentation RegionFiltering LaplacianSkelationization
2D Shape
Extraction
Pipe RD Data Acquisition
3D Point
Cloud Point Cloud Data Processing
3D Polyhedron
Extraction
Physical Shape
2D Shape
Extraction
Architectural MEP
Pipe Shape RD
3D Polyhedron
Conversion
Architectural MEP Pipe Object Modeling
3D Object
Extraction
Architectural MEP Pipe
Object Library
Architectural MEP Pipe RD Error Analysis
Pipe Object
Shape
RD
Data
Shape Decision
/ Modeling
Error Position
Analysis
Analysis/Valid-
ation
Report
Generation
Architectural MEP Pipe RD Data Pre-processing
Object
Validation
Shape[Segment]= PCD2Shape(PCD)
Segments = Segmentation(PCD)
IF Type == PrimitiveType
Shapes = RANSAC(Segments)
return Shapes
IF Type == SweepingType
Paths[Segment]=Skeletonization(Segments)
Sections[Segment,Section]= SectionExtraction(Segments,Paths)
FST[Segment,Section]= FTS(FST,Sections,Paths)
FSTfitting[Segment,Section]= Fitting(FST,Sections,Paths)
return Sweeping(FSTfitting,Paths)
|| np · ns || > cos(θth)
argminX xi − qj θ( xi − qj )
j∈J
+ R(X)
i∈I
FTS={FT, ...}
FT={FTname, FTtolerance, FTpattern}
FTtolerance ={Tlength or Tangle or Tradius}
FTpattern={FTelement, ...}
FTelement ={Dim or Base or Geometry}
Dim={Dname, Dvalues}
Dvalues={values, ...}
Base={Ename, Px, Py}
Geometry ={Gtype, Gconstraints, Gdim}
Gtype={Line or Arc or Last}
Gconstraint={On or Tangent}
Gdim={L or A or R}
8. KICT
Segmentation
Path =
Skeletonization
FTS computation
Section
features
Section
featuresfitting
Sweeping
Segmentsections
extraction
PCD
FST
…
A=10.0
Sweeping object
유사도 기반 SWEEPING 객체 역설계 알고리즘 모델 정의
P 13
Shape[Segment] = PCD2Shape(PCD)
Segments = Segmentation(PCD)
Paths[Segment] = Skeletonization(Segments)
Sections[Segment, Section] = SectionExtraction(Segments, Paths)
FST[Segment, Section] = FTS(FST, Sections, Paths)
FSTfitting[Segment, Section] = Fitting(FST, Sections, Paths)
return Sweeping(FSTfitting, Paths)
|| np · ns || > cos(θth)
argminX xi − qj θ( xi − qj )
j∈J
+ R(X)
i∈I
FTS={FT, ...}
FT={FTname, FTtolerance, FTpattern}
FTtolerance ={Tlength or Tangle or Tradius}
FTpattern={FTelement, ...}
FTelement ={Dim or Base or Geometry}
Dim={Dname, Dvalues}
Dvalues={values, ...}
Base={Ename, Px, Py}
Geometry ={Gtype, Gconstraints, Gdim}
Gtype={Line or Arc or Last}
Gconstraint={On or Tangent}
Gdim={L or A or R}
Section2D = Mp ∙Segment3D
Section3D = I(Mp) ∙Section2D
Rtrace
No X Y Z R
#1 -6.481 31.983 26.940 0.646
… … … … …
#59 -5.568 31.888 25.806 0.611
#60 -6.061 31.941 25.004 0.615
편차 0.025
9. KICT
실험용 MEP 모델 포인트 클라우드 취득
P 14
스캔 차수 대상 목적
1차 건설연 본관 MEP 장비 테스트 및 샘플 획득
2차 건설연 외부 MEP 3차원 이미지 스캔 장비 특성 분석
3차 건설연 외부 MEP 3차원 이미지 스캔 프로세스 분석
4차 건설연 외부 MEP 3차원 이미지 스캔 정합 고려사항 분석
5차 영등포 동사무소 건물 외관 및 구조 스캔 프로세스 분석
6차 건설연 외부 MEP 3차원 이미지 스캔 정밀도 확인
7차 제로 에너지 빌딩 MEP 3차원 이미지 MEP 스캔 데이터 획득
8차 건설본 본관 MEP 상동
9차 제로 에너지 빌딩 MEP 작업자 진입 불가 영역 스캔 가능성 확인
20. KICT
Appendix – 기술/특허 조사 및 연구한 기술에 대한 특허 출원
그림. FOCUS 도구 특허 결과 맵
• FOCUS 특허 분석 (국내 6건 / 해외 14건)
• 건축 MEP 파이프 객체 추출 기술은 해당 특허 없음
• RANSAC 같은 기본 기술 기반 역설계 시스템은 특허로 등록 - 국내 아이너스 기술(현재 쓰리디시스템즈 코리아) / 해외 제록스 등
그림. 국내외 특허 검색 결과
※ Keyword – Reverse engineering, MEP, Vectorization, Point cloud, Pipe, Segmentation, Feature
• 기술 이전 특허 (3건)
21. KICT
Appendix – 연구 조사 결과
기술 논문 31 중 8건 상세 분석 / 알고리즘 코드 분석
구분 기술 문헌 (31) 목적
Data acquisition
RANSAC (RANdom SAmple Consensus),
PFH (Point Feature Histogram)
16, 25
포인트 클라우드 데이터 취득 방
법에 관한 기술
Registration / Filtering RANSAC, PHF 20 취득한 포인트 클라우드 정합
Segmentation Surface smoothing, PHF, Projection
1, 23, 24, 26, 27,
28, 29
포인트 클라우드에서 유사도에
따라 세그먼트 분류
Skeletonization Laplacian, Delanuany Trianglation 5, 12, 13, 31 세그먼트에서 뼈대 추출
Pipe geometry
recognition
RANSAC/커브피팅 7, 8, 9, 19 형상 모델 파라메터 획득
뼈대 추출 3, 4, 6, 11, 14 뼈대 기반 파이프 연결성 획득
피쳐/템플릿 매칭 10, 17, 22 다양한 피쳐 기반 형상 매칭
기타 2, 18 조합된 기법을 통해 형상 인식
Pipe object recognition Topology, Pattern Matching 30 객체와 형상 유사도 계산
Case study - 15, 21 기술 및 역설계 사례 조사
CP
P1 P2
PLN2
PLN1
N1
N2
N3=V1xN1
V1
CP
※ Keyword – Reverse engineering, MEP, Vectorization, Point cloud, Pipe, Segmentation, Feature
Segmentation Skeletonization RANSAC / Feature Matching
22. KICT
Appendix – 3차원 스캐닝 장애 요인 및 대안 연구
P 14
P 17
높은고도3D스캔시험진입불가영역스캔센서처리장치시험
P 25
Editor's Notes
1분 안에 문제점과 기술 개발 시 좋아 지는 점 임펙트 있게 처리 해야 함
A, B, C 무엇인지
현장 입장 반영하였음.
현장 입장 반영하였음.
현장 입장 반영하였음.
현장 입장 반영하였음.
현장 입장 반영하였음.
v 시설물 관리에 어떻게 쓰이냐? (뒷장 – 파급효과… 활용처). 저 사례에서 실제로 얼마나 줄였냐? 기술적용하면 얼마나 절감되냐?
V 비용 절감 구체적으로 어느 부분에서 절감 되나?
V 기존 사례와 다른 점(문제점/차이점 차별성)
V 글만 크게 대표 키워드
v 시설물 관리에 어떻게 쓰이냐? (뒷장 – 파급효과… 활용처). 저 사례에서 실제로 얼마나 줄였냐? 기술적용하면 얼마나 절감되냐?
V 비용 절감 구체적으로 어느 부분에서 절감 되나?
V 기존 사례와 다른 점(문제점/차이점 차별성)
V 글만 크게 대표 키워드