KR102622431B1 - 사용자 입력에 따라 인식된 평면의 정보에 기초하여 3d 모델을 생성하는 방법, 컴퓨터 프로그램 및 전자 장치 - Google Patents
사용자 입력에 따라 인식된 평면의 정보에 기초하여 3d 모델을 생성하는 방법, 컴퓨터 프로그램 및 전자 장치 Download PDFInfo
- Publication number
- KR102622431B1 KR102622431B1 KR1020220174967A KR20220174967A KR102622431B1 KR 102622431 B1 KR102622431 B1 KR 102622431B1 KR 1020220174967 A KR1020220174967 A KR 1020220174967A KR 20220174967 A KR20220174967 A KR 20220174967A KR 102622431 B1 KR102622431 B1 KR 102622431B1
- Authority
- KR
- South Korea
- Prior art keywords
- plane
- virtual
- recognized
- planes
- user input
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 30
- 238000004590 computer program Methods 0.000 title claims description 8
- 230000008859 change Effects 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 16
- 238000005516 engineering process Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 9
- 238000004422 calculation algorithm Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 239000011521 glass Substances 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000012805 post-processing Methods 0.000 description 4
- 239000013598 vector Substances 0.000 description 4
- 230000001678 irradiating effect Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000000704 physical effect Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000005266 casting Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000012780 transparent material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F3/04815—Interaction with a metaphor-based environment or interaction object displayed as three-dimensional, e.g. changing the user viewpoint with respect to the environment or object
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/003—Navigation within 3D models or images
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T19/00—Manipulating 3D models or images for computer graphics
- G06T19/20—Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Computer Hardware Design (AREA)
- Human Computer Interaction (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Architecture (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
지정된 공간에 포함된 제1 평면을 인식하는 단계; 상기 지정된 공간에 포함되고, 상기 제1 평면에 이웃하는 제2 평면의 적어도 일부를 인식하는 단계; 상기 인식된 제1 평면 및 제2 평면에 대한 정보를 사용자에게 제공하는 단계; 상기 제공된 정보에 기초하여 상기 인식된 제1 평면 및 제2 평면의 관계를 정의하는 사용자 입력을 수신하는 단계; 상기 수신된 사용자 입력에 기초하여 상기 인식된 제2 평면의 크기, 및 상기 인식된 제1 평면에 대한 상대적인 위치를 재인식하는 단계; 및 상기 인식된 제1 평면, 및 상기 크기 및 위치가 재인식된 제2 평면에 대한 정보에 기초하여, 상기 지정된 공간에 대응되는 3D 모델을 생성하는 단계;를 포함하는, 공간 레이아웃 생성 방법이 개시된다. 이 외에도 명세서를 통해 파악되는 다양한 실시 예가 가능하다.
Description
본 문서에 개시되는 실시 예들은 공간을 스캔하여 3D 모델을 생성하는 기술에 관한 것이다.
정보통신과 디스플레이 기술의 발달로 사용자 경험(User Experience, UE)을 만족시키기 위해 3차원 이미지를 제공하는 다양한 서비스들이 개발되고 있다. 이러한 대표적인 기술로는 3차원의 시각적인 디지털 콘텐츠를 제공하기 위한 가상현실(Virtual Reality, VR) 및 증강현실(Augmented Reality, AR)이 있다. 가상현실은 VR 글래스나 HMD(Head Mounted Display) 등의 디바이스를 통해 사용자를 현실 세계와 비슷하거나 창조된 세계로 데려가 가상의 경험을 하도록 하는 기술이고, 증강현실은 AR 글래스, HMD 등의 디바이스를 통해 현실 세계의 모습 위로 콘텐츠를 제공하는 기술이다. 나아가 여러 카메라와 센서를 활용해 현실 세계를 포착한 뒤 화면에 투사하는 방식, 즉 VR과 AR의 장점을 융합한 혼합현실(Mixed Reality, MR)이라는 기술도 개발되고 있다.
최근에는 앞서 언급한 모든 기술들을 포함하는 확장현실(Extended Reality)을 중심으로 한 메타버스 기술이 주목받고 있다. 메타버스(metaverse)는 3차원의 가상의 공간과 현실의 공간이 연결되는 혼합 현실 환경(mixed reality environment)를 제공한다.
앞서 언급한 가상의 공간 등을 구현한 기술, 특히 현실과 가상의 공간이 연결되는 메타버스 기술의 핵심은 사용자에게 얼마나 현실감 있는 경험을 제공할 수 있는가에 서비스 성공의 성패가 달렸다고 해도 무방할 수 있다. 사용자에게 현실감 있는 경험을 전해주기 위해 필요한 여러 기술들이 있겠지만, 가장 기본적으로 현실세계를 반영한 가상의 3차원 세계의 구현하는 기술이 필요할 것이다. 현실감 있는 가상세계를 구현하기 위해서는, 센서를 통해 감지된 현실세계를 올바르게 인식하여 가상세계를 구현해야 한다.
그러나 현실적으로 센싱 디바이스의 한계가 존재하고, 미리 예상할 수 없는 다양한 환경 등으로 인해 이를 구현과정에서 수많은 오차가 발생하고 있는 실정이다. 특히 현재 가장 주목받고 있는 메타버스 생태계에서 혼합 현실 환경을 구현할 때 가장 먼저 인식되어야 할 현실 공간의 천장, 바닥, 벽면 등의 인식은 다양한 깊이의 평면으로 인해 이를 인식하기 어렵고, 평면 등의 깊이가 일률적이라고 해도 공간에 배치된 가구 등의 물체로 인해 전체를 스캔하기 쉽지 않을 수 있다. 또한, 이러한 한계점을 극복하기 위해 AI(Artificial Intelligence)이나 다양한 스캔 환경을 고려한 인식 프로그램을 이용하는 경우, 하드웨어 및 통신 환경의 한계점으로 인해, 이를 실시간으로 기능을 제공하기 어려운 실정이다.
이에 따라, 본 발명의 다양한 실시 예는 인식되는 평면에 대한 정보를 실기간으로 제공하고 사용자와의 소통을 통해 특정 공간을 형성하는 평면을 정확하게 인식하는 기술을 제공하고자 한다.
본 문서에 개시되는 일 실시 예에 따른 전자 장치의 동작 방법은, 지정된 공간을 형성하는 적어도 하나의 평면을 인식하는 단계; 상기 지정된 공간에 포함되고, 상기 인식된 적어도 하나의 평면에 포함된 제1 평면에 이웃하는 제2 평면의 적어도 일부를 인식하는 단계; 상기 인식된 제1 평면 및 제2 평면의 인식된 적어도 일부에 대응되는 제1 가상 평면 및 제2 가상 평면을 생성하는 단계; 상기 생성된 제1 가상 평면 및 제2 가상 평면에 기초하여 상기 인식된 제1 평면 및 제2 평면의 관계를 정의하는 사용자 입력을 수신하는 단계; 상기 수신된 사용자 입력에 기초하여 상기 제2 가상 평면을 변경하는 단계; 및 상기 제1 가상 평면, 및 상기 변경된 제2 가상 평면을 포함하는, 상기 지정된 공간에 대응되는 3D 모델을 생성하는 단계;를 포함할 수 있다.
그리고 상기 제1 평면에 이웃하는 제2 평면은, 상기 제1 평면의 일단에 상기 제2 평면의 일단이 접촉하는 것일 수 있다.
또한, 상기 제2 평면의 적어도 일부를 인식하는 단계는, 뎁스 센서(depth sensor) 및 RGB 센서(RGB sensor) 중 적어도 하나를 통해 상기 제2 평면 위의 지점들을 감지하는 단계; 및 상기 감지된 지점들에 대한 정보에 기초하여 상기 제2 평면의 적어도 일부를 인식하는 단계;를 포함할 수 있다.
또한, 상기 관계를 정의하는 사용자 입력을 수신하기 전, 상기 지정된 공간에 포함된 천장 및 바닥의 평면 각각의 적어도 일부를 인식하는 단계; 상기 인식된 천장 및 바닥의 평면에 기초하여 가상의 천장 평면 바닥 평면을 생성하는 단계; 및 상기 생성된 가상의 천장 평면 및 바닥 평면에 기초하여 상기 천장 및 바닥의 평면 중 적어도 하나에 대한 상기 제2 평면과의 관계를 정의하는 사용자 입력을 수신하는 단계;를 더 포함하고, 상기 제2 가상 평면을 변경하는 단계는, 상기 수신된 사용자 입력을 포함한, 상기 인식된 복수의 평면들 사이의 관계를 정의하는 복수의 사용자 입력에 기초하여 상기 제2 가상의 평면을 변경할 수 있다.
또한, 상기 제2 평면의 적어도 일부를 인식하는 단계는, 상기 제2 평면의 일부를 인식하는 단계; 상기 제2 평면의 인식된 일부에 대한 정보를, 먼저 인식된 제3 평면에 대한 정보와 비교하여 상기 제3 평면이 상기 제2 평면에 포함되는지 판단하는 단계; 및 상기 제3 평면이 상기 제2 평면에 포함되는 경우, 상기 제2 평면의 인식된 일부, 및 상기 제3 평면에 대한 정보에 기초하여 상기 제2 평면의 인식된 일부를 확장하는 단계;를 포함할 수 있다.
또한, 상기 제1 가상 평면 및 제2 가상 평면을 생성하는 단계는, 센서로 감지중인 상기 제1 평면 및 제2 평면을 디스플레이에 표시하는 단계; 및 상기 디스플레이에 표시된 제1 평면 및 제2 평면 각각에 상기 제1 가상 평면 및 상기 제2 가상 평면을 중첩하여 표시하는 단계;를 포함하고, 상기 인식된 평면들의 관계를 정의하는 사용자 입력을 수신하는 단계는, 상기 디스플레이에 표시된 제1 가상 평면 및 제2 가상 평면을 통해 상기 사용자 입력을 수신하는 단계;를 포함할 수 있다.
또한, 상기 제1 가상 평면 및 제2 가상 평면을 생성하는 단계는, 상기 제1 가상 평면 및 제2 가상 평면을 포함하는 3D 모델을 디스플레이에 표시하는 단계;를 포함하고, 상기 인식된 평면들의 관계를 정의하는 사용자 입력을 수신하는 단계는, 상기 디스플레이에 표시된 3D 모델을 통해 상기 사용자 입력을 수신하는 단계;를 포함할 수 있다.
또한, 상기 제2 가상 평면을 변경하는 단계는, 상기 수신된 사용자 입력에 기초하여 상기 제2 가상 평면의 크기, 및 상기 제1 가상 평면에 대한 상대적인 위치 중 적어도 하나를 변경하는 단계;를 포함할 수 있다.
또한, 상기 수신된 사용자 입력은 상기 제2 가상 평면의 크기 및 위치 중 어느 하나를 정의하는 입력이고, 상기 제2 가상 평면의 크기, 및 상대적인 위치를 변경하는 단계는, 상기 수신된 사용자 입력에 기초하여 상기 제2 가상 평면의 크기 및 위치 중 어느 하나를 변경하는 단계;를 포함할 수 있다.
또한, 상기 제2 가상 평면의 크기, 및 상대적인 위치를 변경하는 단계는, 상기 수신된 사용자 입력에 기초하여 상기 제2 가상 평면의 크기 및 위치 중 변경된 어느 하나를 기준으로 나머지 하나를 변경하는 단계;를 포함할 수 있다.
또한, 상기 수신된 사용자 입력은 상기 제1 평면 및 제2 평면의 이웃하는 관계를 정의하는 입력이고, 상기 어느 하나를 기준으로 나머지 하나를 결정하는 단계는, 상기 수신된 사용자 입력에 기초하여 상기 제2 가상 평면의 상기 제1 기상 평면에 대한 상대적인 위치를 기준으로, 상기 제2 가상 평면의 크기를 확장 또는 축소하는 단계를 포함할 수 있다.
또한, 상기 수신된 사용자 입력은 상기 인식된 제1 평면 및 제2 평면을 상기 지정된 공간의 경계를 형성하는 평면으로 정의하는 입력이고, 상기 어느 하나를 기준으로 나머지 하나를 결정하는 단계는, 상기 수신된 사용자 입력에 기초하여 상기 제1 가상 평면 및 제2 가상 평면의 일단이 서로 접촉하여 외부와의 경계를 형성하도록 상기 인식된 제2 가상 평면의 위치 및 크기 중 변경된 어느 하나를 기준으로 상기 인식된 제2 가상 평면의 나머지 하나를 변경하는 단계;를 포함할 수 있다.
또한, 상기 지정된 공간에 대응되는 3D 모델을 생성하기 위해 상기 제1 평면 및 제2 평면을 선택하는 사용자 입력을 수신하는 단계;를 더 포함할 수 있다.
또한, 상기 제1 평면 및 제2 평면을 선택하는 사용자 입력을 수신하는 단계는, 상기 감지중인 표면의 이미지를 표시한 디스플레이의 지정된 부분이, 상기 이미지 상의 제1 평면 및 제2 평면 각각에 중첩되어 표시된 상기 제1 가상 평면 및 제2 가상 평면에 위치하는 상태에서, 평면의 인식을 시작하기 위한 상기 사용자 입력을 수신하는 단계;를 포함할 수 있다.
또한, 상기 인식된 평면들의 관계를 정의하는 사용자 입력을 수신하는 단계는, 상기 제2 평면의 전체가 인식된 경우, 상기 사용자 입력을 수신하지 않고, 상기 지정된 공간을 대응하는 3D 모델을 생성하는 단계를 수행할 수 있다.
본 문서에 개시되는 일 실시 예에 따른 컴퓨터 프로그램은, 지정된 공간을 형성하는 적어도 하나의 평면을 인식하는 명령어; 상기 지정된 공간에 포함되고, 상기 인식된 적어도 하나의 평면에 포함된 제1 평면에 이웃하는 제2 평면의 적어도 일부를 인식하는 명령어; 상기 인식된 제1 평면 및 제2 평면의 인식된 적어도 일부에 대응되는 제1 가상 평면 및 제2 가상 평면을 생성하는 명령어; 상기 생성된 제1 가상 평면 및 제2 가상 평면에 기초하여 상기 인식된 제1 평면 및 제2 평면의 관계를 정의하는 사용자 입력을 수신하는 명령어; 상기 수신된 사용자 입력에 기초하여 상기 제2 가상 평면을 변경하는 명령어; 및 상기 제1 가상 평면, 및 상기 변경된 제2 가상 평면을 포함하는, 상기 지정된 공간에 대응되는 3D 모델을 생성하는 명령어;를 포함할 수 있다.
본 문서에 개시되는 일 실시 예에 따른 전자 장치는, 센싱 장치; 사용자 인터페이스 장치; 하나 이상의 명령어를 저장하는 메모리; 및 상기 메모리에 저장된 상기 하나 이상의 명령어를 실행하는 프로세서;를 포함하고, 상기 프로세서는, 상기 하나 이상의 명령어를 실행함으로써, 상기 센싱 장치를 통해, 지정된 공간을 형성하는 적어도 하나의 평면을 인식하고, 상기 센싱 장치를 통해, 상기 지정된 공간에 포함되고 상기 인식된 적어도 하나의 평면에 포함된 제1 평면에 이웃하는 제2 평면의 적어도 일부를 인식하고, 상기 사용자 인터페이스 장치를 통해, 상기 인식된 제1 평면 및 상기 제2 평면의 적어도 일부에 대응되는 제1 가상 평면 및 제2 가상 평면을 생성하고, 상기 사용자 인터페이스 장치를 통해, 상기 생성된 제1 가상 평면 및 제2 가상 평면에 기초하여 상기 인식된 제1 평면 및 제2 평면의 관계를 정의하는 사용자 입력을 수신하고, 상기 수신된 사용자 입력에 기초하여 상기 제2 가상 평면을 변경하고, 상기 사용자 인터페이스 장치를 통해, 상기 제1 가상 평면, 및 상기 변경된 제2 평면을 포함하는, 상기 지정된 공간에 대응되는 3D 모델을 생성할 수 있다.
본 문서에 개시되는 실시 예에 따르면, 전자 장치를 통해 특정 공간을 스캔하는 기능은, 평면들 사이의 관계를 정의하는 사용자 입력에 따라 센서를 통해 인식된 평면들의 위치 및 크기를 재인식함으로써, 센서에서 오차가 발생하거나, 공간의 구조의 특성 및 공간에 배치되어 있는 물건에 의해 평면을 인식하기 어려운 환경에 의해 평면들의 상대적인 위치가 잘못 인식되거나, 평면의 일부만이 인식된 경우라도 공간을 형성하는 평면들을 다시 정확하게 인식할 수 있다. 그리고 전자 장치는 평면으로 인식되는 여러 영역에 대한 정보를 사용자에게 제공하고, 이들 중 선택하는 사용자 입력에 따라 공간을 형성하는 평면을 인식함으로써, 다양한 평면이 인식될 수 있는 환경에서도 정확하게 특정 공간에 대응되는 3D 모델을 생성할 수 있다. 또한, 전자 장치는 공간을 정확하게 인식하기 위한 복잡한 알고리즘을 이용하지 않고 위와 같이 적절한 단계에서 사용자 입력을 이용함으로써, 정확하게 공간을 형성하는 평면을 인식하면서도 사용자에게 실시간으로 가상의 공간을 만드는 것과 같은 경험을 제공할 수 있다.
도 1은 다양한 실시 예에 따른 실제 공간의 3D 모델을 생성하기 위한 처리 과정을 나타낸 흐름도이다.
도 2는 일 실시 예에 따른 전자 장치를 통해 공간을 스캔하는 것을 나타낸 도면이다.
도 3은 일 실시 예에 따른 전자 장치를 통해 공간을 인식하는 것을 나타낸 도면이다.
도 4는 일 실시 예에 따른 전자 장치가 지정된 평면을 인식하는 것을 나타낸 도면이다.
도 5는 일 실시 예에 따른 전자 장치가 부분적으로 인식된 평면을 확장하는 것을 나타낸 도면이다.
도 6a 내지 6f는 일 실시 예에 따른 사용자 입력에 따라 평면을 재인식하는 것을 나타낸 도면이다.
도 7은 일 실시 예에 따른 전자 장치가 인식된 평면들의 정보에 기초하여 생성한 3D 모델을 나타낸 도면이다.
도 8은 일 실시 예에 따른 전자 장치가 생성된 3D 모델을 저장하는 것을 나타낸 도면이다.
도 9는 일 실시 예에 따른 전자 장치의 실제 공간의 3D 모델을 생성하는 방법을 나타낸 흐름도이다.
도 10은 일 실시 예에 따른 3D 모델을 생성하기 위한 사용자 단말의 구성을 나타낸 도면이다.
도 2는 일 실시 예에 따른 전자 장치를 통해 공간을 스캔하는 것을 나타낸 도면이다.
도 3은 일 실시 예에 따른 전자 장치를 통해 공간을 인식하는 것을 나타낸 도면이다.
도 4는 일 실시 예에 따른 전자 장치가 지정된 평면을 인식하는 것을 나타낸 도면이다.
도 5는 일 실시 예에 따른 전자 장치가 부분적으로 인식된 평면을 확장하는 것을 나타낸 도면이다.
도 6a 내지 6f는 일 실시 예에 따른 사용자 입력에 따라 평면을 재인식하는 것을 나타낸 도면이다.
도 7은 일 실시 예에 따른 전자 장치가 인식된 평면들의 정보에 기초하여 생성한 3D 모델을 나타낸 도면이다.
도 8은 일 실시 예에 따른 전자 장치가 생성된 3D 모델을 저장하는 것을 나타낸 도면이다.
도 9는 일 실시 예에 따른 전자 장치의 실제 공간의 3D 모델을 생성하는 방법을 나타낸 흐름도이다.
도 10은 일 실시 예에 따른 3D 모델을 생성하기 위한 사용자 단말의 구성을 나타낸 도면이다.
이하, 본 발명의 다양한 실시 예가 첨부된 도면을 참조하여 기재된다. 그러나, 이는 본 발명을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 본 발명의 실시 예의 다양한 변경(modification), 균등물(equivalent) 및/또는 대체물(alternative)을 포함하는 것으로 이해되어야 한다. 또한, 실시예들의 특징을 보다 명확히 설명하기 위하여 이하의 실시예들이 속하는 기술분야에서 통상의 지식을 가진 자에게 널리 알려져 있는 사항들에 관해서 자세한 설명은 생략한다.
한편, 또한, 본 명세서에서 사용되는 '제1' 또는 '제2' 등과 같이 서수를 포함하는 용어는 다양한 구성 요소들을 설명하는데 사용할 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만 사용된다.
명세서 전체에서, "전자 장치"는 스마트폰(smartphone), 태블릿 PC(tablet PC), 휴대폰(mobile phone), PDA(personal digital assistant), 랩톱 PC(laptop PC)의 모바일 컴퓨팅 장치, 또는 데스크톱 PC(desktop PC), TV, 스마트 TV(smart TV) 등의 비모바일 컴퓨팅 장치 등일 수 있으나, 이에 제한되지 않는다.
"공간"은 외부와 구분되는 영역으로, 그 경계를 정할 수 있는 한정된 곳을 말할 수 있다. 상기 공간은 복수의 "평면"으로 이루어질 수 있다. 이에 따라, 공간은 센서를 통해 평면을 스캔하여, 스캔된 공간에 대응되는 가상의 공간, 즉 3D 모델이 만들어질 수 있다.
"3D 모델"은 스캔된 공간에 대응되는 가상 공간으로써, 스캔을 통해 인식된 공간의 레이아웃에 대한 3차원의 정보가 제공된 것을 말할 수 있다. 상기 3D 모델은 상기 스캔된 복수의 평면에 각각 대응되는 복수의 "가상 평면"으로 이루어질 수 있다. 상기 제공된 3차원의 정보는 디스플레이를 통하 시각적 정보일 수 있다.
도 1은 다양한 실시 예에 따른 실제 공간의 3D 모델을 생성하기 위한 처리 과정을 나타낸 흐름도이다.
도 1을 참조하면, 전자 장치(10)는 공간을 이루는 평면을 인식하고, 인식된 평면 사이의 관계를 정의하는 사용자 입력에 따라 실제 공간의 3D 모델(3 dimension model)(또는, 공간 레이아웃)을 생성할 수 있다.
일 실시 예에 따르면, 전자 장치(10)는 센서(sensor)를 통해 외부 환경을 인식하고, 인식된 환경에 대한 정보에 기초하여 3D 모델을 생성하는 전자 장치일 수 있다. 예를 들어, 전자 장치(10)는 사용자가 데스크톱 PC, 랩톱 PC 등, 해당 장소에 위치하여 공간을 스캔하고, 스캔을 통해 획득한 데이터를 처리하여 3D 모델을 생성하는 범용 전자 장치일 수 있다. 또한, 더 적합하게는 전자 장치(10)는 스마트폰, 태블릿 PC 등, 사용자가 이를 휴대하고 공간의 일부를 스캔하여 공간 전체에 대한 데이터를 획득하여 3D 모델을 생성하는 휴대용 전자 장치일 수 있다.
일 실시 예에 따르면, 저장 장치(20)는 전자 장치(10)에서 생성된 정보를 저장하는 저장 장치일 수 있다. 일 실시 예에 따르면, 저장 장치(20)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 램(RAM; Random Access Memory), 롬(ROM; Read-Only Memory) 등으로 구현된 전자 장치(10)의 내부 메모리, 및 외부에 구현된 DB(database) 중 적어도 하나를 통해 구현될 수 있다.
일 실시 예에 따르면, 110 블록에서, 전자 장치(10)는 센서(sensor)를 통해 지정된 공간의 내부 표면을 감지할 수 있다. 예를 들어, 전자 장치(10)는 센서를 통해 실시간으로 지정된 공간의 내부 표면을 감지할 수 있다. 상기 표면을 감지하기 위한 센서는, 예를 들어, 뎁스 센서(depth sensor) 및 RGB 센서(RGB sensor) 중 적어도 하나일 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 감지된 표면에 대한 정보를 사용자에게 제공할 수 있다. 예를 들어, 전자 장치(10)는 디스플레이를 통해 감지중인 공간의 표면의 정보를 실시간으로 제공할 수 있다. 이에 대해서는 도 2에서 더 자세하게 설명하겠다.
일 실시 예에 따르면, 120 블록에서, 전자 장치(10)는 상기 감지중인 표면에서 평면을 인식할 수 있다. 예를 들어, 전자 장치(10)는 감지중인 표면에서 지정된 공간을 형성하는 평면의 적어도 일부를 인식할 수 있다. 상기 지정된 공간을 형성하는 평면은, 예를 들어, 천장, 바닥, 기둥 및 벽의 평면과 같이 공간을 형성하는 평면일 수 있다. 일 실시 예에 따르면, 상기 평면의 인식은 평면에 대한 정보를 획득하는 것을 의미할 수 있다. 상기 평면에 대한 정보는, 예를 들어, 평면의 크기 및 위치에 대한 정보를 포함할 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 인식된 평면에 대한 정보를 실시간으로 제공할 수 있다. 이에 대해서는 도 3에서 더 자세하게 설명하겠다. 일 실시 예에 따르면, 전자 장치(10)는 공간의 지정된 평면을 인식할 수 있다. 예를 들어, 전자 장치(10)는 공간을 스캔하는데 중요한 평면을 먼저 인식할 수 있다. 상기 중요한 평면은, 예를 들어, 천장 및 바닥을 포함할 수 있다. 이에 대해서는 도 4에서 더 자세하게 설명하겠다.
일 실시 예에 따르면, 121 블록에서, 전자 장치(10)는 일부가 인식된 평면의 다른 일부에 대한 정보가 저장 장치(20)에 저장되어 있는 경우, 상기 저장된 평면에 대한 정보에 기초하여 평면을 재인식할 수 있다. 예를 들어, 전자 장치(10)는 상기 다른 일부에 대한 정보가 저장되어 있는 경우, 상기 일부가 인식된 평면에 상기 저장된 평면을 결합하여, 평면의 아직 인식되지 않은 영역까지 인식된 영역을 확장할 수 있다. 이에 대해서는 도 5에서 더 자세하게 설명하겠다.
일 실시 예에 따르면, 130 블록에서, 전자 장치(10)는 상기 인식된 평면에 대응되는 가상 평면을 생성할 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 실시간으로 감지 중인 표면의 이미지를 통해, 상기 생성된 가상 평면을 표시할 수 있다. 예를 들어, 전자 장치(10)는 상기 이미지 상의 평면에 각각 대응되는 가상 평면을 중첩하여 표시할 수 있다. 이에 대해서는 도 3에서 더 자세하게 설명하겠다. 일 실시 예에 따르면, 전자 장치(10)는 상기 생성된 가상 평면을 저장 장치(20)에 저장할 수 있다. 예를 들어, 전자 장치(10)는 사용자의 선택에 따라 가상 평면을 저장 장치(20)에 저장될 수 있다. 상기 저장된 가상 평면은, 예를 들어, 지정된 공간에 대응되는 임시의 3D 모델을 생성하는데 이용될 수 있다. 이에 대해서는 도 4에서 더 자세하게 설명하겠다.
일 실시 예에 따르면, 140 블록에서, 전자 장치(10)는 인식된 평면들의 관계를 정의하는 사용자 입력을 수신할 수 있다. 예를 들어, 전자 장치(10)는 서로 이웃하는 평면들에 대한 관계를 정의하는 사용자 입력을 수신할 수 있다. 상기 이웃하는 평면들은 하나의 평면의 일단이 다른 하나의 평면의 일단에 접촉하는 것을 의미할 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 실시간으로 인식되는 평면들의 관계를 정의하는 사용자 입력을 수신할 수 있다. 예를 들어, 전자 장치(10)는 상기 실시간으로 감지중인 표면의 이미지 상에 중첩하여 표시된 가상 평면을 통해, 인식된 평면들의 관계를 정의하는 사용자 입력을 수신할 수 있다. 이에 따라, 전자 장치(10)는 지정된 공간을 스캔하는 동시에, 인식되는 평면들 사이의 관계를 실시간으로 정의할 수 있는 공간 인식 기능을 제공할 수 있다. 또한, 전자 장치(10)는 상기 생성된 가상 평면을 이용한 임시의 3D 모델을 통해 평면들의 관계를 정의하는 사용자 입력을 수신할 수도 있다. 다시 말해, 전자 장치(10)는 3D 모델을 후처리하는 방식의 공간 인식 기능을 제공할 수 있다.
일 실시 예에 따르면, 150 블록에서, 전자 장치(10)는 상기 수신된 사용자 입력에 기초하여 인식된 평면의 크기 및 위치 중 적어도 하나를 재인식할 수 있다. 예를 들어, 전자 장치(10)는 생성된 가상 평면들의 크기, 및 다른 가상 평면에 대한 상대적인 위치 중 적어도 하나를 변경할 수 있다. 이에 대해서는 도 6a 내지 도 6f에서 자세히 설명하겠다. 일 실시 예에 따르면, 전자 장치(10)는 상기 재인식된 평면에 대한 정보를 저장 장치(20)에 저장할 수 있다. 예를 들어, 전자 장치(10)는 사용자의 선택에 따라 상기 변경된 가상 평면을 저장 장치(20)에 저장할 수 있다. 상기 저장된 가상 평면은, 예를 들어, 다음 블록에서의 완성된 3D 모델을 생성하는데 이용될 수 있다.
일 실시 예에 따르면, 160 블록에서, 전자 장치(10)는 인식(또는, 재인식)된 평면에 대한 정보에 기초하여 지정된 공간에 대응되는 3D 모델을 생성할 수 있다. 예를 들어, 전자 장치(10)는 상기 생성된 가상 평면을 포함하는, 지정된 공간에 대응되는 3D 모델을 생성할 수 있다. 상기 생성된 3D 모델은, 예를 들어, 공간을 구성하는 평면을 인식하여 구현된 모델이고, 공간 내부에 배치된 물체(예: 가구)는 포함되지 않을 수 있다. 다시 말해, 상기 생성된 3D 모델은 지정된 공간 자체가 구현된 가상 공간일 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 상기 3D 모델의 내부에서 보는 모습뿐만 아니라, 이를 외부에서 바라보는 모습에 대한 정보도 사용자에게 제공할 수 있다.
이에 따라, 전자 장치(10)는 센서를 통해 다소 부정확하게 인식될 수 있는 공간의 평면을, 사용자와의 실시간 인터렉션(interaction)을 통해 인식함으로써 지정된 공간에 대응되는 가상 공간을 비교적 정확하게 생성할 수 있다.
도 2는 일 실시 예에 따른 전자 장치를 통해 공간을 스캔하는 것을 나타낸 도면이다.
도 2를 참조하면, 전자 장치(10)는 센서를 통해 지정된 공간의 표면을 스캔할 수 있다.
일 실시 예에 따르면, 전자 장치(10)는 센서(210)를 통해 지정된 공간의 표면(220)을 감지할 수 있다. 예를 들어, 전자 장치(10)는 뎁스 센서 및 RGB 센서 중 적어도 하나를 통해 지정된 공간의 표면(220)을 감지할 수 있다. 상기 뎁스 센서는, 예를 들어, 레이저(laser)를 지정된 지점에 조사하여 거리 및 물성을 감지하는 라이다 센서(LiDAR sensor)(Light Detection And Ranging sensor)를 포함할 수 있고, RGB 센서는 특정 패턴의 적외선을 지정된 지점에 조사하여 위치를 감지하는 RGB-D 센서를 포함할 수 있다. 이에 따라, 전자 장치(10)는 빛을 투사해 위치를 감지하는 레이캐스팅(Ray Casting) 방식을 이용하여 지정된 지점의 3차원상의 위치 정보(x, y, z)를 획득할 수 있다.
일 실시 예에 따르면, 전자 장치(10)는 센서를 통해 감지되는 지점들의 위치 정보를 생성할 수 있다. 예를 들어, 전자 장치(10)는 카메라를 통해 디스플레이(230)에 실시간으로 표시되는 이미지에 포함된 지점들에 대한 위치 정보를 생성할 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 상기 위치가 감지되는 지점에 대응되는 포인트를 생성할 수 있다. 예를 들어, 전자 장치(10)는 상기 디스플레이(230)에 표시되는 이미지에 포함된 지점들의 위치 정보를 포함하는 포인트 클라우드(point cloud)(240)를 생성할 수 있다.
일 실시 예에 따르면, 전자 장치(10)는 생성된 위치 정보를 통해 평면을 인식할 수 있다. 예를 들어, 전자 장치(10)는 생성된 포인트 클라우드(240)를 통해 평면을 인식할 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 인식된 평면에 대한 정보를 생성할 수 있다. 예를 들어, 전자 장치(10)는 서로 다른 RGB 값으로 표시된 평면들에 대한 정보(250)를 생성할 수 있다. 일 실시 예에 따르면, 상기 전자 장치(10)의 평면 인식은 전자 장치(10) 자체의 연산을 통해 산출되거나, 평면 인식 기능을 제공하는 서버를 통해 산출될 수 있다.
도 3은 일 실시 예에 따른 전자 장치를 통해 공간을 인식하는 것을 나타낸 도면이다.
도 3을 참조하면, 전자 장치(10)는 센서를 통해 스캔한 표면에서 평면을 인식할 수 있다.
일 실시 예에 따르면, 전자 장치(10)는 센서를 통해 감지되고 있는 표면에 대한 정보를 제공할 수 있다. 예를 들어, 전자 장치(10)는 감지되고 있는 표면의 이미지를 디스플레이(310)에 표시할 수 있다. 상기 디스플레이(310)에 표시되는 이미지는, 예를 들어, 전자 장치(10)의 카메라를 통해 실시간으로 촬영되는 이미지일 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 센서를 통해 디스플레이(310)에 표시되는 이미지에 포함된 지점들의 위치를 감지할 수 있다.
일 실시 예에 따르면, 전자 장치(10)는 감지중인 표면에서 평면을 인식할 수 있다. 예를 들어, 전자 장치(10)는 천장, 벽 및 바닥의 평면의 적어도 일부를 인식할 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 실시간으로 평면을 인식할 수 있다. 예를 들어, 전자 장치(10)는 카메라를 통해 현재 디스플레이(310)에 표시되는 영역의 평면을 실시간으로 인식할 수 있다. 일 실시 예에 따르면, 평면으로 인식된 영역은 상기와 같이 공간을 형성하는 평면의 일부 영역일 수 있으나, 공간을 형성하는 평면이 아닐 수도 있다. 상기 공간을 형성하는 평면이 아닌 경우는, 예를 들어, 공간에 위치한 물건의 평면(예: 책상의 평면)일 수 있다. 일 실시 예에 따르면, 상기 공간을 형성하지 않는 평면이 공간을 형성하는 평면과 하나의 평면으로 인식되어, 공간을 형성하는 평면이 더 넓게 인식될 수 있다. 상기의 오인식은 이하에 설명할 사용자 입력에 의해 수정될 수 있다. 일 실시 예에 따르면, 상기 전자 장치(10)의 평면 인식은 전자 장치(10) 자체의 연산을 통해 산출되거나, 평면 인식 기능을 제공하는 서버를 통해 산출될 수 있다.
일 실시 예에 따르면, 전자 장치(10)는 인식된 평면에 대응되는 가상 평면(311)을 생성할 수 있다. 상기 생성된 가상 평면(311)은, 예를 들어, 지정된 공간을 형성하는 평면에 대응되는 가상 평면일 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 감지중인 표면의 이미지를 디스플레이(310)에 표시하고, 상기 이미지 상의 인식된 평면 각각에 상기 생성된 가상 평면(311)을 표시할 수 있다. 예를 들어, 전자 장치(10)는 이미지 상의 천장, 벽 및 바닥의 평면 각각에 가상의 천장 평면(311a), 벽 평면(311b, 311c) 및 바닥 평면(311d)을 표시할 수 있다. 상기 생성된 가상 평면(311)은, 예를 들어, 인식된 평면에 반투명하게 중첩되게 표시될 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 가상 평면(311)에 지정된 RGB 값이 적용할 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 생성된 가상 평면들(311a 내지 311d) 각각에 서로 다른 RGB 값을 적용시킬 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 실시간으로 인식된 평면에 대응되는 가상 평면(311)을 생성할 수 있다. 예를 들어, 전자 장치(10)는 카메라를 통해 디스플레이(310) 상의 인식된 평면에 대응되는 가상 평면을 실시간으로 생성할 수 있다.
일 실시 예에 따르면, 전자 장치(10)는 상기 생성된 가상 평면을 통해 인식된 평면들의 관계를 정의하는 사용자 입력을 수신할 수 있다. 예를 들어, 전자 장치(10)는 디스플레이(310)에 표시된 가상 평면을 통해 인식된 평면들의 관계를 정의하는 사용자 입력을 수신할 수 있다. 상기 사용자 입력은, 예를 들어, 지정된 공간을 형성하는 평면들의 관계를 정의하는 것일 수 있다. 또한, 사용자 입력은 일부가 인식된 평면의 크기, 및 다른 평면에 대한 상대적인 위치를 정의하는 입력일 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 실시간으로 생성된 가상 평면을 통해 상기 사용자 입력을 수신할 수 있다. 예를 들어, 전자 장치(10)는 디스플레이(310) 상의 가상 평면들(311a 내지 311d)을 통해 인식된 평면들 사이의 관계를 정의하기 위한 사용자 입력을 실시간으로 수신할 수 있다. 일 실시 예에 따르면, 상기 사용자 입력은 생성된 가상의 평면의 경계선이나 본체를 터치하여 드래그 앤 드랍(drag and drop) 방식으로 직관적으로 평면들 사이의 관계를 정의할 수 있다.
일 실시 예에 따르면, 전자 장치(10)는 상기 수신된 사용자 입력에 기초하여 평면을 재인식할 수 있다. 예를 들어, 전자 장치(10)는 상기 수신된 사용자 입력에 기초하여 생성된 가상 평면을 변경할 수 있다. 이에 대해서는 도 6a 내지 도 6f에서 더 자세하게 설명하겠다. 일 실시 예에 따르면, 전자 장치(10)는 상기 재인식된 평면에 대한 정보를 실시간으로 제공할 수 있다. 예를 들어, 전자 장치(10)는 상기 변경된 가상 평면을 디스플레이 상에 실시간으로 반영할 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 상기 인식(또는, 재인식)된 평면을 선택하는 사용자 입력을 수신할 수 있다. 예를 들어, 전자 장치(10)는 인식된 평면에 대응되는 가상 평면을 선택하는 사용자 입력을 수신할 수 있다. 상기 선택된 평면은, 예를 들어, 지정된 공간을 형성하는 평면일 수 있다. 일 실시 예에 따르면, 센서를 통해 인식되는 평면은 공간을 형성하는 평면이 아닌 경우도 있기 때문에, 실시간으로 그 평면을 선택하는 사용자 입력이 있는 경우 평면 인식의 오류 발생 확률을 현저히 낮출 수 있다.
일 실시 예에 따르면, 전자 장치(10)는 버튼(313)을 통해 평면으로 인식된 영역을 선택하는 사용지 입력을 수신할 수 있다. 예를 들어, 전자 장치(10)는 제1 버튼(313a)을 통해 지정된 공간을 형성하는 평면을 추가적으로 인식하기 위한 사용자 입력을 수신할 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 상기 사용자 입력을 수신하면, 디스플레이(310)의 지정된 부분(315)이 위치하는 평면의 가상 평면을 저장 장치(예: 도 1의 저장 장치(20))에 저장할 수 있다. 상기 저장된 가상 평면에 대응되는 평면은, 예를 들어, 지정된 공간을 형성하는 평면으로 등록된 것으로 생각할 수 있다. 일 실시 예에 따르면, 상기 저장된 가상 평면은 지정된 공간을 스캔중인 전자 장치(10)의 디스플레이(310)에, 실시간으로 인식중인 다른 평면의 가상 평면과 함께 표시될 수 있다. 일 실시 예에 따르면, 사용자는 지정된 부분(315)을 상기 인식된 평면 중 공간을 형성하는 평면에 위치시키고, 제1 버튼(313a)을 통해 공간을 형성하는 새로운 평면의 인식을 요청할 수 있다.
일 실시 예에 따르면, 전자 장치(10)는 제2 버튼(313b)를 통해 기존에 인식된 평면을 해제하기 위한 사용자 입력을 수신할 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 상기 사용자 입력을 수신하면, 디스플레이(310)에 지정된 부분(315)에 위치하는 평면의 등록을 해제할 수 있다. 예를 들어, 전자 장치(10)는 상기 선택된 평면의 저장된 가상 평면을 저장 장치에서 삭제할 수 있다. 이에 따라, 전자 장치(10)는 사용자에게 현재 위치하는 공간에 대응되는 가상의 공간을 직접 만드는 것과 같은 사용자 경험(user experience, UE)을 선사할 수 있다.
이 밖에도, 전자 장치(10)는 인식된 평면들의 관계를 정의하여 일부가 인식된 평면을 재인식하기 전, 지정된 공간에 대응되는 임시의 3D 모델(320)을 생성할 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 적어도 일부가 인식된 평면 중 지정된 공간을 형성하는 평면을 선택하는 사용자 입력을 수신하고, 상기 수신된 사용자 입력에 따라 선택된 평면에 대응되는 가상 평면을 저장 장치에 저장할 수 있다. 상기 저장된 가상 평면은 평면의 수직 벡터(nx, ny, nz, d), 중심점(320a), 및 종류(예: 천장 평면, 바닥 평면, 기둥 평면, 벽 평면 등)에 대한 정보를 포함할 수 있다. 상기 크기는, 예를 들어, 폭(width) 및 높이(height)에 대한 정보(320b)를 포함할 수 있다. 일 실시 예에 따르면, 상기 종류에 대한 정보는 사용자의 입력 또는 먼저 인식된 다른 평면과의 관계를 통해 확인될 수 있다. 일 실시 예에 따르면, 상기 실시간으로 인식된 평면들의 관계를 정의하는 사용자 입력을 수신하는 경우에 생성된 가상 평면도 상기와 유사한 정보를 포함할 수 있다.
일 실시 예에 따르면, 전자 장치(10)는 상기 저장된 가상 평면이 포함된 임시의 3D 모델(320)을 생성할 수 있다. 임시의 3D 모델(320)은, 예를 들어, 적어도 일부가 인식된 가상의 천장 평면(321), 가상의 벽 평면(323, 325) 및 가상의 바닥 평면(327)을 포함할 수 있다. 일 실시 예에 따르면, 임시의 3D 모델(320)은 공간 내에 배치된 물건(예: 가구) 및 장치(예: 센서)의 한계에 의해 일부만이 인식된 평면을 통해 생성된 완성되지 않은 가상 공간일 수 있다.일 실시 예에 따르면, 전자 장치(10)는 상기 생성된 임시의 3D 모델을 통해 인식된 평면들의 관계를 정의하는 사용자 입력을 수신할 수 있다. 일 실시 예에 따르면, 전자 장치(10)는 상기 수신된 사용자 입력에 기초하여 임시의 3D 모델에 포함된 가상 평면을 변경하여 지정된 공간에 대응되는 3D 모델을 완성시킬 수 있다.
이에 따라, 전자 장치(10)는 후처리 방식으로도 지정된 공간에 대응되는 가상 공간을 완성할 수 있다. 상기 후처리 방식은 실시간으로 인식된 평면의 관계를 정의하는 방식과 함께 보조적으로 사용될 수 있다.
일 실시 예에 따르면, 전자 장치(10)는 센서를 통해 감지된 표면의 평면만을 인식하는 간단한 알고리즘을 이용하면서도, 실시간으로 제공되는 평면의 정보를 통해 인식된 평면과의 관계를 정의하는 사용자 입력 및 공간을 형성하는 평면을 선택하는 사용자 입력을 수신함으로써 실제와 가까운 가상 공간을 생성할 수 있다. 상기 알고리즘은 정보가 전자 장치(10) 내에서 처리될 수 있을 만큼 가벼울 수 있고, 설사 일부 정보를 서버를 통해 처리된다고 해도 송수신하는 정보의 양이 작아 상기 실시간으로 평면 정보를 제공할 수 있다.
도 4는 일 실시 예에 따른 전자 장치가 지정된 평면을 인식하는 것을 나타낸 도면이다.
도 4를 참조하면, 전자 장치(예: 도 1의 전자 장치(10))는 사용자에게 가이드 정보를 제공하고, 공간(410)을 형성하는 지정된 평면을 인식할 수 있다.
일 실시 예에 따르면, 전자 장치는 공간(410)의 지정된 평면을 인식하기 위한 가이드 정보를 제공할 수 있다. 예를 들어, 전자 장치는 공간(410)의 천장 평면(411) 및 바닥 평면(413)을 인식하기 위한 가이드 정보를 제공할 수 있다. 일 실시 예에 따르면, 천장 평면(411) 및 바닥 평면(413)은 공간을 인식하는데 기준이 될 수 있는 평면으로써, 공간(410)을 형성하는 다른 평면과 가장 많이 접촉하고 있어 이후 인식되는 평면과의 관계를 정의하는데 유용하게 쓰일 수 있다. 일 실시 예에 따르면, 전자 장치는 센서를 통해 천장 평면(411)을 감지할 수 있도록 가이드 정보(420)를 디스플레이(예: 도 3의 디스플레이(310))에 표시할 수 있다. 예를 들어, 전자 장치는 디스플레이에 "핸드폰을 천장으로 향해주세요"(421)를 표시하고, 센서가 향하는 방향을 가이드하기 위한 표시(423)를 제공할 수 있다. 일 실시 예에 따르면, 전자 장치는 센서를 통해 바닥 평면(413)을 감지할 수 있도록 가이드 정보(430)를 디스플레이에 표시할 수 있다. 예를 들어, 전자 장치는 디스플레이에 "핸드폰을 발쪽으로 향해주세요"(431)를 표시하고, 센서가 향하는 방향을 가이드하기 위한 표시(433)를 제공할 수 있다. 이에 따라, 전자 장치는 사용자에 선택에 의해 천정 평면(411) 및 바닥 평면(413)을 인식할 수 있다.
일 실시 예에 따르면, 전자 장치는 상기 인식된 천장 평면(411) 및 바닥 평면(413) 각각에 대응되는 가상 평면을 생성할 수 있다. 예를 들어, 전자 장치는 천장 평면(411) 및 바닥 평면(413) 각각에 대응되는 가상의 천장 평면 및 바닥 평면을 생성할 수 있다. 일 실시 예에 따르면, 전자 장치는 상기 생성된 가상 평면을 저장 장치(20)에 저장할 수 있다. 상기 생성된 가상 평면은, 예를 들어, 인식된 평면의 수직 벡터, 중심점 및 평면의 종류에 대한 정보를 포함할 수 있다. 특히 수직 벡터의 경우, 벽면과 수직을 이루는 경우가 많기 때문에 인식된 벽면의 종류를 확인하기 쉬울 수 있다.
일 실시 예에 따르면, 상기 전자 장치의 가이드에 따라 지정된 평면은 인식하는 단계는, 지정된 공간을 형성하는 평면을 인식하는 어느 단계에서 수행될 수 있다. 예를 들어, 상기 천장 및 바닥을 인식하는 단계는 다른 평면을 인식하기 전에 수행될 수 있다. 다시 말해, 상기 천장 및 바닥을 인식하는 단계는 평면 인식 알고리즘 시작하면서 사전에 수행될 수 있다. 이에 따라, 이후의 평면에 대한 인식이 수월해질 수 있다.
도 5는 일 실시 예에 따른 전자 장치가 부분적으로 인식된 평면을 확장하는 것을 나타낸 도면이다.
도 5를 참조하면, 전자 장치(예: 도 3의 전자 장치(10))가 새롭게 인식된 평면을 기존에 인식된 평면과 결합하여 부분적으로 인식된 평면을 확장할 수 있다.
일 실시 예에 따르면, 전자 장치는 센서를 통해 공간의 표면(510)을 감지할 수 있다. 일 실시 예에 따르면, 전자 장치는 상기 감지된 표면 중 평면으로 인식하고, 상기 인식된 평면에 대응되는 가상 평면(520)을 생성할 수 있다. 예를 들어, 전자 장치는 생성된 가상의 천장 평면(521) 및 벽 평면(523)을 생성할 수 있다. 상기 생성된 가상 평면 각각은 서로 다른 RGB 값으로 표시될 수 있다.
일 실시 예에 따르면, 전자 장치는 저장 장치(20)에 정보가 저장된 평면 중 적어도 하나가 상기 새롭게 인식된 평면과 동일한 평면에 포함된 있는지 확인할 수 있다. 예를 들어, 전자 장치는 저장 장치(20)에 정보가 저장된 평면이 천장에 포함되는지 확인할 수 있다. 상기 동일 평면에 포함되어 있는지 여부는, 예를 들어, 평면들의 중심점이 유사한 위치에 있고, 수직 벡터가 지정된 각도(예: 5°) 이하로 차이가 나는지 여부를 통해 확인될 수 있다. 상기 위치의 유사성 및 지정된 각도는, 예를 들어, 센서의 오차, 건축 설계의 오차 등에 기초하여 결정될 수 있다. 일 실시 예에 따르면, 지정된 공간의 크기, 배치된 물품 등에 의해 같은 평면임에도 불구하고 그 일부가 먼저 인식되어 저장 장치(20)에 저장되어 있을 수 있다.
일 실시 예에 따르면, 전자 장치는 저장 장치(20)에 정보가 저장된 평면이 새롭게 인식된 평면과 동일한 평면에 포함되는 경우, 상기 저장된 평면의 정보에 기초하여 일부가 인식된 평면의 인식되지 않은 영역까지 인식된 영역을 확장할 수 있다. 예를 들어, 전자 장치는 저장 장치(20)에 저장된 가상 평면(533)에 대응되는 평면이 천장에 포함되는 경우. 저장된 가상 평면(533)에 기초하여, 새롭게 인식된 천장의 일부에 대응되는 가상 평면(531)을 확장할 수 있다. 일 실시 예에 따르면, 전자 장치는 새롭게 인식된 평면에 대응되는 가상 평면(521)과 저장 장치(20)에 저장된 가상 평면(531)을 결합하고, 상기 결합된 평면을 모두 포함하는 가상 평면(530)으로 새롭게 생성된 가상 평면(521)을 확장할 수 있다. 다시 말해, 전자 장치는 새롭게 생성된 가상 평면(521)을, 저장 장치(20)에 저장된 가상 평면(531)을 포함하는 가상 평면(530)으로 확장할 수 있다.
이에 따라, 전자 장치는 평면의 재인식을 위한 사용자 입력이 특별히 없다고 하더라도, 인식된 기존의 평면에 대한 정보를 이용하여 일부가 인식된 평면을 재인식할 수 있다.
도 6a 내지 6e는 일 실시 예에 따른 사용자 입력에 따라 평면을 재인식하는 것을 나타낸 도면이다.
도 6a를 참조하면, 전자 장치(예: 도 3의 전자 장치(10))는 인식된 평면들의 관계에 기초하여 일부가 인식된 평면을 재인식할 수 있다.
일 실시 예에 따르면, 전자 장치는 지정된 평면에 포함된 제1 평면 및 제2 평면을 인식할 수 있다. 상기 제1 평면 및 제2 평면은 서로 이웃하는 평면일 수 있다. 일 실시 예에 따르면, 상기 제1 평면 및 상기 제2 평면은 그 일단이 서로 접촉하여 변(A-B)을 형성할 수 있다.
일 실시 예에 따르면, 전자 장치는 제1 평면 및 제2 평면이 잘못 인식된 경우, 두 평면이 서로 이웃하는 관계임을 정의하는 사용자 입력을 수신할 수 있다. 일 실시 예에 따라, 전자 장치는 평면이 잘못 인식된 경우, 상기 수신된 사용자 입력에 기초하여 생성된 가상 평면을 변경할 수 있다. 예를 들어, 전자 장치는 생성된 가상 평면의 크기 및 위치 중 적어도 어느 하나를 변경할 수 있다. 일 실시 예에 따르면, 전자 장치는 생성된 가상 평면의 크기를 중심으로, 필요한 경우 위치를 변경할 수 있다. 다만, 이하에서는 가상 평면의 크기를 확장 또는 축소하는 것을 중심으로 설명하겠다.
일 실시 예에 따른 (a)를 참조하면, 전자 장치는 전체가 인식된 제1 평면 및 제2 평면 각각에 대응되는 제1 가상 평면(601) 및 제2 가상 평면(603)을 생성할 수 있다. 상기 생성된 제1 가상 평면(601) 및 제2 가상 평면(603)은 그 일단이 서로 접촉하여 하나의 변(A-B)를 형성하고 있다. 이에 따라, 상기 제1 평면 및 제2 평면의 관계를 정의하기 위한 사용자 입력이 필요 없을 수 있다.
일 실시 예에 따른 (b)를 참조하면, 전자 장치는 전체가 인식된 제1 평면, 및 일부가 인식된 제2 평면에 대응되는 제1 가상 평면(601) 및 제2 가상 평면(603_1)을 생성할 수 있다. 제1 가상 평면(601) 및 제2 가상 평면(603_1)은 그 일단은 서로 접촉하지 못하여 변(A-B)을 형성하지 못할 수 있다. 일 실시 예에 따르면, 전자 장치는 제1 평면 및 제2 평면의 관계를 정의하는 사용자 입력에 기초하여, 제1 가상 평면(601)의 일단에 접촉하도록 제2 가상 평면(603_1)을 확장할 수 있다. 상기 사용자 입력은, 예를 들어, 제2 가상 평면(603_1)의 크기를 정의하는 것일 수 있다.
일 실시 예에 따른 (c)를 참조하면, 전자 장치는 일부가 인식된 제1 평면 및 제2 평면에 대응되는 제1 가상 평면(601_1) 및 제2 가상 평면(603_1)을 생성할 수 있다. 제1 가상 평면(601_1) 및 제2 가상 평면(603_1)은 그 일단이 서로 접촉하지 못하여 변(A-B)을 형성하지 못할 수 있다. 일 실시 예에 따르면, 전자 장치는 제1 평면 및 제2 평면의 관계를 정의하는 사용자 입력에 기초하여, 제1 가상 평면(601_1) 및 제2 가상 평면(603_1)의 일단이 서로 접촉하도록 두 가상 평면(601_1, 603_1)을 확장할 수 있다. 상기 사용자 입력은, 예를 들어, 제1 가상의 평면(601_1) 및 제2 가상 평면(603_1)의 크기를 정의하는 것일 수 있다.
일 실시 예에 따른 (d)를 참조하면, 전자 장치는 전체를 초과하여 인식된 제1 평면, 및 전체가 인식된 제2 평면에 대응되는 제1 가상 평면(601_3) 및 제2 가상 평면(603)을 생성할 수 있다. 제1 가상 평면(601_3) 및 제2 가상 평면(603)은 서로 접촉하여 변(A-B)을 형성하지만, 그 일단이 서로 어긋날 수 있다. 일 실시 예에 따르면, 전자 장치는 제1 평면 및 제2 평면의 관계를 정의하는 사용자 입력에 기초하여, 제2 가상 평면(603)의 일단에 접촉하도록 제1 가상 평면(601_3)을 축소할 수 있다. 상기 사용자 입력은, 예를 들어, 제1 가상 평면(601_3)의 크기를 정의하는 것일 수 있다.
일 실시 예에 따르면, (e)를 참조하면, 전자 장치는 전체를 초과하여 인식된 제1 평면 및 제2 평면에 대응되는 제1 가상 평면(601_3) 및 제2 가상 평면(603_3)을 생성할 수 있다. 제1 가상 평면(601_3) 및 제2 가상 평면(603_3)은 서로 접촉하여 변(A-B)를 형성하지만, 그 일단이 서로 어긋날 수 있다. 일 실시 예에 따르면, 전자 장치는 제1 평면 및 제2 평면의 관계를 정의하는 사용자 입력에 기초하여, 제1 가상 평면(601_3) 및 제2 가상 평면(603_3)의 일단이 서로 접촉하도록 두 가상 평면(601_3, 603_3)을 축소할 수 있다. 상기 사용자 입력은 예를 들어, 제1 가상 평면(601_3) 및 제2 가상 평면(603_3)의 크기를 정의하는 것일 수 있다.
일 실시 예에 따르면, 지정된 공간을 형성하는 평면은 복수의 다른 평면과 접촉할 수 있기 때문에, 상기 (a) 내지 (e)에서 설명한 오차가 복합적으로 발생할 수 있다. 일 실시 예에 따르면, 전자 장치는 생성된 가상 평면의 일단에서 평면을 확장하는 동시에 다른 일단에서 평면을 축소할 수 있다. 또한, 이러한 재인식 과정은 상기에서 언급한 바와 같이 크기와 함께 위치에 대한 변경도 함께 동반될 수 있다.
이하 인식된 평면들 각각에 대응되는 가상 평면들의 관계를 정의하는 사용자 입력에 기초하여 평면을 재인식하는 방법은 상기에서 언급된 방법에 의할 수 있다.
도 6b를 참조하면, 전자 장치는 인식된 평면들의 관계를 정의하는 사용자 입력에 기초하여 가상 공간의 벽면을 형성하도록 3D 모델(610)을 생성할 수 있다.
일 실시 예에 따르면, 전자 장치는 지정된 공간의 벽면을 형성하는 평면의 적어도 일부를 인식하고, 상기 벽면 각각의 인식된 적어도 일부에 대응되는 가상 평면들(611_1 내지 611_7)을 생성할 수 있다. 상기 생성된 가상 평면들(611_1 내지 611_7)은 전자 장치의 센서의 오차로, 인식된 평면들의 크기 및 위치에 오차가 발생된 상태로 생성된 것일 수 있다. 일 실시 예에 따르면, 전자 장치는 사용자의 선택에 따라 상기 생성된 가상 평면들(611_1 내지 611_7)을 포함하는 3D 모델(611)을 생성할 수 있다. 상기 생성된 3D 모델(611)은, 예를 들어, 서로 접촉하지 못하거나 어긋난 가상 평면들(611_1 내지 611_7)이 포함된 임시모델일 수 있다.
일 실시 예에 따르면, 상기 공간의 벽면을 형성하는 평면들은 특성상 위치에 대한 오차보다는 크기에 오차가 발생하기 쉬울 수 있다. 특히, 한방향의 평면들이 상대적으로 작은 크기의 평면으로 이루어진 다층구조인 경우, 서로 다른 레벨의 제1 가상 평면(611_1a) 및 제2 가상 평면(611_1b)과 이들을 연결하는 제3 가상 평면(611_1c)에서 크기에 대한 오차가 발생하기 쉽다. 또한, 이들과 함께 벽면을 이루는 나머지 가상 평면들(611_3, 611_5, 611_7)에서도 크기에 대한 오차가 발생할 수 있다. 이에 따라, 생성된 3D 모델(611)에서, 인식된 평면들이 외부와 수평적인 경계를 형성하지 못할 수 있다.
일 실시 예에 따르면, 전자 장치는 상기 생성된 3D 모델(611)을 통해, 위치에 오차가 발생한 평면들의 관계를 정의하는 사용자 입력을 수신할 수 있다. 예를 들어, 전자 장치는 어긋나게 인식된 평면들이 벽면을 형성하는 관계임을 정의하는 사용자 입력을 수신할 수 있다. 일 실시 예에 따르면, 전자 장치는 어긋나게 생성된 가상 평면들(611_1 내지 611_7)의 일단이 이웃하는 가상 평면들의 일단과 접촉하도록 크기를 변경하는 사용자 입력을 수신할 수 있다.
일 실시 예에 따르면, 전자 장치는 수신된 사용자 입력에 기초하여 오차가 발생한 평면들을 재인식할 수 있다. 예를 들어, 전자 장치는 수신된 사용자 입력에 기초하여 어긋나게 생성된 가상 평면들(611_1 내지 611_7)이 벽면을 형성할 수 있도록 가상 평면들(611_1 내지 611_7)을 변경할 수 있다. 일 실시 예에 따르면, 전자 장치는 수신된 사용자 입력에 기초하여 어긋나게 생성된 가상 평면들(611_1 내지 611_7)의 일단이 이웃하는 평면들의 일단과 접촉하도록 크기를 변경할 수 있다.
일 실시 예에 따르면, 전자 장치는 상기 상대적인 위치가 재인식된 평면들의 정보에 기초하여 3D 모델(613)을 생성할 수 있다. 예를 들어, 전자 장치는 그 일단이 서로 접촉하여 외부와 수평적인 경계를 형성하도록 변경된 가상 평면들을 포함하는 3D 모델(613)을 생성할 수 있다.
도 6c를 참조하면, 전자 장치는 인식된 평면들의 관계를 정의하는 사용자 기초하여 가상 공간의 경계를 형성하도록 3D 모델(620)을 생성할 수 있다.
일 실시 예에 따르면, 전자 장치는 지정된 공간을 형성하는 평면의 적어도 일부를 인식하고, 상기 지정된 공간을 형성하는 평면들 각각의 인식된 적어도 일부에 대응되는 가상 평면들(621_1, 621_3)을 생성할 수 있다. 상기 생성된 가상 평면들(621_1, 621_3)은 전자 장치의 센서의 오차로, 평면의 일부만이 인식된 상태로 생성된 것일 수 있다. 일 실시 예에 따르면, 전자 장치는 사용자의 선택에 따라 상기 생성된 가상 평면들(621_1, 621_3)을 포함하는 3D 모델(621)을 생성할 수 있다. 상기 생성된 3D 모델(621)은, 예를 들어, 서로 접촉하지 못한 가상 평면들(621_1, 621_3)이 포함된 것일 수 있다.
일 실시 예에 따르면, 전자 장치는 상기 생성된 3D 모델(621)을 통해, 일부만이 인식된 평면들의 관계를 정의하는 사용자 입력을 수신할 수 있다. 예를 들어, 전자 장치는 일부만이 인식된 평면들이 지정된 공간의 경계를 형성하는 관계임을 정의하는 사용자 입력을 수신할 수 있다. 일 실시 예에 따르면, 전자 장치는 천장면에 대응되는 가상 평면(621_1)을 선택하는 사용자 입력(621_1a)을 수신할 수 있다. 그리고 전자 장치는 벽면에 대응되는 가상 평면(621_3)을 선택하는 사용자 입력(621_3a)을 수신할 수 있다. 또한, 전자 장치는 그 밖에 벽면 및 바닥면에 대응되는 가상 평면을 선택하는 사용자 입력을 수신할 수 있다.
일 실시 예에 따르면, 전자 장치는 수신된 사용자 입력에 기초하여 일부가 인식된 평면들을 재인식할 수 있다. 예를 들어, 전자 장치는 수신된 사용자 입력에 기초하여 일부가 생성된 가상 평면들(621_1, 621_3)이 경계를 형성하도록 가상 평면들(621_1, 621_3)을 변경할 수 있다. 일 실시 예에 따르면, 전자 장치는 수신된 사용자 입력에 기초하여 일부가 생성된 가상 평면들의 일단이 이웃하는 평면들의 일단과 접촉하도록 크기를 확장할 수 있다.
일 실시 예에 따르면, 전자 장치는 상기 크기가 재인식된 평면들의 정보에 기초하여 3D 모델(623)을 생성할 수 있다. 예를 들어, 전자 장치는 그 일단이 서로 접촉하여 외부와의 경계를 형성하도록 변경된 가상 평면들을 포함하는 3D 모델(623)을 생성할 수 있다.
다른 실시 예에 따르면, 전자 장치는 일부가 인식된 평면들의 위치에도 오차가 발생할 수 있다. 다시 말해, 전자 장치는 인식된 평면들의 크기 및 위치 중 적어도 하나에 오차가 발생할 수 있다. 일 실시 예에 따르면, 전자 장치는 상기 경계를 형성하는 평면을 선택하는 사용자 입력에 기초하여 서로 이웃하는 가상 평면들의 위치 및 크기 중 결정된 어느 하나를 기준으로 나머지 하나를 결정할 수 있다. 예를 들어, 전자 장치는 사용자 입력에 기초하여, 일부가 인식된 평면들의 위치를 먼저 결정하고, 결정된 위치에서 경계를 형성하도록 일부가 인식된 평면들의 크기를 확장할 수 있다. 이에 따라, 전자 장치는 크기 및 위치가 재인식된 평면들의 3D 모델을 생성할 수 있다.
도 6d를 참조하면, 전자 장치는 인식된 평면들의 위치를 정의하는 사용자 입력에 따라 평면의 일부가 물체에 가려 인식되지 않는 부분을 재인식할 수 있다.
일 실시 예에 따르면, 전자 장치는 지정된 공간의 기둥을 형성하는 평면들을 인식하고, 상기 기둥을 형성하는 평면들 각각에 대응되는 가상 평면들(630)을 생성할 수 있다. 상기 생성된 가상 평면들(630)은, 예를 들어, 지정된 공간에 위치하는 물체(예: 책장)로 인해 평면의 일부 영역(631a)이 인식되지 않은 상태로 생성된 것일 수 있다. 일 실시 예에 따르면, 전자 장치는 실시간으로 감지하고 있는 표면의 이미지 상에 상기 생성된 가상 평면들(630)을 표시할 수 있다.
일 실시 예에 따르면, 전자 장치는 상기 이미지 상에 표시된 가상 평면들(630)을 통해, 일부 영역(631a)이 인식되지 않은 평면(631)의 관계를 정의하는 사용자 입력을 수신할 수 있다. 예를 들어, 전자 장치는 일부 영역(631a)이 인식되지 않은 평면과 이웃하는 평면의 관계를 정의하는 사용자 입력을 수신할 수 있다. 일 실시 예에 따르면, 전자 장치는 일부 영역(631a)이 생성되지 않은 가상 평면(631)과 인식되지 않은 일부 영역(631a)이 접촉하는 가상 평면(635)이 이웃하는 관계임을 정의하는 사용자 입력을 수신할 수 있다.
일 실시 예에 따르면, 전자 장치는 수신된 사용자 입력에 기초하여 일부 영역(631a)이 인식되지 않은 평면의 크기를 재인식할 수 있다. 예를 들어, 전자 장치는 수신된 사용자 입력에 기초하여 일부 영역(631a)이 생성되지 않은 가상 평면(631)의 크기를 인식되지 않은 일부 영역(631a)까지 확장할 수 있다. 일 실시 예에 따르면, 일부 영역(631a)이 생성되지 않은 가상 평면(631)은 이웃하는 가상 평면(635)와의 관계에서 그 크기가 일부 영역(631a)까지 임이 명확하기 때문에 쉽게 확장될 수 있다.
일 실시 예에 따르면, 전자 장치는 사용자의 선택에 따라 상기 크기가 재인식된 평면들의 정보에 기초하여 3D 모델을 생성할 수 있다.
도 6e를 참조하면, 전자 장치는 평면으로 인식되기 어려운 영역을 정의하는 사용자 입력에 따라 인식되기 어려운 평면을 재인식할 수 있다.
일 실시 예에 따르면, 전자 장치는 센서를 통해 감지되기 어려운 영역을 포함하는 평면을 인식하지 못할 수 있다. 예를 들어, 전자 장치는 표면을 감지하기 위해 투사하는 빛이 통과하는 투명한 소재의 평면(예: 유리문)(641)이나, 평면의 센서로 깊이를 감지하기 어려운 평면(예: 문틀)(645)을 인식하지 못할 수 있다.
일 실시 예에 따르면, 전자 장치는 인식되기 어려운 영역을 정의하는 사용자 입력을 수신할 수 있다. 예를 들어, 전자 장치는 평면의 유리문이 존재하는 평면(641)을 지정하는 사용자 입력을 수신할 수 있다. 다른 예를 들어, 전자 장치는 먼저 인식된 평면(643)과 평면의 문과의 깊이 차이가 크지 않은 문틀의 평면(645)을 지정하는 사용자 입력을 수신할 수 있다.
일 실시 예에 따르면, 전자 장치는 수신된 사용자 입력에 기초하여 인식되기 어려운 평면의 위치 및 크기를 인식할 수 있다. 예를 들어, 전자 장치는 수신된 사용자 입력에 기초하여 감지되지 어려운 유리문의 평면(641)의 위치 및 크기를 새롭게 인식할 수 있다. 다른 예를 들어, 전자 장치는 사용자 입력에 기초하여 먼저 인식된 평면(643)과 다른 깊이를 형성하는 문틀의 평면(645)과 문의 평면(647)의 위치 및 크기를 새롭게 인식할 수 있다. 다시 말해, 전자 장치는 인식되지 않았던 평면(641, 645, 647)을 새롭게 인식할 수 있다.
일 실시 예에 따르면, 전자 장치는 사용자의 선택에 따라 상기 위치 및 크기가 재인식된 평면들의 정보에 기초하여 3D 모델을 생성할 수 있다. 예를 들어, 전자 장치는 감지되기 어려운 평면(641, 645, 647)의 정보에 기초하여 3D 모델을 생성할 수 있다.
도 6f를 참조하면, 전자 장치는 인식된 평면들의 위치를 정의하는 사용자 입력에 따라 더 넓게 인식된 부분을 재인식할 수 있다.
일 실시 예에 따르면, 전자 장치는 지정된 공간의 벽면을 형성하는 평면들의 적어도 일부를 인식하고, 상기 벽면 각각의 인식된 적어도 일부에 대응되는 가상 평면들(651, 653)을 생성할 수 있다. 상기 생성된 가상 평면들(651, 653)은, 예를 들어, 지정된 공간에 위치하는 물체(예: 선반)로 인해 평면이 더 넓거나 좁게 인식된 상태로 생성된 것일 수 있다. 일 실시 예에 따르면, 전자 장치는 실시간으로 감지하고 있는 표면의 이미지 상에 상기 생성된 가상 평면들(651, 653)을 표시할 수 있다.
일 실시 예에 따르면, 전자 장치는 상기 이미지 상에 표시된 가상 평면들(651, 653)을 통해, 더 넓게 인식된 평면의 관계를 정의하는 사용자 입력을 수신할 수 있다. 예를 들어, 전자 장치는 더 넓게 인식된 평면과 A 방향에서 인식된, 더 좁게 인식된 평면과의 관계를 정의하는 사용자 입력을 수신할 수 있다. 일 실시 예에 따르면, 상기 A 방향에서 인식되는 평면은 물체가 설치되어 벽면을 형성하는 평면으로 인식하기 어려울 수 있다. 상기 인식하기 어려운 평면은, 예를 들어, 사용자의 선택에 의해 벽면을 형성하는 평면으로 인식될 수 있다.
일 실시 예에 따르면, 전자 장치는 수신된 사용자 입력에 기초하여 더 넓게 인식된 평면의 크기를 재인식할 수 있다. 예를 들어, 전자 장치는 수신된 사용자 입력에 기초하여 더 넓게 인식된 가상 평면(651)을 축소(651')할 수 있다. 일 실시 예에 따르면, 전자 장치는 축소된 평면(651')과의 관계를 통해, 더 좁게 인식된 가상 평면(653)의 크기도 확장(653')할 수 있다.
일 실시 예에 따르면, 전자 장치는 상기 크기가 재인식된 평면들의 정보에 기초하여 3D 모델을 생성할 수 있다.
도 6a 내지 도 6f 상에서 설명한 다양한 실시 예에 따르면, 전자 장치는 센서를 통해 인식된 평면의 오차를 인식하기 위한 알고리즘을 추가하지 않으면서도, 인식된 평면들 간의 관계를 정의하는 사용자 입력을 이용함으로써, 공간을 형성하는 평면들의 위치 및 크기를 정확하게 인식할 수 있다.
도 7은 일 실시 예에 따른 전자 장치가 인식된 평면들의 정보에 기초하여 생성한 3D 모델을 나타낸 도면이다.
도 7을 참조하면, 전자 장치(예; 도 3의 전자 장치(10))는 인식(또는, 재인식)된 평면들의 정보에 기초하여 지정된 공간에 대응되는 3D 모델(700)을 생성할 수 있다.
일 실시 예에 따르면, 전자 장치는 상기 생성된 3D 모델을 내부에서 바라보는 모습(710)에 대한 정보를 제공할 수 있다. 상기 3D 모델 내부에서 바라보는 모습(710)은 지정된 지점에 한정되는 것이 아니라, 사용자의 요청에 따른 위치에서 바라보는 내부의 모습에 대한 정보를 제공할 수 있다. 이에 따라, 사용자는 가상의 구현된 공간에서 현실의 공간에 있는 것과 같은 느낌을 받을 수 있다.
일 실시 예에 따르면, 전자 장치는 상기 생성된 3D 모델의 외부에서 바라보는 모습(720)에 대한 정보를 제공할 수 있다. 상기 3D 모델 외부의 여러 각도에서 바라보는 공간의 외부에 모습에 대한 정보를 제공할 수 있다. 일 실시 예에 따르면, 전자 장치는 3D 모델을 외부에서 바라보는 모습(720)을 통해 위치 및 크기에 오차가 발생한 평면에 대한 정보를 제공하고, 인식된 다른 평면들과의 관계를 정의하는 사용자 입력을 수신할 수 있다.
도 8은 일 실시 예에 따른 전자 장치가 생성된 3D 모델을 저장하는 것을 나타낸 도면이다.
도 8을 참조하면, 전자 장치(예: 도 3의 전자 장치(10))는 3D 모델에 포함된 가상 평면들을 저장할 수 있다.
일 실시 예에 따르면, 전자 장치는 인식된 평면들의 정보에 기초하여 지정된 공간에 대응되는 3D 모델(800)을 생성할 수 있다. 상기 생성된 3D 모델은, 예를 들어, 지정된 개수의 삼각 메쉬(triangle mesh)로 이루어진 복수의 가상 평면들을 포함할 수 있다. 일 실시 예에 따르면, 전자 장치는 3D 모델(800)의 두개의 삼각형으로 이루어진 평면 메쉬로 이루어진 가상 평면들을 생성할 수 있다. 일 실시 예에 따르면, 전자 장치는 상기 평면 메쉬로 이루어진 가상 평면을 포함하는 3D 모델을 저장 장치(20)에 저장할 수 있다. 이에 따라, 저장 장치(20)에 저장되는 3D 모델의 용량을 축소시킬 수 있다.
도 9는 일 실시 예에 따른 전자 장치의 실제 공간의 3D 모델을 생성하는 방법을 나타낸 흐름도이다.
도 9를 참조하면, 전자 장치(예: 도 3의 전자 장치(10))는 센서를 통해 인식된 평면들의 관계를 정의하는 사용자 입력에 따라 지정된 공간에 대응되는 3D 모델을 생성할 수 있다.
일 실시 예에 따르면, S910 단계에서, 전자 장치는 지정된 공간에 포함된 적어도 하나의 평면을 인식할 수 있다. 예를 들어, 전자 장치는 지정된 공간을 형성하는 적어도 하나의 평면을 인식할 수 있다.
일 실시 예에 따르면, S920 단계에서, 전자 장치는 상기 인식된 적어도 하나의 평면에 포함된 제1 평면에 이웃하는 제2 평면의 적어도 일부를 인식할 수 있다. 예를 들어, 전자 장치는 제1 평면에 이웃하고, 지정된 공간을 형성하는 평면들 중 하나인 제2 평면의 적어도 일부를 인식할 수 있다. 상기 제1 평면에 이웃하는 제2 평면은, 예를 들어, 상기 제1 평면의 일단에 상기 제2 평면의 일단이 접촉하는 것일 수 있다. 일 실시 예에 따르면, 전자 장치는 뎁스 센서 및 RGB 센서 중 적어도 하나를 통해 제2 평면 위의 지점들을 감지할 수 있다. 일 실시 예에 따르면, 전자 장치는 상기 감지된 지점들에 대한 정보에 기초하여 제2 평면의 적어도 일부를 인식할 수 있다. 일 실시 예에 따르면, 전자 장치는 제2 평면의 일부를 인식하고, 상기 인식된 일부에 대한 정보를 먼저 인식된 제3 평면에 대한 정보와 비교하여 상기 제3 평면이 상기 제2 평면에 포함되는지 판단할 수 있다. 일 실시 예에 따르면, 전자 장치는 상기 제3 평면이 상기 제2 평면에 포함되는 경우, 상기 제2 평면의 인식된 일부를 확장할 수 있다.
일 실시 예에 따르면, S930 단계에서, 전자 장치는 상기 인식된 제1 평면 및 제2 평면의 인식된 적어도 일부에 대응되는 제1 가상 평면 및 제2 가상 평면을 생성할 수 있다. 일 실시 예에 따르면, 전자 장치는 실시간으로 감지중인 제1 평면 및 제2 평면을 디스플레이에 표시하고, 상기 표시된 제1 평면 및 제2 평면 각각에 중첩하여 제1 가상 평면 및 제2 가상 평면을 표시할 수 있다. 또한, 전자 장치는 상기 생성된 제1 가상 평면 및 제2 가상 평면을 포함하는 3D 모델을 디스플레이에 표시할 수 있다. 상기 3D 모델은 오차가 존재하는 임시의 모델일 수 있다.
일 실시 예에 따르면, S940 단계에서, 전자 장치는 상기 생성된 제1 가상 평면 및 제2 가상 평면에 기초하여 상기 인식된 제1 평면 및 제2 평면의 관계를 정의하는 사용자 입력을 수신할 수 있다. 예를 들어, 전자 장치는 상기 인식된 제2 평면의 크기, 및 상기 인식된 제1 평면에 대한 상대적인 위치를 정의하는 사용자 입력을 수신할 수 있다. 일 실시 예에 따르면, 전자 장치는 상기 디스플레이에 표시된 제1 가상 평면 및 제2 가상 평면을 통해 실시간으로 상기 인식된 제1 평면 및 제2 평면의 관계를 정의하는 사용자 입력을 수신할 수 있다. 또한, 전자 장치는 상기 디스플레이에 표시된 임시의 3D 모델을 통해 후처리 방식으로 상기 사용자 입력을 수신할 수 있다.
일 실시 예에 따르면, 전자 장치는 상기 평면의 관계를 정의하는 사용자 입력을 수신하기 전, 지정된 공간에 포함된 천장 및 바닥의 평면 각각의 적어도 일부를 인식할 수 있다. 일 실시 예에 따르면, 전자 장치는 상기 인식된 천장 평면 및 바닥 평면에 기초하여 상기 제2 평면과의 관계를 정의하는 사용자 입력을 수신할 수 있다. 이에 따라, 전자 장치는 이후에 상기 사용자 입력에 기초하여 평면을 재인식하는 과정에서 이를 이용할 수 있다.
일 실시 예에 따르면, S950 단계에서, 전자 장치는 상기 수신된 사용자 입력에 기초하여 제2 평면을 재인식할 수 있다.
일 실시 예에 따르면, 전자 장치는 상기 제2 가상 평면의 크기 및 위치 중 어느 하나를 정의하는 사용자 입력에 기초하여, 상기 제2 가상 평면의 크기 및 위치 중 어느 하나를 변경할 수 있다. 일 실시 예에 따르면, 전자 장치는 벽면의 인식된 평면들의 관계를 정의하는 사용자 입력에 기초하여, 상기 생성된 가상 평면들의 크기 및 위치를 변경함으로써, 가상 공간의 내부가 외부와 수평적인 경계를 형성하게 할 수 있다.
일 실시 예에 따르면, 전자 장치는 상기 수신된 사용자 입력에 기초하여 상기 제2 가상 평면의 크기 및 위치 중 결정된 어느 하나를 기준으로 나머지 하나를 결정할 수 있다. 예를 들어, 전자 장치는 상기 제1 평면 및 제2 평면의 일단이 서로 접촉하는 관계를 정의하는 사용자 입력에 기초하여 상기 제2 가상 평면의 상기 제1 가상 평면에 대한 상대적인 위치를 기준으로, 상기 제2 가상 평면의 크기를 확장 또는 축소할 수 있다.
일 실시 예에 따르면, 전자 장치는 기둥의 인식된 평면들 중 일부 평면이 물체(예: 책꽂이)에 가려 평면의 일부 영역이 인식되지 않은 경우, 이웃하는 다른 평면과의 관계를 정의하는 사용자 입력에 기초하여 상기 인식되지 않은 영역으로 가상 평면의 크기를 확장할 수 있다. 일 실시 예에 따르면, 전자 장치는 인식된 벽면의 평면이 이웃하는 평면에 설치된 물체(예: 선반)에 의해 물체의 평면만큼 더 인식된 경우, 이웃하는 다른 평면과의 위치 관계를 정의하는 사용자 입력에 기초하여 상기 추가적으로 인식된 평면의 크기를 축소할 수 있다.
일 실시 예에 따르면, 전자 장치는 상기 인식된 제1 평면 및 제2 평면을 상기 지정된 공간의 경계를 형성하는 평면으로 정의하는 사용자 입력에 기초하여 상기 제1 가상 평면 및 제2 가상 평면의 일단이 서로 접촉하여 외부와의 경계를 형성하도록 상기 제2 가상 평면의 위치 및 크기 중 결정된 어느 하나를 기준으로 상기 제2 가상 평면의 나머지 하나를 결정할 수 있다. 예를 들어, 전자 장치는 상기 제2 가상 평면의 위치를 결정하고, 상기 제1 가상 평면과 이웃하는 일단에서 접촉하여 경계를 형성하도록 크기를 결정할 수 있다.
일 실시 예에 따르면, S960 단계에서, 전자 장치는 상기 제1 가상 평면, 및 상기 변경된 제2 가상 평면을 포함하는, 상기 지정된 공간에 대응되는 3D 모델을 생성할 수 있다.
일 실시 예에 따르면, 전자 장치는 상기 지정된 공간에 대응되는 3D 모델을 생성하기 위해 상기 제1 평면 및 제2 평면을 선택하는 사용자 입력을 수신할 수 있다. 예를 들어, 전자 장치는 삼지중인 표면의 이미지를 표시한 디스플레이의 지정된 부분이, 상기 이미지 상의 제1 평면 및 제2 평면 각각에 중첩되어 표시된 상기 제1 가상 평면 및 제2 가상 평면에 위치하는 상태에서, 평면의 인식을 시작하기 위한 사용자 입력을 수신할 수 있다.
일 실시 예에 따르면, 전자 장치는 상기 제2 평면의 전체가 인식된 경우, 상기 인식된 평면들의 관계를 정의하는 사용자 입력을 수신하지 않고, 상기 3D 모델을 생성할 수 있다.
일 실시 예에 따르면, 상기 S910 내지 S960 단계는, 컴퓨터 판독 가능 저장 매체에 저장되고 하나 이상의 프로세서에 의해 실행되도록 구성되는 컴퓨터 프로그램에 의해 구현될 수 있다. 상기 컴퓨터 프로그램은 상기 S910 내지 S960 단계를 프로그래밍 언어(programming language)로 구형된 명령어 세트(instruction set)를 포함할 수 있다.
도 10은 일 실시 예에 따른 3D 모델을 생성하기 위한 사용자 단말의 구성을 나타낸 도면이다.
도 10을 참조하면, 사용자 단말(10)은 센싱 장치(1010), 사용자 인터페이스 장치(1020), 메모리(1030) 및 프로세서(1040)를 포함할 수 있다. 그러나, 도시된 구성 요소 모두가 필수 구성 요소인 것은 아니다. 도시된 구성 요소보다 많은 구성 요소에 의해 전자 장치(1000)가 구현될 수 있고, 그보다 적은 구성 요소에 의해서도 전자 장치(1000)가 구현될 수 있다.
센싱 장치(1010)는 공간의 표면을 감지하기 위한 센서를 포함할 수 있다. 예를 들어, 센싱 장치(1010)는 지정된 지점의 3차원 상에서의 위치를 감지하기 위한 뎁스 센서 및 RGB 센서를 포함할 수 있다. 상기 뎁스 센서는 지정된 지점에 조사하여 거리 및 물성을 감지하는 라이다 센서(LiDAR sensor)(Light Detection And Ranging sensor)를 포함할 수 있고, RGB 센서는 특정 패턴의 적외선을 지정된 지점에 조사하여 위치를 감지하는 RGB-D 센서를 포함할 수 있다.
사용자 인터페이스 장치(1020)는 전자 장치(10)에서 생성 또는 처리되는 정보를 출력할 수 있는 출력 장치, 및 사용자 입력을 수신할 수 있는 입력 장치를 포함할 수 있다. 상기 출력 장치는 디스플레이(display), 스피커(speaker), 터치스크린(touchscreen)등의 다양한 종류의 출력 인터페이스를 포함할 수 있다. 상기 입력 장치는 터치스크린, 키보드(keyboard), 마우스(mouse), 터치 패드(touch pad)의 입력 인터페이스를 포함할 수 있다.
메모리(1030)는 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(SD, XD 메모리 등), 램(RAM; Random Access Memory), SRAM(Static Random Access Memory), 롬(ROM; Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory) 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장매체를 포함할 수 있다.
메모리(1030)는 지정된 공간을 인식하여 3D 모델을 출력하는 기능을 전자 장치(10)에서 제공하기 위한 적어도 하나의 프로그램을 저장할 수 있다. 메모리(1030)에 저장된 적어도 하나의 프로그램은 기능에 따라 복수 개의 모듈들로 분류될 수 있다.
메모리(1030)는 상품, 공급자, 판매자, 콘텐츠 제작자 및 구매자의 정보를 등록하기 위한 DB를 포함할 수 있다. 다만, 상기 DB는 별도의 저장 장치로써, 전자 장치(10)의 외부에 구현되어 직접, 또는 통신망을 통해 연결될 수 있다.
프로세서(1040)는 전자 장치(10)의 전체적인 동작을 제어하며, CPU 등과 같은 적어도 하나의 프로세서를 포함할 수 있다. 프로세서(1040)는 각 기능에 대응되는 특화된 프로세서를 적어도 하나 포함하거나, 하나로 통합된 형태의 프로세서일 수 있다.
프로세서(1040)는 메모리(1030)에 저장된 프로그램을 실행시키거나, 메모리(1030)에 저장된 데이터 또는 파일을 읽어오거나, 새로운 파일을 메모리(1030)에 저장할 수도 있다. 또한, 프로세서(1040)는 메모리(1030)에 저장된 명령어들을 실행할 수 있다. 이에 따라, 프로세서(1040)는 이하의 동작을 수행할 수 있다.
프로세서(1040)의 명령어 실행에 의해 수행되는 동작은 전자 장치(10)의 동작으로 이해될 수 있다.
일 실시 예에 따르면, 프로세서(1040)는 센싱 장치(1010)를 통해 지정된 공간에 포함된 적어도 하나의 평면을 인식할 수 있다. 예를 들어, 프로세서(1040)는 지정된 공간을 형성하는 평면 중 하나인 제1 평면을 인식할 수 있다.
일 실시 예에 따르면, 프로세서(1040)는 센싱 장치(1010)를 통해 상기 인식된 적어도 하나의 평면에 포함된 제1 평면에 이웃하는 제2 평면의 적어도 일부를 인식하고, 제1 평면에 이웃하는 제2 평면의 적어도 일부를 인식할 수 있다. 예를 들어, 프로세서(1040)는 제1 평면에 이웃하고, 지정된 공간을 형성하는 평면들 중 하나인 제2 평면의 적어도 일부를 인식할 수 있다. 상기 제1 평면에 이웃하는 제2 평면은, 예를 들어, 상기 제1 평면의 일단에 상기 제2 평면의 일단이 접촉하는 것일 수 있다.
일 실시 예에 따르면, 프로세서(1040)는 상기 인식된 제1 평면 및 제다 평면의 인식된 적어도 일부에 대응되는 제1 가상 평면 및 제2 가상 평면을 생성할 수 있다. 일 실시 예에 따르면, 프로세서(1040)는 사용자 인터페이스 장치(1020)를 통해 상기 생성된 제1 가상 평면 및 제2 가상 평면을 사용자에게 제공할 수 있다. 예를 들어, 프로세서(1040)는 디스플레이를 통해 실시간으로 감지중인 상기 제1 평면 및 제2 평면을 표시하고, 상기 표시된 제1 평면 및 제2 평면 각각에 상기 생성된 제1 가상 평면 및 제2 가상 평면을 중첩하여 표시할 수 있다. 또한, 프로세서(1040)는 디스플레이를 통해 상기 생성된 제1 가상 평면 및 제2 가상 평면을 포함하는 3D 모델을 제공할 수 있다. 상기 3D 모델은. 예를 들어, 인식된 평면에 대한 오차가 존재하는 임시모델일 수 있다.
일 실시 예에 따르면, 프로세서(1040)는 사용자 인터페이스 장치(1020)를 통해 상기 생성된 제1 가상 평면 및 제2 가상 평면에 기초하여 상기 인식된 제1 평면 및 제2 평면의 관계를 정의하는 사용자 입력을 수신할 수 있다. 예를 들어, 프로세서(1040)는 상기 인식된 제2 평면의 크기, 및 상기 인식된 제1 평면에 대한 상대적인 위치를 정의하는 사용자 입력을 수신할 수 있다. 일 실시 예에 따르면, 프로세서(1040)는 감지되는 평면에 중첩되어 표시되는 제1 가상 평면 및 제2 가상 평면을 통해 제1 평면 및 제2 평면의 관계를 정의하는 사용자 입력을 수신할 수 있다. 상기 제1 가상 평면 및 제2 가상 평면은, 예를 들어, 터치스크린을 통해 제공될 수 있다. 또한, 프로세서(1040)는 터치스크린을 통해 제공되는 3D 모델을 통해 상기 인식된 제1 평면 및 제2 평면의 관계를 정의하는 사용자 입력을 수신할 수 있다.
일 실시 예에 따르면, 프로세서(1040)는 상기 수신된 사용자 입력에 기초하여 제2 평면을 재인식할 수 있다. 예를 들어, 프로세서(1040)는 상기 수신된 사용자 입력에 기초하여 상기 인식된 제2 가상 평면의 크기, 및 상기 인식된 제1 가상 평면에 대한 상대적인 위치를 재인식할 수 있다. 일 실시 예에 따르면, 프로세서(1040)는 재인식된 제2 평면에 대한 정보를 다시 저장할 수 있다.
일 실시 예에 따르면, 프로세서(1040)는 상기 제1 가상 평면, 및 상기 변경된 제2 가상 평면을 포함하는, 상기 지정된 공간에 대응되는 3D 모델을 생성할 수 있다.
도 1 내지 도 10 상에서 설명한 다양한 실시 예에 따른 전자 장치(10)는 원하는 평면의 선택, 및 평면들 사이의 관계를 정의하는 사용자 입력에 따라 센서를 통해 인식된 평면들의 위치 및 크기를 재인식함으로써, 센서에서 오차가 발생하거나, 공간의 구조의 특성 및 공간에 배치되어 있는 물건에 의해 평면을 인식하기 어려운 환경에 의해 평면들의 상대적인 위치가 잘못 인식되거나, 평면의 일부만이 인식된 경우라도 공간을 형성하는 평면들을 다시 정확하게 인식할 수 있다. 그리고 전자 장치(10)는 평면으로 인식되는 여러 영역에 대한 정보를 사용자에게 제공하고, 이들 중 선택하는 사용자 입력에 따라 공간을 형성하는 평면을 인식함으로써, 다양한 평면이 인식될 수 있는 환경에서도 정확하게 특정 공간에 대응되는 3D 모델을 생성할 수 있다. 또한, 전자 장치(10)는 공간을 정확하게 인식하기 위한 복잡한 알고리즘을 이용하지 않고 위와 같이 적절한 단계에서 사용자 입력을 이용함으로써, 정확하게 공간을 형성하는 평면을 인식하면서도 사용자에게 실시간으로 가상의 공간을 만드는 것과 같은 경험을 제공할 수 있다.
본 개시에서 설명된 전자 장치(10)는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 또한, 본 개시는, 전자 장치(10)의 동작 방법을 수행할 수 있도록 컴퓨터 판독가능 저장매체에 저장된 컴퓨터 프로그램 형태로 제공될 수 있다. 또한, 본 개시는, 컴퓨터에서 실행될 수 있는 프로그램으로 작성가능하고, 컴퓨터 판독 가능 저장매체를 이용하여 이와 같은 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다.
이와 같은 컴퓨터 판독 가능 저장매체는 read-only memory (ROM), random-access memory (RAM), flash memory, CD-ROMs, CD-Rs, CD+Rs, CD-RWs, CD+RWs, DVD-ROMs, DVD-Rs, DVD+Rs, DVD-RWs, DVD+RWs, DVD-RAMs, BD-ROMs, BD-Rs, BD-R LTHs, BD-REs, 마그네틱 테이프, 플로피 디스크, 광자기 데이터 저장 장치, 광학 데이터 저장 장치, 하드 디스크, 솔리드-스테이트 디스크(SSD)일 수 있고, 명령어 또는 소프트웨어, 관련 데이터, 데이터 파일, 및 데이터 구조들을 저장할 수 있고, 프로세서나 컴퓨터가 명령어를 실행할 수 있도록 프로세서나 컴퓨터에 명령어 또는 소프트웨어, 관련 데이터, 데이터 파일, 및 데이터 구조들을 제공할 수 있는 어떠한 장치라도 될 수 있다.
이상에서 실시예들에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 기술분야에서 통상의 지식을 가진 자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속한다.
Claims (18)
- 지정된 공간을 형성하는, 천장 평면 및 바닥 평면을 포함하는 복수의 평면을 인식하는 단계;
상기 지정된 공간에 포함되고, 상기 인식된 복수의의 평면에 포함된 제1 평면에 이웃하는 제2 평면의 적어도 일부를 인식하는 단계, - 상기 제2 평면은 상기 지정된 공간을 형성하는 평면임 - ;
상기 인식된 제1 평면, 및 상기 제2 평면의 인식된 적어도 일부에 대응되는 제1 가상 평면 및 제2 가상 평면을 생성하는 단계;
상기 생성된 제1 가상 평면 및 제2 가상 평면에 기초하여 상기 인식된 제1 평면 및 제2 평면의 관계를 정의하는 사용자 입력을 수신하는 단계;
상기 수신된 사용자 입력에 기초하여 상기 제2 가상 평면을 변경하는 단계; 및
상기 복수의 평면 각각의 가상 평면, 상기 제1 가상 평면, 및 상기 변경된 제2 가상 평면을 포함하는, 상기 지정된 공간에 대응되는 3D 모델을 생성하는 단계;를 포함하는, 전자 장치의 동작 방법. - 제1항에 있어서,
상기 제1 평면에 이웃하는 제2 평면은, 상기 제1 평면의 일단에 상기 제2 평면의 일단이 접촉하는 것인, 전자 장치의 동작 방법. - 제1항에 있어서,
상기 제2 평면의 적어도 일부를 인식하는 단계는,
뎁스 센서(depth sensor) 및 RGB 센서(RGB sensor) 중 적어도 하나를 통해 상기 제2 평면 위의 지점들을 감지하는 단계; 및
상기 감지된 지점들에 대한 정보에 기초하여 상기 제2 평면의 적어도 일부를 인식하는 단계;를 포함하는, 전자 장치의 동작 방법. - 제1항에 있어서,
상기 제1 평면 및 제2 평면을 인식하기 전, 상기 지정된 공간을 인식하는데 기준이 될 수 있는 상기 천장 평면 및 바닥 평면을 인식하는 단계, - 상기 제1 평면 및 제2 평면은 상기 천장 평면 및 바닥 평면 외의 상기 지정된 공간을 형성하는 평면임 -;
상기 인식된 천장 및 바닥의 평면에 기초하여 가상의 천장 평면 및 바닥 평면을 생성하는 단계; 및
상기 생성된 가상의 천장 평면 및 바닥 평면에 기초하여 상기 천장 및 바닥의 평면 중 적어도 하나에 대한 상기 제2 평면과의 관계를 정의하는 사용자 입력을 수신하는 단계;를 더 포함하고,
상기 제2 가상 평면을 변경하는 단계는, 상기 수신된 사용자 입력을 포함한, 상기 인식된 복수의 평면들 사이의 관계를 정의하는 복수의 사용자 입력에 기초하여 상기 제2 가상의 평면을 변경하는, 전자 장치의 동작 방법. - 제1항에 있어서,
상기 제2 평면의 적어도 일부를 인식하는 단계는,
상기 제2 평면의 일부를 인식하는 단계;
상기 제2 평면의 인식된 일부에 대한 정보를, 먼저 인식된 제3 평면에 대한 정보와 비교하여 상기 제3 평면이 상기 제2 평면에 포함되는지 판단하는 단계; 및
상기 제3 평면이 상기 제2 평면에 포함되는 경우, 상기 제2 평면의 인식된 일부, 및 상기 제3 평면에 대한 정보에 기초하여 상기 제2 평면의 인식된 일부를 확장하는 단계;를 포함하고, 전자 장치의 동작 방법. - 제1항에 있어서
상기 제1 가상 평면 및 제2 가상 평면을 생성하는 단계는, 평면을 인식하기 위해 센서로 감지중인 상기 제1 평면 및 제2 평면의 이미지를 실시간으로 디스플레이에 표시하는 단계; 및
상기 디스플레이에 표시된 이미지 상의 상기 제1 평면 및 제2 평면 각각에 상기 제1 가상 평면 및 상기 제2 가상 평면을 실시간으로 중첩하여 표시하는 단계;를 포함하고,
상기 인식된 평면들의 관계를 정의하는 사용자 입력을 수신하는 단계는, 상기 디스플레이에 표시된 제1 가상 평면 및 제2 가상 평면을 통해 상기 사용자 입력을 실시간으로 수신하는 단계;를 포함하는, 전자 장치의 동작 방법. - 제6항에 있어서,
상기 사용자 입력을 실시간으로 수신하는 단계는, 상기 이미지 상에 표시된 제1 가상 평면 및 제2 가상 평면의 경계선이나 본체를 터치하여 드래그 앤 드랍 방식으로 상기 제1 평면 및 제2 평면의 관계를 정의하는 사용자 입력을 수신하는 단계;를 포함하는, 전자 장치의 동작 방법. - 제1항에 있어서,
상기 제1 가상 평면 및 제2 가상 평면을 생성하는 단계는, 상기 제1 가상 평면 및 제2 가상 평면을 포함하는 3D 모델을 디스플레이에 표시하는 단계;를 포함하고,
상기 인식된 평면들의 관계를 정의하는 사용자 입력을 수신하는 단계는, 상기 디스플레이에 표시된 3D 모델을 통해 상기 사용자 입력을 수신하는 단계;를 포함하는, 전자 장치의 동작 방법. - 제1항에 있어서,
상기 제2 가상 평면을 변경하는 단계는, 상기 수신된 사용자 입력에 기초하여 상기 제2 가상 평면의 크기, 및 상기 제1 가상 평면에 대한 상대적인 위치 중 적어도 하나를 변경하는 단계;를 포함하는, 전자 장치의 동작 방법. - 제9항에 있어서,
상기 수신된 사용자 입력은 상기 제2 가상 평면의 크기 및 위치 중 어느 하나를 정의하는 입력이고,
상기 제2 가상 평면의 크기, 및 상대적인 위치를 변경하는 단계는, 상기 수신된 사용자 입력에 기초하여 상기 제2 가상 평면의 크기 및 위치 중 어느 하나를 변경하는 단계;를 포함하는, 전자 장치의 동작 방법. - 제9항에 있어서,
상기 제2 가상 평면의 크기, 및 상대적인 위치를 변경하는 단계는, 상기 수신된 사용자 입력에 기초하여 상기 제2 가상 평면의 크기 및 위치 중 변경된 어느 하나를 기준으로 나머지 하나를 변경하는 단계;를 포함하는, 전자 장치의 동작 방법. - 제11항에 있어서,
상기 수신된 사용자 입력은 상기 제1 평면 및 제2 평면의 이웃하는 관계를 정의하는 입력이고,
상기 어느 하나를 기준으로 나머지 하나를 결정하는 단계는, 상기 수신된 사용자 입력에 기초하여 상기 제2 가상 평면의 상기 제1 가상 평면에 대한 상대적인 위치를 기준으로, 상기 제2 가상 평면의 크기를 확장 또는 축소하는 단계를 포함하는, 전자 장치의 동작 방법. - 제11항에 있어서,
상기 수신된 사용자 입력은 상기 인식된 제1 평면 및 제2 평면을 상기 지정된 공간의 경계를 형성하는 평면으로 정의하는 입력이고,
상기 어느 하나를 기준으로 나머지 하나를 결정하는 단계는, 상기 수신된 사용자 입력에 기초하여 상기 제1 가상 평면 및 제2 가상 평면의 일단이 서로 접촉하여 외부와의 경계를 형성하도록 상기 인식된 제2 가상 평면의 위치 및 크기 중 변경된 어느 하나를 기준으로 상기 인식된 제2 가상 평면의 나머지 하나를 변경하는 단계;를 포함하는, 전자 장치의 동작 방법. - 제1항에 있어서,
상기 지정된 공간에 대응되는 3D 모델을 생성하기 위해 상기 제1 평면 및 제2 평면을 선택하는 사용자 입력을 수신하는 단계;를 더 포함하는, 전자 장치의 동작 방법. - 제14항에 있어서,
상기 제1 평면 및 제2 평면을 선택하는 사용자 입력을 수신하는 단계는, 평면을 인식하기 위해 센서로 감지중인 표면의 이미지를 표시한 디스플레이의 지정된 부분이, 상기 이미지 상의 제1 평면 및 제2 평면 각각에 중첩되어 표시된 상기 제1 가상 평면 및 제2 가상 평면에 위치하는 상태에서, 평면의 인식을 시작하기 위한 상기 사용자 입력을 수신하는 단계;를 포함하는, 전자 장치의 동작 방법. - 제1항에 있어서,
상기 인식된 평면들의 관계를 정의하는 사용자 입력을 수신하는 단계는, 상기 제2 평면의 전체가 인식된 경우, 상기 사용자 입력을 수신하지 않고, 상기 지정된 공간을 대응하는 3D 모델을 생성하는 단계를 수행하는, 전자 장치의 동작 방법. - 컴퓨터 판독 가능 저장 매체에 저장되고, 하나 이상의 프로세서에 의해 실행되도록 구성되는 컴퓨터 프로그램에 있어서, 상기 컴퓨터 프로그램은,
지정된 공간을 형성하는, 천장 평면 및 바닥 평면을 포함하는 복수의 평면을 인식하는 명령어;
상기 지정된 공간에 포함되고, 상기 인식된 복수의 평면에 포함된 제1 평면에 이웃하는 제2 평면의 적어도 일부를 인식하는 명령어, - 상기 제2 평면은 상기 지정된 공간을 형성하는 평면임 - ;
상기 인식된 제1 평면, 및 상기 제2 평면의 인식된 적어도 일부에 대응되는 제1 가상 평면 및 제2 가상 평면을 생성하는 명령어;
상기 생성된 제1 가상 평면 및 제2 가상 평면에 기초하여 상기 인식된 제1 평면 및 제2 평면의 관계를 정의하는 사용자 입력을 수신하는 명령어;
상기 수신된 사용자 입력에 기초하여 상기 제2 가상 평면을 변경하는 명령어; 및
상기 복수의 평면 각각의 가상 평면, 상기 제1 가상 평면, 및 상기 변경된 제2 가상 평면을 포함하는, 상기 지정된 공간에 대응되는 3D 모델을 생성하는 명령어;를 포함하는, 컴퓨터 프로그램. - 센싱 장치;
사용자 인터페이스 장치;
하나 이상의 명령어를 저장하는 메모리; 및
상기 메모리에 저장된 상기 하나 이상의 명령어를 실행하는 프로세서;를 포함하고,
상기 프로세서는, 상기 하나 이상의 명령어를 실행함으로써,
상기 센싱 장치를 통해, 지정된 공간을 형성하는, 천장 평면 및 바닥 평면을 포함하는 복수의 평면을 인식하고,
상기 센싱 장치를 통해, 상기 지정된 공간에 포함되고 상기 인식된 복수의 평면에 포함된 제1 평면에 이웃하는 제2 평면의 적어도 일부를 인식하고, 상기 제2 평면은 상기 지정된 공간을 형성하는 평면이고,
상기 사용자 인터페이스 장치를 통해, 상기 인식된 제1 평면 및 상기 제2 평면의 적어도 일부에 대응되는 제1 가상 평면 및 제2 가상 평면을 생성하고,
상기 사용자 인터페이스 장치를 통해, 상기 생성된 제1 가상 평면 및 제2 가상 평면에 기초하여 상기 인식된 제1 평면 및 제2 평면의 관계를 정의하는 사용자 입력을 수신하고,
상기 수신된 사용자 입력에 기초하여 상기 제2 가상 평면을 변경하고,
상기 사용자 인터페이스 장치를 통해, 상기 복수의 평면 각각의 가상 평면, 상기 제1 가상 평면, 및 상기 변경된 제2 평면을 포함하는, 상기 지정된 공간에 대응되는 3D 모델을 생성하는, 전자 장치.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220174967A KR102622431B1 (ko) | 2022-12-14 | 2022-12-14 | 사용자 입력에 따라 인식된 평면의 정보에 기초하여 3d 모델을 생성하는 방법, 컴퓨터 프로그램 및 전자 장치 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020220174967A KR102622431B1 (ko) | 2022-12-14 | 2022-12-14 | 사용자 입력에 따라 인식된 평면의 정보에 기초하여 3d 모델을 생성하는 방법, 컴퓨터 프로그램 및 전자 장치 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR102622431B1 true KR102622431B1 (ko) | 2024-01-08 |
Family
ID=89533004
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220174967A KR102622431B1 (ko) | 2022-12-14 | 2022-12-14 | 사용자 입력에 따라 인식된 평면의 정보에 기초하여 3d 모델을 생성하는 방법, 컴퓨터 프로그램 및 전자 장치 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102622431B1 (ko) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014238714A (ja) * | 2013-06-07 | 2014-12-18 | Necソリューションイノベータ株式会社 | 三次元データ生成装置、三次元データ生成方法、及びプログラム |
KR102216736B1 (ko) * | 2013-09-11 | 2021-02-16 | 퀄컴 인코포레이티드 | 깊이 센서들을 사용하는 구조적 모델링 |
KR20210083571A (ko) * | 2019-12-27 | 2021-07-07 | (주) 아키드로우 | 벽면 포인팅 기반 실내 구조 정보 생성 및 가상 객체 매핑을 제공하는 휴대용 단말기 및 그 동작 방법 |
KR20220086858A (ko) * | 2020-12-17 | 2022-06-24 | 주식회사 케이티 | 가상 공간을 생성하는 사용자 단말, 방법 및 컴퓨터 프로그램 |
-
2022
- 2022-12-14 KR KR1020220174967A patent/KR102622431B1/ko active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014238714A (ja) * | 2013-06-07 | 2014-12-18 | Necソリューションイノベータ株式会社 | 三次元データ生成装置、三次元データ生成方法、及びプログラム |
KR102216736B1 (ko) * | 2013-09-11 | 2021-02-16 | 퀄컴 인코포레이티드 | 깊이 센서들을 사용하는 구조적 모델링 |
KR20210083571A (ko) * | 2019-12-27 | 2021-07-07 | (주) 아키드로우 | 벽면 포인팅 기반 실내 구조 정보 생성 및 가상 객체 매핑을 제공하는 휴대용 단말기 및 그 동작 방법 |
KR20220086858A (ko) * | 2020-12-17 | 2022-06-24 | 주식회사 케이티 | 가상 공간을 생성하는 사용자 단말, 방법 및 컴퓨터 프로그램 |
Non-Patent Citations (1)
Title |
---|
Xiao, et al., User-Guided Dimensional Analysis of Indoor Building Environments from Single Frames of RGB-D Sensors, Journal of Computing in Civil Engineering 31.4 (2017)* * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9443353B2 (en) | Methods and systems for capturing and moving 3D models and true-scale metadata of real world objects | |
JP6265027B2 (ja) | 表示装置、位置特定プログラム、および位置特定方法 | |
US10324563B2 (en) | Identifying a target touch region of a touch-sensitive surface based on an image | |
US9342930B1 (en) | Information aggregation for recognized locations | |
US9378581B2 (en) | Approaches for highlighting active interface elements | |
US20160248968A1 (en) | Depth determination using camera focus | |
US20200133432A1 (en) | Virtual touch screen | |
US10003777B2 (en) | Projection screen for specularly reflecting light | |
US10318152B2 (en) | Modifying key size on a touch screen based on fingertip location | |
US9996947B2 (en) | Monitoring apparatus and monitoring method | |
US10664090B2 (en) | Touch region projection onto touch-sensitive surface | |
CN112204623B (zh) | 着色三维数字模型生成 | |
JP6335695B2 (ja) | 情報処理装置、その制御方法、プログラム、及び記憶媒体 | |
WO2023005922A1 (zh) | 人-物体场景识别方法、装置及计算机可读存储介质 | |
KR102622431B1 (ko) | 사용자 입력에 따라 인식된 평면의 정보에 기초하여 3d 모델을 생성하는 방법, 컴퓨터 프로그램 및 전자 장치 | |
JP2022501751A (ja) | 3d幾何抽出のために画像の複数から相補的画像を選択するシステムおよび方法 | |
KR20140103021A (ko) | 객체 인식이 가능한 전자 장치 | |
KR102273198B1 (ko) | 시각적으로 코딩된 패턴 인식 방법 및 장치 | |
JP6303918B2 (ja) | ジェスチャ管理システム、ジェスチャ管理プログラム、ジェスチャ管理方法および指さし認識装置 | |
KR102122793B1 (ko) | 전자 디바이스 및 전자 디바이스에서 이미지 처리 방법 | |
JP4979895B2 (ja) | ディスプレイ制御装置、ディスプレイ制御方法、ディスプレイ制御プログラム、およびディスプレイ | |
EP3191918B1 (en) | Developing contextual information from an image | |
JP6031962B2 (ja) | 輪郭検出装置、輪郭検出方法および輪郭検出プログラム | |
JP5478559B2 (ja) | ディスプレイ制御装置、ディスプレイ制御方法、ディスプレイ制御プログラム、およびディスプレイ | |
CN116734726A (zh) | 测量系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |