SlideShare a Scribd company logo
1 of 22
가변성을 고려한 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
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)
파이프 형상
반자동 추출
KICT
3차원 이미지 스캔 기반 역설계 기술 소개 및 발전 방향
P 2
LiDAR 기반 스캔
포토그래메트리
기반 스캔
3차원 이미지 스캔 노이즈 필터링 / 정합
역설계 형상 모델링
BIM 모델링
로보틱스 기반 3차원
이미지 스캔
형상 자동/반자동
모델링
BIM 자동/반자동
역설계
작업 진입
불가 영역
노동집약적
스캔 작업
노동집약적
모델링 작업
기존 3차원 이미지 스캔
Drone-based 3D image scan
Rover-based scan
문제 개선 방향
…
작업 및 문제점 인터뷰/조사
다양한
작업대상물
Scan Segment BIM object
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
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
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}
KICT
노이즈있는 포인트 클라우드 세그먼테이션/형상/뼈대 추출
P 12
Num = 70
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
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 작업자 진입 불가 영역 스캔 가능성 확인
KICT
실험용 MEP 모델 포인트 클라우드 취득
P 14
KICT
실험용 MEP 모델 포인트 클라우드 취득
P 14
KICT
실험용 MEP 모델 포인트 클라우드 취득
P 14
KICT
역설계 자동화 알고리즘 PCD-SEMM 및 역설계 작업 정의 언어 RWDL
제안
Scan to BIM algorithm (PCD-
SEMM)
BIM_objects scan_to_BIM(PCD = 3D point cloud)
begin function
splited_shapes = {};
merged_shapes = {};
grids = create_spatial_grid(PCD); // 대용량 PCD 분할
for(grid in grids) // 그리드 별 형상 추출
{
segments = grid.segmenation(); // 세그먼테이션
segments = noise_filtering(segments); // 필터링
shapes = RANSAC(segments) or sweeping_feature_template_based_extraction(segments);
splited_shapes.add(shapes);
}
merged_shapes = merge_shapes(splited_shapes); // 병합
merged_shapes.update_fitting_shapes(); // ex) L-bow
BIM_objects = BIM_object_mapping(merged_shapes); // BIM 맵핑
end function
|| 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}
Section2D = M p ∙Segment3D
Section3D = I(M p) ∙Section2D
PCD
section
Rtrace
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}
Feature trace
template
skeletonization
Disk
KICT
역설계 자동화 알고리즘 PCD-SEMM 및 역설계 작업 정의 언어 RWDL
제안
Data structure
Database
#name: string
PointCloud
#name: string
#path: string
+load()
Point<XYZ>
Segment
#name: string
#path: string
*
*
*
Project
+name: string
PointCloud<XYZ>
Point<RGB>PointCloud<RGB>
PointCloud<Normal> Point<Normal>
*
*
PointIndices
#indices
Shape
#<<Unique>> name: string
ShapeList
#name: string
+load()
*
CylinderShape
#radius: double
LBowCylinderShape
PlaneShape
StrightCylinderShape
RWDL_Rule
-name: string
-path: string
+Rule(name: string)
<<virtual>>+parsing(path: string)
<<virtual>>+execute()
#qualityCheckRules
#objectMappingRules
*
Grid
*
RWDL_RuleSet
<<enumeration>>
QualityCheckRule
ObjectMappingRule
KICT
역설계 자동화 알고리즘 PCD-SEMM 및 역설계 작업 정의 언어 RWDL
제안
Data structure
…
Data
format
KICT
역설계 자동화 알고리즘 PCD-SEMM 및 역설계 작업 정의 언어 RWDL
제안
다양한 역설계 대상물과 작업흐름 가변성을 고려한 RWDL
scriptp = new project(‘new_project’) # script based on python
in = p.add(‘point_cloud_1.pcd’)
p.load(in)
p.del(in)
f1 = in.filtering(“region”, (x1, y1, z1), (x2, y2, z2), 30)
filters.add(f1)
in = filters.execute()
segs = in.segmentation(‘curvature’, 1.0, 1.5)
cylinders = segs.extract(‘cylinder’, ‘plant_command_parameters.xml’)
Lcylinders = segs.extract(‘L-bow’, ‘plant_command_parameters.xml’)
report = cylinders.checkDistance(‘report.xml’)
p.template(‘plant_template.xml’)
objects = cylinders.mappingObject(“0.1 <= C.R <= 0.2
=> [KS or JS or DIN] 0.1 pipe
w=0.01 with C.P1, C.P2“)
BIMobjects = objects.mappingBIM(‘BIMobject_mapping_ruleset.xml’)
…
KICT
PCD-SEMM 및 RWDL기반 역설계 작업 자동화 효율 비교
Test results (Sample: A, B, C, D Plant)
Test Item A Sample B Sample C Sample D Plant Sample Average
Total Points 480,220 364,340 807,509 2,181,234 -
Total St-Cylinders in PCD 60 60 90 220 -
R1. Straight pipes extraction (%) 51 (85.00) 55 (91.66) 78 (86.66) 182 (82.72) 86.51%
Total L-Cylinders in PCD 40 41 59 104
R2. Fitting pipes (L-bow)
extraction (%)
29 (72.50) 27 (65.85) 52 (88.13) 89 (85.57) 78.01%
R3. Straight pipes extraction
time (sec)
17.14 42.88 20.25 70.16 37.60
R4. Fitting pipe extraction time (sec) R3 + 0.36 R3 + 0.37 R3 + 0.55 R3 + 1.1 38.20
기술이전을 통한 상용화 (S사 기술 이전 및 RE3D 상용화/테스트 결과)
KICT
PCD-SEMM 및 RWDL기반 역설계 작업 자동화 효율 비교
Comparison results
C- company solution
(1053 pipes extraction. 55 mins)
Proposed method
(1100 pipes extraction. 8 mins)
Improvement
ratio=1.04%
Time=687%
<
기술이전을 통한 상용화 (S사 기술 이전 및 RE3D 상용화/테스트 결과)
KICT
Thanks for your interest
BIM principle Makers
KICT
Appendix – 기술/특허 조사 및 연구한 기술에 대한 특허 출원
그림. FOCUS 도구 특허 결과 맵
• FOCUS 특허 분석 (국내 6건 / 해외 14건)
• 건축 MEP 파이프 객체 추출 기술은 해당 특허 없음
• RANSAC 같은 기본 기술 기반 역설계 시스템은 특허로 등록 - 국내 아이너스 기술(현재 쓰리디시스템즈 코리아) / 해외 제록스 등
그림. 국내외 특허 검색 결과
※ Keyword – Reverse engineering, MEP, Vectorization, Point cloud, Pipe, Segmentation, Feature
• 기술 이전 특허 (3건)
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
KICT
Appendix – 3차원 스캐닝 장애 요인 및 대안 연구
P 14
P 17
높은고도3D스캔시험진입불가영역스캔센서처리장치시험
P 25

