메타버스 아카데미 2기 최종 프로젝트
🎥 시연 영상 보러가기(Click)
📙 발표자료 보러가기(Click)
개발기간: 2023.10.07 ~ 2023.11.30
| AI | AI | server | Unreal | Unreal | Data science |
|---|---|---|---|---|---|
| 정민교 | 김종민 | 김나영 | 김채린 | 반재형 | 강지석 |
| 정민교 | Blueprint to 3D를 이용한 도면 3D 파일로 변환, FastAPI를 활용하여 모델 서빙 |
| 김종민 | Stable Diffusion을 사용하여 데이터 셋 제작, Hand drawting to Blueprint 모델 학습 |
도면을 업로드 하여 3D 그래픽으로 구현해 원하는 물품들을 원하는 위치에 가상으로 배치할 수 있는 인테리어 서비스
AI기술을 활용하여 사용자가 도면을 입력하면 3D 파일(fbx, glb 등)로 결과를 반환
모든 사람이 집 도면을 구할 수 없고 실제 있는 집이 아니라 가상의 집을 만들 수 있도록 손으로 그린 도면 그림을 이용하여 도면을 생성하는 기능을 추가하였음
도면을 분석하여 벽과 방을 탐지하고 Blender script를 사용하여 3D파일로 변환
![]() |
![]() |
|---|---|
| 원본 도면 | 3D file |
-
인식률 개선을 위하여 원본 도면을 이진화하고 벽, 방 탐지



Make binary Walls Rooms -
글자를 벽으로 인식하는 경우가 있어서 EasyOCR을 이용하여 제거
다만 텍스트가 세로로 되어있는 경우 인식율이 나쁘고 기울어져 있으면 인식이 불가능



원본 도면 OCR Text remove -
python을 사용한 Blender script 라이브러리. python에서 직접 사용도 가능하지만 불안정한 부분이 많아 추천하지 않는다. subprocess로 Blender를 실행시키고 거기서 script파일을 실행시키는 방법을 추천.
blender_script = 'Lib/fbx_converter.py' os.environ['BLEND_PATH'] = blend_path os.environ['SIZE_MULTIPLIER'] = str(size_multiplier) blender_command = [ 'C:/Program Files/Blender Foundation/Blender 3.6/blender.exe', '-b', '--python', blender_script ] process = subprocess.run(blender_command, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
-
-
도면 이미지 수집
AI Hub의 건축 도면 데이터 약 48000장 중에 명확하게 벽과 문과 창문을 구분 할 수 있는 이미지 1000장을 골라냄
테스트 용으로 사용하던 네이버 부동산에서 크롤링한 도면 데이터 200장을 합쳐 약 1200장의 도면 데이터 확보



구분하기 어려운 도면 측면 도면 사용 가능한 도면 -
Stable Diffusion을 이용한 데이터 셋 제작
모든 도면에 대한 손 그림을 직접 그릴 수 없어 Stable Diffusion Cany 모델을 활용하여 도면의 모양을 유지하며 손으로 그린 듯한 이미지를 생성
하나의 도면을 이용하여 여러 장의 이미지를 생성하여 데이터를 증강함
최종 데이터 셋은 하나의 도면 당 10장의 이미지를 생성하여 약 12000장을 이용하여 학습




원본 이미지 Generated img1 Generated img2 Generated img3 -
-
pix2pix 모델을 이용하여 손 도면을 도면과 같은 형태로 이미지 생성






Epoch1 Epoch10 Epoch30 Epoch50 Epoch100 Epoch300
![]() |
![]() |
![]() |
|---|---|---|
![]() |
![]() |
![]() |
| Hand drawing image | Generated blueprint | 3D file |
special thanks to 정민







