KR20240035281A - An augmented reality device for proving augmented reality service which controls an object in the real world space and a method for operating the same - Google Patents
An augmented reality device for proving augmented reality service which controls an object in the real world space and a method for operating the same Download PDFInfo
- Publication number
- KR20240035281A KR20240035281A KR1020220135234A KR20220135234A KR20240035281A KR 20240035281 A KR20240035281 A KR 20240035281A KR 1020220135234 A KR1020220135234 A KR 1020220135234A KR 20220135234 A KR20220135234 A KR 20220135234A KR 20240035281 A KR20240035281 A KR 20240035281A
- Authority
- KR
- South Korea
- Prior art keywords
- augmented reality
- model
- segmentation
- floor
- reality device
- Prior art date
Links
- 230000003190 augmentative effect Effects 0.000 title claims abstract description 314
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000011218 segmentation Effects 0.000 claims abstract description 163
- 238000010422 painting Methods 0.000 claims abstract description 49
- 238000009877 rendering Methods 0.000 claims description 12
- 239000000284 extract Substances 0.000 claims description 11
- 238000012790 confirmation Methods 0.000 claims description 8
- 238000005259 measurement Methods 0.000 claims description 4
- 238000005516 engineering process Methods 0.000 description 33
- 238000012545 processing Methods 0.000 description 27
- 238000003062 neural network model Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 21
- 238000004590 computer program Methods 0.000 description 19
- 230000003287 optical effect Effects 0.000 description 17
- 239000003973 paint Substances 0.000 description 13
- 239000013598 vector Substances 0.000 description 11
- 230000001133 acceleration Effects 0.000 description 10
- 238000013473 artificial intelligence Methods 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 7
- 238000013527 convolutional neural network Methods 0.000 description 6
- 238000001514 detection method Methods 0.000 description 6
- 239000011521 glass Substances 0.000 description 6
- 230000000306 recurrent effect Effects 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000020169 heat generation Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000005484 gravity Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 230000002457 bidirectional effect Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 210000003128 head Anatomy 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 239000004984 smart glass Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 238000003384 imaging method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000002194 synthesizing effect Effects 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 239000012780 transparent material Substances 0.000 description 1
Images
Classifications
-
- 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
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- 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/30—Polynomial surface description
-
- 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/006—Mixed reality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T5/00—Image enhancement or restoration
- G06T5/77—Retouching; Inpainting; Scratch removal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/11—Region-based segmentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/10—Segmentation; Edge detection
- G06T7/13—Edge detection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/74—Image or video pattern matching; Proximity measures in feature spaces
- G06V10/761—Proximity, similarity or dissimilarity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2210/00—Indexing scheme for image generation or computer graphics
- G06T2210/04—Architectural design, interior design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2219/00—Indexing scheme for manipulating 3D models or images for computer graphics
- G06T2219/20—Indexing scheme for editing of 3D models
- G06T2219/2004—Aligning objects, relative positioning of parts
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Geometry (AREA)
- Architecture (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Multimedia (AREA)
- Processing Or Creating Images (AREA)
Abstract
현실 공간에서 객체를 제어하는 증강 현실 서비스를 제공하는 증강 현실 디바이스 및 그 동작 방법을 제공한다. 본 개시의 일 실시예에 따른 증강 현실 디바이스는 카메라를 이용하여 현실 공간을 촬영하여 획득한 공간 이미지로부터 벽 및 바닥을 포함하는 평면을 인식하고, 인식된 벽과 바닥을 확장하고, 공간 이미지를 이용하여 확장된 벽과 바닥 중 객체에 의해 가려진 영역에 대하여 3차원 인-페인팅을 수행함으로써 현실 공간에 관한 3차원 모델을 생성하고, 사용자 입력에 의해 선택된 객체를 상기 공간 이미지로부터 분할하는 2차원 세그멘테이션(2D segmentation)을 수행하며, 객체의 3차원 모델 또는 3차원 위치 정보에 기초하여 공간 이미지 상에서 객체를 현실 공간으로부터 분할하는 3차원 세그멘테이션(3D segmentation)을 수행할 수 있다. An augmented reality device that provides an augmented reality service that controls objects in real space and a method of operating the same are provided. An augmented reality device according to an embodiment of the present disclosure recognizes a plane including a wall and a floor from a spatial image obtained by photographing a real space using a camera, expands the recognized wall and floor, and uses the spatial image. By performing 3D in-painting on the area covered by the object among the extended walls and floor, a 3D model of the real space is created, and a 2D segmentation (2D segmentation) is performed to segment the object selected by user input from the space image. 2D segmentation), and 3D segmentation that divides an object from real space on a spatial image based on a 3D model of the object or 3D location information can be performed.
Description
본 개시는 현실 공간에서 객체를 제어하는 증강 현실 서비스를 제공하는 증강 현실 디바이스(augment reality device) 및 그 동작 방법에 관한 것이다. 구체적으로, 본 개시는 심층 신경망을 이용하는 이미지 프로세싱 및 증강 현실 기술을 이용하여 가상의 객체 뿐만 아니라 현실 공간 내의 객체를 제어할 수 있는 증강 현실 서비스를 제공하는 증강 현실 디바이스 및 그 동작 방법을 개시한다. This disclosure relates to an augmented reality device that provides an augmented reality service that controls objects in real space and a method of operating the same. Specifically, the present disclosure discloses an augmented reality device that provides an augmented reality service capable of controlling not only virtual objects but also objects in real space using image processing and augmented reality technology using a deep neural network, and a method of operating the same.
증강 현실(Augmented Reality)은 현실 세계의 물리적 환경 공간이나 현실 객체(real world object) 상에 가상 객체를 오버레이(overlay)하여 함께 보여주는 기술로서, 증강 현실 기술을 활용한 증강 현실 디바이스(예를 들어, 스마트 글래스(Smart Glass))가 정보 검색, 길 안내, 카메라 촬영과 같이 일상 생활에서 유용하게 사용되고 있다. 특히, 스마트 글래스는 패션 아이템으로도 착용되고, 실외 활동에 주로 사용되고 있다. Augmented Reality is a technology that displays virtual objects by overlaying them on the physical environment space or real world objects of the real world. Augmented reality devices using augmented reality technology (for example, Smart glasses are useful in everyday life, such as information retrieval, route guidance, and camera photography. In particular, smart glasses are also worn as fashion items and are mainly used for outdoor activities.
현재 사용 및 보급되고 있는 증강 현실 기술은 현실 객체를 고려한 다양한 서비스를 대상으로 개발되었다. 증강 현실에서 현실 객체를 고려한 증강 현실 기술의 예시로는, 증강 현실 디바이스를 이용하여 실내 공간의 평면(floorplan)을 검출하는 기술, 현실 객체를 세그멘테이션(segmentation)하여 생성한 윤곽선(outline)에 기초하여 가상 객체를 배치하고, 가상 객체 또는 다양한 그래픽 오브젝트(graphic object)를 합성하는 기술, 또는 특정 현실 객체를 세그멘테이션한 이후 트래킹(tracking)하는 기술 등이 있다. Augmented reality technology that is currently being used and distributed has been developed for various services that take real-world objects into consideration. Examples of augmented reality technology that considers real objects in augmented reality include technology that detects the floorplan of an indoor space using an augmented reality device, and technology that detects the floorplan of an indoor space based on an outline created by segmenting real objects. There are technologies for arranging virtual objects and synthesizing virtual objects or various graphic objects, or technologies for segmenting and then tracking specific real objects.
증강 현실 기술은 현실 공간에 가상 객체를 표현하는 기술이므로, 실시간으로 현실 공간을 인식하여야 하고, 인식된 현실 객체의 정보들을 활용할 필요가 있다. 예를 들어, 사용자가 실내에서 거실의 가구를 교체하고자 할 때, 종래의 증강 현실 서비스들은 실제 가구(현실 객체) 위에 가상의 가구(가상 객체)를 어색하게 겹쳐서 표시하는 방식을 이용하고 있다. 종래의 증강 현실 기술에서는 교체하려는 가구의 영역을 삭제하고, 가상의 가구(가상 객체)를 배치하는 방법을 사용하는데, 복수의 가구가 붙어있는 경우 특정 가구만 선택적으로 삭제하기가 어렵고, 단순 보간법으로 인-페인팅(in-painting)을 수행하므로 배경이 완전 평면이 아니라 벽과 벽 혹은 벽과 바닥으로 꺾여 있을 경우 현실 공간과 다르게 생성되는 문제점이 있다. 특히, 증강 현실 디바이스가 증강 현실 애플리케이션을 실행하여 증강 현실 서비스를 제공하는 동안 심층 신경망(deep neural network) 모델을 이용하는 세그멘테이션 및 인-페인팅과 같이 연산량이 많은 동작을 연속적으로 수행하여야 하므로, 프로세싱 타임(processing time)이 오래 소요되고, 디바이스의 발열 및 전력 소모량이 증가하는 문제점이 있다. 휴대를 위하여 소형 폼팩터를 갖도록 설계되는 증강 현실 디바이스의 특성 상 발열과 전력 소모량은 디바이스 이용 시간에 크게 영향을 미칠 수 있다. Since augmented reality technology is a technology that represents virtual objects in real space, it is necessary to recognize the real space in real time and utilize information about the recognized real objects. For example, when a user wants to replace furniture in a living room indoors, conventional augmented reality services use a method of awkwardly displaying virtual furniture (virtual objects) over real furniture (real objects). Conventional augmented reality technology uses a method of deleting the area of the furniture to be replaced and placing virtual furniture (virtual objects). However, when multiple pieces of furniture are attached, it is difficult to selectively delete only specific pieces of furniture, and simple interpolation is used. Since in-painting is performed, there is a problem in that the background is not completely flat but is curved between walls and walls or walls and floors, creating a space that is different from the real space. In particular, while an augmented reality device runs an augmented reality application and provides an augmented reality service, operations requiring a lot of computation, such as segmentation and in-painting using a deep neural network model, must be performed continuously, reducing processing time ( There is a problem that processing time takes a long time and the heat generation and power consumption of the device increases. Due to the nature of augmented reality devices, which are designed to have a small form factor for portability, heat generation and power consumption can greatly affect device use time.
상술한 기술적 과제를 해결하기 위하여 본 개시는 현실 공간에서 객체를 제어하는 증강 현실 서비스를 제공하는 증강 현실 디바이스를 제공한다. 본 개시의 일 실시예에 따른 증강 현실 디바이스는 카메라, 가속도 센서(accelerometer) 및 자이로 센서(gyro sensor) 를 포함하는 IMU 센서(Inertial Measurement Unit), 적어도 하나의 명령어들(instructions)를 저장하는 메모리, 및 적어도 하나의 명령어들을 실행하는 적어도 하나의 프로세서를 포함할 수 있다. 상기 적어도 하나의 프로세서는 카메라를 이용하여 현실 공간을 촬영하여 공간 이미지를 획득할 수 있다. 상기 적어도 하나의 프로세서는 획득된 공간 이미지로부터 벽 및 바닥을 포함하는 평면을 인식할 수 있다. 상기 적어도 하나의 프로세서는 인식된 평면에 따라 벽과 바닥을 확장하고, 공간 이미지를 이용하여 확장된 벽과 바닥 중 객체에 의해 가려진 영역에 대하여 3차원 인-페인팅을 수행함으로써 현실 공간에 관한 3차원 모델을 생성할 수 있다. 상기 적어도 하나의 프로세서는 사용자 입력에 의해 선택된 객체를 공간 이미지로부터 분할하는 2차원 세그멘테이션(2D segmentation)을 수행할 수 있다. 상기 적어도 하나의 프로세서는 객체의 3차원 모델 또는 3차원 위치 정보에 기초하여 공간 이미지 상에서 객체를 현실 공간으로부터 분할하는 3차원 세그멘테이션(3D segmentation)을 수행할 수 있다. In order to solve the above-mentioned technical problems, the present disclosure provides an augmented reality device that provides an augmented reality service that controls objects in real space. An augmented reality device according to an embodiment of the present disclosure includes an IMU sensor (Inertial Measurement Unit) including a camera, an accelerometer, and a gyro sensor, a memory that stores at least one instruction, and at least one processor executing at least one instruction. The at least one processor may obtain a spatial image by photographing real space using a camera. The at least one processor may recognize a plane including a wall and a floor from the acquired spatial image. The at least one processor extends the wall and floor according to the recognized plane, and performs 3D in-painting on the area obscured by the object among the extended wall and floor using a spatial image, thereby creating a 3D image of real space. A model can be created. The at least one processor may perform 2D segmentation to segment an object selected by user input from a spatial image. The at least one processor may perform 3D segmentation to segment an object from real space on a spatial image based on a 3D model or 3D location information of the object.
상술한 기술적 과제를 해결하기 위하여 본 개시는 증강 현실 디바이스가 현실 공간에서 객체를 제어하는 증강 현실 서비스를 제공하는 방법을 제공한다. 상기 방법은 카메라를 이용하여 현실 공간을 촬영하여 획득된 공간 이미지로부터 벽 및 바닥을 포함하는 평면을 인식하는 단계를 포함할 수 있다. 상기 방법은 인식된 평면에 따라 벽과 바닥을 확장하고, 공간 이미지를 이용하여 확장된 벽과 바닥 중 객체에 의해 가려진 영역에 대하여 3차원 인-페인팅을 수행함으로써 현실 공간에 관한 3차원 모델을 생성하는 단계를 포함할 수 있다. 상기 방법은 사용자 입력에 의해 선택된 객체를 공간 이미지로부터 분할하는 2차원 세그멘테이션(2D segmentation)을 수행하는 단계를 포함할 수 있다. 상기 방법은 객체의 3차원 모델 또는 3차원 위치 정보에 기초하여 공간 이미지 상에서 객체를 현실 공간으로부터 분할하는 3차원 세그멘테이션(3D segmentation)을 수행하는 단계를 포함할 수 있다.In order to solve the above-mentioned technical problems, the present disclosure provides a method of providing an augmented reality service in which an augmented reality device controls objects in real space. The method may include recognizing a plane including a wall and a floor from a spatial image obtained by photographing a real space using a camera. The method expands the walls and floors according to the recognized plane, and uses spatial images to perform 3D in-painting on the areas obscured by objects among the expanded walls and floors to create a 3D model of real space. It may include steps. The method may include performing 2D segmentation to segment an object selected by user input from a spatial image. The method may include performing 3D segmentation to segment an object from real space on a spatial image based on a 3D model or 3D location information of the object.
본 개시는 컴퓨터로 읽을 수 있는 저장 매체를 포함하는 컴퓨터 프로그램 제품(Computer Program Product)를 제공한다. 상기 저장 매체는 카메라를 이용하여 현실 공간을 촬영하여 획득된 공간 이미지로부터 벽 및 바닥을 포함하는 평면을 인식하는 동작, 인식된 평면에 따라 벽과 바닥을 확장하고, 공간 이미지를 이용하여 확장된 벽과 바닥 중 객체에 의해 가려진 영역에 대하여 3차원 인-페인팅을 수행함으로써 현실 공간에 관한 3차원 모델을 생성하는 동작, 사용자 입력에 의해 선택된 객체를 공간 이미지로부터 분할하는 2차원 세그멘테이션(2D segmentation)을 수행하는 동작, 및 객체의 3차원 모델 또는 3차원 위치 정보에 기초하여 공간 이미지 상에서 객체를 현실 공간으로부터 분할하는 3차원 세그멘테이션(3D segmentation)을 수행하는 동작을 증강 현실 디바이스가 수행하기 위하여, 상기 증강 현실 디바이스에 의해 판독 가능한 명령어들(instructions)을 포함할 수 있다. The present disclosure provides a computer program product including a computer-readable storage medium. The storage medium includes the operation of recognizing a plane including a wall and a floor from a spatial image obtained by photographing a real space using a camera, expanding the wall and floor according to the recognized plane, and expanding the wall and the floor using the spatial image. An operation to create a 3D model of real space by performing 3D in-painting on areas hidden by objects in the floor, and 2D segmentation to segment objects selected by user input from the spatial image. In order for the augmented reality device to perform the operation of performing the operation and the operation of performing 3D segmentation of dividing the object from real space on the spatial image based on the 3D model or 3D location information of the object, the augmented reality device It may include instructions that can be read by a real device.
본 개시는, 다음의 자세한 설명과 그에 수반되는 도면들의 결합으로 쉽게 이해될 수 있으며, 참조 번호(reference numerals)들은 구조적 구성요소(structural elements)를 의미한다.
도 1은 본 개시의 증강 현실 디바이스가 현실 공간 내에서 객체를 삭제, 이동, 또는 추가하는 증강 현실 서비스를 제공하는 동작을 설명하기 위한 개념도이다.
도 2는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 현실 공간에서 객체를 제어하는 동작을 도시한 도면이다.
도 3은 본 개시의 일 실시예에 따른 증강 현실 디바이스의 구성 요소를 도시한 블록도이다.
도 4는 본 개시의 일 실시예에 따른 증강 현실 디바이스의 동작 방법을 도시한 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 현실 공간에 관한 3차원 모델을 생성하는 방법을 도시한 흐름도이다.
도 6은 본 개시의 일 실시예에 따른 증강 현실 디바이스가 현실 공간 내의 평면들의 형태에 관한 3차원 모델 형태를 획득하는 동작을 도시한 도면이다.
도 7a는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 공간 이미지에서 벽과 바닥의 평면을 구분하는 동작을 도시한 도면이다.
도 7b는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 공간 이미지에서 벽과 창문의 평면을 구분하는 동작을 도시한 도면이다.
도 7c는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 공간 이미지에서 패턴이 다른 벽과 바닥의 평면을 구분하는 동작을 도시한 도면이다.
도 8은 본 개시의 일 실시예에 따른 증강 현실 디바이스가 3차원 인-페인팅(3D in-painting)을 수행하는 동작을 도시한 도면이다.
도 9는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 공간 이미지로부터 2차원 세그멘테이션(2D segmentation)을 수행하는 동작을 도시한 도면이다.
도 10은 본 개시의 일 실시예에 따른 증강 현실 디바이스가 객체에 관한 3차원 모델의 저장되어 있는지 여부에 기초하여 3차원 세그멘테이션(3D segmentation)을 수행하는 방법을 도시한 흐름도이다.
도 11은 본 개시의 일 실시예에 따른 증강 현실 디바이스가 객체에 관하여 기 저장된 3차원 모델을 이용하여 3차원 세그멘테이션을 수행하는 동작을 도시한 도면이다.
도 12는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 객체에 관한 3차원 모델이 저장되어 있지 않은 경우 3차원 세그멘테이션을 수행하는 동작을 도시한 도면이다.
도 13은 본 개시의 일 실시예에 따른 증강 현실 디바이스가 3차원 모델을 현실 공간에 배치하고, 3차원 모델을 이용하여 렌더링을 수행하는 방법을 도시한 흐름도이다.
도 14는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 3차원 세그멘테이션을 추가로 수행하고, 세그멘테이션 결과를 업데이트하는 방법을 도시한 흐름도이다. The present disclosure may be readily understood by combination of the following detailed description and accompanying drawings, where reference numerals refer to structural elements.
1 is a conceptual diagram illustrating an operation of an augmented reality device of the present disclosure to provide an augmented reality service that deletes, moves, or adds objects in real space.
FIG. 2 is a diagram illustrating an operation of an augmented reality device controlling an object in real space according to an embodiment of the present disclosure.
Figure 3 is a block diagram showing the components of an augmented reality device according to an embodiment of the present disclosure.
Figure 4 is a flowchart showing a method of operating an augmented reality device according to an embodiment of the present disclosure.
FIG. 5 is a flowchart illustrating a method for an augmented reality device to generate a three-dimensional model of a real space according to an embodiment of the present disclosure.
FIG. 6 is a diagram illustrating an operation of an augmented reality device acquiring a three-dimensional model of the shape of planes in real space according to an embodiment of the present disclosure.
FIG. 7A is a diagram illustrating an operation of an augmented reality device distinguishing between a wall and a floor plane in a spatial image according to an embodiment of the present disclosure.
FIG. 7B is a diagram illustrating an operation of an augmented reality device according to an embodiment of the present disclosure to distinguish the planes of a wall and a window in a spatial image.
FIG. 7C is a diagram illustrating an operation of an augmented reality device according to an embodiment of the present disclosure to distinguish between walls and floor planes with different patterns in a spatial image.
FIG. 8 is a diagram illustrating an operation of an augmented reality device performing 3D in-painting according to an embodiment of the present disclosure.
FIG. 9 is a diagram illustrating an operation of an augmented reality device performing 2D segmentation from a spatial image according to an embodiment of the present disclosure.
FIG. 10 is a flowchart illustrating a method in which an augmented reality device performs 3D segmentation based on whether a 3D model for an object is stored according to an embodiment of the present disclosure.
FIG. 11 is a diagram illustrating an operation in which an augmented reality device performs 3D segmentation using a previously stored 3D model of an object according to an embodiment of the present disclosure.
FIG. 12 is a diagram illustrating an operation of an augmented reality device performing 3D segmentation when a 3D model for an object is not stored according to an embodiment of the present disclosure.
FIG. 13 is a flowchart illustrating a method in which an augmented reality device places a 3D model in real space and performs rendering using the 3D model according to an embodiment of the present disclosure.
FIG. 14 is a flowchart illustrating a method in which an augmented reality device additionally performs 3D segmentation and updates the segmentation result according to an embodiment of the present disclosure.
본 명세서의 실시예들에서 사용되는 용어는 본 개시의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 실시예의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 명세서에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다. The terms used in the embodiments of the present specification are general terms that are currently widely used as much as possible while considering the function of the present disclosure, but this may vary depending on the intention or precedent of a person working in the art, the emergence of new technology, etc. . In addition, in certain cases, there are terms arbitrarily selected by the applicant, and in this case, the meaning will be described in detail in the description of the relevant embodiment. Therefore, the terms used in this specification should not be defined simply as the names of the terms, but should be defined based on the meaning of the term and the overall content of the present disclosure.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 명세서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다. Singular expressions may include plural expressions, unless the context clearly indicates otherwise. Terms used herein, including technical or scientific terms, may have the same meaning as generally understood by a person of ordinary skill in the technical field described herein.
본 개시 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 본 명세서에 기재된 "...부", "...모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.Throughout the present disclosure, when a part “includes” a certain element, this means that it may further include other elements rather than excluding other elements, unless specifically stated to the contrary. In addition, terms such as "...unit" and "...module" used in this specification refer to a unit that processes at least one function or operation, which is implemented as hardware or software or as a combination of hardware and software. It can be implemented.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(configured to)"은 상황에 따라, 예를 들면, "~에 적합한(suitable for)", "~하는 능력을 가지는(having the capacity to)", "~하도록 설계된(designed to)", "~하도록 변경된(adapted to)", "~하도록 만들어진(made to)", 또는 "~를 할 수 있는(capable of)"과 바꾸어 사용될 수 있다. 용어 "~하도록 구성된(또는 설정된)"은 하드웨어적으로 "특별히 설계된(specifically designed to)" 것만을 반드시 의미하지 않을 수 있다. 대신, 어떤 상황에서는, "~하도록 구성된 시스템"이라는 표현은, 그 시스템이 다른 장치 또는 부품들과 함께 "~할 수 있는" 것을 의미할 수 있다. 예를 들면, 문구 "A, B, 및 C를 수행하도록 구성된(또는 설정된) 프로세서"는 해당 동작을 수행하기 위한 전용 프로세서(예: 임베디드 프로세서), 또는 메모리에 저장된 하나 이상의 소프트웨어 프로그램들을 실행함으로써, 해당 동작들을 수행할 수 있는 범용 프로세서(generic-purpose processor)(예: CPU 또는 application processor)를 의미할 수 있다.The expression “configured to” used in the present disclosure may mean, for example, “suitable for,” “having the capacity to,” depending on the situation. It can be used interchangeably with ", "designed to," "adapted to," "made to," or "capable of." The term “configured (or set to)” may not necessarily mean “specifically designed to” in hardware. Instead, in some contexts, the expression “system configured to” may mean that the system is “capable of” in conjunction with other devices or components. For example, the phrase "processor configured (or set) to perform A, B, and C" refers to a processor dedicated to performing the operations (e.g., an embedded processor), or by executing one or more software programs stored in memory. It may refer to a general-purpose processor (e.g., CPU or application processor) that can perform the corresponding operations.
또한, 본 개시에서 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다. In addition, in the present disclosure, when a component is referred to as “connected” or “connected” to another component, the component may be directly connected or directly connected to the other component, but in particular, the contrary It should be understood that unless a base material exists, it may be connected or connected through another component in the middle.
본 개시에서, '증강 현실(Augmented Reality)'은 현실 세계(Real world)의 물리적 환경 공간 내에 가상 이미지를 함께 보여주거나 현실 객체와 가상 이미지를 함께 보여주는 것을 의미한다.In this disclosure, 'Augmented Reality' means showing virtual images together in the physical environment space of the real world, or showing real objects and virtual images together.
본 개시에서, '증강 현실 디바이스'는 증강 현실을 표현할 수 있는 장치로서, 예를 들어, 모바일 디바이스, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 데스크 탑, 태블릿 PC, 전자책 단말기, 디지털 방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어, 또는 캠코더 중 어느 하나일 수 있다. 그러나, 이에 한정되는 것은 아니고, 본 개시의 일 실시예에서, 증강 현실 디바이스는 사용자가 안면부(顔面部)에 착용하는 안경 형상의 증강 현실 글래스(Augmented Reality Glasses) 뿐만 아니라, 두부(頭部)에 착용하는 헤드 마운트 디스플레이 장치 (HMD : Head Mounted Display Apparatus)나, 증강 현실 헬멧(Augmented Reality Helmet) 등으로 구현될 수도 있다. In the present disclosure, an 'augmented reality device' is a device capable of expressing augmented reality, for example, a mobile device, a smart phone, a laptop computer, a desktop, a tablet PC, an e-book reader, It may be one of digital broadcasting terminals, PDAs (Personal Digital Assistants), PMPs (Portable Multimedia Players), navigation, MP3 players, or camcorders. However, it is not limited thereto, and in one embodiment of the present disclosure, the augmented reality device includes not only glasses-shaped Augmented Reality Glasses worn on the face by the user, but also worn on the head. It can also be implemented as a wearable head mounted display device (HMD: Head Mounted Display Apparatus) or an augmented reality helmet.
본 개시에서, '현실 공간(real world space)'이란 사용자가 증강 현실 장치를 통해서 보는 현실 세계의 공간을 나타낸다. 본 개시의 일 실시예에서, 현실 공간은 실내 공간을 의미할 수 있다. 현실 공간 내에는 현실 객체(real world object)가 배치될 수 있다. In this disclosure, 'real world space' refers to the space of the real world that a user sees through an augmented reality device. In one embodiment of the present disclosure, real space may mean indoor space. Real world objects may be placed within real space.
본 개시에서, '가상 객체(virtual object)'는 광학 엔진을 통해 생성되는 이미지로 정적 이미지와 동적 이미지를 모두 포함할 수 있다. 이러한 가상 객체는 현실 장면과 함께 관측되며, 현실 장면 속의 현실 객체에 대한 정보 또는 증강 현실 장치의 동작에 대한 정보나 제어 메뉴 등을 나타내는 이미지일 수 있다. 본 개시의 일 실시예에서, '가상 객체'는 증강 현실 디바이스에 의해 실행되는 애플리케이션(application) 또는 프로그램(program)을 통해 제공되는 UI(User Interface)를 포함할 수 있다. 예를 들어, 가상 객체는 공간 이미지로부터 인식된 벽, 바닥, 또는 창문 등의 인식 영역을 나타내는 바운딩 박스(bounding box)로 구성된 UI일 수 있다. In the present disclosure, a 'virtual object' is an image generated through an optical engine and may include both static images and dynamic images. These virtual objects are observed together with the real scene, and may be images representing information about the real object in the real scene, information about the operation of the augmented reality device, or a control menu. In one embodiment of the present disclosure, a 'virtual object' may include a User Interface (UI) provided through an application or program executed by an augmented reality device. For example, a virtual object may be a UI composed of a bounding box representing a recognition area such as a wall, floor, or window recognized from a spatial image.
일반적인 증강 현실 디바이스는 광원에서 생성된 광으로 구성되는 가상 객체를 생성하기 위한 광학 엔진과 광학 엔진에서 생성된 가상 객체를 사용자의 눈까지 안내하고 현실 세계의 장면도 함께 볼 수 있도록 투명한 재질로 형성된 웨이브 가이드(waveguide, 또는 도광판)을 구비한다. 전술한 바와 같이, 증강 현실 디바이스는 가상 객체 뿐만 아니라 현실 세계의 장면도 함께 관측할 수 있어야 하므로, 광학 엔진에서 생성된 광을 웨이브 가이드를 통해 사용자의 눈까지 안내하기 위해서는 기본적으로 직진성을 가지는 광의 경로를 변경하기 위한 광학 소자(Optical element)가 필요하다. 이 때, 미러 등에 의한 반사를 이용하여 광 경로를 변경할 수도 있고, DOE(Diffractive optical element), HOE(Holographic optical element) 등과 같은 회절 소자에 의한 회절을 통해 광 경로를 변경할 수도 있으나 이에 한정되는 것은 아니다. A typical augmented reality device includes an optical engine for creating a virtual object composed of light generated from a light source, and a wave formed of a transparent material that guides the virtual object created in the optical engine to the user's eyes and allows the user to view scenes in the real world as well. A guide (waveguide, or light guide plate) is provided. As mentioned above, augmented reality devices must be able to observe not only virtual objects but also scenes in the real world, so in order to guide the light generated by the optical engine to the user's eyes through a wave guide, the light path must be basically straight. An optical element is needed to change . At this time, the optical path may be changed using reflection by a mirror, etc., or the optical path may be changed through diffraction by a diffractive element such as a DOE (Diffractive optical element), HOE (Holographic optical element), etc., but is not limited to this. .
본 개시에서, '인-페인팅(in-painting)'은 이미지의 일부가 가려지거나, 유실되거나, 또는 왜곡된 경우 해당 부분을 복원하는 이미지 프로세싱 기술을 나타낸다. In the present disclosure, 'in-painting' refers to an image processing technique that restores part of an image when that part is obscured, lost, or distorted.
본 개시에서, '세그멘테이션(segmentation)'은 이미지 내에서 객체의 클래스(class) 또는 카테고리(category)를 분류하고, 분류 결과에 따라 이미지 내에서 객체를 다른 객체 또는 배경 이미지와 구분하며, 객체를 분할하는 이미지 프로세싱 기술을 나타낸다. In the present disclosure, 'segmentation' refers to classifying a class or category of an object within an image, distinguishing an object from another object or a background image within the image according to the classification result, and dividing the object. It represents an image processing technology that uses
아래에서는 첨부한 도면을 참고하여 본 개시의 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.Below, with reference to the attached drawings, embodiments of the present disclosure will be described in detail so that those skilled in the art can easily practice them. However, the present disclosure may be implemented in many different forms and is not limited to the embodiments described herein.
이하에서는 도면을 참조하여 본 개시의 실시예들을 상세하게 설명한다. Hereinafter, embodiments of the present disclosure will be described in detail with reference to the drawings.
도 1은 본 개시의 증강 현실 디바이스(100)가 현실 공간(10) 내에서 객체(11, 12, 13)를 삭제, 이동, 또는 추가하는 증강 현실 서비스를 제공하는 동작을 설명하기 위한 개념도이다.FIG. 1 is a conceptual diagram illustrating an operation of the
증강 현실 디바이스(100)는 증강 현실 서비스를 제공하는 장치로서, 예를 들어, 모바일 디바이스, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 데스크 탑, 태블릿 PC, 전자책 단말기, 디지털 방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어, 또는 캠코더 중 어느 하나일 수 있다. 도 1에 도시된 실시예에서, 증강 현실 디바이스(100)는 스마트 폰일 수 있다. 그러나, 이에 한정되는 것은 아니고, 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 사용자가 안면부(顔面部)에 착용하는 안경 형상의 증강 현실 글래스(Augmented Reality Glasses) 뿐만 아니라, 두부(頭部)에 착용하는 헤드 마운트 디스플레이 장치(HMD : Head Mounted Display Apparatus)나, 증강 현실 헬멧(Augmented Reality Helmet) 등으로 구현될 수도 있다. The
도 1을 참조하면, 증강 현실 디바이스(100)는 증강 현실 서비스를 실행할 수 있다(동작 ①). 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 증강 현실 애플리케이션을 실행함으로써, 사용자에게 증강 현실 서비스를 제공할 수 있다. 증강 현실 애플리케이션이 실행되면, 증강 현실 디바이스(100)는 카메라(110, 도 3 참조)를 이용하여 현실 공간(10)을 촬영함으로써, 공간 이미지(20)를 획득할 수 있다. 증강 현실 디바이스(100)는 실시간으로 현실 공간(10)을 촬영함으로써, 복수의 이미지 프레임으로 구성된 공간 이미지(20)를 획득할 수 있다. Referring to FIG. 1, the
증강 현실 디바이스(100)는 디스플레이부 상에 공간 이미지(20)를 디스플레이하고, 공간 이미지(20) 상에서 특정 객체를 선택하는 사용자 입력을 수신할 수 있다(동작 ②). 공간 이미지(20)에는 현실 공간(10)에 배치된 객체(11, 12, 13) 각각에 관한 객체 이미지(21, 22, 23)가 포함될 수 있다. 예를 들어, 제1 객체 이미지(21)는 제1 객체(11)인 조명등의 이미지이고, 제2 객체 이미지(22)는 제2 객체(12)인 텔레비전의 이미지이며, 제3 객체 이미지(23)는 제3 객체(13)인 탁자의 이미지일 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 터치스크린을 포함하고, 터치스크린 상에 디스플레이되는 공간 이미지(20) 내에 포함된 복수의 객체 이미지(21, 22, 23) 중 어느 하나의 객체 이미지를 선택하는 사용자의 터치 입력을 수신할 수 있다. 도 1에 도시된 실시예에서, 증강 현실 디바이스(100)는 공간 이미지(20) 상에서 제2 객체 이미지(22)를 선택하는 사용자의 터치 입력을 수신할 수 있다. 증강 현실 디바이스(100)는 사용자의 터치 입력에 기초하여 제2 객체 이미지(22)를 선택할 수 있다. 그러나, 이에 한정되는 것은 아니고, 예를 들어 증강 현실 디바이스(100)가 안경 형태의 증강 현실 글래스(augmented reality glass)로 구현되는 경우, 사용자의 양안의 시선 방향이 수렴되는 응시점에 기초하여 객체를 선택할 수도 있다. 또한, 다른 예를 들어, 증강 현실 디바이스(100)가 헤드 마운트 디스플레이 장치로 구현되는 경우, 외부의 컨트롤러를 통해 수신되는 사용자 입력에 기초하여 객체를 선택할 수도 있다.The
증강 현실 디바이스(100)는 사용자 입력에 의해 선택된 객체를 삭제할 수 있다(동작 ③). 도 1에 도시된 실시예에서, 증강 현실 디바이스(100)는 사용자 입력에 의해 선택된 제2 객체 이미지(22)를 공간 이미지(20)로부터 삭제할 수 있다. 제2 객체 이미지(22)가 삭제된 영역에는 제2 객체(텔레비전)에 의해 가려진 벽과 바닥이 표시될 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 평면 인식 기술(plane detection)을 이용하여 현실 공간(10) 내에서 벽과 바닥의 평면들을 인식하고, 인식된 벽과 바닥의 평면들을 확장하고, 확장된 벽과 바닥의 평면 영역 중 복수의 객체(11, 12, 13)에 의해 가려진 영역을 3차원 인-페인팅(3D in-painting)함으로써 현실 공간(10)에 관한 3차원 모델을 생성할 수 있다. 증강 현실 디바이스(100)는 3차원 세그멘테이션(3D segmentation)을 수행함으로써, 사용자 입력에 의해 선택된 제2 객체 이미지(22)를 공간 이미지(20)로부터 분할할 수 있다. 증강 현실 디바이스(100)는 현실 공간(10)에 관한 3차원 모델을 현실 공간(10)에서 인식된 벽과 바닥의 평면에 배치하고, 3차원 모델을 이용하는 렌더링(rendering)을 수행함으로써 공간 이미지(20) 내에서 3차원 세그멘테이션에 의해 분할된 제2 객체 이미지(22)에 의해 가려진 영역을 표시할 수 있다. 구체적인 3차원 모델 생성 방법 및 3차원 세그멘테이션 방법은 이하의 도면들에 관한 설명 부분에서 상세하게 설명하기로 한다. The
증강 현실 디바이스(100)는 공간 이미지(20) 상에서 사용자 입력에 의해 선택된 객체 이미지를 이동 및 추가할 수 있다(동작 ④). 도 1에 도시된 실시예에서, 증강 현실 디바이스(100)는 조명등에 관한 제1 객체 이미지(21)의 위치를 왼쪽에서 오른쪽으로 이동하고, 현실 공간(10)에 없던 객체인 소파의 신규 객체 이미지(30)를 추가할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 기 저장된 객체의 3차원 모델을 이용하거나, 또는 공간 이미지(20)로부터 인식된 객체의 경계선(edge), 특징점, 또는 픽셀의 3차원 위치 좌표값 중 적어도 하나를 이용하는 3차원 세그멘테이션을 수행함으로써, 제1 객체 이미지(21)를 이동하거나, 신규 객체 이미지(30)를 추가할 수 있다. The
증강 현실 디바이스(100)가 현실 공간(10)에 관한 공간 이미지(20)에서 객체를 삭제, 이동, 또는 추가하는 등 객체를 제어하는 구체적인 방법에 대해서는 도 2에서 세하게 설명하기로 한다.A specific method by which the
도 2는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 현실 공간에서 객체를 제어하는 동작을 도시한 도면이다.FIG. 2 is a diagram illustrating an operation of an augmented reality device controlling an object in real space according to an embodiment of the present disclosure.
도 2를 참조하면, 증강 현실 디바이스(100, 도 1 참조)는 현실 공간에 관한 공간 이미지(200)로부터 공간을 인식하고, 현실 공간 내 벽(202, 203, 204)과 바닥(201)의 평면을 인식할 수 있다(동작 ①). 증강 현실 디바이스(100)는 증강 현실 애플리케이션을 실행하여 증강 현실 서비스를 시작하고, 카메라(110, 도 3 참조)를 이용하여 현실 공간을 촬영함으로써 공간 이미지(200)를 획득할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 증강 현실 애플레케이션으로부터 제공되는 평면 인식 기술(plane detection)을 이용하여 공간 이미지(200)로부터 벽(202, 203, 204) 및 바닥(201)의 평면을 인식할 수 있다. Referring to FIG. 2, the augmented reality device 100 (see FIG. 1) recognizes space from the
증강 현실 디바이스(100)는 벽과 바닥에 3차원 인-페인팅(3D in-painting)을 수행할 수 있다(동작 ②). 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 인식된 벽(202, 203, 204)과 바닥(201)의 평면들 각각으로부터 임의의 포인트 3개씩을 추출하고, 벽(202, 203, 204)과 바닥(201) 각각의 평면 방정식을 도출할 수 있다. 증강 현실 디바이스(100)는 도출된 평면 방정식에 기초하여 벽(202, 203, 204)과 바닥(201)의 평면을 확장하여 가상의 벽(212, 213, 214) 및 가상의 바닥(211)로 구성된 3차원 모델 형태를 획득할 수 있다. 증강 현실 디바이스(100)는 카메라(110)로부터 획득된 현실 공간의 벽, 바닥, 및 객체들 각각의 깊이값 정보를 획득하고, 공간 이미지(200)로부터 컬러 정보를 획득하며, 깊이값 정보 및 컬러 정보에 기초하여 가상의 벽(212, 213, 214), 가상의 바닥(211)과 객체의 영역을 구분할 수 있다. 증강 현실 디바이스(100)는 3차원 모델 형태에서 가상의 벽(212, 213, 214)과 가상의 바닥(211) 중 객체에 의해 가려진 부분을 제외하고, 객체에 의해 가려진 영역은 현실 공간의 벽(202, 203, 204)과 바닥(201)의 이미지를 이용하여 가상의 벽(212, 213, 214)과 가상의 바닥(211)에 대하여 각각 별도로 인-페인팅을 수행할 수 있다. The
본 개시에서, '인-페인팅(in-painting)'은 이미지의 일부가 가려지거나, 유실되거나, 또는 왜곡된 경우 해당 부분을 복원하는 이미지 프로세싱 기술을 의미한다. 본 개시에서, '3차원 인-페인팅'은 3차원 이미지에서 3차원 객체에 의해 가려진 영역을 복원하는 이미지 프로세싱 기술을 의미할 수 있다. 증강 현실 디바이스(100)는 인-페인팅을 수행함으로써 가상의 벽(212, 213, 214) 및 가상의 바닥(211)을 포함하는 3차원 모델을 생성할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 생성된 3차원 모델을 메모리(140, 도 3 참조) 내의 저장 공간(예를 들어, 3차원 모델 데이터베이스(148, 도 3 참조))에 저장할 수 있다. In the present disclosure, 'in-painting' refers to an image processing technology that restores part of an image when that part is obscured, lost, or distorted. In the present disclosure, '3D in-painting' may refer to an image processing technology that restores an area obscured by a 3D object in a 3D image. The
증강 현실 디바이스(100)는 사용자 입력에 의해 선택된 객체를 2차원 세그멘테이션(2D segmentation)할 수 있다(동작 ③). 도 2에 도시된 실시예를 참조하면, 증강 현실 디바이스(100)는 실행 중인 증강 현실 애플리케이션을 통해 디스플레이되는 공간 이미지(200) 상에서 제어하고자 하는 객체를 선택하는 사용자 입력을 수신할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 터치스크린을 통해 공간 이미지(200)를 디스플레이하고, 공간 이미지(200)에 포함되는 복수의 객체 중 어느 하나의 객체(220)를 선택하는 사용자 입력을 수신할 수 있다. 증강 현실 디바이스(100)는 사용자 입력에 기초하여 객체(220)를 선택하고, 선택된 객체(220)의 2차원 이미지 정보(예를 들어, 2차원 위치 좌표값 정보), 동작 ① 및 동작 ②에서 획득된 벽(202, 203, 204) 및 바닥(201)의 평면 정보, 깊이 값 정보, 및 객체 구분 정보에 기초하여 객체(220)에 관한 2차원 세그멘테이션을 수행할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 복수의 객체를 라벨(label), 클래스(class) 또는 카테고리(category)로 분류하도록 기 학습된 심층 신경망 모델(pre-trained deep neural network model)을 이용하여 사용자 입력에 의해 선택된 객체(220)를 세그멘테이션할 수 있다. 본 개시에서, '세그멘테이션(segmentation)'은 이미지 내에서 객체를 분류하고, 분류 결과에 따라 이미지 내에서 객체를 다른 객체 또는 배경 이미지와 구분하며, 객체를 분할하는 이미지 프로세싱 기술을 의미한다. The
증강 현실 디바이스(100)는 선택된 객체(220)를 3차원 세그멘테이션(3D segmentation)할 수 있다(동작 ④). 증강 현실 디바이스(100)는 2차원 세그멘테이션을 통해 획득한 정보를 이용하여 객체(220)를 공간 이미지(200)에서 분할하는 3차원 세그멘테이션을 수행할 수 있다. 본 개시의 일 실시예에서, 3차원 세그멘테이션은 객체(220)에 관하여 3차원 모델이 저장되어 있는지 여부에 따라 다르게 수행될 수 있다. 예를 들어, 객체(220)에 관한 3차원 모델이 메모리(140, 도 3 참조) 내의 저장 공간에 기 저장되어 있는 경우, 증강 현실 디바이스(100)는 메모리(140)에 저장된 3차원 모델의 방향을 조절하여 공간 이미지(200) 상의 2차원 세그멘테이션의 윤곽선(outlier)과 겹치도록 객체(220)의 3차원 모델을 배치하고, 배치된 3차원 모델로부터 객체(220)에 관한 3차원 위치 좌표값 정보를 획득할 수 있다. 증강 현실 디바이스(100)는 획득된 3차원 위치 좌표값에 기초하여 객체(220)를 공간 이미지(200)로부터 분할하는 3차원 세그멘테이션을 수행할 수 있다. The
예를 들어, 객체(220)에 관한 3차원 모델이 메모리(140, 도 3 참조) 내에 저장되어 있지 않은 경우, 증강 현실 디바이스(100)는 공간 이미지(200)로부터 인식된 객체(220)의 경계선(edge)(222), 특징점(feature point)(224), 및 픽셀들의 3차원 위치 좌표값 중 적어도 하나에 기초하여 3차원 버텍스 모델링(3D vertex modeling)을 수행하고, 3차원 버텍스 모델링을 통해 객체(220)를 공간 이미지(200)로부터 분할하는 3차원 세그멘테이션을 수행할 수 있다. For example, if the three-dimensional model for the
증강 현실 디바이스(100)는 객체(220)의 삭제, 이동, 및 교체 중 적어도 하나를 수행할 수 있다(동작 ⑤). 증강 현실 디바이스(100)는 3차원 모델을 이용하여 객체(220)에 의해 가려진 영역을 렌더링(rendering)할 수 있다. 렌더링을 통해 증강 현실 디바이스(100)는 객체(220)의 3차원 세그멘테이션을 통해 분할된 영역을 표시할 수 있다. 증강 현실 디바이스(100)는 객체(220)의 2차원 세그멘테이션 정보 및 3차원 세그멘테이션 정보를 이용하여, 객체(220)를 공간 이미지(200)로부터 지우는 삭제, 객체(220)를 다른 객체의 가상 이미지로 대체하는 교체, 또는 객체(220)를 다른 영역에 배치하는 이동 동작을 수행할 수 있다. 이를 통해, 증강 현실 디바이스(100)는 증강 현실에서 현실 공간에서의 객체(220)를 제어할 수 있다. The
종래의 증강 현실 서비스들은 현실 공간 내 객체(도 1의 11, 12, 13 참조) 위에 가상 객체를 어색하게 겹쳐서 표시하는 방식을 이용하고 있다. 예를 들어, 종래의 증강 현실 기술에서는 교체하려는 가구의 영역을 삭제하고, 가상의 가구(가상 객체)를 배치하는 방법을 사용하는데, 복수의 가구가 붙어있는 경우 특정 가구만 선택적으로 삭제하기가 어렵고, 단순 보간법으로 인-페인팅(in-painting)을 수행하므로 배경이 완전 평면이 아니라 벽과 벽 혹은 벽과 바닥으로 꺾여 있을 경우 현실 공간과 다르게 생성되는 문제점이 있다. 특히, 증강 현실 애플리케이션을 실행하여 증강 현실 서비스를 제공하는 동안 현실 공간의 이미지 프레임이 실시간으로 획득되는데, 실시간으로 획득된 복수의 이미지 프레임 각각에 대하여 심층 신경망(deep neural network) 모델을 이용하여 객체를 인식하고, 세그멘테이션하는 경우 연산량이 증가하고, 프로세싱 타임이 오래 소요되는 문제점이 있다. 연산량이 증가하는 경우, 실시간으로 객체 인식 및 세그멘테이션이 정상적으로 진행되지 않고, 지연되므로 증강 현실 서비스의 만족도 및 사용자 편의성이 떨어지게 된다. 또한, 이미지 프레임 별로 객체 인식 및 세그멘테이션을 수행하는 경우 디바이스의 발열 및 전력 소모량이 증가하는 문제점이 있다. 휴대를 위하여 소형 폼팩터를 갖도록 설계되는 증강 현실 디바이스의 특성 상 발열과 전력 소모량은 디바이스 이용 시간에 크게 영향을 미칠 수 있다. Conventional augmented reality services use a method of displaying virtual objects by awkwardly overlapping them on objects in real space (see 11, 12, and 13 in FIG. 1). For example, in conventional augmented reality technology, a method is used to delete the area of the furniture to be replaced and place virtual furniture (virtual objects), but when multiple pieces of furniture are attached, it is difficult to selectively delete only specific pieces of furniture. , Since in-painting is performed using a simple interpolation method, there is a problem in that if the background is not completely flat but is bent by wall-to-wall or wall-to-floor, it is created differently from the real space. In particular, while providing augmented reality services by executing an augmented reality application, image frames in real space are acquired in real time. For each of the multiple image frames acquired in real time, a deep neural network model is used to identify objects. When recognizing and segmenting, there is a problem that the amount of calculation increases and processing time takes a long time. When the amount of computation increases, object recognition and segmentation do not proceed normally in real time and are delayed, thereby reducing the satisfaction and user convenience of the augmented reality service. Additionally, when object recognition and segmentation are performed for each image frame, there is a problem of increased heat generation and power consumption of the device. Due to the nature of augmented reality devices, which are designed to have a small form factor for portability, heat generation and power consumption can greatly affect device use time.
본 개시는 현실 공간에서 가상 객체 뿐만 아니라, 현실 객체까지 자유롭게 제어할 수 있는 증강 현실 서비스를 제공하는 증강 현실 디바이스(100) 및 그 동작 방법을 제공하는 것을 목적으로 한다. 본 개시의 실시예에 따르면, 공간 이미지(도 1의 20, 도 2의 200 참조)로부터 벽과 바닥의 평면들을 인식하고, 인식된 평면을 확장하고 3차원 인-페인팅을 수행하여 현실 공간에 관한 3차원 모델을 생성하고, 2차원 및 3차원 세그멘테이션을 통해 객체를 분할하며, 벽과 바닥의 영역 중 객체에 의해 가려진 영역을 3차원 모델을 이용하여 렌더링하는 증강 현실 디바이스(100)가 제공된다. The purpose of the present disclosure is to provide an
도 1 및 도 2에 도시된 실시예에 따른 증강 현실 디바이스(100)는 실시간으로 현실 공간에 관한 복수의 이미지 프레임을 획득하는 경우 사용자 입력에 의해 객체가 삭제, 이동, 또는 교체되는 등의 제어가 있을 때만 3차원 모델을 이용하여 벽과 바닥을 렌더링하면 되므로, 복수의 이미지 프레임 각각에 대하여 별개의 객체 인식 및 세그멘테이션을 수행하는 종래의 증강 현실 기술 대비 연산량을 감소시킬 수 있다. 따라서, 본 개시의 증강 현실 디바이스(100)는 컴퓨팅 파워(computing power)를 절감하며, 디바이스의 발열을 억제할 수 있는 기술적 효과를 제공한다. 또한, 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)는 3차원 모델을 메모리(140, 도 3 참조) 내의 저장 공간(예를 들어, 3차원 모델 데이터베이스(148, 도 3 참조))에 저장해놓고, 사용자 입력에 의해 객체가 삭제, 이동, 또는 교체되는 등 제어가 일어날 때에만 3차원 모델을 로드(load)하여 렌더링을 수행하므로 프로세싱 타임을 단축시킬 수 있고, 실시간 증강 현실 서비스를 제공할 수 있다. When the
도 3은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)의 구성 요소를 도시한 블록도이다.Figure 3 is a block diagram showing the components of the
도 3을 참조하면, 증강 현실 디바이스(100)는 카메라(110), IMU 센서(120), 프로세서(130), 메모리(140), 및 디스플레이부(150)를 포함할 수 있다. 카메라(110), IMU 센서(120), 프로세서(130), 메모리(140), 및 디스플레이부(150)는 각각 전기적 및/또는 물리적으로 서로 연결될 수 있다. 도 3에는 증강 현실 디바이스(100)의 동작을 설명하기 위한 필수적 구성 요소만이 도시되었고, 증강 현실 디바이스(100)가 포함하는 구성 요소가 도 3에 도시된 바와 같이 한정되는 것은 아니다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 외부 디바이스 또는 서버와 데이터 통신을 수행하는 통신 인터페이스를 더 포함할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 휴대용 장치로 구현되고, 이 경우 증강 현실 디바이스(100)는 카메라(110), IMU 센서(120), 프로세서(130), 및 디스플레이부(150)에 전원을 공급하는 배터리를 더 포함할 수 있다. Referring to FIG. 3 , the
카메라(110)는 현실 공간을 촬영함으로써, 현실 공간에 관한 공간 이미지를 획득하도록 구성된다. 본 개시의 일 실시예에서, 카메라(110)는 렌즈 모듈, 이미지 센서, 및 영상 처리 모듈을 포함할 수 있다. 카메라(110)는 이미지 센서(예를 들어, CMOS 또는 CCD)에 의해 현실 공간에 관한 정지 이미지(still image) 또는 동영상(video)을 획득할 수 있다. 동영상은 카메라(110)를 통해 현실 공간을 촬영함으로써 실시간으로 획득되는 복수의 이미지 프레임을 포함할 수 있다. 영상 처리 모듈은 이미지 센서를 통해 획득된 단일 이미지 프레임으로 구성된 정지 이미지 또는 복수의 이미지 프레임으로 구성된 동영상 데이터를 프로세서(130)에 전달할 수 있다. 본 개시의 일 실시예에서, 영상 처리 모듈은 획득된 정지 이미지 또는 동영상을 가공하여, 필요한 정보를 추출하고, 추출된 정보를 프로세서(130)에 전달할 수 있다. The
IMU 센서(Inertial Measurement Unit)(120)는 증강 현실 디바이스(100)의 이동 속도, 방향, 각도, 및 중력 가속도를 측정하도록 구성되는 센서이다. IMU 센서(120)는 가속도 센서(122) 및 자이로 센서(124)를 포함할 수 있다. 도 3에는 도시되지 않았지만, IMU 센서(120)는 지자기 센서(magnetometer)를 더 포함할 수도 있다.The IMU sensor (Inertial Measurement Unit) 120 is a sensor configured to measure the movement speed, direction, angle, and gravitational acceleration of the
가속도 센서(accelerometer)(122)는 증강 현실 디바이스(100)에 가속력, 진동력, 또는 충격력 등 동적 힘(dynamic force)이 발생되는 경우, 움직임의 변화에 따른 가속도를 측정하도록 구성되는 센서이다. 본 개시의 일 실시예에서, 가속도 센서(122)는 행 방향, 횡 방향, 및 높이 방향의 가속도를 측정하는 3축 가속도계로 구성될 수 있다. The acceleration sensor (accelerometer) 122 is a sensor configured to measure acceleration according to a change in movement when a dynamic force such as acceleration force, vibration force, or impact force is generated in the
자이로 센서(gyroscope)(124)는 증강 현실 디바이스(100)의 회전 변화량인 각속도를 측정하도록 구성되는 센서이다. 본 개시의 일 실시예에서, 자이로 센서(124)는 롤(roll), 피치(pitch), 및 요(yaw) 각속도를 측정하는 3축 각속도계를 포함할 수 있다. The
본 개시의 일 실시예에서, IMU 센서(120)는 가속도 센서(122) 및 자이로 센서(124)를 이용하여 가속도 및 각속도를 측정하고, 측정된 가속도 및 각속도에 기초하여 중력 방향을 감지할 수 있다. 여기서, 감지된 '중력 방향'은 현실 공간의 바닥 면의 법선 벡터(normal vector)의 방향과 동일할 수 있다. IMU 센서(120)는 중력 방향에 관한 정보를 프로세서(130)에 제공할 수 있다. In one embodiment of the present disclosure, the
프로세서(130)는 메모리(140)에 저장된 프로그램의 하나 이상의 명령어들(instructions)을 실행할 수 있다. 프로세서(130)는 산술, 로직 및 입출력 연산과 이미지 프로세싱을 수행하는 하드웨어 구성 요소로 구성될 수 있다. 프로세서(130)는 예를 들어, 중앙 처리 장치(Central Processing Unit), 마이크로 프로세서(microprocessor), 그래픽 프로세서(Graphic Processing Unit), ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), 및 FPGAs(Field Programmable Gate Arrays) 중 적어도 하나로 구성될 수 있으나, 이에 한정되는 것은 아니다. The
본 개시의 일 실시예에서, 프로세서(130)는 인공 지능(Artificial Intelligence, AI) 학습을 수행하는 AI 프로세서를 포함할 수 있다. AI 프로세서는, 인공 지능(AI)을 위한 전용 하드웨어 칩 형태로 제작될 수도 있고, 또는 기존의 범용 프로세서(예: CPU 또는 application processor) 또는 그래픽 전용 프로세서(예: GPU)의 일부로 제작되어 증강 현실 디바이스(100)에 탑재될 수도 있다. In one embodiment of the present disclosure, the
도 3에는 프로세서(130)가 하나의 엘리먼트로 도시되었으나, 이에 한정되는 것은 아니다. 본 개시의 일 실시예에서, 프로세서(130)는 하나 이상의 복수 개의 엘리먼트들로 구성될 수 있다. In FIG. 3, the
메모리(140)는 예를 들어, 플래시 메모리 타입(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), 또는 광 디스크 중 적어도 하나의 타입의 저장매체로 구성될 수 있다. The
메모리(140)에는 증강 현실 디바이스(100)가 3차원 인-페인팅 및 3차원 세그멘테이션을 수행하여 현실 공간에서 객체를 제어하는 증강 현실 서비스를 제공하는 동작들과 관련된 명령어들(instructions)이 저장될 수 있다. 본 개시의 일 실시예에서, 메모리(140)에는 프로세서(130)가 판독할 수 있는 명령어들, 알고리즘(algorithm), 데이터 구조, 프로그램 코드(program code), 및 애플리케이션 프로그램(application program) 중 적어도 하나가 저장될 수 있다. 메모리(140)에 저장되는 명령어들, 알고리즘, 데이터 구조, 및 프로그램 코드는 예를 들어, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다.The
메모리(140)에는 인-페인팅 모듈(142), 세그멘테이션 모듈(144), 및 렌더링 모듈(146)에 관한 명령어들, 알고리즘, 데이터 구조, 또는 프로그램 코드가 저장되어 있을 수 있다. 메모리(140)에 포함되는 '모듈'은 프로세서(130)에 의해 수행되는 기능이나 동작을 처리하는 단위를 의미하고, 이는 명령어들, 알고리즘, 데이터 구조, 또는 프로그램 코드와 같은 소프트웨어로 구현될 수 있다. 본 개시의 일 실시예에서, 메모리(140)에는 저장 공간인 3차원 모델 데이터베이스(148)가 포함될 수 있다. The
이하의 실시예에서, 프로세서(130)는 메모리(140)에 저장된 명령어들 또는 프로그램 코드들을 실행함으로써 구현될 수 있다.In the following embodiment, the
프로세서(130)는 증강 현실 애플리케이션을 실행하고, 증강 현실 애플리케이션이 실행됨에 따라 카메라(110)로부터 현실 공간에 관한 공간 이미지를 획득할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 카메라(110)에 의해 실시간으로 촬영되어 획득된 복수의 이미지 프레임으로 구성된 공간 이미지를 획득할 수 있다. The
프로세서(130)는 공간 이미지로부터 벽 및 바닥을 포함하는 평면을 인식할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 평면 인식 기술(plane detection)을 이용하여 공간 이미지로부터 수평 평면(horizontal plane) 및 수직 평면(vertical plane)을 검출하고, 검출된 수평 평면 및 수직 평면으로부터 현실 공간 내의 벽과 바닥을 인식할 수 있다. 그러나, 이에 한정되는 것은 아니고, 프로세서(130)는 공간 이미지로부터 벽, 바닥 뿐만 아니라 창문(window) 또는 문(door)으로 구성된 평면을 인식할 수도 있다. 본 개시의 일 실시예에서, 프로세서(130)는 인식된 복수의 평면들 중 위치 정보를 통해 동일한 평면인지 여부를 판단하고, 동일한 평면인 경우 하나의 평면으로 통합할 수 있다. The
인-페인팅 모듈(142)은 공간 이미지로부터 인식된 평면에 따라 벽과 바닥을 확장하고, 공간 이미지를 이용하여 확장된 벽과 바닥 중 객체에 의해 가려진 영역에 대하여 3차원 인-페인팅을 수행하는 기능 및/또는 동작과 관련된 명령어들 또는 프로그램 코드로 구성된다. 프로세서(130)는 인-페인팅 모듈(142)의 명령어들 또는 프로그램 코드를 실행함으로써, 벽과 바닥에 관한 3차원 모델 형태를 획득하고, 공간 이미지의 정보를 이용하여 3차원 모델 형태에 인-페인팅을 수행할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 인식된 벽 및 바닥을 포함하는 평면들 각각으로부터 평면 방정식을 도출할 수 있다. 프로세서(130)는 인식된 벽 및 바닥 각각으로부터 신뢰도(confidence index)가 높은 3개의 포인트를 추출하고, 추출된 3개의 포인트에 기초하여 평면을 정의할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 IMU 센서(120)로부터 획득한 중력 방향에 관한 정보에 기초하여 바닥 면의 법선 벡터의 방향을 인식하고, 바닥 면의 법선 벡터와 벽면의 법선 벡터가 90°를 이루는지 여부를 확인할 수 있다. 바닥 면의 법선 벡터와 벽면의 법선 벡터가 이루는 각도가 90°에서 ±3° 내지 ±5° 차이가 있는 경우, 프로세서(130)는 평면 재인식을 진행할 수 있다. The in-
프로세서(130)는 도출된 평면 방정식에 기초하여 벽 및 바닥을 확장함으로써, 가상의 벽 및 가상의 바닥의 3차원 모델 형태를 획득할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 확장된 벽과 바닥이 만나는 교선을 추출하고, 추출된 교선에 기초하여 벽 및 바닥의 평면들을 구분할 수 있다. 프로세서(130)는 구분된 평면들 각각의 버텍스(vertex) 좌표들을 획득하고, 획득된 버텍스 좌표들에 기초하여 가상의 벽 및 가상의 바닥으로 구성된 3차원 모델 형태를 생성할 수 있다. The
프로세서(130)는 공간 이미지로부터 벽 및 바닥과 현실 공간 내에 배치된 객체를 식별할 수 있다. 프로세서(130)는 공간 이미지로부터 현실 공간의 깊이 정보 및 컬러 정보를 획득하고, 획득된 깊이 정보 및 컬러 정보 중 적어도 하나에 기초하여 객체를 식별할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 평면 인식 기술을 통해 벽과 바닥의 3차원 위치 좌표값을 식별할 수 있고, 식별된 벽과 바닥의 3차원 위치 좌표값의 z축 좌표 정보로 구성된 깊이값이 아닌 다른 깊이값이 획득된 경우 객체로 판단할 수 있다. 깊이 정보를 이용하여 객체를 식별하기 어려운 경우, 공간 이미지로부터 획득한 컬러 정보를 이용하여 객체를 식별할 수 있다. 프로세서(130)는 인식된 벽 및 바닥과 식별된 객체를 구분할 수 있다.The
프로세서(130)는 가상의 벽 및 가상의 바닥으로 구성된 3차원 모델 형태에서 식별된 객체에 의해 가려진 영역을 인-페인팅할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 벽과 바닥 중 객체에 의해 가려진 영역을 공간 이미지의 정보를 이용하여 인-페인팅할 수 있다. 본 개시에서, '인-페인팅'은 이미지의 일부가 가려지거나, 유실되거나, 또는 왜곡된 경우 해당 부분을 복원하는 이미지 프로세싱 기술을 의미한다. 본 개시의 일 실시예에서, 프로세서(130)는 벽과 바닥 각각에 대응되는 공간 이미지의 벽과 바닥 부분의 이미지를 이용하여 객체에 의해 가려진 영역을 인-페인팅할 수 있다. 그러나, 이에 한정되는 것은 아니고, 다른 실시예에서 프로세서(130)는 공간 이미지에서의 벽과 바닥 부분의 이미지와 가상의 이미지를 결합하여 벽 및 바닥에서 객체에 의해 가려진 영역을 인-페인팅할 수 있다. The
프로세서(130)는 가상의 벽 및 가상의 바닥으로 구성된 3차원 모델 형태에 인-페인팅 이미지의 텍스쳐(texture)를 적용하여 현실 공간에 관한 3차원 모델을 생성할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 3차원 모델 형태에 인-페인팅 이미지의 텍스쳐를 입히는 이미지 프로세싱을 통해 현실 공간에 관한 3차원 모델을 생성할 수 있다. The
본 개시의 일 실시예에서, 프로세서(130)는 생성된 3차원 모델을 메모리(140) 내의 3차원 모델 데이터베이스(148)에 저장할 수 있다. 프로세서(130)가 인-페인팅을 수행하여 현실 공간에 관한 3차원 모델을 생성하는 구체적인 실시예에 대해서는 도 5 내지 도 8에서 상세하게 설명하기로 한다. In one embodiment of the present disclosure, the
증강 현실 디바이스(100)는 공간 이미지 상에서 특정 객체를 선택하는 사용자 입력을 수신하는 입력 인터페이스를 더 포함할 수 있다. 예를 들어, 입력 인터페이스는 키보드, 마우스, 터치스크린, 또는 음성 입력 장치(예를 들어, 마이크로폰) 등을 포함할 수 있으며, 기타 당업자에게 자명한 입력 장치를 포함할 수 있다. 본 개시의 일 실시예에서, 디스플레이부(150)는 터치 패널을 포함하는 터치스크린으로 구성되고, 터치스크린은 디스플레이부(150) 상에 디스플레이된 공간 이미지 상에서 특정 객체를 선택하는 사용자의 터치 입력을 수신할 수 있다. 프로세서(130)는 사용자로부터 수신된 터치 입력에 기초하여 객체를 선택할 수 있다. 그러나, 이에 한정되는 것은 아니고, 본 개시의 다른 실시예에서, 증강 현실 디바이스(100)가 안경 형태의 증강 현실 글래스(augmented reality glass)로 구현되는 경우, 입력 인터페이스는 사용자의 양안의 시선 방향이 수렴되는 응시점(gaze point)을 검출하는 시선 추적 센서를 포함할 수 있다. 이 경우, 프로세서(130)는 시선 추적 센서에 의해 검출된 응시점이 위치하는 객체를 선택할 수 있다. 다른 실시예에서, 증강 현실 디바이스(100)가 헤드 마운트 디스플레이 장치로 구현되는 경우, 프로세서(130)는 외부의 컨트롤러를 통해 수신되는 사용자 입력에 기초하여 객체를 선택할 수도 있다. The
세그멘테이션 모듈(144)은 공간 이미지 내에서 객체의 클래스(class) 또는 카테고리(category)를 분류하고, 분류 결과에 따라 공간 이미지 내에서 객체를 다른 객체 또는 배경 이미지와 구분하며, 공간 이미지로부터 객체를 분할하는 기능 및/또는 동작과 관련된 명령어들 또는 프로그램 코드로 구성된다. 프로세서(130)는 세그멘테이션 모듈(144)의 명령어들 또는 프로그램 코드를 실행함으로써, 사용자 입력에 의해 선택된 객체를 인식하고, 인식된 객체를 공간 이미지로부터 분할하는 세그멘테이션을 수행할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 공간 이미지로부터 사용자 입력에 의해 선택된 객체의 이미지 정보, 2차원 위치 좌표 정보, 및 깊이값 정보를 획득할 수 있다. 프로세서(130)는 객체의 이미지 정보, 2차원 위치 좌표 정보, 깊이 정보, 평면 인식을 통해 획득된 평면에 관한 정보, 및 객체 구분 정보 중 적어도 하나에 기초하여 객체에 대한 2차원 세그멘테이션(2D segmentation)을 수행할 수 있다. 본 개시에서, '2차원 세그멘테이션'은 이미지 내에서 객체를 다른 객체 또는 배경 이미지와 구분하고, 이미지로부터 객체의 2차원 윤곽선(outlier)을 분할하는 이미지 프로세싱 기술을 나타낸다. 본 개시의 일 실시예에서, 2차원 세그멘테이션은 객체의 2차원 윤곽선을 분할할 뿐만 아니라, 객체의 클래스(class) 또는 카테고리(category)를 분류하고, 분류 결과에 따라 이미지 내에서 객체를 다른 객체 또는 배경 이미지와 구분하는 개념을 포괄할 수 있다. The
본 개시의 일 실시예에서, 프로세서(130)는 복수의 객체를 라벨(label), 클래스(class) 또는 카테고리(category)로 분류하도록 기 학습된 심층 신경망 모델(pre-trained deep neural network model)을 이용하여 사용자 입력에 의해 선택된 객체를 세그멘테이션할 수 있다. 심층 신경망 모델은 수만 내지 수억장의 이미지를 입력 데이터로 적용하고, 이미지에 포함되는 객체의 라벨값(label)을 출력 정답값(groundtruth)로 적용하여 학습된(pre-trained) 모델 파라미터로 구성되는 인공지능 모델일 수 있다. 심층 신경망 모델은 예를 들어, 컨볼루션 신경망 모델(Convolutional Neural Network; CNN), 순환 신경망 모델(Recurrent Neural Network; RNN), RBM(Restricted Boltzmann Machine), DBN(Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks) 중 적어도 하나를 포함할 수 있다. 심층 신경망 모델은 메모리(140) 내에 저장될 수 있지만, 이에 한정되는 것은 아니다. 본 개시의 일 실시예에서, 심층 신경망 모델은 외부 서버에 저장되어 있고, 증강 현실 디바이스(100)는 서버에 공간 이미지의 이미지 데이터를 전송하고, 서버의 심층 신경망 모델로부터 추론 결과인 객체의 분류 결과에 관한 정보를 수신할 수도 있다. In one embodiment of the present disclosure, the
프로세서(130)가 기 학습된 심층 신경망 모델을 이용하는 2차원 세그멘테이션을 통해 사용자 입력에 의해 선택된 객체를 분할하는 구체적인 실시예에 대해서는 도 9에서 상세하게 설명하기로 한다. A specific embodiment in which the
프로세서(130)는 세그멘테이션 모듈(144)의 명령어들 또는 프로그램 코드를 실행함으로써, 공간 이미지 상에서 객체를 현실 공간으로부터 분할하는 3차원 세그멘테이션을 수행할 수 있다. 3차원 세그멘테이션은 사용자 입력에 의해 선택된 객체에 관한 3차원 모델이 3차원 모델 데이터베이스(148) 내에 저장되어 있는지 여부에 따라 다른 방식으로 수행될 수 있다. 본 개시의 일 실시예에서, 사용자 입력에 의해 선택된 객체에 관한 3차원 모델이 3차원 모델 데이터베이스(148) 내에 기 저장되어 있는 경우, 프로세서(130)는 기 저장된 3차원 모델을 3차원 모델 데이터베이스(148)로부터 로드(load)하여 획득하고, 획득된 3차원 모델의 방향을 Z축 방향으로 회전하여 공간 이미지 상의 2차원 세그멘테이션의 윤곽선(outlier)과 겹치도록 3차원 모델을 공간 이미지에 배치할 수 있다. 프로세서(130)는 배치된 3차원 모델로부터 객체에 관한 3차원 위치 좌표값을 획득할 수 있다. 프로세서(130)는 획득된 3차원 위치 좌표값에 기초하여 객체를 공간 이미지로부터 분할하는 3차원 세그멘테이션을 수행할 수 있다. The
본 개시의 다른 실시예에서, 사용자 입력에 의해 선택된 객체에 관한 3차원 모델이 3차원 모델 데이터베이스(148) 내에 저장되어 있지 않은 경우, 프로세서(130)는 공간 이미지로부터 객체의 경계선(edge), 특징점(feature point), 및 픽셀들의 3차원 위치 좌표값을 획득하고, 획득된 객체의 경계선, 특징점, 및 픽셀들의 3차원 위치 좌표값 중 적어도 하나에 기초하여 3차원 버텍스 모델링(3D vertex modeling)을 수행할 수 있다. 프로세서(130)는 3차원 버텍스 모델링을 통해 객체를 공간 이미지로부터 분할하는 3차원 세그멘테이션을 수행할 수 있다.In another embodiment of the present disclosure, if the 3D model for the object selected by the user input is not stored in the
프로세서(130)가 사용자 입력에 의해 선택된 객체에 관한 3차원 모델이 저장되어 있는지 여부에 따라 서로 다른 방식으로 3차원 세그멘테이션을 수행하는 구체적인 실시예에 대해서는 도 10 내지 도 12에서 상세하게 설명하기로 한다.A specific embodiment in which the
렌더링 모듈(146)은 3차원 세그멘테이션을 통해 객체가 분할된 영역을 3차원 모델을 이용하여 렌더링하는 기능 및/또는 동작과 관련된 명령어들 또는 프로그램 코드로 구성된다. 프로세서(130)는 렌더링 모듈(146)의 명령어들 또는 프로그램 코드를 실행함으로써, 벽과 바닥에 관한 3차원 모델을 실제 현실 공간 내의 벽과 바닥의 위치에 배치하고, 사용자 입력에 의해 선택된 객체가 3차원 세그멘테이션 되면, 3차원 세그멘테이션으로 인하여 지워진 영역을 렌더링할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 3차원 세그멘테이션이 수행된 영역의 원래 이미지는 삭제한 이후 렌더링할 수 있다. 그러나, 이에 한정되는 것은 아니고, 본 개시의 다른 실시예에서, 프로세서(130)는 3차원 세그멘테이션이 수행된 영역을 삭제할 필요없이, 벽과 바닥의 3차원 모델을 단순 렌더링하고, 현실 공간의 객체 상에 배치할 수 있다. 이 경우, 프로세서(130)는 3차원 모델과 객체 간의 깊이 값을 조정함으로써 현실 객체가 3차원 모델 위에 렌더링될 수 있도록 깊이 테스팅(depth testing) 값을 설정할 수 있다. The
3차원 모델 데이터베이스(148)는 프로세서(130)에 의해 생성된 현실 공간의 벽과 바닥의 형태에 관한 3차원 모델을 저장하는 메모리(140) 내의 저장공간이다. 본 개시의 일 실시예에서, 3차원 모델 데이터베이스(148)는 객체에 관한 3차원 모델을 저장하고 있을 수 있다. 여기서, 3차원 모델 데이터베이스(148)에 저장된 객체의 3차원 모델은 예를 들어, 소파, 식탁, 테이블, 또는 의자 등 가구, TV, 조명등과 같은 실내 공간의 객체에 관한 3차원 모델일 수 있으나, 이에 한정되는 것은 아니다. The
3차원 모델 데이터베이스(148)는 비휘발성 메모리로 구성될 수 있다. 비휘발성 메모리(Non-volatile memory)는 전원이 공급되지 않은 상태에서도 정보를 저장 및 유지하고, 전원이 공급되면 다시 저장된 정보를 사용할 수 있는 기억 매체를 의미한다. 비휘발성 메모리는 예를 들어, 플래시 메모리(flash memory), 하드디스크(hard disk), SSD(Solid State Drive), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 메모리(예를 들어 SD 또는 XD 메모리 등), 롬(Read Only Memory; ROM), 자기 메모리, 자기 디스크, 광디스크 중 적어도 하나를 포함할 수 있다. The
도 3에서 3차원 모델 데이터베이스(148)는 메모리(140)에 포함되는 구성 요소로 도시되었지만, 이에 한정되는 것은 아니다. 본 개시의 일 실시예에서, 3차원 모델 데이터베이스(148)는 메모리(140)와는 별개의 데이터베이스 형태로 구성될 수도 있다. 본 개시의 다른 실시예에서, 3차원 모델 데이터베이스(148)는 증강 현실 디바이스(100)가 아닌, 외부의 제3 디바이스 또는 외부 서버의 구성 요소로서, 유무선 통신 네트워크를 통해 증강 현실 디바이스(100)와 연결될 수 있다. In FIG. 3, the
디스플레이부(150)는 카메라(110)를 통해 촬영된 공간 이미지 및 현실 공간에 관한 3차원 모델을 디스플레이하도록 구성된다. 디스플레이부(150)는 예를 들어, 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나로 구성될 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)가 안경형 증강 현실 글래스로 구성되는 경우, 디스플레이부(150)는 가상 이미지를 투사하는 광학 엔진을 더 포함할 수 있다. 광학 엔진은, 가상 이미지의 광의 생성하도록 구성되고, 화상 패널, 조명 광학계, 투사 광학계 등을 포함하는 프로젝터(projector)로 구성될 수 있다. 광학 엔진은 예를 들어, 안경형 증강 현실 글래스의 프레임 또는 안경 다리들에 배치될 수 있다. The
도 4는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)의 동작 방법을 도시한 흐름도이다. FIG. 4 is a flowchart illustrating a method of operating the
도 4를 참조하면, 단계 S410에서 증강 현실 디바이스(100)는 현실 공간을 촬영하여 획득한 공간 이미지로부터 벽 및 바닥을 포함하는 평면을 인식한다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 평면 인식 기술(plane detection)을 이용하여 공간 이미지로부터 수평 평면(horizontal plane) 및 수직 평면(vertical plane)을 검출하고, 검출된 수평 평면 및 수직 평면으로부터 현실 공간 내의 벽과 바닥을 인식할 수 있다. 그러나, 이에 한정되는 것은 아니고, 증강 현실 디바이스(100)는 공간 이미지로부터 벽, 바닥 뿐만 아니라 창문(window) 또는 문(door)으로 구성된 평면을 인식할 수도 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 인식된 복수의 평면들 중 위치 정보를 통해 동일한 평면인지 여부를 판단하고, 동일한 평면인 경우 하나의 평면으로 통합할 수 있다. Referring to FIG. 4, in step S410, the
단계 S420에서, 증강 현실 디바이스(100)는 인식된 평면에 따라 벽과 바닥을 확장하고, 공간 이미지를 이용하여 확장된 벽과 바닥 중 객체에 의해 가려진 영역에 대하여 3차원 인-페인팅(in-painting)을 수행함으로써 현실 공간에 관한 3차원 모델을 생성한다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 인식된 벽 및 바닥의 평면 방정식을 도출하고, 도출된 평면 방정식에 기초하여 벽 및 바닥을 확장함으로써, 가상의 벽 및 가상의 바닥의 3차원 모델 형태를 획득할 수 있다. 증강 현실 디바이스(100)는 공간 이미지로부터 벽 및 바닥과 현실 공간 내에 배치된 객체를 식별할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 공간 이미지로부터 현실 공간의 깊이 정보 및 컬러 정보를 획득하고, 획득된 깊이 정보 및 컬러 정보 중 적어도 하나에 기초하여 객체를 식별할 수 있다. 증강 현실 디바이스(100)는 가상의 벽 및 가상의 바닥으로 구성된 3차원 모델 형태에서 식별된 객체에 의해 가려진 영역을 인-페인팅할 수 있다. 본 개시에서, '인-페인팅'은 이미지의 일부가 가려지거나, 유실되거나, 또는 왜곡된 경우 해당 부분을 복원하는 이미지 프로세싱 기술을 의미한다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 가상의 벽 및 가상의 바닥 중 객체에 의해 가려진 영역을 공간 이미지의 정보를 이용하여 인-페인팅할 수 있다. 증강 현실 디바이스(100)가 3차원 인-페인팅을 통해 현실 공간에 관한 3차원 모델을 생성하는 구체적인 실시예는 도 5 내지 도 8에서 상세하게 설명하기로 한다.In step S420, the
단계 S430에서, 증강 현실 디바이스(100)는 사용자 입력에 의해 선택된 객체를 공간 이미지로부터 분할하는 2차원 세그멘테이션(2D segmentation)을 수행한다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 공간 이미지 상에서 특정 객체를 선택하는 사용자 입력을 수신할 수 있다. 예를 들어, 증강 현실 디바이스(100)는 터치 패널을 포함하는 터치스크린을 포함하고, 터치스크린을 통해 디스플레이된 공간 이미지 상에서 특정 객체를 선택하는 사용자의 터치 입력을 수신할 수 있다. 증강 현실 디바이스(100)는 사용자 입력에 의해 선택된 객체를 인식하고, 인식된 객체를 공간 이미지로부터 분할하는 세그멘테이션을 수행할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 공간 이미지로부터 사용자 입력에 의해 선택된 객체의 이미지 정보, 2차원 위치 좌표 정보, 및 깊이값 정보를 획득할 수 있다. 증강 현실 디바이스(100)는 객체의 이미지 정보, 2차원 위치 좌표 정보, 깊이 정보, 평면 인식을 통해 획득된 평면에 관한 정보, 및 객체 구분 정보 중 적어도 하나에 기초하여 객체에 대한 2차원 세그멘테이션(2D segmentation)을 수행할 수 있다. In step S430, the
본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 객체의 라벨(label), 클래스(class) 또는 카테고리(category)로 분류하도록 기 학습된 심층 신경망 모델(pre-trained deep neural network model)을 이용하여, 객체를 세그멘테이션할 수 있다. In one embodiment of the present disclosure, the
단계 S440에서, 증강 현실 디바이스(100)는 선택된 객체의 3차원 모델 또는 3차원 위치 정보에 기초하여 공간 이미지 상에서 객체를 현실 공간으로부터 분할하는 3차원 세그멘테이션(3D segmentation)을 수행한다. 본 개시의 일 실시예에서, 사용자 입력에 의해 선택된 객체에 관한 3차원 모델이 증강 현실 디바이스(100) 내의 저장 공간에 기 저장되어 있는 경우, 증강 현실 디바이스(100)는 기 저장된 3차원 모델을 로드(load)하여 획득하고, 획득된 3차원 모델을 이용하여 객체를 공간 이미지로부터 분할하는 3차원 세그멘테이션을 수행할 수 있다. 본 개시의 일 실시예에서, 사용자 입력에 의해 선택된 객체에 관한 3차원 모델이 기 저장되어 있지 않은 경우, 증강 현실 디바이스(100)는 공간 이미지로부터 획득한 객체의 경계선(edge), 특징점(feature point), 및 픽셀들의 3차원 위치 좌표값 중 적어도 하나에 기초하여 객체를 공간 이미지로부터 분할하는 3차원 세그멘테이션을 수행할 수 있다. In step S440, the
도 5는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 현실 공간에 관한 3차원 모델을 생성하는 방법을 도시한 흐름도이다.FIG. 5 is a flowchart illustrating a method by which the
도 5에 도시된 단계들 S510 내지 S550은 도 4에 도시된 단계 S420을 구체화한 단계들이다. 도 5의 S510은 도 4에 도시된 단계 S410이 수행된 이후에 수행될 수 있다. 도 5의 S550이 수행된 이후에는 도 4에 도시된 단계 S430이 수행될 수 있다.Steps S510 to S550 shown in FIG. 5 are steps that embody step S420 shown in FIG. 4. S510 of FIG. 5 may be performed after step S410 shown in FIG. 4 is performed. After S550 of FIG. 5 is performed, step S430 shown in FIG. 4 may be performed.
이하에서는 단계 S510 내지 S550을 도 6 내지 도 8에 도시된 실시예를 함께 참조하여 설명하기로 한다. Hereinafter, steps S510 to S550 will be described with reference to the embodiment shown in FIGS. 6 to 8.
단계 S510에서, 증강 현실 디바이스(100)는 인식된 벽 및 바닥을 포함하는 평면들 각각으로부터 평면 방정식을 도출한다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 애플리케이션을 실행함으로써 증강 현실 세션(Augmented Reality session)을 시작하고, 증강 현실 세션의 평면 인식 기술(plane detection)을 통해 현실 공간의 공간 이미지로부터 수평 평면(horizontal plane) 및 수직 평면(vertical plane)을 검출할 수 있다. 증강 현실 디바이스(100)는 검출된 수평 평면 및 수직 평면으로부터 현실 공간 내의 벽과 바닥을 인식할 수 있다. 이 때 증강 현실 세션은 현실 공간이 증강 현실 공간 인식을 수행하기에 적합한 환경인지 여부를 자체적으로 판단하고, 안정적으로 인식되었음을 알릴 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 인식된 복수의 평면들 중 위치 정보를 통해 동일한 평면인지 여부를 판단하고, 동일한 평면으로 판단된 복수의 평면들은 하나의 평면으로 합칠 수 있다. In step S510, the
도 6은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 현실 공간(600) 내의 평면들(P1 내지 P3)의 형태에 관한 3차원 모델 형태(610)를 획득하는 동작을 도시한 도면이다. 도 6을 도 5의 단계 S510과 함께 참조하면, 증강 현실 디바이스(100)는 공간 이미지에서 인식된 복수의 평면들(P1 내지 P3) 각각으로부터 3개의 포인트의 3차원 위치 좌표값을 추출할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)의 프로세서(130, 도 3 참조)는 증강 현실 세션을 통해 인식된 복수의 평면들(P1 내지 P3) 각각으로부터 복수의 포인트들의 깊이 값(depth) 정보를 획득하고, 신뢰도가 높은 3개의 포인트들을 선택할 수 있다. 여기서, '신뢰도(confidence value)'는 증강 현실 세션에 의해 계산되는 것으로서, 증강 현실 디바이스(100)의 오리엔테이션이 변경되거나 FOV(Field of View)가 변경되는 경우 IMU 센서(120, 도 3 참조)에 의해 측정되는 특징점들(feature points)의 센서 노이즈에 기초하여 계산될 수 있다. 예를 들어, 센서 노이즈가 적으면 적을수록 특징점의 신뢰도는 높은 값으로 계산될 수 있다. 본 개시의 일 실시예에서, 복수의 평면들(P1 내지 P3) 각각으로부터 추출된 포인트들의 신뢰도가 동일한 경우, 프로세서(130)는 동일한 신뢰도를 갖는 복수의 포인트들 중 임의로 3개의 포인트를 선택할 수 있다. 도 6에 도시된 실시예를 함께 참조하면, 프로세서(130)는 제1 평면(P1)으로부터 신뢰도가 높은 3개의 포인트(611, 612, 613)를 추출하고, 제2 평면(P2)으로부터 3개의 포인트(621, 622, 623)를 추출할 수 있다. 도면에는 도시되지 않았지만, 프로세서(130)는 제3 평면(P3)으로부터 3개의 포인트를 추출할 수 있다. FIG. 6 shows an operation of the
프로세서(130)는 복수의 평면들(P1 내지 P3) 각각으로부터 추출된 3개의 포인트들의 3차원 위치 좌표값에 기초하여 평면 방정식을 도출할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 복수의 평면들(P1 내지 P3)이 만나는 지점의 각도가 임계치 이하인 경우, 단일 평면으로 판단하고, 하나의 평면 방적식으로 통합할 수 있다. 프로세서(130)는 IMU 센서(120, 도 3 참조)의 측정값을 이용하여 벽인 제2 평면(P2) 및 제3 평면(P3)의 법선 벡터(normal vector)를 획득할 수 있다. 프로세서(130)는 획득된 벽의 법선 벡터와 바닥인 제1 평면(P1)의 법선 벡터가 90° 각도를 이루는지 여부를 확인(identify)할 수 있다. 만약 바닥인 제1 평면(P1)의 법선 벡터와 벽인 제2 평면(P2) 및 제3 평면(P3)의 법선 벡터가 이루는 각도가 90°에서 ±3° 내지 ±5° 차이가 있는 경우, 프로세서(130)는 평면 인식을 다시 진행할 수 있다. The
다시 도 5를 참조하면, 단계 S520에서 증강 현실 디바이스(100)는 평면 방정식에 기초하여 벽 및 바닥을 확장함으로써, 가상의 벽 및 가상의 바닥의 3차원 모델 형태를 획득한다. 도 6을 함께 참조하면, 증강 현실 디바이스(100)의 프로세서(130)는 평면 방정식을 통해 복수의 평면들(P1, P2, P3)을 확장하여 가상의 평면들(P1', P2', P3')을 생성할 수 있다. 예를 들어, 바닥인 제1 평면(P1)은 가상의 바닥 (P1')으로 확장되고, 벽인 제2 평면(P2) 및 제3 평면(P3)은 각각 가상의 벽(P2', P3')으로 확장될 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 확장된 가상의 평면들(P1', P2', P3')이 만나는 교선(l1, l2, l3)을 추출하고, 추출된 교선(l1, l2, l3)에 기초하여 가상의 바닥(P1')과 가상의 벽(P2', P3')을 구분할 수 있다. 프로세서(130)는 구분된 가상의 평면들(P1', P2', P3') 각각의 버텍스 좌표들(V1 내지 V9)을 획득하고, 획득된 버텍스 좌표들(V1 내지 V9)에 기초하여 가상의 바닥(P1') 및 가상의 벽(P2', P3')으로 구성된 3차원 모델 형태(610)를 획득할 수 있다. Referring again to FIG. 5 , in step S520, the
프로세서(130)는 3차원 모델 형태(610)를 증강 현실 디바이스(100) 내의 저장 공간에 저장할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 3차원 모델 형태(610)와 위치 정보를 메모리(140, 도 3 참조) 내의 3차원 모델 데이터베이스(148, 도 3 참조)에 저장할 수 있다. The
다시 도 5를 참조하면, 단계 S530에서 증강 현실 디바이스(100)는 공간 이미지로부터 벽 및 바닥과 현실 공간 내에 배치된 객체를 식별한다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 벽과 바닥의 평면 인식 정보에 기초하여 깊이 정보 및 컬러 정보를 활용하여 벽과 바닥, 객체를 구분할 수 있다. Referring again to FIG. 5, in step S530, the
도 7a는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 공간 이미지(700a)에서 벽과 바닥의 평면을 구분하는 동작을 도시한 도면이다. 도 5의 단계 S530을 도 7a과 함께 참조하면, 증강 현실 디바이스(100)의 프로세서(130)는 평면 인식 기술을 이용하여 복수의 평면들(711, 721, 722)를 인식하고, 공간 이미지(700a)로부터 획득한 컬러 정보에 기초하여 복수의 평면들(711, 721, 722) 중에서 바닥면(711)과 벽면(721, 722)을 구분할 수 있다. FIG. 7A is a diagram illustrating an operation of the
도 7b는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 공간 이미지(700b) 내에서 벽과 창문의 평면을 구분하는 동작을 도시한 도면이다. 도 5의 단계 S530을 도 7b와 함께 참조하면, 증강 현실 디바이스(100)의 프로세서(130)는 평면 인식 기술을 이용하여 공간 이미지(700b)로부터 복수의 평면들(721, 722, 731, 732)를 인식하고, 현실 공간의 깊이 정보 및 공간 이미지(700b)의 컬러 정보에 기초하여 벽면(721, 722)과 창문(731, 732)을 구분할 수 있다. FIG. 7B is a diagram illustrating an operation of the
도 7c는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 공간 이미지(700c)에서 패턴이 다른 벽과 바닥의 평면을 구분하는 동작을 도시한 도면이다. 도 5의 단계 S530을 도 7c와 함께 참조하면, 증강 현실 디바이스(100)의 프로세서(130)는 평면 인식 기술을 이용하여 공간 이미지(700c)로부터 복수의 평면들(711, 721, 723)를 인식하고, 현실 공간의 깊이 정보에 기초하여 바닥면(711)과 벽면(721, 723)을 인식할 수 있다. 프로세서(130)는 공간 이미지(700c)의 컬러 정보를 획득하고, 획득된 컬러 정보에 기초하여 패턴이 서로 다른 벽면들(721, 723)을 각각 구분할 수 있다. FIG. 7C is a diagram illustrating an operation of the
증강 현실 디바이스(100)의 프로세서(130)는 증강 현실 세션을 통해 현실 공간의 3차원 위치 좌표값을 획득하고, z축 좌표 정보로 구성된 깊이 값이 벽과 바닥으로 식별되지 않은 경우 객체로 판단할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 깊이 정보를 이용하여 객체를 식별하기 어려운 경우, 공간 이미지로부터 획득한 컬러 정보를 이용하여 객체를 식별할 수 있다. The
도 8은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 3차원 인-페인팅(3D in-painting)을 수행하는 동작을 도시한 도면이다. 도 5의 단계 S530을 도 8과 함께 참조하면, 증강 현실 디바이스(100)의 프로세서(130)는 증강 현실 세션을 통해 현실 공간의 공간 이미지(800)를 획득하고, 공간 이미지(800)로부터 벽면(810)과 객체(820)를 인식할 수 있다. 프로세서(130)는 현실 공간의 3차원 위치 좌표값을 획득하고, z축 좌표 정보인 깊이 값이 벽면(810)과 다른 영역을 객체(820)로서 식별할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 공간 이미지(800)의 컬러 정보를 획득하고, 벽면(810)의 컬러와 현저하게 구분되는 다른 컬러를 갖는 영역을 객체(820)로서 식별할 수 있다. 도 8에 도시된 실시예에서, 프로세서(130)는 현실 공간의 깊이 정보 및 공간 이미지(800)의 컬러 정보에 기초하여 벽면(810)과 객체(820, 예를 들어, 의자)를 구분할 수 있다.FIG. 8 is a diagram illustrating an operation of the
다시 도 5를 참조하면, 단계 S540에서 증강 현실 디바이스(100)는 벽과 바닥 중 객체에 의해 가려진 영역을 공간 이미지의 정보를 이용하여 인-페인팅한다. 증강 현실 디바이스(100)는 공간 이미지의 벽 및 바닥에서 객체에 의해 가려진 영역을 확인할 수 있다. 도 8을 함께 참조하면, 증강 현실 디바이스(100)의 프로세서(130)는 공간 이미지(800)로부터 객체에 의해 가려진 영역(830)을 식별할 수 있다. 프로세서(130)는 벽 및 바닥의 영역 중 객체에 의해 가려진 영역(830)을 공간 이미지(800)의 컬러 정보를 이용하여 인-페인팅할 수 있다. 본 개시에서, '인-페인팅'은 이미지의 일부가 가려지거나, 유실되거나, 또는 왜곡된 경우 해당 부분을 복원하는 이미지 프로세싱 기술을 의미한다. Referring again to FIG. 5, in step S540, the
프로세서(130)는 공간 이미지(800)의 벽과 바닥 부분의 이미지를 이용하여 3차원 모델 형태에서 가려진 영역(830)을 인-페인팅할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 벽과 바닥 각각에 대하여 별도로 인-페인팅을 수행할 수 있다. 만약, 벽과 바닥과 별개로 창문 등이 인식된 경우, 프로세서(130)는 벽, 바닥, 및 창문 각각에 대하여 별도로 인-페인팅을 수행할 수 있다. 도 8에 도시된 실시예에서, 프로세서(130)는 공간 이미지(800)의 벽면(810)의 컬러 정보를 이용하여 객체에 가려진 영역(830)을 인-페인팅하고, 인-페인팅 이미지(840)를 획득할 수 있다. The
프로세서(130)는 공간 이미지(800)에서의 벽과 바닥 부분의 이미지와 가상의 이미지를 결합하여 3차원 모델 형태의 가상의 벽 및 가상의 바닥에서 객체에 의해 가려진 영역(830)에 대응되는 영역을 인-페인팅할 수 있다. The
다시 도 5를 참조하면, 단계 S550에서 증강 현실 디바이스(100)는 가상의 벽 및 가상의 바닥의 3차원 모델 형태에 인-페인팅 이미지의 텍스쳐(texture)를 적용하여 현실 공간에 관한 3차원 모델을 생성한다. 도 8을 함께 참조하면, 증강 현실 디바이스(100)의 프로세서(130)는 생성된 3차원 모델 형태에 인-페인팅 이미지(840)를 텍스쳐로 적용하는 이미지 프로세싱을 수행할 수 있다. 예를 들어, 프로세서(130)는 단계 S520에서 획득한 3차원 모델 형태에 인-페인팅 이미지(840)를 입힘으로써 현실 공간에 관한 3차원 모델을 생성할 수 있다. Referring again to FIG. 5, in step S550, the
본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 인-페인팅을 통해 생성된 3차원 모델을 저장 공간(예를 들어, 메모리(140, 도 3 참조) 내의 3차원 모델 데이터베이스(148, 도 3 참조)) 내에 저장할 수 있다. In one embodiment of the present disclosure, the
도 9는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 공간 이미지(900)로부터 2차원 세그멘테이션(2D segmentation)을 수행하는 동작을 도시한 도면이다.FIG. 9 is a diagram illustrating an operation of the
도 9를 참조하면, 증강 현실 디바이스(100)는 증강 현실 애플리케이션을 실행함으로써 증강 현실 세션(Augmented Reality session)을 시작하고, 카메라(110, 도 3 참조)를 이용하여 현실 공간(10)을 촬영함으로써 공간 이미지(920)를 획득할 수 있다. 증강 현실 디바이스(100)는 현실 공간(10)의 3차원 위치 정보를 획득하고, 평면 인식 기술(plane detection)을 이용하여 벽, 바닥, 및 객체를 인식할 수 있다. 이 때 증강 현실 세션은 현실 공간이 증강 현실 공간 인식을 수행하기에 적합한 환경인지 여부를 자체적으로 판단하고, 안정적으로 인식되었음을 알릴 수 있다.Referring to FIG. 9, the
증강 현실 디바이스(100)는 증강 현실 세션을 통해 현실 공간(10)의 3차원 위치 정보를 획득하고, 3차원 위치 좌표값 중 z축의 좌표값인 깊이 정보로 구성된 깊이 맵(depth map)(910)을 획득할 수 있다. The
증강 현실 디바이스(100)는 평면 인식 기술을 이용하여 벽과 바닥의 평면들(P1, P2, P3)을 인식하고, 인식된 평면들(P1, P2, P3)을 확장함으로써 3차원 모델 형태(930)를 획득할 수 있다. 증강 현실 디바이스(100)가 3차원 모델 형태(930)를 획득하는 구체적인 방법은 도 5 및 도 6에서 설명한 방식과 동일하므로 중복되는 설명은 생략한다. The
증강 현실 디바이스(100)는 디스플레이부(150)를 통해 표시되는 공간 이미지 상에서 특정 객체를 선택하는 사용자 입력을 수신할 수 있다. 본 개시의 일 실시예에서, 디스플레이부(150)는 터치스크린으로 구성되고, 증강 현실 디바이스(100)는 터치스크린을 통해 디스플레이되는 공간 이미지(920) 내의 특정 객체를 선택하는 사용자의 터치 입력을 수신할 수 있다. 도 9에 도시된 실시예에서, 증강 현실 디바이스(100)는 공간 이미지(920) 내의 테이블을 선택하는 사용자의 터치 입력을 수신할 수 있다. The
객체를 선택하는 사용자 입력이 수신되면, 증강 현실 디바이스(100)의 프로세서(130, 도 3 참조)는 사용자 입력에 의해 선택된 객체의 이미지 정보, 깊이 정보(객체를 구성하는 픽셀의 깊이 값을 2D 이미지로 나타낸 깊이 맵 데이터), 선택된 객체의 공간 이미지(920) 상에서의 2차원 위치 좌표값 정보(x축 및 y축 좌표값), 주요 특징점들(AR feature points)의 2차원 위치 좌표값 정보(x축 및 y축 좌표값), 및 3차원 위치 좌표값(x축, y축, 및 z축 좌표값) 정보를 획득할 수 있다. 프로세서(130)는 평면 인식 기술을 이용하여 벽 및 바닥의 평면들(P1, P2, P3)을 인식하고, 깊이 정보에 기초하여 현실 공간 내의 가구 또는 가전제품 등과 같은 객체들을 식별하며, 식별된 객체들과 벽, 바닥 간의 위치 관계를 인식할 수 있다. When a user input for selecting an object is received, the processor 130 (see FIG. 3) of the
증강 현실 디바이스(100)는 깊이 맵(910)의 깊이 정보, 공간 이미지(920), 사용자에 의해 선택된 객체의 2차원 위치 좌표, 3차원 모델 형태(930)로부터 획득한 벽 및 바닥 평면, 및 객체 구분 정보를 이용하여, 사용자 입력에 의해 선택된 객체를 2차원 세그멘테이션할 수 있다. 여기서, '2차원 세그멘테이션'은 이미지 내에서 객체를 다른 객체 또는 배경 이미지와 구분하고, 이미지로부터 객체의 2차원 윤곽선(outlier)을 분할하는 이미지 프로세싱 기술을 나타낸다. 본 개시의 일 실시예에서, 2차원 세그멘테이션은 객체의 2차원 윤곽선을 분할할 뿐만 아니라, 객체의 클래스(class) 또는 카테고리(category)를 분류하고, 분류 결과에 따라 이미지 내에서 객체를 다른 객체 또는 배경 이미지와 구분하는 개념을 포괄할 수 있다. The
본 개시의 일 실시예에서, 증강 현실 디바이스(100)의 프로세서(130)는 기 학습된 심층 신경망 모델(940)에 깊이 맵(910)의 깊이 정보, 공간 이미지(920)의 이미지 정보, 객체의 2차원 위치 좌표 정보, 평면 인식 정보, 및 객체 구분 정보 중 적어도 하나를 입력하고, 심층 신경망 모델(940)을 이용하는 추론을 수행함으로써 객체에 관한 2차원 세그멘테이션을 수행할 수 있다. 심층 신경망 모델(940)은 수만 내지 수억장의 이미지를 입력 데이터로 적용하고, 이미지에 포함되는 객체의 라벨값(label)을 출력 정답값(groundtruth)로 적용하여 학습된(pre-trained) 모델 파라미터로 구성되는 인공지능 모델일 수 있다. 본 개시의 일 실시예에서, 심층 신경망 모델(940)은 가구 별, 가전 별, 또는 가구 내에서도 의자, 소파 등 카테고리 별로 기 학습된 인공지능 모델일 수 있다. 심층 신경망 모델(940)은 예를 들어, 컨볼루션 신경망 모델(Convolutional Neural Network; CNN), 순환 신경망 모델(Recurrent Neural Network; RNN), RBM(Restricted Boltzmann Machine), DBN(Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks) 중 적어도 하나를 포함할 수 있다. In one embodiment of the present disclosure, the
프로세서(130)는 심층 신경망 모델(940)을 이용하는 추론을 통해 다른 객체 또는 배경 이미지로부터 객체(952)의 2차원 윤곽선이 분할된 세그멘테이션 이미지(950)를 획득할 수 있다. The
도 10은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 객체에 관한 3차원 모델의 저장되어 있는지 여부에 기초하여 3차원 세그멘테이션(3D segmentation)을 수행하는 방법을 도시한 흐름도이다.FIG. 10 is a flowchart illustrating a method in which the
도 10에 도시된 단계 S1010 내지 S1070은 도 4에 도시된 단계 S440을 구체화한 단계들이다. 도 10의 S1010은 도 4에 도시된 단계 S430이 수행된 이후에 수행될 수 있다. Steps S1010 to S1070 shown in FIG. 10 are steps that embody step S440 shown in FIG. 4. S1010 of FIG. 10 may be performed after step S430 shown in FIG. 4 is performed.
단계 S1010에서, 증강 현실 디바이스(100)는 기 저장된 객체에 관한 3차원 모델의 존재 여부를 확인한다. 증강 현실 디바이스(100)의 프로세서(130, 도 3 참조)는 메모리(140, 도 3 참조) 내의 저장 공간에 사용자 입력에 의해 선택된 객체에 관한 3차원 모델이 저장되어 있는지 여부를 확인할 수 있다. 도 10에 도시된 3차원 세그멘테이션 방법은 객체에 관한 3차원 모델이 기 저장되어 있는지 여부에 따라 다른 방식으로 수행될 수 있다. 객체에 관한 3차원 모델이 기 저장되어 있는 실시예는 도 11을 함께 참조하여 설명하고, 객체에 관한 3차원 모델이 저장되어 있지 않은 실시예는 도 12를 함께 참조하여 설명하기로 한다. In step S1010, the
객체에 관한 3차원 모델이 기 저장되어 있는 경우(단계 S1020), 증강 현실 디바이스(100)는 3차원 모델의 방향을 조절하여, 공간 이미지 상의 2차원 세그멘테이션의 윤곽선(outlier)와 겹치도록 3차원 모델을 배치한다. 도 11은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 객체에 관하여 기 저장된 3차원 모델을 이용하여 3차원 세그멘테이션을 수행하는 동작을 도시한 도면이다. 도 10의 단계 S1020을 도 11과 함께 참조하면, 3차원 모델 데이터베이스(148)에는 복수의 객체에 관한 3차원 모델들(1101 내지 1103)이 저장되어 있을 수 있다. 증강 현실 디바이스(100)의 프로세서(130, 도 3 참조)는 3차원 모델 데이터베이스(148)에 기 저장된 복수의 객체에 관한 3차원 모델들(1101 내지 1103) 중 사용자 입력에 의해 선택된 제1 객체의 3차원 모델(1101)을 식별하고, 식별된 제1 객체의 3차원 모델(1101)을 3차원 모델 데이터베이스(148)로부터 로드(load)할 수 있다. 프로세서(130)는 로드된 제1 객체의 3차원 모델(1101)이 2차원 세그멘테이션 결과에 따라 공간 이미지(1100) 내에 생성된 2차원 윤곽선의 형태와 동일하게 될 때까지 Z축을 따라 회전시킬 수 있다. 이 때, 회전 각도의 해상도(resolution)은 요구되는 정확도에 따라 자유롭게 설정될 수 있다. 프로세서(130)는 회전 결과에 따라 오리엔테이션이 조절된 제1 객체의 3차원 모델(1101)을 공간 이미지(1100) 상의 2차원 윤곽선에 배치시킬 수 있다. If the 3D model for the object is already stored (step S1020), the
다시 도 10을 참조하면, 단계 S1030에서 증강 현실 디바이스(100)는 배치된 3차원 모델로부터 객체에 관한 3차원 위치 좌표값을 획득한다. 도 11을 함께 참조하면, 제1 객체의 3차원 모델(1101)을 공간 이미지(1100) 상의 2차원 윤곽선에 맞도록 배치하고, 배치 결과에 따라 제1 객체를 구성하는 복수의 특징점들의 3차원 위치 좌표값을 획득할 수 있다. Referring again to FIG. 10 , in step S1030, the
도 10을 참조하면, 단계 S1040에서 증강 현실 디바이스(100)는 획득된 3차원 위치 좌표값에 기초하여 객체를 공간 이미지로부터 분할하는 3차원 세그멘테이션을 수행한다. 도 11을 함께 참조하면, 증강 현실 디바이스(100)의 프로세서(130)는 제1 객체를 구성하는 복수의 특징점들의 3차원 위치 좌표값에 기초하여 현실 공간의 이미지로부터 제1 객체가 분할된 세그멘테이션 이미지(1120)를 획득할 수 있다. Referring to FIG. 10, in step S1040, the
다시 도 10을 참조하면, 객체에 관한 3차원 모델이 저장되어 있지 않은 경우(단계 S1050), 증강 현실 디바이스(100)는 공간 이미지로부터 인식된 객체의 경계선(edge), 특징점(feature point), 및 픽셀들의 3차원 위치 좌표값을 획득한다. 도 12는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 객체에 관한 3차원 모델이 저장되어 있지 않은 경우 3차원 세그멘테이션을 수행하는 동작을 도시한 도면이다. 도 10의 단계 S1050을 도 12와 함께 참조하면, 증강 현실 디바이스(100)의 프로세서(130)는 공간 이미지(1200) 내에서 사용자 입력에 의해 선택된 제1 객체(1210)의 경계선, 특징점, 및 제1 객체(1210)를 구성하는 픽셀들의 3차원 위치 좌표값을 획득할 수 있다. Referring again to FIG. 10, if the three-dimensional model for the object is not stored (step S1050), the
다시 도 10의 단계 S1060을 참조하면, 증강 현실 디바이스(100)는 객체의 경계선, 특징점, 및 픽셀들의 3차원 위치 좌표값 중 적어도 하나에 기초하여 3차원 버텍스 모델링(3D vertex modeling)을 수행한다. 도 12를 함께 참조하면, 증강 현실 디바이스(100)의 프로세서(130)는 객체의 경게선, 특징점, 및 픽셀들의 3차원 위치 좌표값을 기 학습된 심층 신경망 모델에 입력하고, 심층 신경망 모델을 이용하여 3차원 버텍스 모델링을 수행할 수 있다. 심층 신경망 모델은 가구, 가전 별, 또는 가구 내에서도 의자, 소파 등 카테고리 별로 기 학습된(pre-trained) 인공지능 모델일 수 있다. 심층 신경망 모델은 예를 들어, 컨볼루션 신경망 모델(Convolutional Neural Network; CNN), 순환 신경망 모델(Recurrent Neural Network; RNN), RBM(Restricted Boltzmann Machine), DBN(Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks) 중 적어도 하나를 포함할 수 있다. 그러나, 본 개시의 심층 신경망 모델이 전술한 예시로 한정되는 것은 아니다. Referring again to step S1060 of FIG. 10, the
다시 도 10의 단계 S1070을 참조하면, 증강 현실 디바이스(100)는 3차원 버텍스 모델링을 통해 객체를 공간 이미지로부터 분할하는 3차원 세그멘테이션을 수행한다. 도 12를 함께 참조하면, 증강 현실 디바이스(100)의 프로세서(130)는 3차원 버텍스 모델링을 통해 제1 객체(1220)의 3차원 위치 좌표값을 획득할 수 있다. 프로세서(130)는 제1 객체(1220)를 구성하는 복수의 픽셀들의 3차원 위치 좌표값에 기초하여 공간 이미지(1200)로부터 제1 객체(1220)가 분할된 세그멘테이션 이미지(1230)를 획득할 수 있다. Referring again to step S1070 of FIG. 10, the
도 13은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 3차원 모델을 현실 공간에 배치하고, 3차원 모델을 이용하여 렌더링을 수행하는 방법을 도시한 흐름도이다.FIG. 13 is a flowchart illustrating a method by which the
도 13에 도시된 단계 S1310은 도 4에 도시된 단계 S440이 수행된 이후에 수행될 수 있다.Step S1310 shown in FIG. 13 may be performed after step S440 shown in FIG. 4 is performed.
단계 S1310에서, 증강 현실 디바이스(100)는 생성된 3차원 모델을 현실 공간 내의 벽 및 바닥의 위치에 배치한다. In step S1310, the
단계 S1320에서, 증강 현실 디바이스(100)는 3차원 세그멘테이션을 통해 객체가 분할된 영역을 3차원 모델을 이용하여 렌더링(rendering)한다. 사용자 입력에 의해 선택된 객체가 3차원 세그멘테이션을 통해 분할되면, 증강 현실 디바이스(100)는 3차원 모델을 이용하여 3차원 세그멘테이션으로 인하여 지워진 영역을 렌더링할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 3차원 세그멘테이션이 수행된 영역의 원래 이미지는 삭제한 이후 렌더링할 수 있다. 그러나, 이에 한정되는 것은 아니고, 본 개시의 다른 실시예에서, 증강 현실 디바이스(100)는 3차원 세그멘테이션이 수행된 영역을 삭제할 필요없이, 벽과 바닥의 3차원 모델을 단순 렌더링하고, 현실 공간의 객체 상에 배치할 수 있다. 이 경우, 증강 현실 디바이스(100)는 3차원 모델과 객체 간의 깊이 값을 조정함으로써 현실 객체가 3차원 모델 위에 렌더링될 수 있도록 깊이 테스팅(depth testing) 값을 설정할 수 있다. In step S1320, the
도 14는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 3차원 세그멘테이션을 추가로 수행하고, 세그멘테이션 결과를 업데이트하는 방법을 도시한 흐름도이다.FIG. 14 is a flowchart illustrating a method by which the
도 14에 도시된 단계 S1410은 도 4에 도시된 단계 S440이 수행된 이후에 수행될 수 있다. Step S1410 shown in FIG. 14 may be performed after step S440 shown in FIG. 4 is performed.
단계 S1410에서, 증강 현실 디바이스(100)는 증강 현실 공간 내에서 3차원 세그멘테이션 결과를 트래킹(tracking)한다. 본 개시의 일 실시예에서, 사용자의 조작에 의해 증강 현실 디바이스(100)의 오리엔테이션이 변경되거나 FOV(Field of View)가 변경되는 경우, 증강 현실 디바이스(100)는 IMU 센서(120, 도 3 참조)의 측정값을 이용하여 증강 현실 공간 내에서 3차원 세그멘테이션으로 인하여 분할된 영역을 트래킹할 수 있다. 트래킹 동작을 통해 객체에 관한 실시간 3차원 세그멘테이션이 가능하다. In step S1410, the
단계 S1420에서, 증강 현실 디바이스(100)는 현실 공간에 관한 공간 이미지를 추가로 획득한다. 증강 현실 디바이스(100)는 증강 현실 애플리케이션을 실행하여, 카메라(110, 도 3 참조)를 통해 현실 공간을 촬영하고, 이를 통해 공간 이미지를 추가로 획득할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 기 설정된 시간 간격에 따라 주기적으로 공간 이미지를 획득할 수 있다.In step S1420, the
단계 S1430에서, 증강 현실 디바이스(100)는 추가로 획득된 공간 이미지에 대하여 2차원 세그멘테이션을 수행하여 객체의 윤곽선(outlier)을 추출한다. 증강 현실 디바이스(100)가 2차원 세그멘테이션을 수행하여 객체의 윤곽선을 추출하는 동작은 도 9에서 설명한 동작 방식과 동일하므로, 중복되는 설명은 생략한다.In step S1430, the
단계 S1440에서, 증강 현실 디바이스(100)는 3차원 세그멘테이션을 통해 객체가 분할된 영역의 윤곽선과 2차원 세그멘테이션을 통해 추출된 윤곽선을 비교함으로써, 유사도를 측정한다. In step S1440, the
단계 S1450에서, 증강 현실 디바이스(100)는 측정된 유사도를 기 설정된 임계치(α)와 비교한다. In step S1450, the
측정된 유사도가 임계치(α) 미만인 경우(단계 S1460), 증강 현실 디바이스(100)는 3차원 세그멘테이션을 추가로 수행한다. 유사도가 임계치(α) 미만인 경우, 증강 현실 디바이스(100)는 오리엔테이션 변경 또는 FOV 변경으로 인하여 3차원 세그멘테이션 결과에 오류가 발생되었음을 인지할 수 있다. If the measured similarity is less than the threshold α (step S1460), the
단계 S1470에서, 증강 현실 디바이스(100)는 추가로 수행된 3차원 세그멘테이션을 통해 세그멘테이션 결과를 업데이트(update)한다. In step S1470, the
측정된 유사도가 기 설정된 임계치(α)를 초과하는 경우, 증강 현실 디바이스(100)는 단계 S1420으로 돌아가서 공간 이미지를 추가로 획득하는 동작부터 반복적으로 수행할 수 있다. If the measured similarity exceeds the preset threshold α, the
본 개시는 현실 공간에서 객체를 제어하는 증강 현실 서비스를 제공하는 증강 현실 디바이스(100)를 제공한다. 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)는 카메라(110, 도 3 참조), 가속도 센서(accelerometer)(122, 도 3 참조) 및 자이로 센서(gyro sensor)(124, 도 3 참조)를 포함하는 IMU 센서(Inertial Measurement Unit)(120, 도 3 참조), 적어도 하나의 명령어들(instructions)를 저장하는 메모리(140, 도 3 참조), 및 적어도 하나의 명령어들을 실행하는 적어도 하나의 프로세서(130, 도 3 참조)를 포함할 수 있다. 상기 적어도 하나의 프로세서(130)는 카메라(110)를 이용하여 현실 공간을 촬영하여 공간 이미지를 획득할 수 있다. 상기 적어도 하나의 프로세서(130)는 획득된 공간 이미지로부터 벽 및 바닥을 포함하는 평면을 인식할 수 있다. 상기 적어도 하나의 프로세서(130)는 인식된 평면에 따라 벽과 바닥을 확장하고, 공간 이미지를 이용하여 확장된 벽과 바닥 중 객체에 의해 가려진 영역에 대하여 3차원 인-페인팅을 수행함으로써 현실 공간에 관한 3차원 모델을 생성할 수 있다. 상기 적어도 하나의 프로세서(130)는 사용자 입력에 의해 선택된 객체를 공간 이미지로부터 분할하는 2차원 세그멘테이션(2D segmentation)을 수행할 수 있다. 상기 적어도 하나의 프로세서(130)는 객체의 3차원 모델 또는 3차원 위치 정보에 기초하여 공간 이미지 상에서 객체를 현실 공간으로부터 분할하는 3차원 세그멘테이션(3D segmentation)을 수행할 수 있다. The present disclosure provides an
본 개시의 일 실시예에서, 상기 적어도 하나의 프로세서(130)는 생성된 3차원 모델을 현실 공간 내의 벽 및 바닥의 위치에 배치하고, 3차원 세그멘테이션을 통해 객체가 분할된 영역을 3차원 모델을 이용하여 렌더링(rendering)할 수 있다. In one embodiment of the present disclosure, the at least one
본 개시의 일 실시예에서, 상기 적어도 하나의 프로세서(130)는 인식된 벽 및 바닥을 포함하는 평면들 각각으로부터 평면 방정식을 도출할 수 있다. 상기 적어도 하나의 프로세서(130)는 도출된 평면 방정식에 기초하여 벽 및 바닥을 확장함으로써, 가상의 벽 및 가상의 바닥의 3차원 모델 형태를 획득할 수 있다. 상기 적어도 하나의 프로세서(130)는 공간 이미지로부터 벽 및 바닥과 현실 공간 내에 배치된 객체를 식별할 수 있다. 상기 적어도 하나의 프로세서(130)는 벽 및 바닥 중 식별된 객체에 의해 가려진 영역을 공간 이미지의 정보를 이용하여 인-페인팅할 수 있다. 상기 적어도 하나의 프로세서(130)는 가상의 벽 및 가상의 바닥의 3차원 모델 형태에 인-페인팅 이미지의 텍스쳐(texture)를 적용하여 현실 공간에 관한 3차원 모델을 생성할 수 있다. In one embodiment of the present disclosure, the at least one
본 개시의 일 실시예에서, 상기 적어도 하나의 프로세서(130)는 확장된 벽 및 바닥이 만나는 교선을 추출하고, 추출된 교선에 기초하여 벽 및 상기 바닥의 평면들을 구분할 수 있다. 상기 적어도 하나의 프로세서(130)는 구분된 평면들 각각의 버텍스(vertex) 좌표들을 획득하고, 획득된 버텍스 좌표들에 기초하여 가상의 벽 및 가상의 바닥의 3차원 모델 형태를 생성할 수 있다. In one embodiment of the present disclosure, the at least one
본 개시의 일 실시예에서, 상기 적어도 하나의 프로세서(130)는 공간 이미지로부터 획득된 현실 공간의 깊이 정보 및 컬러 정보 중 적어도 하나에 기초하여 객체를 식별할 수 있다. 적어도 하나의 프로세서(130)는 인식된 벽 및 바닥과 식별된 객체를 구분할 수 있다. In one embodiment of the present disclosure, the at least one
본 개시의 일 실시예에서, 상기 적어도 하나의 프로세서(130)는 생성된 3차원 모델을 메모리(140) 내의 저장 공간에 저장할 수 있다. In one embodiment of the present disclosure, the at least one
본 개시의 일 실시예에서, 상기 적어도 하나의 프로세서(130)는 선택된 객체에 대한 3차원 모델이 메모리(140)에 기 저장되어 있는지 여부를 확인하고, 확인 결과 선택된 객체에 관한 3차원 모델이 저장되어 있는 경우, 기 저장된 3차원 모델의 방향을 조절함으로써 상기 공간 이미지 상의 2차원 세그멘테이션의 윤곽선(outlier)과 겹치도록 상기 3차원 모델을 배치할 수 있다. 적어도 하나의 프로세서(130)는 배치된 3차원 모델로부터 객체에 관한 3차원 위치 좌표값을 획득할 수 있다. 적어도 하나의 프로세서(130)는 획득된 3차원 위치 좌표값에 기초하여 객체를 공간 이미지로부터 분할하는 3차원 세그멘테이션을 수행할 수 있다. In one embodiment of the present disclosure, the at least one
본 개시의 일 실시예에서, 상기 적어도 하나의 프로세서(130)는 선택된 객체에 대한 3차원 모델이 메모리(140)에 저장되어 있는지 여부를 확인하고, 확인 결과 선택된 객체에 관한 3차원 모델이 저장되어 있지 않은 경우, 공간 이미지로부터 인식된 객체의 경계선(edge), 특징점(feature point), 및 픽셀들의 3차원 위치 좌표값을 획득할 수 있다. 적어도 하나의 프로세서(130)는 획득된 객체의 경계선, 특징점, 및 픽셀들의 3차원 위치 좌표값 중 적어도 하나에 기초하여 3차원 버텍스 모델링(3D vertex modeling)을 수행할 수 있다. 적어도 하나의 프로세서(130)는 3차원 버텍스 모델링을 통해 객체를 공간 이미지로부터 분할하는 3차원 세그멘테이션을 수행할 수 있다. In one embodiment of the present disclosure, the at least one
본 개시의 일 실시예에서, 상기 적어도 하나의 프로세서(130)는 증강 현실 디바이스(100)의 오리엔테이션 또는 시야각(Field of View)이 변경되는 경우 공간 이미지를 추가로 획득하고, 추가로 획득된 공간 이미지에 대하여 2차원 세그멘테이션을 수행함으로써 객체의 윤곽선을 추출할 수 있다. 상기 적어도 하나의 프로세서(130)는 3차원 세그멘테이션을 통해 객체가 분할된 영역의 2차원 윤곽선과 추출된 윤곽선을 비교함으로써 유사도를 측정할 수 있다. 상기 적어도 하나의 프로세서(130)는 유사도를 기 설정된 임계치와 비교하여 3차원 세그멘테이션을 추가로 수행할지 여부를 결정할 수 있다. In one embodiment of the present disclosure, the at least one
본 개시의 일 실시예에서, 상기 적어도 하나의 프로세서(130)는 유사도가 임계치 미만인 경우, 3차원 세그멘테이션을 추가로 수행하고, 추가로 수행된 3차원 세그멘테이션을 통해 세그멘테이션 결과를 업데이트(update)할 수 있다. In one embodiment of the present disclosure, when the similarity is less than a threshold, the at least one
본 개시는 증강 현실 디바이스(100)가 현실 공간에서 객체를 제어하는 증강 현실 서비스를 제공하는 방법을 제공한다. 상기 방법은 카메라(110)를 이용하여 현실 공간을 촬영하여 획득된 공간 이미지로부터 벽 및 바닥을 포함하는 평면을 인식하는 단계(S410)를 포함할 수 있다. 상기 방법은 인식된 평면에 따라 벽과 바닥을 확장하고, 공간 이미지를 이용하여 확장된 벽과 바닥 중 객체에 의해 가려진 영역에 대하여 3차원 인-페인팅을 수행함으로써 현실 공간에 관한 3차원 모델을 생성하는 단계(S420)를 포함할 수 있다. 상기 방법은 사용자 입력에 의해 선택된 객체를 공간 이미지로부터 분할하는 2차원 세그멘테이션(2D segmentation)을 수행하는 단계(S430)를 포함할 수 있다. 상기 방법은 객체의 3차원 모델 또는 3차원 위치 정보에 기초하여 공간 이미지 상에서 객체를 현실 공간으로부터 분할하는 3차원 세그멘테이션(3D segmentation)을 수행하는 단계(S440)를 포함할 수 있다.The present disclosure provides a method for providing an augmented reality service where the
본 개시의 일 실시예에서, 상기 방법은 생성된 3차원 모델을 현실 공간 내의 벽 및 바닥의 위치에 배치하는 단계(S1310), 및 3차원 세그멘테이션을 통해 객체가 분할된 영역을 3차원 모델을 이용하여 렌더링(rendering)하는 단계(S1320)를 더 포함할 수 있다. In one embodiment of the present disclosure, the method includes placing the generated 3D model at the location of walls and floors in real space (S1310), and using the 3D model to divide the area into which the object is divided through 3D segmentation. A rendering step (S1320) may be further included.
본 개시의 일 실시예에서, 상기 현실 공간에 관한 3차원 모델을 생성하는 단계(S420)는 인식된 벽 및 바닥을 포함하는 평면들 각각으로부터 평면 방정식을 도출하는 단계(S510)를 포함할 수 있다. 상기 현실 공간에 관한 3차원 모델을 생성하는 단계(S420)는 도출된 평면 방정식에 기초하여 벽 및 바닥을 확장함으로써, 가상의 벽 및 가상의 바닥의 3차원 모델 형태를 획득하는 단계(S520)를 포함할 수 있다. 상기 현실 공간에 관한 3차원 모델을 생성하는 단계(S420)는 공간 이미지로부터 벽 및 바닥과 현실 공간 내에 배치된 객체를 식별하는 단계(S530)를 포함할 수 있다. 상기 현실 공간에 관한 3차원 모델을 생성하는 단계(S420)는 벽 및 바닥 중 식별된 객체에 의해 가려진 영역을 공간 이미지의 정보를 이용하여 인-페인팅하는 단계(S540)를 포함할 수 있다. 상기 현실 공간에 관한 3차원 모델을 생성하는 단계(S420)는 가상의 벽 및 가상의 바닥의 3차원 모델 형태에 인-페인팅 이미지의 텍스쳐(texture)를 적용하여 현실 공간에 관한 3차원 모델을 생성하는 단계(S550)를 포함할 수 있다. In one embodiment of the present disclosure, the step of generating a three-dimensional model of the real space (S420) may include the step of deriving a plane equation from each of the planes including the recognized walls and floors (S510). . The step of generating a three-dimensional model of the real space (S420) includes the step of acquiring the three-dimensional model form of the virtual wall and virtual floor by expanding the wall and floor based on the derived plane equation (S520). It can be included. The step of generating a 3D model of the real space (S420) may include a step of identifying walls and floors and objects placed in the real space from the space image (S530). The step of generating a 3D model of the real space (S420) may include the step of in-painting the area obscured by the identified object among the walls and floor using information of the spatial image (S540). The step of generating a 3D model of the real space (S420) generates a 3D model of the real space by applying the texture of the in-painting image to the 3D model form of the virtual wall and virtual floor. It may include a step (S550).
본 개시의 일 실시예에서, 상기 가상의 벽 및 가상의 바닥의 3차원 모델 형태를 생성하는 단계(S520)는 확장된 벽 및 바닥이 만나는 교선을 추출하는 단계, 추출된 교선에 기초하여 벽 및 바닥의 평면들을 구분하는 단계, 구분된 평면들 각각의 버텍스(vertex) 좌표들을 획득하는 단계, 획득된 버텍스 좌표들에 기초하여 가상의 벽 및 가상의 바닥의 3차원 모델 형태를 생성하는 단계를 포함할 수 있다. In one embodiment of the present disclosure, the step of generating a three-dimensional model form of the virtual wall and the virtual floor (S520) includes extracting an intersection line where the extended wall and the floor meet, and based on the extracted intersection line, the wall and It includes dividing the planes of the floor, acquiring vertex coordinates of each of the divided planes, and generating a three-dimensional model of the virtual wall and virtual floor based on the obtained vertex coordinates. can do.
본 개시의 일 실시예에서, 상기 벽 및 바닥과 현실 공간 내에 배치된 객체를 식별하는 단계(S530)는 공간 이미지로부터 획득된 현실 공간의 깊이 정보 및 컬러 정보 중 적어도 하나에 기초하여 상기 객체를 식별하는 단계, 및 인식된 벽 및 바닥과 식별된 객체를 구분하는 단계를 포함할 수 있다. In one embodiment of the present disclosure, the step (S530) of identifying the wall, the floor, and the object arranged in real space identifies the object based on at least one of depth information and color information in real space obtained from a spatial image. and distinguishing between recognized walls and floors and identified objects.
본 개시의 일 실시예에서, 상기 3차원 세그멘테이션을 수행하는 단계(S440)는 선택된 객체에 대한 3차원 모델이 기 저장되어 있는지 여부를 확인하는 단계(S1010), 및 확인 결과 선택된 객체에 관한 3차원 모델이 저장되어 있는 경우, 기 저장된 3차원 모델의 방향을 조절함으로써 공간 이미지 상의 2차원 세그멘테이션의 윤곽선(outlier)과 겹치도록 3차원 모델을 배치하는 단계(S1020)를 포함할 수 있다. 상기 3차원 세그멘테이션을 수행하는 단계(S440)는 배치된 3차원 모델로부터 객체에 관한 3차원 위치 좌표값을 획득하는 단계(S1030)를 포함할 수 있다. 3차원 세그멘테이션을 수행하는 단계(S440)는 획득된 3차원 위치 좌표값에 기초하여 객체를 공간 이미지로부터 분할하는 3차원 세그멘테이션을 수행하는 단계(S1040)를 포함할 수 있다. In one embodiment of the present disclosure, the step of performing the 3D segmentation (S440) includes checking whether a 3D model for the selected object is already stored (S1010), and as a result of the confirmation, a 3D model for the selected object If the model is stored, a step (S1020) of arranging the 3D model to overlap the outline (outlier) of the 2D segmentation on the spatial image by adjusting the direction of the previously stored 3D model may be included. The step of performing the 3D segmentation (S440) may include the step of obtaining 3D position coordinate values for the object from the placed 3D model (S1030). The step of performing 3D segmentation (S440) may include a step of performing 3D segmentation of dividing an object from a spatial image based on the obtained 3D position coordinate value (S1040).
본 개시의 일 실시예에서, 상기 3차원 세그멘테이션을 수행하는 단계(S440)는 선택된 객체에 대한 3차원 모델이 기 저장되어 있는지 여부를 확인하는 단계(1010), 및 확인 결과 선택된 객체에 관한 3차원 모델이 저장되어 있지 않은 경우, 공간 이미지로부터 인식된 객체의 경계선(edge), 특징점(feature point), 및 픽셀들의 3차원 위치 좌표값을 획득하는 단계(S1050)를 포함할 수 있다. 상기 3차원 세그멘테이션을 수행하는 단계(S440)는 획득된 객체의 경계선, 특징점, 및 픽셀들의 3차원 위치 좌표값 중 적어도 하나에 기초하여 3차원 버텍스 모델링(3D vertex modeling)을 수행하는 단계(S1060)를 포함할 수 있다. 상기 3차원 세그멘테이션을 수행하는 단계(S440)는 3차원 버텍스 모델링을 통해 객체를 공간 이미지로부터 분할하는 3차원 세그멘테이션을 수행하는 단계(S1070)를 포함할 수 있다. In one embodiment of the present disclosure, the step of performing the 3D segmentation (S440) includes a step of checking (1010) whether a 3D model for the selected object is already stored, and as a result of the confirmation, a 3D model for the selected object. If the model is not stored, a step (S1050) of acquiring the edge, feature point, and 3D position coordinate values of the pixels of the recognized object from the spatial image may be included. The step of performing the 3D segmentation (S440) is a step of performing 3D vertex modeling (S1060) based on at least one of the obtained object's boundary line, feature points, and 3D position coordinate values of pixels. may include. The step of performing 3D segmentation (S440) may include a step of performing 3D segmentation of dividing an object from a spatial image through 3D vertex modeling (S1070).
본 개시의 일 실시예에서, 상기 방법은 상기 증강 현실 디바이스(100)의 오리엔테이션 또는 시야각(Field of View)이 변경되는 경우 공간 이미지를 추가로 획득하고, 추가로 획득된 공간 이미지에 대하여 2차원 세그멘테이션을 수행함으로써 객체의 윤곽선을 추출하는 단계(S1420)를 더 포함할 수 있다. 상기 방법은 3차원 세그멘테이션을 통해 객체가 분할된 영역의 2차원 윤곽선과 추출된 윤곽선을 비교함으로써 유사도를 측정하는 단계(S1430)를 더 포함할 수 있다. 상기 방법은 유사도를 기 설정된 임계치와 비교하여 3차원 세그멘테이션을 추가로 수행할지 여부를 결정하는 단계(S1440)를 더 포함할 수 있다. In one embodiment of the present disclosure, the method additionally acquires a spatial image when the orientation or field of view of the
본 개시의 일 실시예에서, 상기 방법은 유사도가 임계치 미만인 경우, 3차원 세그멘테이션을 추가로 수행하고, 추가로 수행된 3차원 세그멘테이션을 통해 세그멘테이션 결과를 업데이트(update)하는 단계(S1460)를 더 포함할 수 있다. 상기 세그멘테이션 결과를 업데이트하는 단계는 기 설정된 시간 간격에 따라 주기적으로 수행될 수 있다. In one embodiment of the present disclosure, if the similarity is less than a threshold, the method further includes the step of additionally performing 3D segmentation and updating the segmentation result through the additionally performed 3D segmentation (S1460). can do. The step of updating the segmentation results may be performed periodically according to preset time intervals.
본 개시는 컴퓨터로 읽을 수 있는 저장 매체를 포함하는 컴퓨터 프로그램 제품(Computer Program Product)를 제공한다. 상기 저장 매체는 카메라(110)를 이용하여 현실 공간을 촬영하여 획득된 공간 이미지로부터 벽 및 바닥을 포함하는 평면을 인식하는 동작, 인식된 평면에 따라 벽과 바닥을 확장하고, 공간 이미지를 이용하여 확장된 벽과 바닥 중 객체에 의해 가려진 영역에 대하여 3차원 인-페인팅을 수행함으로써 현실 공간에 관한 3차원 모델을 생성하는 동작, 사용자 입력에 의해 선택된 객체를 공간 이미지로부터 분할하는 2차원 세그멘테이션(2D segmentation)을 수행하는 동작, 및 객체의 3차원 모델 또는 3차원 위치 정보에 기초하여 공간 이미지 상에서 객체를 현실 공간으로부터 분할하는 3차원 세그멘테이션(3D segmentation)을 수행하는 동작을 증강 현실 디바이스(100)가 수행하기 위하여, 상기 증강 현실 디바이스(100)에 의해 판독 가능한 명령어들(instructions)을 포함할 수 있다. The present disclosure provides a computer program product including a computer-readable storage medium. The storage medium includes the operation of recognizing a plane including a wall and a floor from a spatial image obtained by photographing a real space using a
본 개시에서 설명된 증강 현실 디바이스(100)에 의해 실행되는 프로그램은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 프로그램은 컴퓨터로 읽을 수 있는 명령어들을 수행할 수 있는 모든 시스템에 의해 수행될 수 있다. A program executed by the
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령어(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. Software may include a computer program, code, instructions, or a combination of one or more of these, and may configure a processing unit to operate as desired, or to process independently or collectively. You can command the device.
소프트웨어는, 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어를 포함하는 컴퓨터 프로그램으로 구현될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체로는, 예를 들어 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독 가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다. Software may be implemented as a computer program including instructions stored on computer-readable storage media. Computer-readable recording media include, for example, magnetic storage media (e.g., read-only memory (ROM), random-access memory (RAM), floppy disk, hard disk, etc.) and optical read media (e.g., CD-ROM). (CD-ROM), DVD (Digital Versatile Disc), etc. The computer-readable recording medium is distributed among computer systems connected to a network, so that computer-readable code can be stored and executed in a distributed manner. The media may be readable by a computer, stored in memory, and executed by a processor.
컴퓨터로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장되는 경우를 구분하지 않는다. 예를 들어, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다. Computer-readable storage media may be provided in the form of non-transitory storage media. Here, 'non-transitory' only means that the storage medium does not contain signals and is tangible, and does not distinguish between cases where data is stored semi-permanently or temporarily in the storage medium. For example, a 'non-transitory storage medium' may include a buffer where data is temporarily stored.
또한, 본 명세서에 개시된 실시예들에 따른 프로그램은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.Additionally, programs according to embodiments disclosed in this specification may be included and provided in a computer program product. Computer program products are commodities and can be traded between sellers and buyers.
컴퓨터 프로그램 제품은 소프트웨어 프로그램, 소프트웨어 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 증강 현실 디바이스(100)의 제조사 또는 전자 마켓(예를 들어, 삼성 갤럭시 스토어)을 통해 전자적으로 배포되는 소프트웨어 프로그램 형태의 상품(예를 들어, 다운로드 가능한 애플리케이션(downloadable application))을 포함할 수 있다. 전자적 배포를 위하여, 소프트웨어 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 증강 현실 디바이스(100)의 제조사의 서버, 전자 마켓의 서버, 또는 소프트웨어 프로그램을 임시적으로 저장하는 중계 서버의 저장 매체가 될 수 있다. A computer program product may include a software program and a computer-readable storage medium on which the software program is stored. For example, a computer program product may be a product in the form of a software program (e.g., a downloadable application) distributed electronically by the manufacturer of the
컴퓨터 프로그램 제품은, 증강 현실 디바이스(100) 및/또는 서버로 구성되는 시스템에서, 서버의 저장매체 또는 증강 현실 디바이스(100)의 저장매체를 포함할 수 있다. 또는, 증강 현실 디바이스(100)와 통신 연결되는 제3 장치(예를 들어, 웨어러블 디바이스)가 존재하는 경우, 컴퓨터 프로그램 제품은 제3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 증강 현실 디바이스(100)로부터 제3 장치로 전송되거나, 제3 장치로부터 전자 장치로 전송되는 소프트웨어 프로그램 자체를 포함할 수 있다.The computer program product, in a system comprised of the
이 경우, 증강 현실 디바이스(100) 또는 제3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 증강 현실 디바이스(100) 및 제3 장치 중 적어도 하나 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.In this case, either the
예를 들면, 증강 현실 디바이스(100)가 메모리(140, 도 3 참조)에 저장된 컴퓨터 프로그램 제품을 실행하여, 증강 현실 디바이스(100)와 통신 연결된 타 전자 장치(예를 들어, 웨어러블 디바이스)가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다. For example, the
또 다른 예로, 제3 장치가 컴퓨터 프로그램 제품을 실행하여, 제3 장치와 통신 연결된 전자 장치가 개시된 실시예에 따른 방법을 수행하도록 제어할 수 있다. As another example, a third device may execute a computer program product to control an electronic device communicatively connected to the third device to perform the method according to the disclosed embodiment.
제3 장치가 컴퓨터 프로그램 제품을 실행하는 경우, 제3 장치는 증강 현실 디바이스(100)로부터 컴퓨터 프로그램 제품을 다운로드하고, 다운로드된 컴퓨터 프로그램 제품을 실행할 수 있다. 또는, 제3 장치는 프리로드(pre-load)된 상태로 제공된 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수도 있다. When the third device executes the computer program product, the third device may download the computer program product from the
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 컴퓨터 시스템 또는 모듈 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. As described above, although the embodiments have been described with limited examples and drawings, various modifications and variations can be made by those skilled in the art from the above description. For example, the described techniques may be performed in a different order than the described method, and/or components, such as a described computer system or module, may be combined or combined in a form different from the described method, or other components or equivalents may be used. Appropriate results can be achieved even if replaced or replaced by .
Claims (20)
가속도 센서(accelerometer)(122) 및 자이로 센서(gyro sensor)(124)를 포함하는 IMU 센서(Inertial Measurement Unit)(120);
적어도 하나의 명령어들(instructions)를 저장하는 메모리(140); 및
상기 적어도 하나의 명령어들을 실행하는 적어도 하나의 프로세서(130);
를 포함하고,
상기 적어도 하나의 프로세서(130)는,
상기 카메라(110)를 이용하여 현실 공간을 촬영하여 공간 이미지를 획득하고,
상기 획득된 공간 이미지로부터 벽 및 바닥을 포함하는 평면을 인식하고,
상기 인식된 평면에 따라 상기 벽과 바닥을 확장하고, 상기 공간 이미지를 이용하여 상기 확장된 벽과 바닥 중 객체에 의해 가려진 영역에 대하여 3차원 인-페인팅을 수행함으로써 현실 공간에 관한 3차원 모델을 생성하고,
사용자 입력에 의해 선택된 객체를 상기 공간 이미지로부터 분할하는 2차원 세그멘테이션(2D segmentation)을 수행하고,
상기 객체의 3차원 모델 또는 3차원 위치 정보에 기초하여 상기 공간 이미지 상에서 상기 객체를 현실 공간으로부터 분할하는 3차원 세그멘테이션(3D segmentation)을 수행하는, 증강 현실 디바이스(100).
camera 110;
an Inertial Measurement Unit (IMU) 120 including an accelerometer 122 and a gyro sensor 124;
a memory 140 that stores at least one instruction; and
At least one processor 130 executing the at least one instruction;
Including,
The at least one processor 130,
Obtain a spatial image by photographing real space using the camera 110,
Recognize a plane including a wall and a floor from the acquired spatial image,
By expanding the wall and floor according to the recognized plane and performing 3D in-painting on the area obscured by the object among the expanded wall and floor using the spatial image, a 3D model of the real space is created. create,
Perform 2D segmentation to segment an object selected by user input from the spatial image,
An augmented reality device 100 that performs 3D segmentation to segment the object from real space on the spatial image based on a 3D model or 3D location information of the object.
상기 적어도 하나의 프로세서(130)는,
상기 생성된 3차원 모델을 현실 공간 내의 벽 및 바닥의 위치에 배치하고,
상기 3차원 세그멘테이션을 통해 상기 객체가 분할된 영역을 상기 3차원 모델을 이용하여 렌더링(rendering)하는, 증강 현실 디바이스(100).
According to claim 1,
The at least one processor 130,
Place the generated 3D model at the location of walls and floors in real space,
An augmented reality device 100 that renders the area into which the object is divided through the 3D segmentation using the 3D model.
상기 적어도 하나의 프로세서(130)는,
상기 인식된 벽 및 바닥을 포함하는 평면들 각각으로부터 평면 방정식을 도출하고,
상기 도출된 평면 방정식에 기초하여 상기 벽 및 바닥을 확장함으로써, 가상의 벽 및 가상의 바닥의 3차원 모델 형태를 획득하고,
상기 공간 이미지로부터 상기 벽 및 바닥과 현실 공간 내에 배치된 객체를 식별하고,
상기 벽 및 바닥 중 상기 식별된 객체에 의해 가려진 영역을 상기 공간 이미지의 정보를 이용하여 인-페인팅하고,
상기 가상의 벽 및 가상의 바닥의 3차원 모델 형태에 인-페인팅 이미지의 텍스쳐(texture)를 적용하여 상기 현실 공간에 관한 3차원 모델을 생성하는, 증강 현실 디바이스(100).
According to any one of claims 1 and 2,
The at least one processor 130,
Deriving a plane equation from each of the planes including the recognized wall and floor,
Obtaining three-dimensional model shapes of the virtual wall and virtual floor by expanding the wall and floor based on the derived plane equation,
Identifying objects placed in the wall, floor, and real space from the spatial image,
In-painting an area of the wall and floor obscured by the identified object using information from the spatial image,
An augmented reality device 100 that generates a three-dimensional model of the real space by applying a texture of an in-painting image to the three-dimensional model form of the virtual wall and virtual floor.
상기 적어도 하나의 프로세서(130)는,
상기 확장된 벽 및 바닥이 만나는 교선을 추출하고,
상기 추출된 교선에 기초하여 상기 벽 및 상기 바닥의 평면들을 구분하고,
상기 구분된 평면들 각각의 버텍스(vertex) 좌표들을 획득하고,
상기 획득된 버텍스 좌표들에 기초하여 상기 가상의 벽 및 가상의 바닥의 3차원 모델 형태를 생성하는, 증강 현실 디바이스(100).
According to clause 3,
The at least one processor 130,
Extract the intersection line where the expanded wall and floor meet,
Distinguish the planes of the wall and the floor based on the extracted intersection,
Obtain vertex coordinates for each of the divided planes,
An augmented reality device 100 that generates a three-dimensional model shape of the virtual wall and virtual floor based on the acquired vertex coordinates.
상기 적어도 하나의 프로세서(130)는,
상기 공간 이미지로부터 획득된 현실 공간의 깊이 정보 및 컬러 정보 중 적어도 하나에 기초하여 상기 객체를 식별하고,
상기 인식된 벽 및 바닥과 상기 식별된 객체를 구분하는, 증강 현실 디바이스(100).
According to clause 3,
The at least one processor 130,
Identifying the object based on at least one of depth information and color information in real space obtained from the spatial image,
An augmented reality device (100) that distinguishes between the recognized walls and floors and the identified objects.
상기 적어도 하나의 프로세서(130)는,
상기 생성된 3차원 모델을 상기 메모리(140) 내의 저장 공간에 저장하는, 증강 현실 디바이스(100).
According to any one of claims 1 to 5,
The at least one processor 130,
An augmented reality device 100 that stores the generated 3D model in a storage space within the memory 140.
상기 적어도 하나의 프로세서(130)는,
상기 선택된 객체에 대한 3차원 모델이 상기 메모리(140)에 기 저장되어 있는지 여부를 확인하고,
확인 결과 상기 선택된 객체에 관한 3차원 모델이 저장되어 있는 경우, 상기 기 저장된 3차원 모델의 방향을 조절함으로써 상기 공간 이미지 상의 2차원 세그멘테이션의 윤곽선(outlier)과 겹치도록 상기 3차원 모델을 배치하고,
상기 배치된 3차원 모델로부터 상기 객체에 관한 3차원 위치 좌표값을 획득하고,
상기 획득된 3차원 위치 좌표값에 기초하여 상기 객체를 상기 공간 이미지로부터 분할하는 3차원 세그멘테이션을 수행하는, 증강 현실 디바이스(100).
According to any one of claims 1 to 6,
The at least one processor 130,
Check whether a 3D model for the selected object is already stored in the memory 140,
As a result of confirmation, if a 3D model for the selected object is stored, adjusting the direction of the previously stored 3D model to arrange the 3D model so that it overlaps the outline (outlier) of the 2D segmentation on the spatial image,
Obtaining 3D position coordinate values for the object from the placed 3D model,
An augmented reality device 100 that performs 3D segmentation to divide the object from the spatial image based on the acquired 3D position coordinate value.
상기 적어도 하나의 프로세서(130)는,
상기 선택된 객체에 대한 3차원 모델이 상기 메모리(140)에 저장되어 있는지 여부를 확인하고,
확인 결과 상기 선택된 객체에 관한 3차원 모델이 저장되어 있지 않은 경우, 상기 공간 이미지로부터 인식된 상기 객체의 경계선(edge), 특징점(feature point), 및 픽셀들의 3차원 위치 좌표값을 획득하고,
상기 획득된 객체의 경계선, 특징점, 및 픽셀들의 3차원 위치 좌표값 중 적어도 하나에 기초하여 3차원 버텍스 모델링(3D vertex modeling)을 수행하고,
상기 3차원 버텍스 모델링을 통해 상기 객체를 상기 공간 이미지로부터 분할하는 3차원 세그멘테이션을 수행하는, 증강 현실 디바이스.
According to any one of claims 1 to 7,
The at least one processor 130,
Check whether a 3D model for the selected object is stored in the memory 140,
As a result of confirmation, if the 3D model for the selected object is not stored, obtain the 3D position coordinate values of the edges, feature points, and pixels of the object recognized from the spatial image,
Perform 3D vertex modeling based on at least one of the obtained object's boundary line, feature point, and 3D position coordinate value of pixels,
An augmented reality device that performs 3D segmentation to divide the object from the spatial image through the 3D vertex modeling.
상기 적어도 하나의 프로세서(130)는,
상기 증강 현실 디바이스(100)의 오리엔테이션 또는 시야각(Field of View)이 변경되는 경우 상기 공간 이미지를 추가로 획득하고, 상기 추가로 획득된 공간 이미지에 대하여 2차원 세그멘테이션을 수행함으로써 상기 객체의 윤곽선을 추출하고,
상기 3차원 세그멘테이션을 통해 상기 객체가 분할된 영역의 2차원 윤곽선과 상기 추출된 윤곽선을 비교함으로써 유사도를 측정하고,
상기 유사도를 기 설정된 임계치와 비교하여 상기 3차원 세그멘테이션을 추가로 수행할지 여부를 결정하는, 증강 현실 디바이스(100).
According to any one of claims 1 to 8,
The at least one processor 130,
When the orientation or field of view of the augmented reality device 100 changes, the spatial image is additionally acquired, and the outline of the object is extracted by performing two-dimensional segmentation on the additionally acquired spatial image. do,
Similarity is measured by comparing the extracted outline with the two-dimensional outline of the area where the object is divided through the three-dimensional segmentation,
The augmented reality device 100 determines whether to additionally perform the 3D segmentation by comparing the similarity with a preset threshold.
상기 적어도 하나의 프로세서(130)는,
상기 유사도가 상기 임계치 미만인 경우, 상기 3차원 세그멘테이션을 추가로 수행하고, 추가로 수행된 3차원 세그멘테이션을 통해 세그멘테이션 결과를 업데이트(update)하는, 증강 현실 디바이스(100).
According to clause 9,
The at least one processor 130,
When the similarity is less than the threshold, the augmented reality device 100 additionally performs the 3D segmentation and updates the segmentation result through the additionally performed 3D segmentation.
카메라(110)를 이용하여 현실 공간을 촬영하여 획득된 공간 이미지로부터 벽 및 바닥을 포함하는 평면을 인식하는 단계(S410);
상기 인식된 평면에 따라 상기 벽과 바닥을 확장하고, 상기 공간 이미지를 이용하여 상기 확장된 벽과 바닥 중 객체에 의해 가려진 영역에 대하여 3차원 인-페인팅을 수행함으로써 현실 공간에 관한 3차원 모델을 생성하는 단계(S420);
사용자 입력에 의해 선택된 객체를 상기 공간 이미지로부터 분할하는 2차원 세그멘테이션(2D segmentation)을 수행하는 단계(S430); 및
상기 객체의 3차원 모델 또는 3차원 위치 정보에 기초하여 상기 공간 이미지 상에서 상기 객체를 현실 공간으로부터 분할하는 3차원 세그멘테이션(3D segmentation)을 수행하는 단계(S440);
를 포함하는, 방법.
In the method of providing an augmented reality service where the augmented reality device 100 controls an object in real space,
Recognizing a plane including a wall and a floor from a space image obtained by photographing a real space using the camera 110 (S410);
By expanding the wall and floor according to the recognized plane and performing 3D in-painting on the area obscured by the object among the expanded wall and floor using the spatial image, a 3D model of the real space is created. Generating step (S420);
Performing 2D segmentation to segment an object selected by user input from the spatial image (S430); and
Performing 3D segmentation to segment the object from real space on the spatial image based on a 3D model or 3D location information of the object (S440);
Method, including.
상기 생성된 3차원 모델을 현실 공간 내의 벽 및 바닥의 위치에 배치하는 단계(S1310); 및
상기 3차원 세그멘테이션을 통해 상기 객체가 분할된 영역을 상기 3차원 모델을 이용하여 렌더링(rendering)하는 단계(S1320);
를 더 포함하는, 방법.
According to claim 11,
Placing the generated 3D model at the positions of walls and floors in real space (S1310); and
Rendering the area into which the object is divided through the 3D segmentation using the 3D model (S1320);
A method further comprising:
상기 현실 공간에 관한 3차원 모델을 생성하는 단계(S420)는,
상기 인식된 벽 및 바닥을 포함하는 평면들 각각으로부터 평면 방정식을 도출하는 단계(S510);
상기 도출된 평면 방정식에 기초하여 상기 벽 및 바닥을 확장함으로써, 가상의 벽 및 가상의 바닥의 3차원 모델 형태를 획득하는 단계(S520);
상기 공간 이미지로부터 상기 벽 및 바닥과 현실 공간 내에 배치된 객체를 식별하는 단계(S530);
상기 벽 및 바닥 중 상기 식별된 객체에 의해 가려진 영역을 상기 공간 이미지의 정보를 이용하여 인-페인팅하는 단계(S540); 및
상기 가상의 벽 및 가상의 바닥의 3차원 모델 형태에 인-페인팅 이미지의 텍스쳐(texture)를 적용하여 상기 현실 공간에 관한 3차원 모델을 생성하는 단계(S550);
를 포함하는, 방법.
According to any one of claims 11 and 12,
The step of generating a three-dimensional model of the real space (S420) is,
Deriving a plane equation from each of the planes including the recognized wall and floor (S510);
Obtaining a three-dimensional model shape of the virtual wall and the virtual floor by expanding the wall and the floor based on the derived plane equation (S520);
Identifying objects placed in the wall, floor, and real space from the space image (S530);
In-painting an area of the wall and floor obscured by the identified object using information from the space image (S540); and
Generating a three-dimensional model of the real space by applying a texture of an in-painting image to the three-dimensional model form of the virtual wall and virtual floor (S550);
Method, including.
상기 가상의 벽 및 가상의 바닥의 3차원 모델 형태를 생성하는 단계(S520)는,
상기 확장된 벽 및 바닥이 만나는 교선을 추출하는 단계;
상기 추출된 교선에 기초하여 상기 벽 및 상기 바닥의 평면들을 구분하는 단계;
상기 구분된 평면들 각각의 버텍스(vertex) 좌표들을 획득하는 단계; 및
상기 획득된 버텍스 좌표들에 기초하여 상기 가상의 벽 및 가상의 바닥의 3차원 모델 형태를 생성하는 단계;
를 포함하는 방법.
According to claim 13,
The step of generating a three-dimensional model shape of the virtual wall and virtual floor (S520),
extracting an intersection line where the expanded wall and floor meet;
distinguishing planes of the wall and the floor based on the extracted intersection;
Obtaining vertex coordinates of each of the divided planes; and
generating a three-dimensional model shape of the virtual wall and virtual floor based on the obtained vertex coordinates;
How to include .
상기 벽 및 바닥과 현실 공간 내에 배치된 객체를 식별하는 단계(S530)는,
상기 공간 이미지로부터 획득된 현실 공간의 깊이 정보 및 컬러 정보 중 적어도 하나에 기초하여 상기 객체를 식별하는 단계; 및
상기 인식된 벽 및 바닥과 상기 식별된 객체를 구분하는 단계;
를 포함하는, 방법.
According to claim 13,
The step (S530) of identifying the walls, floors, and objects placed in real space is,
Identifying the object based on at least one of depth information and color information in real space obtained from the spatial image; and
distinguishing between the recognized walls and floors and the identified objects;
Method, including.
상기 3차원 세그멘테이션을 수행하는 단계(S440)는,
상기 선택된 객체에 대한 3차원 모델이 기 저장되어 있는지 여부를 확인하는 단계(S1010);
확인 결과 상기 선택된 객체에 관한 3차원 모델이 저장되어 있는 경우, 상기 기 저장된 3차원 모델의 방향을 조절함으로써 상기 공간 이미지 상의 2차원 세그멘테이션의 윤곽선(outlier)과 겹치도록 상기 3차원 모델을 배치하는 단계(S1020);
상기 배치된 3차원 모델로부터 상기 객체에 관한 3차원 위치 좌표값을 획득하는 단계(S1030); 및
상기 획득된 3차원 위치 좌표값에 기초하여 상기 객체를 상기 공간 이미지로부터 분할하는 3차원 세그멘테이션을 수행하는 단계(S1040);
를 포함하는, 방법.
According to any one of claims 11 to 15,
The step of performing the 3D segmentation (S440) is:
Checking whether a 3D model for the selected object is already stored (S1010);
As a result of confirmation, if a 3D model for the selected object is stored, arranging the 3D model so that it overlaps an outline (outlier) of the 2D segmentation on the spatial image by adjusting the direction of the previously stored 3D model. (S1020);
Obtaining 3D position coordinate values for the object from the arranged 3D model (S1030); and
Performing 3D segmentation to segment the object from the spatial image based on the obtained 3D position coordinate values (S1040);
Method, including.
상기 3차원 세그멘테이션을 수행하는 단계는,
상기 선택된 객체에 대한 3차원 모델이 기 저장되어 있는지 여부를 확인하는 단계(1010);
확인 결과 상기 선택된 객체에 관한 3차원 모델이 저장되어 있지 않은 경우, 상기 공간 이미지로부터 인식된 상기 객체의 경계선(edge), 특징점(feature point), 및 픽셀들의 3차원 위치 좌표값을 획득하는 단계(S1050);
상기 획득된 객체의 경계선, 특징점, 및 픽셀들의 3차원 위치 좌표값 중 적어도 하나에 기초하여 3차원 버텍스 모델링(3D vertex modeling)을 수행하는 단계(S1060); 및
상기 3차원 버텍스 모델링을 통해 상기 객체를 상기 공간 이미지로부터 분할하는 3차원 세그멘테이션을 수행하는 단계(S1070);
를 포함하는, 방법.
According to any one of claims 11 to 16,
The step of performing the 3D segmentation is:
Checking whether a 3D model for the selected object is already stored (1010);
As a result of confirmation, if the 3D model for the selected object is not stored, obtaining the 3D position coordinate values of the edge, feature point, and pixel of the object recognized from the spatial image ( S1050);
Performing 3D vertex modeling based on at least one of the obtained object's boundary line, feature points, and 3D position coordinate values of pixels (S1060); and
Performing 3D segmentation to divide the object from the spatial image through the 3D vertex modeling (S1070);
Method, including.
상기 증강 현실 디바이스(100)의 오리엔테이션 또는 시야각(Field of View)이 변경되는 경우 상기 공간 이미지를 추가로 획득하고, 상기 추가로 획득된 공간 이미지에 대하여 2차원 세그멘테이션을 수행함으로써 상기 객체의 윤곽선을 추출하는 단계(S1420);
상기 3차원 세그멘테이션을 통해 상기 객체가 분할된 영역의 2차원 윤곽선과 상기 추출된 윤곽선을 비교함으로써 유사도를 측정하는 단계(S1430); 및
상기 유사도를 기 설정된 임계치와 비교하여 상기 3차원 세그멘테이션을 추가로 수행할지 여부를 결정하는 단계(S1440);
를 더 포함하는, 방법.
According to any one of claims 11 to 17,
When the orientation or field of view of the augmented reality device 100 changes, the spatial image is additionally acquired, and the outline of the object is extracted by performing two-dimensional segmentation on the additionally acquired spatial image. Step (S1420);
Measuring similarity by comparing the extracted outline with a two-dimensional outline of a region into which the object is divided through the three-dimensional segmentation (S1430); and
Comparing the similarity with a preset threshold to determine whether to additionally perform the 3D segmentation (S1440);
A method further comprising:
상기 유사도가 상기 임계치 미만인 경우, 상기 3차원 세그멘테이션을 추가로 수행하고, 추가로 수행된 3차원 세그멘테이션을 통해 세그멘테이션 결과를 업데이트(update)하는 단계(S1460);
를 더 포함하고,
상기 세그멘테이션 결과를 업데이트하는 단계는 기 설정된 시간 간격에 따라 주기적으로 수행되는, 방법.
According to clause 18,
If the similarity is less than the threshold, additionally performing the 3D segmentation and updating the segmentation result through the additionally performed 3D segmentation (S1460);
It further includes,
The method of updating the segmentation result is performed periodically according to a preset time interval.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2023/012100 WO2024053895A1 (en) | 2022-09-08 | 2023-08-16 | Augmented reality device for providing augmented reality service for controlling object in real space and operation method thereof |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20220114487 | 2022-09-08 | ||
KR1020220114487 | 2022-09-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20240035281A true KR20240035281A (en) | 2024-03-15 |
Family
ID=90272877
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220135234A KR20240035281A (en) | 2022-09-08 | 2022-10-19 | An augmented reality device for proving augmented reality service which controls an object in the real world space and a method for operating the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20240035281A (en) |
-
2022
- 2022-10-19 KR KR1020220135234A patent/KR20240035281A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11315287B2 (en) | Generating pose information for a person in a physical environment | |
US11900569B2 (en) | Image-based detection of surfaces that provide specular reflections and reflection modification | |
KR102583437B1 (en) | Pupil detection | |
US9437038B1 (en) | Simulating three-dimensional views using depth relationships among planes of content | |
US11887246B2 (en) | Generating ground truth datasets for virtual reality experiences | |
US9367203B1 (en) | User interface techniques for simulating three-dimensional depth | |
US11574424B2 (en) | Augmented reality map curation | |
US11010961B2 (en) | Object permanence in surface reconstruction | |
WO2022179344A1 (en) | Methods and systems for rendering virtual objects in user-defined spatial boundary in extended reality environment | |
CN112561071A (en) | Object relationship estimation from 3D semantic mesh | |
CN109710054B (en) | Virtual object presenting method and device for head-mounted display equipment | |
CN113678173A (en) | Method and apparatus for graph-based placement of virtual objects | |
KR20240035281A (en) | An augmented reality device for proving augmented reality service which controls an object in the real world space and a method for operating the same | |
WO2020219379A1 (en) | Generating a semantic construction of a physical setting | |
US11379471B1 (en) | Hierarchical datastore for an agent | |
US20240073402A1 (en) | Multi-perspective augmented reality experience | |
WO2024053895A1 (en) | Augmented reality device for providing augmented reality service for controlling object in real space and operation method thereof | |
US20240071006A1 (en) | Mixing and matching volumetric contents for new augmented reality experiences | |
US20240212201A1 (en) | User location determination based on object interactions | |
US20220334674A1 (en) | Information processing apparatus, information processing method, and program | |
TW202324172A (en) | Automatic artificial reality world creation | |
KR20240037800A (en) | Electronic apparatus and control method thereof |