More Related Content

Viewers also liked

ομιλια για χρηση ουσιων
ομιλια για χρηση ουσιωνομιλια για χρηση ουσιων
ομιλια για χρηση ουσιων
Yolanda Komianou
 
Wayne pua sm portfolio
Wayne pua sm portfolioWayne pua sm portfolio
Wayne pua sm portfolio
Wayne Pua
 
Proposal usaha [autosaved]
Proposal usaha [autosaved]Proposal usaha [autosaved]
Proposal usaha [autosaved]
Jaka Suryadi
 
5 Worst States for Identity Theft
5 Worst States for Identity Theft5 Worst States for Identity Theft
5 Worst States for Identity Theft
IDT911
 
Take Charge of Your Life - Personal & Professional (ICLEF)
Take Charge of Your Life - Personal & Professional (ICLEF)Take Charge of Your Life - Personal & Professional (ICLEF)
Take Charge of Your Life - Personal & Professional (ICLEF)
Cynthia Sharp
 

Viewers also liked (15)

Evaluation question 5
Evaluation question 5Evaluation question 5
Evaluation question 5
 
ομιλια για χρηση ουσιων
ομιλια για χρηση ουσιωνομιλια για χρηση ουσιων
ομιλια για χρηση ουσιων
 
Wayne pua sm portfolio
Wayne pua sm portfolioWayne pua sm portfolio
Wayne pua sm portfolio
 
Kohus
KohusKohus
Kohus
 
Public Outreach for EU-FP7 Research Projects in Solar Science
Public Outreach for EU-FP7 Research Projects in Solar SciencePublic Outreach for EU-FP7 Research Projects in Solar Science
Public Outreach for EU-FP7 Research Projects in Solar Science
 
Proposal usaha [autosaved]
Proposal usaha [autosaved]Proposal usaha [autosaved]
Proposal usaha [autosaved]
 
What jesus values
What jesus valuesWhat jesus values
What jesus values
 
5 Worst States for Identity Theft
5 Worst States for Identity Theft5 Worst States for Identity Theft
5 Worst States for Identity Theft
 
The Secrets to our Mobile Growth
The Secrets to our Mobile GrowthThe Secrets to our Mobile Growth
The Secrets to our Mobile Growth
 
Bản tin Hoa Sen số 5: Sống tử tế, học đàng hoàng, kết nối năm châu
Bản tin Hoa Sen số 5: Sống tử tế, học đàng hoàng, kết nối năm châuBản tin Hoa Sen số 5: Sống tử tế, học đàng hoàng, kết nối năm châu
Bản tin Hoa Sen số 5: Sống tử tế, học đàng hoàng, kết nối năm châu
 
Service Innovation for Supreme Customer Experience Workshop
Service Innovation for Supreme Customer Experience Workshop Service Innovation for Supreme Customer Experience Workshop
Service Innovation for Supreme Customer Experience Workshop
 
Aristotle
AristotleAristotle
Aristotle
 
Take Charge of Your Life - Personal & Professional (ICLEF)
Take Charge of Your Life - Personal & Professional (ICLEF)Take Charge of Your Life - Personal & Professional (ICLEF)
Take Charge of Your Life - Personal & Professional (ICLEF)
 
Book2
Book2Book2
Book2
 
Document Archiving with OM Plus
Document Archiving with OM PlusDocument Archiving with OM Plus
Document Archiving with OM Plus
 

More from Tae wook kang

오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
Tae wook kang
 

More from Tae wook kang (20)

3D 모델러 ADDIN 개발과정 요약
3D 모델러 ADDIN 개발과정 요약3D 모델러 ADDIN 개발과정 요약
3D 모델러 ADDIN 개발과정 요약
 
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
오픈소스로 쉽게 따라해보는 Unreal과 IoT 연계 및 개발 방법 소개.pdf
 
Python과 node.js기반 데이터 분석 및 가시화
Python과 node.js기반 데이터 분석 및 가시화Python과 node.js기반 데이터 분석 및 가시화
Python과 node.js기반 데이터 분석 및 가시화
 
BIM 표준과 구현 (standard and development)
BIM 표준과 구현 (standard and development)BIM 표준과 구현 (standard and development)
BIM 표준과 구현 (standard and development)
 
ISO 19166 BIM-GIS conceptual mapping
ISO 19166 BIM-GIS conceptual mappingISO 19166 BIM-GIS conceptual mapping
ISO 19166 BIM-GIS conceptual mapping
 
SBF(Scan-BIM-Field) 기반 스마트 시설물 관리 기술 개발
SBF(Scan-BIM-Field) 기반 스마트 시설물 관리 기술 개발SBF(Scan-BIM-Field) 기반 스마트 시설물 관리 기술 개발
SBF(Scan-BIM-Field) 기반 스마트 시설물 관리 기술 개발
 
오픈소스 ROS기반 건설 로보틱스 기술 개발
오픈소스 ROS기반 건설 로보틱스 기술 개발오픈소스 ROS기반 건설 로보틱스 기술 개발
오픈소스 ROS기반 건설 로보틱스 기술 개발
 
한국 건설 기술 전망과 건설 테크 스타트업 소개
한국 건설 기술 전망과 건설 테크 스타트업 소개한국 건설 기술 전망과 건설 테크 스타트업 소개
한국 건설 기술 전망과 건설 테크 스타트업 소개
 
Coding, maker and SDP
Coding, maker and SDPCoding, maker and SDP
Coding, maker and SDP
 
오픈 데이터, 팹시티와 메이커
오픈 데이터, 팹시티와 메이커오픈 데이터, 팹시티와 메이커
오픈 데이터, 팹시티와 메이커
 
AI - Media Art. 인공지능과 미디어아트
AI - Media Art. 인공지능과 미디어아트AI - Media Art. 인공지능과 미디어아트
AI - Media Art. 인공지능과 미디어아트
 
ISO 19166 BIM to GIS conceptual mapping China (WUHAN) meeting
ISO 19166 BIM to GIS conceptual mapping China (WUHAN) meetingISO 19166 BIM to GIS conceptual mapping China (WUHAN) meeting
ISO 19166 BIM to GIS conceptual mapping China (WUHAN) meeting
 
건설 스타트업과 오픈소스
건설 스타트업과 오픈소스건설 스타트업과 오픈소스
건설 스타트업과 오픈소스
 
블록체인 기반 건설 스마트 서비스와 계약
블록체인 기반 건설 스마트 서비스와 계약블록체인 기반 건설 스마트 서비스와 계약
블록체인 기반 건설 스마트 서비스와 계약
 
4차산업혁명과 건설, 그리고 블록체인
4차산업혁명과 건설, 그리고 블록체인4차산업혁명과 건설, 그리고 블록체인
4차산업혁명과 건설, 그리고 블록체인
 
Case Study about BIM on GIS platform development project with the standard model
Case Study about BIM on GIS platform development project with the standard modelCase Study about BIM on GIS platform development project with the standard model
Case Study about BIM on GIS platform development project with the standard model
 
도시 인프라 공간정보 데이터 커넥션-통합 기술 표준화를 위한 ISO TC211 19166 개발 이야기
도시 인프라 공간정보 데이터 커넥션-통합 기술 표준화를 위한 ISO TC211 19166 개발 이야기 도시 인프라 공간정보 데이터 커넥션-통합 기술 표준화를 위한 ISO TC211 19166 개발 이야기
도시 인프라 공간정보 데이터 커넥션-통합 기술 표준화를 위한 ISO TC211 19166 개발 이야기
 
Smart BIM for Facility Management
Smart BIM for Facility ManagementSmart BIM for Facility Management
Smart BIM for Facility Management
 
메이커 시티와 메이커 운동 참여를 통해 얻은 것
메이커 시티와 메이커 운동 참여를 통해 얻은 것메이커 시티와 메이커 운동 참여를 통해 얻은 것
메이커 시티와 메이커 운동 참여를 통해 얻은 것
 
최신 3차원 이미지 스캔 역설계 기술 전망 및 건설 활용
최신 3차원 이미지 스캔 역설계 기술 전망 및 건설 활용최신 3차원 이미지 스캔 역설계 기술 전망 및 건설 활용
최신 3차원 이미지 스캔 역설계 기술 전망 및 건설 활용
 

기능 가변성을 고려한 3차원 이미지 스캔 기반 건축 MEP 역설계 자동화 방안 연구

  • 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}
  • 7. KICT 노이즈있는 포인트 클라우드 세그먼테이션/형상/뼈대 추출 P 12 Num = 70
  • 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 작업자 진입 불가 영역 스캔 가능성 확인
  • 10. KICT 실험용 MEP 모델 포인트 클라우드 취득 P 14
  • 11. KICT 실험용 MEP 모델 포인트 클라우드 취득 P 14
  • 12. KICT 실험용 MEP 모델 포인트 클라우드 취득 P 14
  • 13. KICT 역설계 자동화 알고리즘 PCD-SEMM 및 역설계 작업 정의 언어 RWDL 제안 Scan to BIM algorithm (PCD- SEMM) BIM_objects scan_to_BIM(PCD = 3D point cloud) begin function splited_shapes = {}; merged_shapes = {}; grids = create_spatial_grid(PCD); // 대용량 PCD 분할 for(grid in grids) // 그리드 별 형상 추출 { segments = grid.segmenation(); // 세그먼테이션 segments = noise_filtering(segments); // 필터링 shapes = RANSAC(segments) or sweeping_feature_template_based_extraction(segments); splited_shapes.add(shapes); } merged_shapes = merge_shapes(splited_shapes); // 병합 merged_shapes.update_fitting_shapes(); // ex) L-bow BIM_objects = BIM_object_mapping(merged_shapes); // BIM 맵핑 end function || 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} Section2D = M p ∙Segment3D Section3D = I(M p) ∙Section2D PCD section Rtrace 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} Feature trace template skeletonization Disk
  • 14. KICT 역설계 자동화 알고리즘 PCD-SEMM 및 역설계 작업 정의 언어 RWDL 제안 Data structure Database #name: string PointCloud #name: string #path: string +load() Point<XYZ> Segment #name: string #path: string * * * Project +name: string PointCloud<XYZ> Point<RGB>PointCloud<RGB> PointCloud<Normal> Point<Normal> * * PointIndices #indices Shape #<<Unique>> name: string ShapeList #name: string +load() * CylinderShape #radius: double LBowCylinderShape PlaneShape StrightCylinderShape RWDL_Rule -name: string -path: string +Rule(name: string) <<virtual>>+parsing(path: string) <<virtual>>+execute() #qualityCheckRules #objectMappingRules * Grid * RWDL_RuleSet <<enumeration>> QualityCheckRule ObjectMappingRule
  • 15. KICT 역설계 자동화 알고리즘 PCD-SEMM 및 역설계 작업 정의 언어 RWDL 제안 Data structure … Data format
  • 16. KICT 역설계 자동화 알고리즘 PCD-SEMM 및 역설계 작업 정의 언어 RWDL 제안 다양한 역설계 대상물과 작업흐름 가변성을 고려한 RWDL scriptp = new project(‘new_project’) # script based on python in = p.add(‘point_cloud_1.pcd’) p.load(in) p.del(in) f1 = in.filtering(“region”, (x1, y1, z1), (x2, y2, z2), 30) filters.add(f1) in = filters.execute() segs = in.segmentation(‘curvature’, 1.0, 1.5) cylinders = segs.extract(‘cylinder’, ‘plant_command_parameters.xml’) Lcylinders = segs.extract(‘L-bow’, ‘plant_command_parameters.xml’) report = cylinders.checkDistance(‘report.xml’) p.template(‘plant_template.xml’) objects = cylinders.mappingObject(“0.1 <= C.R <= 0.2 => [KS or JS or DIN] 0.1 pipe w=0.01 with C.P1, C.P2“) BIMobjects = objects.mappingBIM(‘BIMobject_mapping_ruleset.xml’) …
  • 17. KICT PCD-SEMM 및 RWDL기반 역설계 작업 자동화 효율 비교 Test results (Sample: A, B, C, D Plant) Test Item A Sample B Sample C Sample D Plant Sample Average Total Points 480,220 364,340 807,509 2,181,234 - Total St-Cylinders in PCD 60 60 90 220 - R1. Straight pipes extraction (%) 51 (85.00) 55 (91.66) 78 (86.66) 182 (82.72) 86.51% Total L-Cylinders in PCD 40 41 59 104 R2. Fitting pipes (L-bow) extraction (%) 29 (72.50) 27 (65.85) 52 (88.13) 89 (85.57) 78.01% R3. Straight pipes extraction time (sec) 17.14 42.88 20.25 70.16 37.60 R4. Fitting pipe extraction time (sec) R3 + 0.36 R3 + 0.37 R3 + 0.55 R3 + 1.1 38.20 기술이전을 통한 상용화 (S사 기술 이전 및 RE3D 상용화/테스트 결과)
  • 18. KICT PCD-SEMM 및 RWDL기반 역설계 작업 자동화 효율 비교 Comparison results C- company solution (1053 pipes extraction. 55 mins) Proposed method (1100 pipes extraction. 8 mins) Improvement ratio=1.04% Time=687% < 기술이전을 통한 상용화 (S사 기술 이전 및 RE3D 상용화/테스트 결과)
  • 19. KICT Thanks for your interest BIM principle Makers
  • 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. 1분 안에 문제점과 기술 개발 시 좋아 지는 점 임펙트 있게 처리 해야 함
  2. A, B, C 무엇인지
  3. 현장 입장 반영하였음.
  4. 현장 입장 반영하였음.
  5. 현장 입장 반영하였음.
  6. 현장 입장 반영하였음.
  7. 현장 입장 반영하였음.
  8. v 시설물 관리에 어떻게 쓰이냐? (뒷장 – 파급효과… 활용처). 저 사례에서 실제로 얼마나 줄였냐? 기술적용하면 얼마나 절감되냐? V 비용 절감 구체적으로 어느 부분에서 절감 되나? V 기존 사례와 다른 점(문제점/차이점 차별성) V 글만 크게 대표 키워드
  9. v 시설물 관리에 어떻게 쓰이냐? (뒷장 – 파급효과… 활용처). 저 사례에서 실제로 얼마나 줄였냐? 기술적용하면 얼마나 절감되냐? V 비용 절감 구체적으로 어느 부분에서 절감 되나? V 기존 사례와 다른 점(문제점/차이점 차별성) V 글만 크게 대표 키워드