KR20230161309A - An augmented reality device for obtaining depth information and a method for operating the same - Google Patents
An augmented reality device for obtaining depth information and a method for operating the same Download PDFInfo
- Publication number
- KR20230161309A KR20230161309A KR1020220101583A KR20220101583A KR20230161309A KR 20230161309 A KR20230161309 A KR 20230161309A KR 1020220101583 A KR1020220101583 A KR 1020220101583A KR 20220101583 A KR20220101583 A KR 20220101583A KR 20230161309 A KR20230161309 A KR 20230161309A
- Authority
- KR
- South Korea
- Prior art keywords
- pixel
- depth
- camera
- augmented reality
- value
- Prior art date
Links
- 230000003190 augmentative effect Effects 0.000 title claims abstract description 193
- 238000000034 method Methods 0.000 title claims abstract description 80
- 239000013598 vector Substances 0.000 claims abstract description 191
- 230000005484 gravity Effects 0.000 claims abstract description 76
- 238000005259 measurement Methods 0.000 claims abstract description 18
- 238000013473 artificial intelligence Methods 0.000 claims description 62
- 238000012549 training Methods 0.000 claims description 14
- 238000010586 diagram Methods 0.000 description 23
- 238000004590 computer program Methods 0.000 description 19
- 238000012937 correction Methods 0.000 description 18
- 238000012545 processing Methods 0.000 description 9
- 238000003062 neural network model Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 7
- 230000007423 decrease Effects 0.000 description 6
- 238000013527 convolutional neural network Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 230000014509 gene expression Effects 0.000 description 4
- 230000000306 recurrent effect Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000020169 heat generation Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000004984 smart glass Substances 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 238000013507 mapping 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
- 230000003068 static effect Effects 0.000 description 1
- 238000002366 time-of-flight method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/271—Image signal generators wherein the generated image signals comprise depth maps or disparity maps
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/10—Processing, recording or transmission of stereoscopic or multi-view image signals
- H04N13/106—Processing image signals
- H04N13/128—Adjusting depth or disparity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/204—Image signal generators using stereoscopic image cameras
- H04N13/239—Image signal generators using stereoscopic image cameras using two 2D image sensors having a relative position equal to or related to the interocular distance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N13/00—Stereoscopic video systems; Multi-view video systems; Details thereof
- H04N13/20—Image signal generators
- H04N13/257—Colour aspects
Abstract
추가 하드웨어 모듈없이 높은 정확도를 갖는 깊이 맵을 획득하기 위하여 IMU 센서에 의해 측정된 중력 방향에 기초하여 깊이 값을 보정하는 증강 현실 디바이스 및 그 동작 방법을 제공한다. 본 개시의 일 실시예에 따른 증강 현실 디바이스는 카메라를 이용하여 획득한 이미지로부터 깊이 맵(depth map)을 획득하고, 깊이 맵으로부터 적어도 하나의 픽셀의 법선 벡터(normal vector)를 획득하고, IMU 센서(Inertial Measurement Unit)에 의해 측정된 중력 방향에 기초하여 적어도 하나의 픽셀의 법선 벡터의 방향을 보정하고, 보정된 법선 벡터의 방향에 기초하여 깊이 맵의 깊이 값을 보정할 수 있다. An augmented reality device that corrects depth values based on the direction of gravity measured by an IMU sensor and a method of operating the same are provided to obtain a depth map with high accuracy without an additional hardware module. An augmented reality device according to an embodiment of the present disclosure acquires a depth map from an image acquired using a camera, obtains a normal vector of at least one pixel from the depth map, and uses an IMU sensor. The direction of the normal vector of at least one pixel may be corrected based on the direction of gravity measured by an inertial measurement unit, and the depth value of the depth map may be corrected based on the direction of the corrected normal vector.
Description
본 개시는 깊이 정보를 획득하는 증강 현실 디바이스(augment reality device) 및 그 동작 방법에 관한 것이다. 구체적으로, 본 개시는 중력 방향에 기초하여 깊이 맵(depth map)의 픽셀 별 깊이 값을 보정하는 증강 현실 디바이스 및 그 동작 방법에 관한 것이다.This disclosure relates to an augmented reality device that acquires depth information and a method of operating the same. Specifically, the present disclosure relates to an augmented reality device that corrects the depth value of each pixel of a depth map based on the direction of gravity and a method of operating the same.
증강 현실(Augmented Reality)은 현실 세계의 물리적 환경 공간이나 현실 객체(real world object) 상에 가상 이미지를 오버레이(overlay)하여 함께 보여주는 기술로서, 증강 현실 기술을 활용한 증강 현실 디바이스(예를 들어, 스마트 글래스(Smart Glass))가 정보 검색, 길 안내, 카메라 촬영과 같이 일상 생활에서 유용하게 사용되고 있다. 특히, 스마트 글래스는 패션 아이템으로도 착용되고, 실외 활동에 주로 사용되고 있다. Augmented Reality is a technology that overlays and displays virtual images 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.
최근에는 사용자에게 몰입감을 주기 위하여, 3차원 입체 공간으로 구성된 현실 공간에 포함되는 객체의 공간감을 나타내는 깊이 정보를 획득하는 깊이 센서(depth sensor)를 포함하는 디바이스가 널리 사용되고 있다. 종래의 깊이 센서를 이용한 깊이 정보 획득 기술은 예를 들어, 구조광 방식(Structured Light), 스테레오 비전 방식(Stereo Vision), 또는 ToF 방식(Time of Flight) 등이 있다. 상기 깊이 정보 획득 기술 중 구조광 방식, 스테레오 비전 방식, ToF 방식은 카메라 기반의 깊이 추정 방식으로서, 카메라로부터의 거리가 멀어지면 멀어질수록 깊이 값의 정확도가 낮아진다. 거리에 관한 깊이 값의 정확도가 상대적으로 높은 구조광 방식 또는 ToF 방식의 경우 발광부(illuminator) 등 하드웨어 모듈이 추가로 필요하고, 하드웨어 모듈에 의한 전력 소모 및 추가 비용 발생의 문제점이 있다. Recently, in order to provide users with a sense of immersion, devices including a depth sensor that acquires depth information representing the sense of space of objects included in a real space composed of three-dimensional space have been widely used. Conventional depth information acquisition technology using a depth sensor includes, for example, Structured Light, Stereo Vision, or Time of Flight. Among the depth information acquisition technologies, the structured light method, stereo vision method, and ToF method are camera-based depth estimation methods, and as the distance from the camera increases, the accuracy of the depth value decreases. In the case of the structured light method or ToF method, which has relatively high accuracy of depth values regarding distance, additional hardware modules such as illuminators are required, and there is a problem of power consumption and additional costs incurred by the hardware modules.
또한, 증강 현실 디바이스에 의해 실행되는 증강 현실 애플리케이션은 대부분 상시 깊이 정보를 필요로 하므로 전력 소모량이 증가하고, 소형 폼팩터를 갖는 휴대용 디바이스인 증강 현실 디바이스의 특성 상 발열 및 전력 소모량은 디바이스 이용 가능 시간에 크게 영향을 미친다. In addition, most augmented reality applications run by augmented reality devices require depth information at all times, which increases power consumption, and due to the nature of augmented reality devices, which are portable devices with a small form factor, heat generation and power consumption increase during the time the device is available. It has a big impact.
상술한 기술적 과제를 해결하기 위하여 본 개시는 중력 방향에 기초하여 깊이 값을 보정하는 증강 현실 디바이스를 제공한다. 본 개시의 일 실시예에 따른 증강 현실 디바이스는 카메라, IMU 센서(Inertial Measurement Unit), 적어도 하나의 프로세서, 및 메모리를 포함할 수 있다. 적어도 하나의 프로세서는 메모리에 저장된 적어도 하나의 명령어들을 실행함으로써, 카메라를 이용하여 획득한 이미지로부터 깊이 맵(depth map)을 획득할 수 있다. 적어도 하나의 프로세서는 깊이 맵에 포함된 적어도 하나의 픽셀의 법선 벡터(normal vector)를 획득할 수 있다. 적어도 하나의 프로세서는 IMU 센서(120)에 의해 측정된 중력 방향에 기초하여 상기 적어도 하나의 픽셀의 법선 벡터의 방향을 보정할 수 있다. 적어도 하나의 프로세서는 보정된 법선 벡터의 방향에 기초하여 상기 적어도 하나의 픽셀의 깊이 값을 보정할 수 있다. In order to solve the above-described technical problem, the present disclosure provides an augmented reality device that corrects depth values based on the direction of gravity. An augmented reality device according to an embodiment of the present disclosure may include a camera, an IMU sensor (Inertial Measurement Unit), at least one processor, and memory. At least one processor may obtain a depth map from an image acquired using a camera by executing at least one command stored in a memory. At least one processor may obtain a normal vector of at least one pixel included in the depth map. At least one processor may correct the direction of the normal vector of the at least one pixel based on the direction of gravity measured by the
상술한 기술적 과제를 해결하기 위하여 본 개시는 증강 현실 디바이스가 깊이 값을 보정하는 방법을 제공한다. 본 개시의 일 실시예에서, 상기 방법은 카메라를 이용하여 획득한 이미지로부터 깊이 맵(depth map)을 획득하는 단계를 포함할 수 있다. 상기 방법은 깊이 맵에 포함된 적어도 하나의 픽셀의 법선 벡터(normal vector)를 획득하는 단계를 포함할 수 있다. 상기 방법은 IMU 센서에 의해 측정된 중력 방향에 기초하여 상기 적어도 하나의 픽셀의 법선 벡터의 방향을 보정하는 단계를 포함할 수 있다. 상기 방법은 보정된 법선 벡터의 방향에 기초하여 상기 적어도 하나의 픽셀의 깊이 값을 보정하는 단계를 포함할 수 있다. In order to solve the above-described technical problem, the present disclosure provides a method for an augmented reality device to correct depth values. In one embodiment of the present disclosure, the method may include obtaining a depth map from an image acquired using a camera. The method may include obtaining a normal vector of at least one pixel included in the depth map. The method may include correcting the direction of a normal vector of the at least one pixel based on the direction of gravity measured by an IMU sensor. The method may include correcting the depth value of the at least one pixel based on the direction of the corrected normal vector.
상술한 기술적 과제를 해결하기 위하여, 본 개시는 컴퓨터로 읽을 수 있는 저장 매체를 포함하는 컴퓨터 프로그램 제품(Computer Program Product)를 제공한다. 상기 저장 매체는 카메라를 이용하여 획득한 이미지로부터 깊이 맵(depth map)을 획득하는 동작과 관련된 명령어들(instructions)을 저장할 수 있다. 상기 저장 매체는 깊이 맵에 포함된 적어도 하나의 픽셀의 법선 벡터(normal vector)를 획득하는 동작과 관련된 명령어들을 저장할 수 있다. 상기 저장 매체는 IMU 센서에 의해 측정된 중력 방향에 기초하여 적어도 하나의 픽셀의 법선 벡터의 방향을 보정하는 동작과 관련된 명령어들을 저장할 수 있다. 상기 저장 매체는 보정된 법선 벡터의 방향에 기초하여 깊이 맵의 적어도 하나의 픽셀의 깊이 값을 보정하는 동작과 관련된 명령어들을 저장할 수 있다. In order to solve the above-described technical problems, the present disclosure provides a computer program product including a computer-readable storage medium. The storage medium may store instructions related to obtaining a depth map from an image acquired using a camera. The storage medium may store instructions related to obtaining a normal vector of at least one pixel included in the depth map. The storage medium may store instructions related to correcting the direction of a normal vector of at least one pixel based on the direction of gravity measured by the IMU sensor. The storage medium may store instructions related to correcting the depth value of at least one pixel of the depth map based on the direction of the corrected normal vector.
본 개시는, 다음의 자세한 설명과 그에 수반되는 도면들의 결합으로 쉽게 이해될 수 있으며, 참조 번호(reference numerals)들은 구조적 구성요소(structural elements)를 의미한다.
도 1a는 본 개시의 증강 현실 디바이스가 깊이 값을 보정하는 방법을 설명하기 위한 개념도이다.
도 1b는 본 개시의 증강 현실 디바이스가 IMU 센서에 의해 측정된 중력 방향에 따라 깊이 값을 보정하는 방법을 설명하기 위한 개념도이다.
도 2는 본 개시의 일 실시예에 따른 증강 현실 디바이스의 구성 요소를 도시한 블록도이다.
도 3은 본 개시의 일 실시예에 따른 증강 현실 디바이스의 동작 방법을 도시한 흐름도이다.
도 4는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 픽셀 별 법선 벡터(normal vector)를 획득하는 방법을 도시한 흐름도이다.
도 5는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 깊이 맵으로부터 픽셀 별 법선 벡터를 획득하는 동작을 도시한 도면이다.
도 6a는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 중력 방향에 따라 법선 벡터의 방향을 보정하는 동작을 도시한 도면이다.
도 6b는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 중력 방향에 대하여 수직 방향으로 법선 벡터의 방향을 보정하는 동작을 도시한 도면이다.
도 7은 본 개시의 일 실시예에 따른 증강 현실 디바이스가 인공지능 모델을 이용하여 깊이 맵을 획득하는 트레이닝(training) 동작을 도시한 도면이다.
도 8은 본 개시의 일 실시예에 따른 증강 현실 디바이스가 깊이 맵의 픽셀 별 깊이 값을 보정하는 방법을 도시한 흐름도이다.
도 9는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 손실값(loss)를 산출하는 방법을 도시한 흐름도이다.
도 10은 본 개시의 일 실시예에 따른 증강 현실 디바이스가 손실값을 산출하는 동작을 도시한 도면이다.
도 11은 본 개시의 일 실시예에 따른 증강 현실 디바이스가 인공지능 모델을 이용하여 깊이 맵을 획득하는 동작을 도시한 도면이다.
도 12는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 깊이 맵의 픽셀 별 깊이 값을 보정하는 방법을 도시한 흐름도이다.
도 13은 본 개시의 일 실시예에 따른 증강 현실 디바이스가 플레인 스윕(plane sweep) 방식을 통해 깊이 맵의 픽셀 별 깊이 값을 보정하는 동작을 도시한 도면이다.
도 14는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 깊이 맵의 픽셀 별 깊이 값을 보정하는 방법을 도시한 흐름도이다.
도 15는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 ToF(Time-of-Flight) 방식을 통해 획득된 깊이 맵의 픽셀 별 깊이 값을 보정하는 동작을 도시한 도면이다.
도 16은 일반적인 방식으로 획득된 깊이 맵으로 복원된 공간 모델과 본 개시의 일 실시예에 따른 증강 현실 디바이스에 의해 획득된 깊이 맵으로 복원된 공간 모델을 도시한 도면이다.The present disclosure may be readily understood by combination of the following detailed description and accompanying drawings, where reference numerals refer to structural elements.
FIG. 1A is a conceptual diagram illustrating how the augmented reality device of the present disclosure corrects a depth value.
FIG. 1B is a conceptual diagram illustrating how the augmented reality device of the present disclosure corrects the depth value according to the direction of gravity measured by the IMU sensor.
Figure 2 is a block diagram showing the components of an augmented reality device according to an embodiment of the present disclosure.
Figure 3 is a flowchart showing a method of operating an augmented reality device according to an embodiment of the present disclosure.
FIG. 4 is a flowchart illustrating a method for an augmented reality device to obtain a normal vector for each pixel according to an embodiment of the present disclosure.
FIG. 5 is a diagram illustrating an operation of an augmented reality device acquiring a normal vector for each pixel from a depth map according to an embodiment of the present disclosure.
FIG. 6A is a diagram illustrating an operation of an augmented reality device correcting the direction of a normal vector according to the direction of gravity according to an embodiment of the present disclosure.
FIG. 6B is a diagram illustrating an operation of an augmented reality device correcting the direction of a normal vector in a direction perpendicular to the direction of gravity according to an embodiment of the present disclosure.
FIG. 7 is a diagram illustrating a training operation in which an augmented reality device acquires a depth map using an artificial intelligence model according to an embodiment of the present disclosure.
FIG. 8 is a flowchart illustrating a method by which an augmented reality device corrects the depth value for each pixel of a depth map according to an embodiment of the present disclosure.
Figure 9 is a flowchart illustrating a method for an augmented reality device to calculate a loss value according to an embodiment of the present disclosure.
FIG. 10 is a diagram illustrating an operation of an augmented reality device calculating a loss value according to an embodiment of the present disclosure.
FIG. 11 is a diagram illustrating an operation of an augmented reality device acquiring a depth map using an artificial intelligence model according to an embodiment of the present disclosure.
FIG. 12 is a flowchart illustrating a method by which an augmented reality device corrects the depth value for each pixel of a depth map according to an embodiment of the present disclosure.
FIG. 13 is a diagram illustrating an operation in which an augmented reality device corrects the depth value for each pixel of a depth map through a plane sweep method according to an embodiment of the present disclosure.
FIG. 14 is a flowchart illustrating a method by which an augmented reality device corrects the depth value for each pixel of a depth map according to an embodiment of the present disclosure.
FIG. 15 is a diagram illustrating an operation of an augmented reality device correcting the depth value for each pixel of a depth map obtained through a time-of-flight (ToF) method according to an embodiment of the present disclosure.
FIG. 16 is a diagram illustrating a spatial model restored with a depth map obtained in a general manner and a spatial model restored with a depth map acquired by an augmented reality device 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.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.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.
도 1a는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 깊이 값을 보정하는 방법을 설명하기 위한 개념도이다. FIG. 1A is a conceptual diagram illustrating a method by which an augmented reality device corrects a depth value according to an embodiment of the present disclosure.
도 1a를 참조하면, 증강 현실 디바이스는 카메라(110)를 이용하여 획득된 이미지를 통해 실제 바닥면(10)의 깊이 값(20)을 추정할 수 있다. 추정된 깊이 값(20)은 실제 바닥면(10)과 카메라(110) 간의 물리적 거리 또는 높이 차이 등 위치 관계에 따라 실제 바닥면(10)의 깊이 값과는 다른 값으로 추정될 수 있다. 예를 들어, 카메라(110)가 좌안 카메라 및 우안 카메라를 포함하고, 증강 현실 디바이스가 좌안 카메라로부터 획득된 좌안 이미지 및 우안 카메라로부터 획득된 우안 이미지를 이용하여 스테레오 비전 방식을 통해 깊이 값(20)을 추정하는 경우, 카메라(110)로부터의 거리가 멀면 멀수록 좌안 이미지와 우안 이미지 간의 대응점 사이의 간격, 즉 시차(disparity)의 오차가 커질 수 있다. 예를 들어, 증강 현실 디바이스가 ToF(Time-of-Flight) 방식을 통해 깊이 값(20)을 추정하는 경우에도 카메라(110)로부터의 거리가 멀면 멀수록 추정된 깊이 값(20)의 정확도는 떨어지게 된다. Referring to FIG. 1A , the augmented reality device can estimate the
도 1a에 도시된 실시예에서, 추정된 깊이 값(20)은 카메라(110)와의 거리가 가까운 영역은 실제 바닥면(10)의 깊이 값과 유사한 값으로 획득되었지만, 카메라(110)와의 거리가 멀면 멀수록 실제 바닥면(10)의 깊이 값과는 달리 위로 기울어진 경사 형태의 깊이 값으로 획득될 수 있다.In the embodiment shown in FIG. 1A, the estimated
증강 현실 디바이스는 IMU 센서(Inertial Measurement Unit)(120)를 통해 측정된 측정값에 기초하여 중력 방향(G)에 관한 정보를 획득할 수 있다. 본 개시의 일 실시예에서, IMU 센서(120)는 자이로 센서(gyroscope)를 포함하고, 증강 현실 디바이스는 IMU 센서(120)에 포함된 자이로 센서를 이용하여 중력 방향(G) 정보를 획득할 수 있다. 증강 현실 디바이스는 중력 방향(G)에 기초하여 추정된 깊이 값(20)을 보정함으로써, 보정된 깊이 값(30)을 획득할 수 있다. 도 1a에 도시된 실시예에서, 보정된 깊이 값(30)은 실제 바닥면(10)과 같이 평평한 경사도를 갖고, 실제 바닥면(10)과 동일한 깊이 값을 가질 수 있다. 증강 현실 디바이스가 IMU 센서(120)를 통해 획득한 중력 방향(G)에 관한 정보에 기초하여 깊이 값을 보정하는 구체적인 방법은 도 1b에서 설명하기로 한다.The augmented reality device can obtain information about the direction of gravity (G) based on the measurement value measured through the IMU sensor (Inertial Measurement Unit) 120. In one embodiment of the present disclosure, the
도 1b는 본 개시의 증강 현실 디바이스가 IMU 센서에 의해 측정된 중력 방향(G)에 따라 깊이 값을 보정하는 방법을 설명하기 위한 개념도이다. FIG. 1B is a conceptual diagram illustrating how the augmented reality device of the present disclosure corrects the depth value according to the direction of gravity (G) measured by the IMU sensor.
도 1b를 참조하면, 증강 현실 디바이스는 픽셀의 깊이 값을 획득한다(동작 ①). 증강 현실 디바이스는 카메라(110)를 이용하여 획득된 이미지에 기초하여 깊이 값(depth value)을 갖는 복수의 픽셀들(p1 내지 pn)을 포함하는 깊이 맵(depth map)을 획득할 수 있다. 본 개시의 일 실시예에서, 카메라(110)는 좌안 카메라 및 우안 카메라를 포함하고, 증강 현실 디바이스는 좌안 카메라로부터 획득된 좌안 이미지 및 우안 카메라로부터 획득된 우안 이미지를 이용하여 스테레오 비전 방식을 통해 깊이 맵을 획득할 수 있다. 본 개시의 일 실시예에서, 카메라(110)는 ToF(Time-of-Flight) 카메라로 구성되고, 증강 현실 디바이스는 ToF 카메라를 이용하여 깊이 맵을 획득할 수 있다. 그러나, 이에 한정되는 것은 아니고, 본 개시의 다른 실시예에서 증강 현실 디바이스는 구조광 방식(structured light)을 통해서 깊이 맵을 획득할 수도 있다.Referring to FIG. 1B, the augmented reality device acquires the depth value of the pixel (operation ①). The augmented reality device may obtain a depth map including a plurality of pixels (p 1 to p n ) with a depth value based on the image acquired using the
깊이 맵에 포함되는 픽셀들의 깊이 값은 카메라(110)로부터의 거리에 기초하여 실제 바닥면(10)과는 다른 값을 가질 수 있다. 도 1b에 도시된 실시예에서, 복수의 픽셀들(p1 내지 pn) 중 상대적으로 카메라(110)와 인접한 영역(near)에 위치하는 제1 픽셀(p1) 및 제2 픽셀(p2)의 깊이 값은 실제 바닥면(10)의 깊이 값과 동일 또는 유사하지만, 카메라(110)와의 거리가 먼 영역(far)에 위치하는 픽셀들(pn-1, pn)의 깊이 값은 실제 바닥면(10)의 깊이 값과는 차이가 있을 수 있다.Depth values of pixels included in the depth map may have values different from those of the
증강 현실 디바이스는 픽셀의 법선 벡터(normal vector)(N1 내지 Nn)를 획득한다 (동작 ②). 본 개시의 일 실시예에서, 증강 현실 디바이스는 깊이 맵에 포함된 복수의 픽셀들(p1 내지 pn)의 방향 벡터 및 깊이 값에 기초하여 복수의 픽셀들(p1 내지 pn)을 3차원 좌표값으로 변환할 수 있다. 증강 현실 디바이스는 어느 하나의 픽셀을 기준으로 상하좌우 방향으로 인접한 위치에 배치된 인접 픽셀들의 3차원 좌표값의 외적(cross-product)을 계산함으로써, 복수의 픽셀들(p1 내지 pn) 각각의 법선 벡터(N1 내지 Nn)를 획득할 수 있다. The augmented reality device acquires the normal vector (N 1 to N n ) of the pixel (operation ②). In one embodiment of the present disclosure, the augmented reality device divides the plurality of pixels (p 1 to p n ) into 3 based on the direction vector and depth value of the plurality of pixels (p 1 to p n ) included in the depth map. It can be converted to dimensional coordinates. The augmented reality device calculates the cross-product of the three-dimensional coordinate values of adjacent pixels arranged in adjacent positions in the up, down, left, and right directions based on one pixel, thereby dividing each of the plurality of pixels (p 1 to p n ). The normal vectors (N 1 to N n ) can be obtained.
증강 현실 디바이스는 중력 방향에 기초하여 법선 벡터(N1 내지 Nn)를 보정한다 (동작 ③). 증강 현실 디바이스는 IMU 센서(120, 도 1a 참조)를 포함하고, IMU 센서(120)의 자이로 센서(gyroscope)를 이용하여 측정된 측정값에 기초하여 중력 방향(G)에 관한 정보를 획득할 수 있다. 증강 현실 디바이스는 픽셀 별 법선 벡터(N1 내지 Nn)의 방향을 중력 방향(G) 또는 중력 방향(G)에 수직하는 방향에 따라 보정할 수 있다. 보정 결과, 증강 현실 디바이스는 보정된 법선 벡터(N1' 내지 Nn')를 획득할 수 있다.The augmented reality device corrects the normal vectors (N 1 to N n ) based on the direction of gravity (operation ③). The augmented reality device includes an IMU sensor 120 (see FIG. 1A) and can obtain information about the direction of gravity (G) based on measurements measured using a gyroscope of the
증강 현실 디바이스는 보정된 법선 벡터(N1' 내지 Nn')에 기초하여 픽셀 별 깊이 값을 보정한다 (동작 ④). 증강 현실 디바이스는 보정된 법선 벡터(N1' 내지 Nn')의 방향에 따라 픽셀 별 평면을 정의하고, 픽셀 별 평면에 기초하여 픽셀의 깊이 값을 보정할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스는 인공지능 모델(Artificial Intelligence, AI)을 이용하여 깊이 맵을 획득하고, 보정된 법선 벡터(N1' 내지 Nn')에 의해 정의되는 평면 상의 픽셀과 인접 픽셀들의 깊이 값에 기초하여 손실값(loss)을 산출하며, 산출된 손실값을 인공지능 모델에 적용하는 트레이닝(training)을 수행함으로써, 픽셀 별 깊이 값을 보정할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스는 보정된 법선 벡터(N1' 내지 Nn')의 방향에 기초하여 정의된 픽셀 별 평면에 따라 플레인 스윕(plane sweep)을 수행함으로써, 픽셀 별 깊이 값을 보정할 수 있다. 본 개시의 일 실시예에서, 보정된 법선 벡터(N1' 내지 Nn')에 기초하여 정의된 평면으로부터 RGB 이미지의 색상 정보에 기초하여 평면 영역을 식별하고, 식별된 평면 영역 내의 인접 픽셀들의 깊이 값에 기초하여 픽셀 별 깊이 값을 보정할 수 있다. The augmented reality device corrects the depth value for each pixel based on the corrected normal vectors (N 1 ' to N n ') (operation ④). The augmented reality device may define a plane for each pixel according to the direction of the corrected normal vectors (N 1 ' to N n ') and correct the depth value of the pixel based on the plane for each pixel. In one embodiment of the present disclosure, the augmented reality device acquires a depth map using an artificial intelligence (AI) model, and pixels on a plane defined by the corrected normal vectors (N 1 ' to N n ') The loss value is calculated based on the depth values of adjacent pixels, and the depth value for each pixel can be corrected by performing training to apply the calculated loss value to the artificial intelligence model. In one embodiment of the present disclosure, the augmented reality device performs a plane sweep according to a plane for each pixel defined based on the direction of the corrected normal vectors (N 1 ' to N n '), thereby determining the depth for each pixel. The value can be corrected. In one embodiment of the present disclosure, a planar region is identified based on color information of an RGB image from a plane defined based on the corrected normal vectors (N 1 ' to N n '), and adjacent pixels within the identified plane region are identified. The depth value for each pixel can be corrected based on the depth value.
증강 현실 디바이스는 보정된 깊이 값을 갖는 복수의 픽셀들(p1' 내지 pn')을 획득할 수 있다. 복수의 픽셀들(p1' 내지 pn') 각각은 실제 바닥면(10)의 깊이와 동일 또는 유사한 깊이 값을 가질 수 있다. The augmented reality device may acquire a plurality of pixels (p 1 ' to p n ') having corrected depth values. Each of the plurality of pixels (p 1 ' to p n ') may have a depth value that is the same as or similar to the actual depth of the
카메라(110)를 통해 획득한 이미지를 이용하는 이미지 기반 깊이 값 획득 방식, 예를 들어 구조광 방식(structure light), 스테레오 비전 방식(stereo vision), 또는 ToF 방식(Time-of-Flight)은 카메라(110)로부터의 거리가 멀어지면 멀어질수록 깊이 값의 정확도가 낮아지는 문제점이 있다. 거리에 관한 깊이 값의 정확도가 상대적으로 높은 구조광 방식 또는 ToF 방식의 경우 발광부(illuminator) 등 하드웨어 모듈이 추가로 필요하고, 하드웨어 모듈에 의한 전력 소모 및 추가 비용이 발생될 수 있다. 또한, 증강 현실 애플리케이션은 대부분 상시 깊이 정보를 필요로 하므로 증강 현실 디바이스의 전력 소모량이 증가하는 문제점이 있다. 소형 폼팩터를 갖는 휴대용 디바이스인 증강 현실 디바이스의 특성 상 발열 및 전력 소모량은 디바이스 이용 가능 시간에 크게 영향을 미칠 수 있다. An image-based depth value acquisition method using an image acquired through the
본 개시는 IMU 센서(120, 도 1a 참조)를 통해 획득된 중력 방향(G) 정보를 이용하여 추가 하드웨어 모듈(예를 들어, 발광부 모듈)에 의한 불필요한 전력 소모 없이 높은 정확도를 갖는 깊이 값을 획득하는 증강 현실 디바이스 및 그 동작 방법을 제공하는 데 목적이 있다.The present disclosure uses the gravity direction (G) information acquired through the IMU sensor 120 (see FIG. 1A) to obtain a depth value with high accuracy without unnecessary power consumption by an additional hardware module (e.g., a light emitter module). The purpose is to provide an augmented reality device and a method of operating the same.
도 1a 및 도 1b에 도시된 실시예에서, 증강 현실 디바이스는 IMU 센서(120)를 이용하여 획득된 중력 방향(G) 정보에 기초하여 픽셀 별 법선 벡터(N1 내지 Nn)의 방향을 보정하고, 보정된 법선 벡터(N1' 내지 Nn')에 기초하여 픽셀 별 깊이 값을 보정함으로써, 높은 정확도를 갖는 깊이 맵을 획득하고, 전력 소모량을 감소시킬 수 있다. 또한, 일반적으로 증강 현실 디바이스에는 IMU 센서(120)가 필수 구성 요소로서 포함되는 바, 본 개시의 일 실시예에 따른 증강 현실 디바이스는 소형 폼팩터를 유지하면서도 낮은 전력 소모량을 구현하고, 이로 인하여 휴대성 및 디바이스 사용 시간을 증가시키는 기술적 효과를 제공할 수 있다. In the embodiment shown in FIGS. 1A and 1B, the augmented reality device corrects the direction of the normal vectors (N 1 to N n ) for each pixel based on the gravity direction (G) information acquired using the
도 2는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)의 구성 요소를 도시한 블록도이다.FIG. 2 is a block diagram showing components of an
증강 현실 디바이스(100)는 사용자의 안면부에 착용하는 안경 형태의 증강 현실 글래스(Augmented Reality Glass)일 수 있다. 증강 현실 디바이스(100)는 애플리케이션을 실행함으로써, 시야(Field Of View, FOV) 내의 현실 객체 뿐만 아니라, 웨이브 가이드(waveguide)에 표시되는 가상 이미지 컨텐트를 제공할 수 있다. 증강 현실 디바이스(100)는 예를 들어, 무비 애플리케이션, 뮤직 애플리케이션, 포토 애플리케이션, 갤러리 애플리케이션, 웹 브라우저 애플리케이션, 전자책(e-book reader) 애플리케이션, 게임 애플리케이션, 증강 현실 애플리케이션, SNS 애플리케이션, 메신저 애플리케이션, 오브젝트 인식 애플리케이션 등을 실행함으로써, 각각의 애플리케이션에서 표시되는 가상 이미지 콘텐트를 사용자에게 제공할 수 있다. The
그러나, 이에 한정되는 것은 아니고, 증강 현실 디바이스(100)는 사용자의 두부(頭部)에 착용하는 헤드 마운트 디스플레이 장치(HMD: Head Mounted Display Apparatus), 또는 증강 현실 헬멧(Augmented Reality Helmet) 등으로 구현될 수도 있다. 그러나, 본 개시의 증강 현실 디바이스(100)가 전술한 예시로 한정되는 것은 아니다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 모바일 디바이스, 스마트 폰(smart phone), 노트북 컴퓨터(laptop computer), 태블릿 PC, 전자책 단말기, 디지털 방송용 단말기, PDA(Personal Digital Assistants), PMP(Portable Multimedia Player), 네비게이션, MP3 플레이어, 캠코더, IPTV(Internet Protocol Television), DTV(Digital Television), 또는 착용형 기기(wearable device) 등과 같은 다양한 디바이스로 구현될 수도 있다. However, it is not limited to this, and the
도 2를 참조하면, 증강 현실 디바이스(100)는 카메라(110), IMU 센서(120), 프로세서(130), 및 메모리(140)를 포함할 수 있다. 카메라(110), IMU 센서(120), 프로세서(130), 및 메모리(140)는 각각 전기적 및/또는 물리적으로 서로 연결될 수 있다. 도 2에는 증강 현실 디바이스(100)의 동작을 설명하기 위한 필수적 구성 요소만이 도시되었고, 증강 현실 디바이스(100)가 포함하는 구성 요소가 도 2에 도시된 바와 같이 한정되는 것은 아니다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 시선 추적 센서 또는 디스플레이 엔진 등을 더 포함할 수 있다. Referring to FIG. 2 , the
카메라(110)는 현실 공간의 객체를 촬영함으로써, 객체에 관한 이미지를 획득하도록 구성된다. 본 개시의 일 실시예에서, 카메라(110)는 렌즈 모듈, 이미지 센서, 및 영상 처리 모듈을 포함할 수 있다. 카메라(110)는 이미지 센서(예를 들어, CMOS 또는 CCD)에 의해 얻어지는 정지 이미지 또는 동영상을 획득할 수 있다. 영상 처리 모듈은 이미지 센서를 통해 획득된 정지 이미지 또는 동영상을 가공하여, 필요한 정보를 추출하고, 추출된 정보를 프로세서(130)에 전달할 수 있다.The
본 개시의 일 실시예에서, 카메라(110)는 좌안 카메라 및 우안 카메라를 포함하고, 두 개의 카메라를 이용하여 객체에 관한 3차원 입체 이미지를 획득하는 스테레오 카메라(Stereo camera)일 수 있다. 그러나, 이에 한정되는 것은 아니고, 카메라(110)는 단일 카메라 또는 3개 이상의 멀티 카메라를 포함할 수 있다.In one embodiment of the present disclosure, the
본 개시의 일 실시예예서, 카메라(110)는 객체에 광을 조사하고, 객체로부터 반사된 반사광을 검출하며, 반사광이 검출된 시점과 광이 조사된 시점 간의 시간 차이인 비행 시간(time of flight)에 기초하여 객체의 깊이 값을 획득하는 ToF 카메라일 수 있다. ToF 카메라로 구현되는 경우, 카메라(110)는 객체의 RGB 이미지(1500, 도 15 참조) 및 깊이 맵 이미지(1510, 도 15 참조)를 함께 획득할 수 있다. In one embodiment of the present disclosure, the
IMU 센서(Inertial Measurement Unit)(120)는 가속도 센서(accelerometer), 자이로 센서(gyroscope), 및 자력 센서(magnetometer)의 조합을 통해 증강 현실 디바이스(100)의 이동 속도, 방향, 각도, 및 중력 가속도를 측정하도록 구성되는 센서이다. 본 개시의 일 실시예에서, IMU 센서(120)는 행 방향, 횡 방향, 및 높이 방향의 가속도를 측정하는 3축 가속도계와 롤(roll), 피치(pitch), 및 요(yaw) 각속도를 측정하는 3축 각속도계를 포함할 수 있다. 본 개시의 일 실시예에서, IMU 센서(120)는 자이로 센서를 이용하여 각속도를 측정하고, 측정된 각속도에 기초하여 중력 방향을 감지할 수 있다. IMU 센서(120)는 중력 방향에 관한 정보를 프로세서(130)에 제공할 수 있다. The IMU sensor (Inertial Measurement Unit) 120 measures the movement speed, direction, angle, and gravitational acceleration of 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
도 2에는 프로세서(130)가 하나의 엘리먼트로 도시되었으나, 이에 한정되는 것은 아니다. 본 개시의 일 실시예에서, 프로세서(130)는 하나 이상의 복수 개의 엘리먼트들로 구성될 수 있다. Although 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)가 객체의 깊이 값 정보를 획득하는 기능 또는 동작들과 관련된 명령어들(instructions)이 저장될 수 있다. 본 개시의 일 실시예에서, 메모리(140)에는 프로세서(130)가 판독할 수 있는 명령어들, 알고리즘(algorithm), 데이터 구조, 프로그램 코드(program code), 및 애플리케이션 프로그램(application program) 중 적어도 하나가 저장될 수 있다. 메모리(140)에 저장되는 명령어들, 알고리즘, 데이터 구조, 및 프로그램 코드는 예를 들어, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다.The
메모리(140)에는 깊이 맵 획득 모듈(142), 법선 벡터 보정 모듈(144), 및 깊이 값 보정 모듈(146)에 관한 명령어들, 알고리즘, 데이터 구조, 또는 프로그램 코드가 저장되어 있을 수 있다. 메모리(140)에 포함되는 '모듈'은 프로세서(130)에 의해 수행되는 기능이나 동작을 처리하는 단위를 의미하고, 이는 명령어들, 알고리즘, 데이터 구조, 또는 프로그램 코드와 같은 소프트웨어로 구현될 수 있다. The
이하의 실시예에서, 프로세서(130)는 메모리(140)에 저장된 명령어들 또는 프로그램 코드들을 실행함으로써 구현될 수 있다.In the following embodiment, the
깊이 맵 획득 모듈(142)은 카메라(110)를 이용하여 획득된 이미지에 기초하여 객체에 관한 깊이 맵(depth map)을 획득하는 기능 및/또는 동작과 관련된 명령어들 또는 프로그램 코드로 구성된다. 본 개시의 일 실시예에서, 깊이 맵 획득 모듈(142)은 인공지능 모델을 이용하여 깊이 맵을 획득하도록 구성될 수 있다. 프로세서(130)는 깊이 맵 획득 모듈(142)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 깊이 맵을 획득할 수 있다. 본 개시의 일 실시예에서, 카메라(110)는 좌안 카메라 및 우안 카메라를 포함하는 스테레오 카메라(stereo camera)일 수 있다. 이 경우, 프로세서(130)는 좌안 카메라를 이용하여 획득된 좌안 이미지 및 우안 카메라를 이용하여 획득된 우안 이미지를 인공지능 모델에 입력하고, 인공지능 모델을 이용하여 좌안 이미지와 우안 이미지의 픽셀 휘도값 유사도에 따른 시차(disparity)를 계산함으로써 깊이 맵을 획득할 수 있다. 인공지능 모델은 심층 신경망 모델(deep neural network model)로 구현될 수 있다. 심층 신경망 모델은 컨볼루션 신경망 모델(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) 등 공지의 인공지능 모델로 구현될 수도 있다. 깊이 맵을 획득하는데 이용되는 심층 신경망 모델은 예를 들어, DispNet일 수 있으나, 이에 한정되는 것은 아니다.The depth
본 개시의 일 실시예에서, 프로세서(130)는 플레인 스윕(plane sweep) 방식을 통해 좌안 이미지와 우안 이미지 간의 시차(disparity)를 계산함으로써, 깊이 맵을 획득할 수 있다. In one embodiment of the present disclosure, the
본 개시의 일 실시예에서, 카메라(110)는 ToF 카메라로 구성되고, 프로세서(130)는 ToF 카메라를 이용하여 획득된 반사광이 검출된 시점과 클럭 신호가 입력된 시점 간의 시간 차이인 광의 비행 시간(time of flight)을 계산하고, 비행 시간과 빛의 속도 간의 연산을 통해 반사광이 검출된 위치와 증강 현실 디바이스(100) 간의 거리, 즉 깊이 값을 산출할 수 있다. 프로세서(130)는 광이 조사되고, 반사광이 검출된 위치에 관한 정보를 획득하고, 획득된 위치 정보에 산출된 깊이 값을 매핑함으로써 깊이 맵을 획득할 수 있다. In one embodiment of the present disclosure, the
법선 벡터 보정 모듈(144)은 깊이 맵에 포함되는 복수의 픽셀들 각각의 법선 벡터(normal vector)를 획득하고, IMU 센서(120)에 의해 획득된 중력 방향에 따라 법선 벡터를 보정하는 기능 및/또는 동작과 관련된 명령어들 또는 프로그램 코드로 구성된다. 프로세서(130)는 법선 벡터 보정 모듈(144)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 적어도 하나의 픽셀의 법선 벡터를 획득하고, 획득된 법선 벡터의 방향을 보정할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 깊이 맵에 포함된 복수의 픽셀들의 방향 벡터 및 복수의 픽셀들의 깊이 값에 기초하여 복수의 픽셀들 각각을 3차원 좌표값으로 변환하고, 변환된 픽셀들 각각을 기준으로 상하좌우 방향으로 인접한 인접 픽셀들의 3차원 좌표값의 외적(cross-product)을 계산함으로써, 픽셀 별 법선 벡터를 획득할 수 있다. The normal
프로세서(130)는 IMU 센서(120)의 자이로 센서에 의해 측정된 측정값에 기초하여 중력 방향에 관한 정보를 획득하고, 중력 방향에 기초하여 픽셀 별 법선 벡터의 방향을 보정할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 중력 방향 뿐만 아니라, 중력 방향에 대하여 수직하는 방향을 따라 픽셀 별 법선 벡터의 방향을 보정할 수 있다. 예를 들어, 수직 방향에 가까운 법선 벡터를 갖는 픽셀에 대하여 프로세서(130)는 법선 벡터의 방향을 중력 방향과 평행한 방향으로 보정할 수 있다. 예를 들어, 지면에 대하여 수평 방향에 가까운 법선 벡터를 갖는 픽셀(예를 들어, 벽, 기둥 등 객체를 나타내는 픽셀)에 대하여 프로세서(130)는 중력 방향에 대하여 수직하는 방향으로 법선 벡터의 방향을 보정할 수 있다. The
프로세서(130)가 픽셀 별 법선 벡터를 획득하고, 획득된 법선 벡터의 방향을 보정하는 구체적인 실시예는 도 4, 도 5, 도 6a, 및 도 6b에서 상세하게 설명하기로 한다.A specific embodiment in which the
깊이 값 보정 모듈(146)은 보정된 법선 벡터의 방향에 기초하여 깊이 맵의 적어도 하나의 픽셀의 깊이 값을 보정하는 기능 및/또는 동작과 관련된 명령어들 또는 프로그램 코드로 구성된다. 프로세서(130)는 깊이 값 보정 모듈(146)과 관련된 명령어들 또는 프로그램 코드를 실행함으로써, 적어도 하나의 픽셀의 깊이 값을 보정할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 인공지능 모델의 트레이닝(training) 과정에서 출력된 깊이 맵의 손실값(loss)을 산출하고, 산출된 손실값을 인공지능 모델에 적용하는 트레이닝을 수행함으로써, 깊이 맵의 적어도 하나의 픽셀의 깊이 값을 보정할 수 있다. 프로세서(130)는 보정된 법선 벡터에 의해 정의되는 평면 상의 픽셀의 깊이 값 및 위치 상으로 인접한 인접 픽셀들의 깊이 값에 기초하여 손실값을 산출할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 정의된 평면과 카메라(110)의 광선 벡터(ray vector)가 만나는 복수의 포인트에 기초하여 인접 픽셀들의 깊이 값을 획득하고, 픽셀의 깊이 값과 인접 픽셀들의 깊이 값 간의 차이값을 각각 산출하며, 인접 픽셀들 별로 산출된 차이값에 가중치를 적용하는 가중합(weighted sum) 연산을 통해 손실값을 산출할 수 있다. The depth
본 개시의 일 실시예에서, 가중합 연산에 적용되는 가중치는 깊이 맵에서의 인접 픽셀들의 위치와 카메라(110)의 위치 간의 거리에 기초하여 결정되는 제1 가중치 및 깊이 맵 내의 픽셀과 인접 픽셀들 간의 휘도값 차이에 기초하여 결정되는 제2 가중치를 포함할 수 있다. 프로세서(130)가 보정된 법선 벡터에 의해 정의되는 평면과 카메라(110)의 위치 관계에 따라 손실값을 산출하고, 산출된 손실값을 이용하여 인공지능 모델을 트레이닝함으로써 적어도 하나의 픽셀의 깊이 값을 보정하는 구체적인 실시예에 대해서는 도 7 내지 도 10에서 상세하게 설명하기로 한다. In one embodiment of the present disclosure, the weight applied to the weighted sum operation is a first weight determined based on the distance between the location of the
본 개시의 일 실시예에서, 프로세서(130)는 보정된 법선 벡터의 방향 또는 보정된 법선 벡터의 방향에 수직하는 방향을 따라 픽셀 별 평면을 가정(plane hypothesis)하고, 가정된 평면에 따라 플레인 스윕(plane sweep)을 수행함으로써 적어도 하나의 픽셀의 깊이 값을 획득할 수 있다. 프로세서(130)는 획득된 깊이 값을 이용하여 깊이 맵의 적어도 하나의 픽셀의 깊이 값을 보정할 수 있다. 프로세서(130)가 보정된 법선 벡터에 기초하여 정의된 평면을 따라 플레인 스윕을 수행함으로써 적어도 하나의 픽셀의 깊이 값을 보정하는 구체적인 실시예에 대해서는 도 12 및 도 13에서 상세하게 설명하기로 한다.In one embodiment of the present disclosure,
본 개시의 일 실시예에서, 프로세서(130)는 ToF 카메라를 이용하여 RGB 이미지 및 깊이 맵 이미지를 획득할 수 있다. 프로세서(130)는 보정된 법선 벡터에 기초하여 깊이 맵 이미지에서 픽셀 별 평면을 정의하고, RGB 이미지의 색상 정보에 따라 분할된 영역에 기초하여 깊이 맵 이미지에서의 평면 영역을 식별할 수 있다. 프로세서(130)는 식별된 평면 영역 내에서 보정 대상 픽셀의 깊이 값을 동일 평면 영역 내의 인접 픽셀들의 깊이 값에 기초하여 픽셀의 깊이 값을 보정할 수 있다. 여기서, '보정 대상 픽셀'은 깊이 값의 보정이 필요한 픽셀로서, 평면 영역 내에서 깊이 값을 갖지 않은 픽셀(깊이 값이 미획득된 픽셀) 또는 평면 영역 내의 인접 픽셀들과의 깊이 값 차이가 기 설정된 임계치를 초과하는 픽셀을 의미한다. 프로세서(130)가 ToF 카메라를 이용하여 획득된 깊이 맵 이미지에서 RGB 이미지에 의해 평면 영역을 식별하고, 식별된 평면 영역 내에서 적어도 하나의 픽셀의 깊이 값을 보정하는 구체적인 실시예에 대해서는 도 14 및 도 15에서 상세하게 설명하기로 한다. In one embodiment of the present disclosure, the
도 3은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)의 동작 방법을 도시한 흐름도이다.FIG. 3 is a flowchart illustrating a method of operating the
단계 S310에서, 증강 현실 디바이스(100)는 카메라를 이용하여 획득한 이미지로부터 깊이 맵(depth map)을 획득한다. 본 개시의 일 실시예에서, 카메라는 좌안 카메라 및 우안 카메라를 포함하는 스테레오 카메라(stereo camera)일 수 있고, 증강 현실 디바이스(100)는 좌안 카메라를 이용하여 획득된 좌안 이미지 및 우안 카메라를 이용하여 획득된 우안 이미지를 인공지능 모델에 입력하고, 인공지능 모델을 이용하여 좌안 이미지와 우안 이미지의 픽셀 휘도값 유사도에 따른 시차(disparity)를 계산함으로써 깊이 맵을 획득할 수 있다. 인공지능 모델은 심층 신경망 모델(deep neural network model)로 구현될 수 있다. 깊이 맵을 획득하는데 이용되는 심층 신경망 모델은 예를 들어, DispNet일 수 있으나, 이에 한정되는 것은 아니다. In step S310, the
본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 플레인 스윕(plane sweep) 방식을 통해 좌안 이미지와 우안 이미지 간의 시차(disparity)를 계산함으로써, 깊이 맵을 획득할 수 있다. In one embodiment of the present disclosure, the
본 개시의 일 실시예에서, 카메라는 ToF 카메라로 구성되고, 증강 현실 디바이스(100)는 ToF 카메라를 이용하여 획득된 광의 비행 시간(time of flight)에 기초하여 깊이 맵을 획득할 수 있다. In one embodiment of the present disclosure, the camera is configured as a ToF camera, and the
단계 S320에서, 증강 현실 디바이스(100)는 깊이 맵에 포함된 적어도 하나의 픽셀의 법선 벡터(normal vector)를 획득한다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 깊이 맵에 포함된 복수의 픽셀들 각각의 방향 벡터 및 깊이 값에 기초하여 복수의 픽셀들을 3차원 좌표값으로 변환할 수 있다. 증강 현실 디바이스(100)는 변환된 3차원 좌표값을 이용하여 픽셀 별 법선 벡터를 획득할 수 있다. In step S320, the
단계 S330에서, 증강 현실 디바이스(100)는 IMU 센서에 의해 측정된 중력 방향에 기초하여 적어도 하나의 픽셀의 법선 벡터의 방향을 보정한다. 수직 방향에 가까운 법선 벡터를 갖는 픽셀의 경우 증강 현실 디바이스(100)는 법선 벡터의 방향을 중력 방향과 평행한 방향으로 보정할 수 있다. 지면에 대하여 수평 방향에 가까운 법선 벡터를 갖는 픽셀의 경우 증강 현실 디바이스(100)는 중력 방향에 수직하는 방향으로 법선 벡터의 방향을 보정할 수 있다. In step S330, the
단계 S340에서, 증강 현실 디바이스(100)는 보정된 법선 벡터의 방향에 기초하여 깊이 맵의 적어도 하나의 픽셀의 깊이 값을 보정한다. 단계 S310에서 인공지능 모델을 이용하여 깊이 맵을 획득한 경우, 증강 현실 디바이스(100)는 인공지능 모델의 트레이닝(training) 과정에서 획득된 깊이 맵의 손실값(loss)을 산출하고, 산출된 손실값을 인공지능 모델에 적용하는 트레이닝을 수행함으로써 깊이 맵에 포함되는 적어도 하나의 픽셀의 깊이 값을 보정할 수 있다. 증강 현실 디바이스(100)는 보정된 법선 벡터에 의해 정의되는 평면 상의 픽셀의 깊이 값 및 위치 상으로 인접한 인접 픽셀들의 깊이 값에 기초하여 손실값을 산출할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 정의된 평면과 카메라의 광선 벡터(ray vector)가 만나는 복수의 포인트에 기초하여 인접 픽셀들의 깊이 값을 획득하고, 픽셀의 깊이 값과 인접 픽셀들의 깊이 값 간의 차이값을 각각 산출하며, 인접 픽셀들 별로 산출된 차이값에 가중치를 적용하는 가중합(weighted sum) 연산을 통해 손실값을 산출할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 깊이 맵 내의 인접 픽셀들의 위치와 카메라의 위치 간의 거리에 기초하여 결정되는 제1 가중치 및 깊이 맵 내의 픽셀과 인접 픽셀들 간의 휘도값 차이에 기초하여 결정되는 제2 가중치를 이용하는 가중합 연산을 통해 손실값을 획득할 수 있다. In step S340, the
본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 보정된 법선 벡터의 방향 또는 보정된 법선 벡터의 방향에 수직하는 방향을 따라 픽셀 별 평면을 정의하는 평면 가정(plane hypothesis)을 수행할 수 있다. 증강 현실 디바이스(100)는 평면 가정에 의해 정의된 평면을 따라 플레인 스윕(plane sweep)을 수행함으로써 적어도 하나의 픽셀의 깊이 값을 획득할 수 있다. 증강 현실 디바이스(100)는 획득된 깊이 값을 이용하여 깊이 맵에 포함된 적어도 하나의 픽셀의 깊이 값을 보정할 수 있다.In one embodiment of the present disclosure, the
단계 S310에서 ToF 카메라를 이용하여 깊이 맵을 획득한 경우, 증강 현실 디바이스(100)는 ToF 카메라를 이용하여 RGB 이미지를 획득할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 보정된 법선 벡터에 기초하여 깊이 맵에서 픽셀 별 평면을 정의하고, RGB 이미지의 색상 정보에 따라 분할된 영역에 기초하여 깊이 맵에서의 평면 영역을 식별할 수 있다. 증강 현실 디바이스(100)는 식별된 평면 영역 내의 보정 대상 픽셀의 깊이 값을 동일 평면 내의 인접 픽셀들의 깊이 값에 기초하여 보정할 수 있다. When a depth map is acquired using a ToF camera in step S310, the
도 4는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 픽셀 별 법선 벡터(normal vector)를 획득하는 방법을 도시한 흐름도이다.FIG. 4 is a flowchart illustrating a method for the
도 4에 도시된 단계 S410 및 S420은 도 3에 도시된 단계 S320을 구체화한 단계들이다. 도 4에 도시된 단계 S410은 도 3의 단계 S310이 수행된 이후에 수행될 수 있다. 도 4에 도시된 단계 S420이 수행된 이후에는 도 3의 단계 S330이 수행될 수 있다.Steps S410 and S420 shown in FIG. 4 are steps that embody step S320 shown in FIG. 3. Step S410 shown in FIG. 4 may be performed after step S310 of FIG. 3 is performed. After step S420 shown in FIG. 4 is performed, step S330 of FIG. 3 may be performed.
도 5는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 깊이 맵으로부터 픽셀 별 법선 벡터를 획득하는 동작을 도시한 도면이다.FIG. 5 is a diagram illustrating an operation of the
이하에서는, 도 4 및 도 5를 함께 참조하여 증강 현실 디바이스(100)의 동작에 대하여 설명한다.Hereinafter, the operation of the
도 4의 단계 S410을 참조하면, 증강 현실 디바이스(100)는 깊이 맵에 포함된 픽셀들의 방향 벡터 및 픽셀들의 깊이 값에 기초하여, 픽셀들을 3차원 좌표값으로 변환한다. 도 5를 함께 참조하면, 증강 현실 디바이스(100)의 프로세서(130, 도 2 참조)는 깊이 맵(500)으로부터 제1 픽셀(501)의 방향 벡터와 깊이 값(Di,j), 복수의 인접 픽셀들(502 내지 505) 각각의 방향 벡터와 깊이 값(Di-1, j, Di+1, j, Di, j-1, Di, j+1)을 획득할 수 있다. 도 5에 도시된 실시예에서, 제1 픽셀(501)은 깊이 맵(500)에 포함되는 복수의 픽셀들 중 i열(i-th column)과 j행(j-th row)에 배치된 픽셀을 나타내고, Di,j의 깊이 값을 가질 수 있다. 복수의 인접 픽셀들(501 내지 505)은 제1 픽셀(501)을 기준으로 상하좌우 방향으로 인접하게 배치되는 픽셀들로서, 각각 Di-1, j, Di+1,j, Di, j-1, 및 Di, j+1의 깊이 값을 가질 수 있다. 예를 들어, 제2 픽셀(502)은 i-1열, j행에 배치되는 픽셀로서, Di-1, j의 깊이 값을 가지고, 제3 픽셀(503)은 i+1열, j행에 배치되는 픽셀로서, Di+1, j의 깊이 값을 가질 수 있다. 제4 픽셀(504) 및 제5 픽셀(505)은 각각 Di, j-1, 및 Di, j+1의 깊이 값을 가질 수 있다. Referring to step S410 of FIG. 4, the
프로세서(130)는 제1 픽셀(501)의 방향 벡터 및 깊이 값(Di,j)과 복수의 인접 픽셀들(502 내지 505) 각각의 방향 벡터 및 깊이 값(Di-1, j, Di+1, j, Di, j-1, Di, j+1)에 기초하여 제1 픽셀(501)과 복수의 인접 픽셀들(502 내지 505)을 3차원 공간(510) 상의 3차원 좌표값(Pi,j, Pi-1, j, Pi+1, j, Pi, j-1, Pi, j+1)으로 변환할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 하기의 수식 1을 통해 제1 픽셀(501) 및 복수의 인접 픽셀들(502 내지 505)을 3차원 공간(510) 내의 3차원 좌표값으로 변환할 수 있다.The
도 5에 도시된 실시예에서, 프로세서(130)는 상기 수식 1의 연산을 통해, 제1 픽셀(501)을 Pi, j로 변환하고, 복수의 인접 픽셀들(502 내지 505)을 Pi-1, j, Pi+1, j, Pi, j-1, Pi, j+1로 각각 변환할 수 있다. In the embodiment shown in FIG. 5, the
도 4의 단계 S420을 참조하면, 증강 현실 디바이스(100)는 상하좌우 방향으로 인접한 복수의 인접 픽셀들의 3차원 좌표값의 외적(cross-product)을 계산함으로써, 픽셀 별 법선 벡터를 획득한다. 도 5를 함께 참조하면, 증강 현실 디바이스(100)의 프로세서(130)는 제1 픽셀의 3차원 좌표값(Pi,j)을 기준으로 상하좌우 방향으로 인접한 복수의 인접 픽셀들의 3차원 좌표값(Pi-1, j, Pi+1, j, Pi, j-1, Pi, j+1)의 외적을 계산할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 수식 2의 연산을 통해 제1 픽셀에 관한 법선 벡터(Ni,j)를 획득할 수 있다. Referring to step S420 of FIG. 4, the
도 5에 도시된 실시예에서, 프로세서(130)는 상기 수식 2의 연산을 통해, 제1 픽셀에 대하여 좌우 방향으로 인접한 제2 픽셀 및 제3 픽셀의 3차원 좌표값(Pi-1, j, Pi+1, j)의 차와 제1 픽셀에 대하여 상하 방향으로 인접한 제4 픽셀 및 제5 픽셀의 3차원 좌표값(Pi, j-1, Pi, j+1)의 차를 계산하고, 차의 벡터 곱을 연산함으로써, 제1 픽셀의 법선 벡터(Ni,j)를 획득할 수 있다. 법선 벡터(Ni,j)는 제1 픽셀 내지 제5 픽셀로 구성된 평면을 정의하는 벡터일 수 있다.In the embodiment shown in FIG. 5, the
도 6a는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 중력 방향(G)에 따라 법선 벡터(Ni,j)의 방향을 보정하는 동작을 도시한 도면이다.FIG. 6A is a diagram illustrating an operation of the
도 6a를 참조하면, 증강 현실 디바이스(100)는 IMU 센서(120), 프로세서(130), 및 법선 벡터 보정 모듈(144)을 포함할 수 있다. 도 6a에 도시된 구성 요소들은 증강 현실 디바이스(100)가 법선 벡터(Ni,j)의 방향을 보정하는 동작을 설명하기 위한 필수적인 구성만을 도시한 것으로서, 증강 현실 디바이스(100)가 포함하는 구성이 도 6a에 도시된 바와 같이 한정되는 것은 아니다. Referring to FIG. 6A , the
IMU 센서(120)는 자이로 센서(gyroscope)를 이용하여 측정한 측정값에 기초하여 중력 방향(G)에 관한 정보를 획득하고, 중력 방향(G)에 관한 정보를 프로세서(130)에 제공할 수 있다. 프로세서(130)는 법선 벡터 보정 모듈(144)의 명령어들 또는 프로그램 코드를 실행함으로써, IMU 센서(120)로부터 획득한 중력 방향(G)에 관한 정보에 기초하여 법선 벡터(Ni,j)의 방향을 보정할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 법선 벡터(Ni,j)의 방향이 수직 방향에 가까운지 또는 수평 방향에 가까운지 여부를 판단하고, 수직 방향에 가까운 경우 중력 방향(G)과 평행한 방향을 갖는 중력 법선 벡터(-NG)에 따라 법선 벡터(Ni,j)의 방향을 보정할 수 있다. 도 6a에 도시된 실시예에서, 법선 벡터(Ni,j)의 방향이 수직 방향과 가까우므로, 프로세서(130)는 법선 벡터(Ni,j)의 방향을 중력 법선 벡터(-NG)에 따라 평행한 방향으로 보정할 수 있다. 보정 결과, 프로세서(130)는 보정된 법선 벡터(N'i,j)를 획득할 수 있다. The
프로세서(130)는 보정된 법선 벡터(N'i,j)의 방향에 따라 제1 픽셀의 3차원 좌표값(Pi,j)으로 정의되는 평면의 방향을 보정할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 보정된 법선 벡터(N'i,j)와 보정 전의 법선 벡터(Ni,j) 사이의 각도 차이만큼 평면의 방향을 보정할 수 있다.The
도 6b는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 중력 방향(G)에 대하여 수직 방향으로 법선 벡터(Ni,j)의 방향을 보정하는 동작을 도시한 도면이다.FIG. 6B is a diagram illustrating an operation of the
도 6b에 도시된 실시예는 제1 픽셀의 법선 벡터(Ni,j)의 방향 및 보정된 법선 벡터(N'i,j)의 방향을 제외하고는 도 6a에 도시된 실시예와 동일하므로, 중복되는 설명은 생략한다. The embodiment shown in FIG. 6B is the same as the embodiment shown in FIG. 6A except for the direction of the normal vector (N i,j ) of the first pixel and the direction of the corrected normal vector (N' i,j ). , Redundant explanations are omitted.
프로세서(130)는 법선 벡터 보정 모듈(144)의 명령어들 또는 프로그램 코드를 실행함으로써, IMU 센서(120)로부터 획득한 중력 방향(G)에 관한 정보에 기초하여 법선 벡터(Ni,j)의 방향을 보정할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 법선 벡터(Ni,j)의 방향이 수직 방향에 가까운지 또는 수평 방향에 가까운지 여부를 판단할 수 있다. 법선 벡터(Ni,j)의 방향이 수평 방향에 가까운 픽셀은 예를 들어, 벽, 기둥 등을 나타내는 픽셀이거나, 또는 수직 방향으로 배열된 객체를 나타내는 픽셀일 수 있다. 법선 벡터(Ni,j)의 수평 방향에 가깝다고 판단한 경우, 프로세서(130)는 중력 방향(G)에 수직하는 방향에 따라 법선 벡터(Ni,j)의 방향을 보정할 수 있다. 도 6b에 도시된 실시예에서, 법선 벡터(Ni,j)의 방향은 수평 방향에 가까우므로, 프로세서(130)는 법선 벡터(Ni,j)의 방향을 중력 방향(G)에 대하여 수직 방향으로 법선 벡터(Ni,j)의 방향을 보정할 수 있다. 보정 결과, 프로세서(130)는 보정된 법선 벡터(N'i,j)를 획득할 수 있다. The
프로세서(130)는 보정된 법선 벡터(N'i,j)의 방향에 따라 제1 픽셀의 3차원 좌표값(Pi,j)으로 정의되는 평면의 방향을 보정할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 보정된 법선 벡터(N'i,j)와 보정 전의 법선 벡터(Ni,j) 사이의 각도 차이만큼 평면의 방향을 보정할 수 있다.The
도 7은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 인공지능 모델(700)을 이용하여 깊이 맵(730)을 획득하는 트레이닝(training) 동작을 도시한 도면이다.FIG. 7 is a diagram illustrating a training operation in which the
도 7을 참조하면, 증강 현실 디바이스(100)는 좌안 카메라 및 우안 카메라로 구성된 스테레오 카메라(stereo camera)를 포함할 수 있다. 증강 현실 디바이스(100)는 좌안 카메라를 이용하여 획득된 좌안 이미지(710L) 및 우안 카메라를 이용하여 획득된 우안 이미지(710R)를 인공지능 모델(700)에 입력할 수 있다. 증강 현실 디바이스(100)는 인공지능 모델(700)을 이용하여 좌안 이미지(710L)와 우안 이미지(710R) 간의 픽셀 간 휘도값 유사도에 따른 시차(disparity)를 계산함으로써, 깊이 맵(730)을 획득할 수 있다.Referring to FIG. 7, the
본 개시의 일 실시예에서, 인공지능 모델(700)은 심층 신경망 모델(deep neural network model)로 구현될 수 있다. 심층 신경망 모델은 컨볼루션 신경망 모델(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) 등 공지의 인공지능 모델로 구현될 수도 있다. 예를 들어, 깊이 맵(730)을 획득하는데 이용되는 심층 신경망 모델은 DispNet일 수 있으나, 이에 한정되지 않는다. In one embodiment of the present disclosure, the artificial intelligence model 700 may be implemented as a deep neural network model. Deep neural network models include Convolutional Neural Network (CNN), Recurrent Neural Network (RNN), Restricted Boltzmann Machine (RBM), Deep Belief Network (DBN), Bidirectional Recurrent Deep Neural Network (BRDNN), or It can also be implemented with known artificial intelligence models such as Deep Q-Networks. For example, the deep neural network model used to obtain the depth map 730 may be DispNet, but is not limited thereto.
예를 들어, 인공지능 모델(700)이 DispNet과 같은 컨볼루션 신경망 모델로 구현되는 경우, 인공지능 모델(700)은 좌안 이미지(701L) 및 우안 이미지(710R) 각각을 컨볼루션함으로써 특징 맵(feature map)을 추출할 수 있다. 좌안 이미지(710L)와 우안 이미지(710R) 각각의 특징 맵 추출 과정에서 가중치들(weights)은 같은 값으로 서로 공유될 수 있다. 인공지능 모델(700)은 좌안 이미지(710L) 및 우안 이미지(710R)로부터 각각 추출된 특징 맵 간의 차이값을 3차원 코스트 볼륨(3D cost volume)으로서 누적하고, 누적된 3차원 코스트 볼륨을 업 컨볼루션(up-convolution)하는 계층적 정제(hierarchical refinement)를 수행함으로써 깊이 맵(730)을 출력하도록 트레이닝(training)될 수 있다. 본 개시의 일 실시예에서, 인공지능 모델(700)에는 IMU 센서 측정값(720)이 입력으로 적용되고, IMU 센서 측정값(720)은 3차원 코스트 볼륨에 입력될 수 있다. 트레이닝 과정에서 출력된 깊이 맵(730)과 좌안 이미지(710L)와 우안 이미지(710R)의 픽셀 휘도값 유사도에 따른 시차(disparity)의 정답값(groundtruth) 간에는 오차(error)가 존재할 수 있고, 증강 현실 디바이스(100)는 깊이 맵(730)의 오차를 보정하기 위하여 손실값(loss)(740)을 이용하여 인공지능 모델(700)을 트레이닝할 수 있다. For example, when the artificial intelligence model 700 is implemented as a convolutional neural network model such as DispNet, the artificial intelligence model 700 creates a feature map by convolving each of the left eye image 701L and the right eye image 710R. map) can be extracted. In the feature map extraction process for each of the left eye image 710L and the right eye image 710R, weights may be shared with the same value. The artificial intelligence model 700 accumulates the difference values between the feature maps extracted from the left eye image 710L and the right eye image 710R, respectively, as a 3D cost volume, and up-convolves the accumulated 3D cost volume. It can be trained to output the depth map 730 by performing up-convolution hierarchical refinement. In one embodiment of the present disclosure, the IMU sensor measurement value 720 is applied as an input to the artificial intelligence model 700, and the IMU sensor measurement value 720 may be input to the three-dimensional cost volume. An error may exist between the depth map 730 output during the training process and the groundtruth of the disparity according to the similarity of the pixel luminance values of the left eye image 710L and the right eye image 710R, and augmentation The real-
증강 현실 디바이스(100)는 IMU 센서 측정값(720)에 기초하여 중력 방향에 관한 정보를 획득하고, 중력 방향 또는 중력 방향에 대하여 수직 방향에 따라 보정된 법선 벡터(N'i,j, 도 6a 및 도 6b 참조)에 의해 정의되는 평면 상의 픽셀들의 깊이 값에 기초하여 손실값(740)을 산출할 수 있다. 증강 현실 디바이스(100)가 손실값(740)을 산출하는 구체적인 실시예에 대해서는 도 8 내지 도 10에서 상세하게 설명하기로 한다.The
도 8은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 깊이 맵의 픽셀 별 깊이 값을 보정하는 방법을 도시한 흐름도이다. FIG. 8 is a flowchart illustrating a method by which the
도 8에 도시된 단계 S810 및 S820은 도 3에 도시된 단계 S340을 구체화한 단계들이다. 도 8에 도시된 단계 S810은 도 3의 단계 S330이 수행된 이후에 수행될 수 있다. Steps S810 and S820 shown in FIG. 8 are steps that embody step S340 shown in FIG. 3. Step S810 shown in FIG. 8 may be performed after step S330 of FIG. 3 is performed.
단계 S810에서, 증강 현실 디바이스(100)는 보정된 법선 벡터(N'i,j, 도 6a 및 도 6b 참조)에 의해 정의되는 평면 상의 픽셀 및 복수의 인접 픽셀들의 깊이 값에 기초하여 손실값(loss)(740, 도 7 참조)을 산출한다. 증강 현실 디바이스(100)가 손실값(740)을 산출하는 구체적인 실시예에 대해서는 도 9 및 도 10을 참조하여 상세하게 설명하기로 한다. In step S810, the augmented reality device 100 generates a loss value ( loss) (740, see FIG. 7) is calculated. A specific embodiment in which the
도 9는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 손실값(740)를 산출하는 방법을 도시한 흐름도이다. FIG. 9 is a flowchart illustrating a method by which the
도 9에 도시된 단계 S910 내지 S940은 도 8에 도시된 단계 S810을 구체화한 단계들이다. 도 9에 도시된 단계 S940이 수행된 이후, 도 8의 단계 S820이 수행될 수 있다. Steps S910 to S940 shown in FIG. 9 are steps that embody step S810 shown in FIG. 8. After step S940 shown in FIG. 9 is performed, step S820 of FIG. 8 may be performed.
도 10은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 손실값(740)을 산출하는 동작을 도시한 도면이다. 이하에서는, 도 8의 단계 S810을 도 9 및 도 10을 함께 참조하여 설명한다.FIG. 10 is a diagram illustrating an operation of the
도 9의 단계 S910을 참조하면, 증강 현실 디바이스(100)는 보정된 법선 벡터를 갖는 픽셀 및 픽셀에 위치적으로 인접한 복수의 인접 픽셀들로 구성된 평면을 정의한다. 도 10을 함께 참조하면, 증강 현실 디바이스(100)의 프로세서(130, 도 2 참조)는 보정된 법선 벡터(N'i,j)를 갖는 제1 픽셀의 3차원 좌표값(Pi,j)과 제1 픽셀과 상하좌우 방향으로 인접한 위치에 배치되는 복수의 인접 픽셀들의 3차원 좌표값(Pi-1, j, Pi+1, j, Pi, j-1, Pi, j+1)으로 구성된 평면을 정의할 수 있다. 제1 픽셀의 3차원 좌표값(Pi,j)과 복수의 인접 픽셀들 각각의 3차원 좌표값(Pi-1, j, Pi+1, j, Pi, j-1, Pi, j+1)은 서로 다른 깊이 값을 가질 수 있다. Referring to step S910 of FIG. 9 , the
도 9의 단계 S920에서, 증강 현실 디바이스(100)는 정의된 평면과 카메라의 광선 벡터(ray vector)가 만나는 복수의 포인트에 기초하여 복수의 인접 픽셀들의 깊이 값을 획득한다. 도 10을 함께 참조하면, 프로세서(130)는 단계 S910에서 정의된 평면과 카메라(110)의 광선 벡터(R)가 만나는 복수의 포인트를 식별할 수 있다. 카메라(110)의 광선 벡터(R)는 카메라(110)와 평면 간의 거리 또는 높이 중 적어도 하나를 포함하는 위치 관계 및 카메라(110)의 방향에 기초하여 결정될 수 있다. 프로세서(130)는 식별된 복수의 포인트들의 깊이 값(D'i,j, D'i-1, j, D'i+1, j, D'i, j-1, D'i, j+1)을 획득할 수 있다. 도 10에 도시된 실시예에서, 제1 깊이 값(D'i,j)은 제1 픽셀의 3차원 좌표값(Pi,j)의 깊이 값과 동일할 수 있다. 제2 깊이 값(D'i-1, j)은 제2 픽셀의 3차원 좌표값(Pi-1, j)과 동일한 깊이 값을 가질 수 있다. 그러나, 제2 깊이 값(D'i-1, j)을 갖는 제2 포인트의 위치는 제2 픽셀의 3차원 좌표값(Pi-1, j)의 위치와는 다를 수 있다. 마찬가지로, 제3 깊이 값(D'i+1, j)은 제3 픽셀의 3차원 좌표값(Pi+1, j)과 동일한 깊이 값을 갖지만, 제3 포인트의 위치는 제3 픽셀의 3차원 좌표값(Pi+1, j)의 위치와는 다를 수 있다.In step S920 of FIG. 9 , the
도 9의 단계 S930에서, 증강 현실 디바이스(100)는 픽셀의 깊이 값과 복수의 인접 픽셀들의 깊이 값 간의 차이값을 각각 산출한다. 도 10을 함께 참조하면, 프로세서(130)는 하기의 수식 3에 기초하여 제1 픽셀의 깊이 값(D'i,j)과 복수의 인접 픽셀들의 깊이 값(D'i-1, j, D'i+1, j, D'i, j-1, D'i, j+1) 간의 차이값(dpq)을 각각 산출할 수 있다. In step S930 of FIG. 9 , the
상기 수식 3에서 D'p는 보정된 법선 벡터(N'i,j)를 갖는 기준 픽셀인 제1 픽셀의 깊이 값(D'i,j)를 나타내고, D'q는 제1 픽셀과 위치적으로 인접한 복수의 인접 픽셀들 각각의 깊이 값(D'i-1, j, D'i+1, j, D'i, j-1, D'i, j+1)을 나타낸다. 수식 3에 따르면, 프로세서(130)는 D'i,j - D'i-1, j, D'i,j - D'i+1, j, D'i,j - D'i, j-1, 및 D'i,j - D'i, j+1을 각각 계산함으로써, dpq를 획득할 수 있다. In Equation 3, D' p represents the depth value (D' i,j ) of the first pixel, which is a reference pixel with a corrected normal vector (N'i ,j ), and D' q is the positional difference between the first pixel and the first pixel. represents the depth value (D' i-1, j , D' i+1, j , D' i, j-1 , D' i, j+1 ) of each of a plurality of adjacent pixels. According to Equation 3, the
도 9의 단계 S940에서, 증강 현실 디바이스(100)는 산출된 차이값에 가중치를 적용하는 가중합(weighted sum) 연산을 통해 손실값을 획득한다. 도 10을 함께 참조하면, 프로세서(130)는 산출된 차이값 dpq에 제1 가중치(wq D) 및 제2 가중치(wpq C)를 적용하는 가중합 연산을 통해 손실값(Lossg)을 획득할 수 있다. 본 개시의 일 실시예에서, 손실값(Lossg)은 하기의 수식 4에 의해 산출될 수 있다.In step S940 of FIG. 9, the
상기 수식 4에서 제1 가중치(wq D)는 깊이 맵(730, 도 7 참조)에서의 복수의 인접 픽셀들의 위치와 카메라(110)의 위치 사이의 거리에 기초하여 결정될 수 있다. 본 개시의 일 실시예에서, 제1 가중치(wq D)는 하기 수식 5와 같이 깊이 맵(730)에서의 복수의 인접 픽셀들의 깊이 값(Di-1, j, Di+1, j, Di, j-1, Di, j+1)에 기초하여 산출될 수 있다. In Equation 4, the first weight (w q D ) may be determined based on the distance between the positions of a plurality of adjacent pixels in the depth map 730 (see FIG. 7) and the position of the
상기 수식 5를 참조하면, Dq는 깊이 맵(730) 내의 복수의 인접 픽셀들의 깊이 값(Di-1, j, Di+1, j, Di, j-1, Di, j+1)을 나타내고, 복수의 인접 픽셀들의 깊이 값(Di-1, j, Di+1, j, Di, j-1, Di, j+1)이 작으면 작을수록 제1 가중치(wq D)의 값은 커지게 된다. 복수의 인접 픽셀들의 깊이 값(Di-1, j, Di+1, j, Di, j-1, Di, j+1), 즉 인접 픽셀들과 카메라(110) 간의 거리가 가까울수록 제1 가중치(wq D)의 값이 커질 수 있다. 스테레오 카메라(stereo camera)를 이용하는 깊이 맵(730) 추출 방식에서 거리가 멀어질수록 깊이 값의 정확도가 떨어지므로, 수식 5는 카메라(110)와의 거리가 가까운 픽셀에 가중치를 더 부여하도록 설계되었다. Referring to Equation 5, D q is the depth value (D i-1, j , D i+1, j , D i, j-1 , D i, j+) of a plurality of adjacent pixels in the depth map 730. 1 ), and the smaller the depth value (D i-1, j , D i+1, j , D i, j-1 , D i, j+1 ) of the plurality of adjacent pixels, the smaller the first weight ( The value of w q D ) increases. Depth values (D i-1, j , D i+1, j , D i, j-1 , D i, j+1 ) of a plurality of adjacent pixels, that is, the distance between the adjacent pixels and the
상기 수식 4에서 제2 가중치(wpq C)는 깊이 맵(730)에서의 제1 픽셀과 복수의 인접 픽셀들 간의 픽셀 휘도값 차이에 기초하여 결정될 수 있다. 본 개시의 일 실시예에서, 제2 가중치(wpq C)는 하기 수식 6과 같이 깊이 맵(730)에서의 픽셀 간 휘도값 차이에 기초하여 산출될 수 있다. In Equation 4, the second weight (w pq C ) may be determined based on the difference in pixel luminance values between the first pixel and a plurality of adjacent pixels in the depth map 730. In one embodiment of the present disclosure, the second weight w pq C may be calculated based on the difference in luminance values between pixels in the depth map 730 as shown in Equation 6 below.
상기 수식 6을 참조하면, Ip는 깊이 맵(730) 내의 제1 픽셀의 휘도값을 나타내고, Iq는 복수의 인접 픽셀들의 휘도값을 나타낸다. 제1 픽셀의 휘도값과 복수의 인접 픽셀들 휘도값 각각의 차이값이 작을수록 제2 가중치(wpq C)의 값은 커지게 된다. 깊이 맵(730) 상에서 픽셀의 휘도값이 유사할수록 동일 또는 유사한 깊이 값을 가질 확률이 높으므로, 수식 6은 깊이 맵(730)에서의 픽셀의 휘도값의 차이값에 가중치를 더 부여하도록 설계되었다. Referring to Equation 6, I p represents the luminance value of the first pixel in the depth map 730, and I q represents the luminance value of a plurality of adjacent pixels. As the difference between the luminance value of the first pixel and the luminance values of the plurality of adjacent pixels decreases, the value of the second weight w pq C increases. The more similar the luminance values of pixels on the depth map 730, the higher the probability of having the same or similar depth values, so Equation 6 is designed to give more weight to the difference between the luminance values of pixels in the depth map 730. .
다시 도 8을 참조하면, 단계 S820에서 증강 현실 디바이스(100)는 산출된 손실값(Lossg, 도 10 참조)을 인공지능 모델에 적용하는 트레이닝을 수행함으로써, 깊이 맵의 적어도 하나의 픽셀의 깊이 값을 보정한다. Referring again to FIG. 8, in step S820, the
도 8 내지 도 10에 도시된 실시예에서, 손실값(Lossg)은 보정된 법선 벡터(N'i,j, 도 6a 및 도 6b 참조)에 의해 정의된 평면과 카메라(110)의 광선 벡터(R)에 의한 깊이 값(D'i,j, D'i-1, j, D'i+1, j, D'i, j-1, D'i, j+1)에 기초하여 결정될 수 있다. 특히, 손실값(Lossg)은 깊이 맵에서의 카메라(110)와의 거리에 기초하여 결정되는 제1 가중치(wq D) 및 깊이 맵의 픽셀 별 휘도값 차이에 기초하여 결정되는 제2 가중치(wpq C)가 적용되어 산출되는 바, 손실값(Lossg)을 인공지능 모델에 적용하는 트레이닝을 통해 깊이 값의 정확도가 향상될 수 있다. 8-10, the loss value (Loss g ) is the plane defined by the corrected normal vector (N'i ,j , see FIGS. 6A and 6B) and the ray vector of the
도 11은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 인공지능 모델(1100)을 이용하여 깊이 맵(1130)을 획득하는 동작을 도시한 도면이다.FIG. 11 is a diagram illustrating an operation of the
도 11을 참조하면, 증강 현실 디바이스(100)는 좌안 카메라 및 우안 카메라로 구성된 스테레오 카메라(stereo camera)를 포함할 수 있다. 증강 현실 디바이스(100)는 좌안 카메라를 이용하여 획득된 좌안 이미지(1110L), 우안 카메라를 이용하여 획득된 우안 이미지(1110R), 및 IMU 센서 측정값(1120)을 인공지능 모델(1100)에 입력하고, 인공지능 모델(1100)을 이용하는 추론을 수행함으로써 깊이 맵(1130)을 획득할 수 있다. Referring to FIG. 11, the
인공지능 모델(1100)은 도 7에 도시된 실시예와 같이, 손실값(740, 도 7 참조)을 적용하여 트레이닝된(trained) 모델일 수 있다. 증강 현실 디바이스(100)는 IMU 센서(120, 도 2 참조)에 의해 측정된 IMU 센서 측정값(1120)을 인공지능 모델(1100)에 입력하고, 입력된 IMU 센서 측정값(1120)은 3차원 코스트 볼륨에 적용될 수 있다. 인공지능 모델(1100)의 추론 과정에서, 3차원 코스트 볼륨의 업 컨볼루션 등 계층적 정제(hierarchical refinement)를 거쳐 깊이 맵(1130)이 출력될 수 있다. The artificial intelligence model 1100 may be a trained model by applying the loss value 740 (see FIG. 7), as in the embodiment shown in FIG. 7. The
도 11에 도시된 실시예에서, 증강 현실 디바이스(100)는 중력 방향에 관한 정보를 포함하는 IMU 센서 측정값(1120)을 이용하여 트레이닝된 인공지능 모델(1100)을 이용하여 깊이 맵(1130)을 획득하는 바, 깊이 맵(1130)의 깊이 값 정확도를 향상시킬 수 있다. 또한, 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)는 필수 구성 요소인 IMU 센서(120)로부터 획득된 IMU 센서 측정값(1120)을 이용하여 인공지능 모델(1100)을 트레이닝하므로, 추가 하드웨어 모듈이 필요하지 않고, 이로 인하여 소형 폼팩터를 유지하면서도 낮은 전력 소모량을 구현하는 기술적 효과를 제공할 수 있다.In the embodiment shown in FIG. 11 , the
도 12는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 깊이 맵의 픽셀 별 깊이 값을 보정하는 방법을 도시한 흐름도이다. FIG. 12 is a flowchart illustrating a method by which the
도 12에 도시된 단계 S1210은 도 3에 도시된 단계 S330에 포함되는 단계이다. 도 12에 도시된 단계 S1220 내지 S1240은 도 3에 도시된 단계 S340을 구체화한 단계들이다. Step S1210 shown in FIG. 12 is a step included in step S330 shown in FIG. 3. Steps S1220 to S1240 shown in FIG. 12 are steps that embody step S340 shown in FIG. 3.
도 13은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 플레인 스윕(plane sweep) 방식을 통해 깊이 맵(1320)의 픽셀 별 깊이 값을 보정하는 동작을 도시한 도면이다. 이하에서는, 도 12 및 도 13을 함께 참조하여 증강 현실 디바이스(100)가 깊이 맵(1320)의 픽셀 별 깊이 값을 보정하는 동작을 설명한다.FIG. 13 is a diagram illustrating an operation of the
도 12를 참조하면, 단계 S1210에서 증강 현실 디바이스(100)는 IMU 센서(120, 도 2 참조)에 의해 측정된 중력 방향에 기초하여 좌안 이미지 및 우안 이미지의 법선 벡터의 방향을 보정한다. 도 13을 함께 참조하면, 증강 현실 디바이스(100)는 좌안 카메라 및 우안 카메라를 포함하는 스테레오 카메라(stereo camera)를 포함할 수 있다. 증강 현실 디바이스(100)의 프로세서(130, 도 2 참조)는 IMU 센서(120, 도 2 참조)의 자이로 센서(gyroscope)로부터 중력 방향 정보를 획득하고, 획득된 중력 방향 정보에 기초하여 좌안 카메라를 이용하여 획득된 좌안 이미지(1310L) 및 우안 카메라를 이용하여 획득된 우안 이미지(1310R)의 픽셀 별 법선 벡터의 방향을 보정할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 중력 방향 또는 중력 방향에 수직하는 방향으로 픽셀 별 법선 벡터의 방향을 보정할 수 있다. 법선 벡터의 방향을 보정하는 구체적인 방법은 도 6a 및 도 6b에서 설명한 것과 동일하므로, 중복되는 설명은 생략한다. Referring to FIG. 12, in step S1210, the
도 12를 참조하면, 단계 S1220에서 증강 현실 디바이스(100)는 보정된 법선 벡터의 방향 또는 보정된 법선 벡터의 방향에 대한 수직 방향을 따라 평면 가정(plane hypothesis)을 수행한다. 도 13을 함께 참조하면, 프로세서(130)는 좌안 이미지(1310L) 및 우안 이미지(1310R) 각각에 대한 평면 가정(plane hypothesis)을 통해 픽셀 별로 평면을 정의할 수 있다. 프로세서(130)는 좌안 이미지(1310L)에 포함되는 픽셀들 각각의 보정된 법선 벡터의 방향 또는 보정된 법선 벡터의 방향에 대한 수직 방향에 따라 평면 가정을 수행함으로써, 좌안 이미지(1310L)에서 픽셀 별 평면을 정의할 수 있다. 동일한 방식으로, 프로세서(130)는 우안 이미지(1310R)에 포함되는 픽셀들 각각의 보정된 법선 벡터의 방향 또는 보정된 법선 벡터의 방향에 대한 수직 방향에 따라 평면 가정을 수행함으로써, 우안 이미지(1310R)에서 픽셀 별 평면을 정의할 수 있다. Referring to FIG. 12, in step S1220, the
도 12를 참조하면, 단계 S1230에서 증강 현실 디바이스(100)는 평면 가정에 의해 정의된 평면을 따라 플레인 스윕(plane sweep)을 수행함으로써, 픽셀 별 깊이 값을 획득한다. 도 13을 함께 참조하면, 프로세서(130)는 좌안 이미지(1310L)에서 정의된 평면에서의 기준 픽셀의 2차원 위치 좌표값(x, y)을 기준으로 우안 이미지(1310R)에서의 정합점을 서치하는 플레인 스윕을 수행할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 평면 가정을 통해 좌안 이미지(1310L)에서 정의된 평면과 대응되는 평면을 우안 이미지(1310R)에서 식별하고, 우안 이미지(1310R)에서 식별된 평면 내에서 정합점을 서치할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 우안 이미지(1310R)에서 정의된 평면 내의 픽셀들 중 d0 내지 dmax의 시차 서치 범위(disparity search range) 내에서 좌안 이미지(1310L)의 기준 픽셀에 대응되는 정합점을 서치할 수 있다. 프로세서(130)는 좌안 이미지(1310L)의 평면 내 기준 픽셀과 우안 이미지(1310R)의 대응되는 평면 내의 픽셀들 간의 휘도값 유사도를 측정하고, 픽셀 간 휘도값 비유사도(dissimilarity)와 시차(disparity) 간의 관계를 나타내는 그래프(1310)에 기초하여 우안 이미지(1310R)에서 휘도값 비유사도가 가장 낮은 픽셀을 정합점으로서 식별할 수 있다. 프로세서(130)는 좌안 이미지(1310L)의 기준 픽셀의 위치와 우안 이미지(1310R)에서 정합점으로서 식별된 픽셀 간의 거리(dx)를 시차로 결정할 수 있다. 프로세서(130)는 전술한 방식으로 좌안 이미지(1310L) 및 우안 이미지(1310R)의 모든 픽셀에 대하여 플레인 스윕을 수행함으로써, 픽셀 별 깊이 값을 획득할 수 있다. Referring to FIG. 12, in step S1230, the
도 12를 참조하면, 단계 S1240에서 증강 현실 디바이스(100)는 획득된 깊이 값을 이용하여 깊이 맵의 적어도 하나의 픽셀의 깊이 값을 보정한다. 도 13을 함께 참조하면, 증강 현실 디바이스(100)의 프로세서(130)는 획득된 픽셀 별 깊이 값을 이용하여 깊이 맵(1320)의 깊이 값을 보정할 수 있다. Referring to FIG. 12, in step S1240, the
도 12 및 도 13에 도시된 실시예에서, 증강 현실 디바이스(100)는 중력 방향으로 픽셀 별 법선 벡터를 보정하고, 보정된 법선 벡터에 따라 정의된 평면으로 플레인 스윕을 수행함으로써, 높은 정확도를 갖는 깊이 맵(1320)을 획득할 수 있다. In the embodiment shown in FIGS. 12 and 13, the
도 14는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 깊이 맵의 픽셀 별 깊이 값을 보정하는 방법을 도시한 흐름도이다.FIG. 14 is a flowchart illustrating a method by which the
도 14에 도시된 단계 S1410 내지 S1430은 도 3에 도시된 단계 S340을 구체화한 단계들이다. 도 14에 도시된 단계 S1410은 도 3의 단계 S330이 수행된 이후에 수행될 수 있다. Steps S1410 to S1430 shown in FIG. 14 are steps that embody step S340 shown in FIG. 3. Step S1410 shown in FIG. 14 may be performed after step S330 of FIG. 3 is performed.
도 15는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 ToF(Time-of-Flight) 방식을 통해 획득된 깊이 맵 이미지(1510)의 픽셀 별 깊이 값을 보정하는 동작을 도시한 도면이다. FIG. 15 is a diagram illustrating an operation of the
도 14를 참조하면, 단계 S1410에서 증강 현실 디바이스(100)는 보정된 법선 벡터에 기초하여 깊이 맵에서 픽셀 별 평면을 정의한다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 ToF 카메라를 포함할 수 있다. ToF 카메라는 광원을 이용하여 객체에 광을 조사하고, 객체로부터 반사된 반사광을 검출하며, 반사광이 검출된 시점과 광이 조사된 시점 간의 시간 차이인 비행 시간(time of flight)에 기초하여 객체의 깊이 값을 획득하도록 구성될 수 있다. 도 15를 함께 참조하면, 증강 현실 디바이스(100)는 ToF 카메라를 이용하여 객체의 RGB 이미지(1500) 및 깊이 맵 이미지(1510)를 획득할 수 있다. 증강 현실 디바이스(100)의 프로세서(130, 도 2 참조)는 깊이 맵 이미지(1510)에서 픽셀 별 법선 벡터를 획득하고, 중력 방향 또는 중력 방향에 대하여 수직하는 방향을 따라 법선 벡터의 방향을 보정할 수 있다. 프로세서(130)는 보정된 법선 벡터의 방향에 기초하여 깊이 맵 이미지(1510)에서의 픽셀 별 평면을 정의할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 보정된 법선 벡터를 갖는 픽셀과 상기 픽셀과 위치적으로 인접한 복수의 인접 픽셀들로 구성된 평면을 정의할 수 있다.Referring to FIG. 14, in step S1410, the
도 14를 참조하면, 단계 S1420에서 증강 현실 디바이스(100)는 RGB 이미지의 색상 정보에 따라 분할된 영역에 기초하여 깊이 맵에서의 평면 영역을 식별한다. 도 15를 함께 참조하면, 증강 현실 디바이스(100)의 프로세서(130)는 RGB 이미지(1500)에 포함되는 복수의 픽셀들 각각의 색상 정보에 기초하여 RGB 이미지(1500)를 복수의 영역(1501 내지 1506)으로 분할할 수 있다. 본 개시의 일 실시예에서, 프로세서(130)는 RGB 이미지(1500)의 복수의 픽셀들의 픽셀 별 휘도값에 기초하여 RGB 이미지(1500)를 복수의 영역(1501 내지 1506)으로 분할할 수 있다. 프로세서(130)는 RGB 이미지(1500)의 복수의 픽셀들 각각의 휘도값의 차이값을 산출하고, 산출된 차이값이 기 설정된 임계값 이하인 픽셀들을 그룹핑(grouping)함으로써, RGB 이미지(1500)를 복수의 영역(1501 내지 1506)으로 분할할 수 있다. 프로세서(130)는 RGB 이미지(1500)의 분할된 복수의 영역(1501 내지 1506)의 위치, 형태, 및 크기 중 적어도 하나의 정보에 기초하여 깊이 맵 이미지(1510)에서의 평면 영역을 식별할 수 있다. 도 15에 도시된 실시예에서, 프로세서(130)는 깊이 맵 이미지(1510)로부터 RGB 이미지(1500)의 분할된 복수의 영역(1501 내지 1506)에 대응되는 복수의 평면 영역(1511 내지 1516)을 식별할 수 있다. Referring to FIG. 14, in step S1420, the
도 14를 참조하면, 단계 S1430에서 증강 현실 디바이스(100)는 식별된 평면 영역 내의 픽셀의 깊이 값을 인접 픽셀들의 깊이 값에 기초하여 보정한다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 깊이 맵 내의 평면 영역에서 보정 대상 픽셀을 식별하고, 식별된 보정 대상 픽셀의 깊이 값을 동일 평면 영역 내의 인접 픽셀들의 깊이 값에 기초하여 보정할 수 있다. 본 개시에서, '보정 대상 픽셀'은 깊이 값의 보정이 필요한 픽셀로서, 평면 영역 내에서 깊이 값이 미획득된 픽셀 또는 평면 영역 내의 인접 픽셀들과의 깊이 값 차이가 기 설정된 임계치를 초과하는 픽셀을 의미한다. 도 15에 도시된 실시예에서, 깊이 맵 이미지(1510)로부터 식별된 복수의 평면 영역(1511 내지 1516) 중에서 제1 평면 영역(1511) 내지 제5 평면 영역(1515)에는 깊이 값이 미획득된 픽셀 또는 깊이 값의 차이가 기 설정된 임계치를 초과하는 픽셀들이 식별되지 않을 수 있다. 복수의 평면 영역(1511 내지 1516) 중 제6 평면 영역(1516)에는 깊이 값이 획득되지 않은 적어도 하나의 보정 대상 픽셀(1526)이 식별될 수 있다. 프로세서(130)는 식별된 보정 대상 픽셀(1526)의 깊이 값을 제6 평면(1516) 내에 포함되는 복수의 픽셀들 중 인접 픽셀들의 깊이 값에 기초하여 보정할 수 있다. Referring to FIG. 14, in step S1430, the
일반적인 ToF 카메라의 경우, 카메라로부터의 거리가 멀어질수록 깊이 값의 정확도가 떨어지거나, 또는 깊이 값이 획득되지 않는 문제점이 있다. 도 14 및 도 15에 도시된 실시예에서, 증강 현실 디바이스(100)는 깊이 맵 이미지(1510)에서 픽셀 별 법선 벡터를 중력 방향에 기초하여 보정하고, 보정된 법선 벡터에 기초하여 평면을 정의하며, RGB 이미지(1500)의 픽셀 별 색상 정보에 기초하여 깊이 맵 이미지(1510)의 평면 영역을 식별하고, 평면 영역 내의 보정 대상 픽셀(1526)의 깊이 값을 보정하는 바, 깊이 맵의 정확도를 향상시킬 수 있다. In the case of a general ToF camera, there is a problem that the accuracy of the depth value decreases as the distance from the camera increases, or the depth value is not obtained. In the embodiment shown in FIGS. 14 and 15, the
도 16은 일반적인 방식으로 획득된 깊이 맵으로 복원한 3차원 공간 모델 (1610)과 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)에 의해 획득된 깊이 맵으로 복원된 3차원 공간 모델(1620)을 도시한 도면이다.16 shows a three-dimensional space model 1610 restored with a depth map obtained in a general manner and a three-dimensional space model 1620 restored with a depth map acquired by the
도 16을 참조하면, 종래의 일반적인 깊이 맵 획득 방식을 통해 획득된 현실 공간(1600)의 3차원 공간 모델(1610)을 참조하면, 객체의 표면이 기울어져 있고, 3차원 공간 모델(1610)의 정확도가 낮다. 일반적인 깊이 맵 획득 방식은 카메라로부터의 거리가 멀어질수록 깊이 값의 정확도가 낮아지는 문제점이 있다. Referring to FIG. 16, referring to the three-dimensional space model 1610 of the real space 1600 acquired through a conventional depth map acquisition method, the surface of the object is inclined, and the three-dimensional space model 1610 Accuracy is low. The general depth map acquisition method has the problem that the accuracy of the depth value decreases as the distance from the camera increases.
본 개시의 일 실시예에 따른 증강 현실 디바이스(100)는 IMU 센서(120, 도 2 참조)에 의해 측정된 중력 방향 또는 중력 방향에 수직하는 방향을 따라 픽셀 별 법선 벡터의 방향을 보정하고, 보정된 법선 벡터에 기초하여 픽셀 별 깊이 값을 보정하므로, 획득된 깊이 맵의 정확도 및 해상도가 일반적인 방식으로 획득된 깊이 맵에 비하여 향상될 수 있다. 또한, 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)에 의해 획득된 깊이 맵으로 복원된 3차원 공간 모델(1620)은 객체의 방향이 중력 방향과 수직 또는 수평한 방향으로 보정되었음을 알 수 있다. The
또한, 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)는 필수 구성 요소인 IMU 센서(120)를 이용하여 중력 방향 정보를 획득하는 바, 소형 폼팩터를 유지하면서도 낮은 전력 소모량을 구현할 수 있다. 이로 인하여 본 개시의 증강 현실 디바이스(100)는 휴대성 및 디바이스 사용 시간을 증가시키고, 사용자 편의성을 향상시키는 기술적 효과를 제공할 수 있다. In addition, the
본 개시는 중력 방향에 기초하여 깊이 값을 보정하는 증강 현실 디바이스(100)를 제공한다. 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)는 카메라(110, 도 2 참조), IMU 센서(Inertial Measurement Unit)(120, 도 2 참조), 적어도 하나의 프로세서(130, 도 2 참조), 및 메모리(140, 도 2 참조)를 포함할 수 있다. 적어도 하나의 프로세서(130)는 메모리(140)에 저장된 적어도 하나의 명령어들을 실행함으로써, 카메라(110)를 이용하여 획득한 이미지로부터 깊이 맵(depth map)을 획득할 수 있다. 적어도 하나의 프로세서(130)는 깊이 맵에 포함된 적어도 하나의 픽셀의 법선 벡터(normal vector)를 획득할 수 있다. 적어도 하나의 프로세서(130)는 IMU 센서(120)에 의해 측정된 중력 방향에 기초하여 상기 적어도 하나의 픽셀의 법선 벡터의 방향을 보정할 수 있다. 적어도 하나의 프로세서(130)는 보정된 법선 벡터의 방향에 기초하여 상기 적어도 하나의 픽셀의 깊이 값을 보정할 수 있다. The present disclosure provides an
본 개시의 일 실시예에서, 적어도 하나의 프로세서(130)는 깊이 맵에 포함된 적어도 하나의 픽셀의 방향 벡터 및 상기 적어도 하나의 픽셀의 깊이 값에 기초하여 적어도 하나의 픽셀을 3차원 좌표값으로 변환하고, 상하좌우 방향으로 인접한 복수의 인접 픽셀들의 3차원 좌표값의 외적(cross-product)을 계산함으로써, 법선 벡터를 획득할 수 있다. In one embodiment of the present disclosure, at least one
본 개시의 일 실시예에서, 카메라(110)는 좌안 이미지를 획득하는 좌안 카메라 및 우안 이미지를 획득하는 우안 카메라를 포함할 수 있다. 적어도 하나의 프로세서(130)는 좌안 이미지 및 우안 이미지를 인공지능 모델에 입력으로 적용하고, 인공지능 모델을 이용하여 좌안 이미지와 우안 이미지의 픽셀 휘도값 유사도에 따른 시차(disparity)를 계산함으로써 깊이 맵을 획득할 수 있다.In one embodiment of the present disclosure, the
본 개시의 일 실시예에서, 적어도 하나의 프로세서(130)는 보정된 법선 벡터에 의해 정의되는 평면 상의 픽셀 및 픽셀과 위치 상으로 인접한 복수의 인접 픽셀들의 깊이 값에 기초하여, 인공지능 모델에 의해 획득된 깊이 맵의 손실값(loss)을 산출할 수 있다. 적어도 하나의 프로세서(130)는 산출된 손실값을 인공지능 모델에 적용하는 트레이닝(training)을 수행함으로써, 적어도 하나의 픽셀의 깊이 값을 보정할 수 있다. In one embodiment of the present disclosure, the at least one
본 개시의 일 실시예에서, 적어도 하나의 프로세서(130)는 보정된 법선 벡터를 갖는 픽셀 및 픽셀에 위치적으로 인접한 상기 복수의 인접 픽셀들로 구성된 평면을 정의하고, 정의된 평면과 카메라(110)의 광선 벡터(ray vector)가 만나는 복수의 포인트에 기초하여 복수의 인접 픽셀들의 깊이 값을 획득할 수 있다. 적어도 하나의 프로세서(130)는 획득된 픽셀의 깊이 값과 복수의 인접 픽셀들의 깊이 값 간의 차이값을 각각 산출할 수 있다. 적어도 하나의 프로세서(130)는 복수의 인접 픽셀들 별로 산출된 차이값에 가중치를 적용하는 가중합(weighted sum) 연산을 수행함으로써, 손실값을 획득할 수 있다.In one embodiment of the present disclosure, at least one
본 개시의 일 실시예에서, 가중치는 깊이 맵에서의 복수의 인접 픽셀들 각각의 카메라와의 거리에 기초하여 결정되는 제1 가중치 및 깊이 맵에서의 픽셀과 복수의 인접 픽셀들 간의 휘도값 차이에 기초하여 결정되는 제2 가중치를 포함할 수 있다. In one embodiment of the present disclosure, the weight is determined based on a first weight determined based on the distance to the camera of each of a plurality of adjacent pixels in the depth map and a luminance value difference between the pixel in the depth map and the plurality of adjacent pixels. It may include a second weight determined based on the weight.
본 개시의 일 실시예에서, 적어도 하나의 프로세서(130)는 트레이닝된 인공지능 모델에 좌안 이미지 및 우안 이미지를 입력하는 추론을 수행함으로써, 보정된 깊이 맵을 획득할 수 있다.In one embodiment of the present disclosure, at least one
본 개시의 일 실시예에서, 적어도 하나의 프로세서(130)는 카메라(110)는 좌안 이미지를 획득하는 좌안 카메라 및 우안 이미지를 획득하는 우안 카메라를 포함할 수 있다. 적어도 하나의 프로세서(130)는 중력 방향 또는 중력 방향에 수직한 방향에 따라 좌안 이미지 및 우안 이미지의 적어도 하나의 픽셀의 법선 벡터의 방향을 보정하고, 보정된 법선 벡터의 방향 또는 보정된 법선 벡터의 방향에 수직하는 방향을 따라 평면 가정(plane hypothesis)을 수행할 수 있다. 적어도 하나의 프로세서(130)는 평면 가정에 의해 정의된 평면을 따라 플레인 스윕(plane sweep)을 수행함으로써, 적어도 하나의 픽셀의 깊이 값을 획득할 수 있다. 적어도 하나의 프로세서(130)는 획득된 깊이 값을 이용하여 깊이 맵의 적어도 하나의 픽셀의 깊이 값을 보정할 수 있다. In one embodiment of the present disclosure, the
본 개시의 일 실시예에서, 카메라(110)는 ToF 카메라(Time-of-Flight camera)로 구성되고, 적어도 하나의 프로세서(130)는 ToF 카메라를 이용하여 깊이 맵을 획득할 수 있다. In one embodiment of the present disclosure, the
본 개시의 일 실시예에서, 적어도 하나의 프로세서(130)는 보정된 법선 벡터에 기초하여 픽셀 별 평면을 정의할 수 있다. 적어도 하나의 프로세서(130)는 RGB 이미지의 색상 정보에 따라 분할된 영역에 기초하여 깊이 맵에서 정의된 평면의 평면 영역을 식별할 수 있다. 적어도 하나의 프로세서(130)는 식별된 평면 영역 내의 인접 픽셀들의 깊이 값에 기초하여 깊이 맵의 적어도 하나의 픽셀의 깊이 값을 보정할 수 있다. In one embodiment of the present disclosure, at least one
본 개시는 증강 현실 디바이스(100)가 깊이 값을 보정하는 방법을 제공한다. 본 개시의 일 실시예에서, 상기 방법은 카메라(110)를 이용하여 획득한 이미지로부터 깊이 맵(depth map)을 획득하는 단계(S310)를 포함할 수 있다. 상기 방법은 깊이 맵에 포함된 적어도 하나의 픽셀의 법선 벡터(normal vector)를 획득하는 단계(S320)를 포함할 수 있다. 상기 방법은 IMU 센서(120)에 의해 측정된 중력 방향에 기초하여 적어도 하나의 픽셀의 법선 벡터의 방향을 보정하는 단계(S330)를 포함할 수 있다. 상기 방법은 보정된 법선 벡터의 방향에 기초하여 적어도 하나의 픽셀의 깊이 값을 보정하는 단계(S340)를 포함할 수 있다. The present disclosure provides a method for the
본 개시의 일 실시예에서, 상기 깊이 맵을 획득하는 단계(S310)는 좌안 카메라를 이용하여 획득된 좌안 이미지 및 우안 카메라를 이용하여 획득된 우안 이미지를 인공지능 모델에 입력하는 단계, 및 인공지능 모델을 이용하여 좌안 이미지와 우안 이미지의 픽셀 휘도값 유사도에 따른 시차(disparity)를 계산함으로써 깊이 맵을 획득하는 단계를 포함할 수 있다. In one embodiment of the present disclosure, the step of acquiring the depth map (S310) includes inputting a left eye image acquired using a left eye camera and a right eye image acquired using a right eye camera into an artificial intelligence model, and artificial intelligence It may include obtaining a depth map by calculating disparity according to the similarity of pixel luminance values of the left-eye image and the right-eye image using the model.
본 개시의 일 실시예에서, 상기 적어도 하나의 픽셀의 깊이 값을 보정하는 단계(S340)는 보정된 법선 벡터에 의해 정의되는 평면 상의 픽셀 및 픽셀과 위치 상으로 인접한 복수의 인접 픽셀들의 깊이 값에 기초하여, 인공지능 모델에 의해 획득된 깊이 맵의 손실값(loss)을 산출하는 단계(S810)를 포함할 수 있다. 상기 적어도 하나의 픽셀의 깊이 값을 보정하는 단계(S340)는 산출된 손실값을 상기 인공지능 모델에 적용하는 트레이닝(training)을 수행함으로써, 깊이 맵의 적어도 하나의 픽셀의 깊이 값을 보정하는 단계(S820)를 포함할 수 있다. In one embodiment of the present disclosure, the step of correcting the depth value of the at least one pixel (S340) includes the depth values of the pixel on the plane defined by the corrected normal vector and a plurality of adjacent pixels that are positionally adjacent to the pixel. Based on this, it may include calculating the loss of the depth map acquired by the artificial intelligence model (S810). The step of correcting the depth value of at least one pixel (S340) is a step of correcting the depth value of at least one pixel of the depth map by performing training by applying the calculated loss value to the artificial intelligence model. (S820) may be included.
본 개시의 일 실시예에서, 상기 손실값을 산출하는 단계(S810)는 보정된 법선 벡터를 갖는 픽셀 및 픽셀에 위치적으로 인접한 복수의 인접 픽셀들로 구성된 평면을 정의하는 단계(S910), 및 정의된 평면과 카메라(110)의 광선 벡터(ray vector)가 만나는 복수의 포인트에 기초하여 복수의 인접 픽셀들의 깊이 값을 획득하는 단계(S920)를 포함할 수 있다. 상기 손실값을 산출하는 단계(S810)는 획득된 픽셀의 깊이 값과 복수의 인접 픽셀들의 깊이 값 간의 차이값을 각각 산출하는 단계(S930)를 포함할 수 있다. 상기 손실값을 산출하는 단계(S810)는 복수의 인접 픽셀들 별로 산출된 차이값에 가중치를 적용하는 가중합(weighted sum) 연산을 수행함으로써, 손실값을 획득하는 단계(S940)를 포함할 수 있다. In one embodiment of the present disclosure, calculating the loss value (S810) includes defining a plane consisting of a pixel with a corrected normal vector and a plurality of adjacent pixels positionally adjacent to the pixel (S910), and It may include obtaining depth values of a plurality of adjacent pixels based on a plurality of points where the defined plane and the ray vector of the
본 개시의 일 실시예에서, 가중치는 깊이 맵에서의 복수의 인접 픽셀들 각각의 카메라(110)와의 거리에 기초하여 결정되는 제1 가중치 및 깊이 맵에서의 픽셀과 복수의 인접 픽셀들 간의 휘도값 차이에 기초하여 결정되는 제2 가중치를 포함할 수 있다. In one embodiment of the present disclosure, the weight is a first weight determined based on the distance from the
본 개시의 일 실시예에서, 상기 방법은 트레이닝된 인공지능 모델에 좌안 이미지 및 우안 이미지를 입력하는 추론을 수행함으로써, 보정된 깊이 맵을 획득하는 단계를 더 포함할 수 있다. In one embodiment of the present disclosure, the method may further include obtaining a corrected depth map by performing inference by inputting the left-eye image and the right-eye image to the trained artificial intelligence model.
본 개시의 일 실시예에서, 상기 적어도 하나의 픽셀의 법선 벡터의 방향을 보정하는 단계(S330)는 중력 방향 또는 중력 방향에 수직한 방향에 따라 좌안 카메라를 이용하여 획득된 좌안 이미지 및 우안 카메라를 이용하여 획득된 우안 이미지의 법선 벡터의 방향을 보정하는 단계를 포함할 수 있다. 상기 적어도 하나의 픽셀의 깊이 값을 보정하는 단계(S340)는 보정된 법선 벡터의 방향 또는 보정된 법선 벡터의 방향에 수직하는 방향을 따라 평면 가정(plane hypothesis)을 수행하는 단계(S1220)를 포함할 수 있다. 상기 적어도 하나의 픽셀의 깊이 값을 보정하는 단계(S340)는 평면 가정에 의해 정의된 평면을 따라 플레인 스윕(plane sweep)을 수행함으로써, 적어도 하나의 픽셀의 깊이 값을 획득하는 단계(S1230)를 포함할 수 있다. 상기 적어도 하나의 픽셀의 깊이 값을 보정하는 단계(S340)는 획득된 깊이 값을 이용하여 적어도 하나의 픽셀의 깊이 값을 보정하는 단계(S1240)를 포함할 수 있다. In one embodiment of the present disclosure, the step of correcting the direction of the normal vector of the at least one pixel (S330) involves using the left eye image and the right eye camera acquired using the left eye camera according to the direction of gravity or the direction perpendicular to the direction of gravity. It may include a step of correcting the direction of the normal vector of the right eye image obtained using the method. The step of correcting the depth value of at least one pixel (S340) includes performing a plane hypothesis along the direction of the corrected normal vector or a direction perpendicular to the direction of the corrected normal vector (S1220). can do. The step of correcting the depth value of at least one pixel (S340) includes the step of obtaining the depth value of at least one pixel by performing a plane sweep along a plane defined by the plane assumption (S1230). It can be included. The step of correcting the depth value of at least one pixel (S340) may include a step of correcting the depth value of at least one pixel using the obtained depth value (S1240).
본 개시의 일 실시예에서, 상기 깊이 맵을 획득하는 단계(S310)는 ToF 카메라(Time-of-Flight camera)를 이용하여 깊이 맵을 획득할 수 있다. In one embodiment of the present disclosure, the step of acquiring the depth map (S310) may acquire the depth map using a Time-of-Flight camera (ToF camera).
본 개시의 일 실시예에서, 상기 적어도 하나의 픽셀의 깊이 값을 보정하는 단계(S340)는 보정된 법선 벡터에 기초하여 픽셀의 평면을 정의하는 단계(S1410)를 포함할 수 있다. 상기 적어도 하나의 픽셀의 깊이 값을 보정하는 단계(S340)는 RGB 이미지의 색상 정보에 따라 분할된 영역에 기초하여 깊이 맵에서 정의된 평면의 평면 영역을 식별하는 단계(S1420)를 포함할 수 있다. 상기 적어도 하나의 픽셀의 깊이 값을 보정하는 단계(S340)는 식별된 평면 영역 내의 인접 픽셀들의 깊이 값에 기초하여 적어도 하나의 픽셀의 깊이 값을 보정하는 단계(S1430)를 포함할 수 있다. In one embodiment of the present disclosure, correcting the depth value of at least one pixel (S340) may include defining a plane of the pixel based on the corrected normal vector (S1410). The step of correcting the depth value of the at least one pixel (S340) may include the step of identifying a flat area of the plane defined in the depth map based on the area divided according to the color information of the RGB image (S1420). . The step of correcting the depth value of the at least one pixel (S340) may include the step of correcting the depth value of the at least one pixel based on the depth values of adjacent pixels in the identified planar area (S1430).
본 개시는 컴퓨터로 읽을 수 있는 저장 매체를 포함하는 컴퓨터 프로그램 제품(Computer Program Product)를 제공한다. 상기 저장 매체는 카메라(110)를 이용하여 획득한 이미지로부터 깊이 맵(depth map)을 획득하는 동작과 관련된 명령어들(instructions)을 저장할 수 있다. 상기 저장 매체는 깊이 맵에 포함된 적어도 하나의 픽셀의 법선 벡터(normal vector)를 획득하는 동작과 관련된 명령어들을 저장할 수 있다. 상기 저장 매체는 IMU 센서에 의해 측정된 중력 방향에 기초하여 적어도 하나의 픽셀의 법선 벡터의 방향을 보정하는 동작과 관련된 명령어들을 저장할 수 있다. 상기 저장 매체는 보정된 법선 벡터의 방향에 기초하여 깊이 맵의 적어도 하나의 픽셀의 깊이 값을 보정하는 동작과 관련된 명령어들을 저장할 수 있다. The present disclosure provides a computer program product including a computer-readable storage medium. The storage medium may store instructions related to obtaining a depth map from an image acquired using the
본 개시에서 설명된 증강 현실 디바이스(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, which may configure a processing unit to operate as desired, or may be processed 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, 도 2 참조)에 저장된 컴퓨터 프로그램 제품을 실행하여, 증강 현실 디바이스(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)
중력 방향을 측정하도록 구성되는 IMU 센서(Inertial Measurement Unit)(120);
적어도 하나의 명령어들(instructions)를 저장하는 메모리(140); 및
상기 적어도 하나의 명령어들을 실행하는 적어도 하나의 프로세서(130);
를 포함하고,
상기 적어도 하나의 프로세서(130)는,
상기 카메라(110)를 이용하여 획득한 이미지로부터 깊이 맵(depth map)을 획득하고,
상기 깊이 맵에 포함된 적어도 하나의 픽셀의 법선 벡터(normal vector)를 획득하고,
상기 IMU 센서(120)에 의해 측정된 중력 방향에 기초하여 상기 적어도 하나의 픽셀의 법선 벡터의 방향을 보정하고,
상기 보정된 법선 벡터의 방향에 기초하여 상기 적어도 하나의 픽셀의 깊이 값을 보정하는, 증강 현실 디바이스(100).
camera 110;
An Inertial Measurement Unit (IMU) sensor configured to measure the direction of gravity (120);
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,
Obtaining a depth map from the image acquired using the camera 110,
Obtaining a normal vector of at least one pixel included in the depth map,
Correcting the direction of a normal vector of the at least one pixel based on the direction of gravity measured by the IMU sensor 120,
The augmented reality device 100 corrects the depth value of the at least one pixel based on the direction of the corrected normal vector.
상기 적어도 하나의 프로세서(130)는,
상기 깊이 맵에 포함된 적어도 하나의 픽셀의 방향 벡터 및 상기 적어도 하나의 픽셀의 깊이 값에 기초하여 상기 적어도 하나의 픽셀을 3차원 좌표값으로 변환하고,
상하좌우 방향으로 인접한 복수의 인접 픽셀들의 3차원 좌표값의 외적(cross-product)을 계산함으로써, 상기 법선 벡터를 획득하는, 증강 현실 디바이스(100).
According to claim 1,
The at least one processor 130,
Converting the at least one pixel into a three-dimensional coordinate value based on the direction vector of the at least one pixel included in the depth map and the depth value of the at least one pixel,
An augmented reality device 100 that obtains the normal vector by calculating a cross-product of three-dimensional coordinate values of a plurality of adjacent pixels adjacent in the up, down, left, and right directions.
상기 카메라(110)는 좌안 이미지를 획득하는 좌안 카메라 및 우안 이미지를 획득하는 우안 카메라를 포함하고,
상기 적어도 하나의 프로세서(130)는,
상기 좌안 이미지 및 상기 우안 이미지를 인공지능 모델에 입력으로 적용하고,
상기 인공지능 모델을 이용하여 상기 좌안 이미지와 상기 우안 이미지의 픽셀 휘도값 유사도에 따른 시차(disparity)를 계산함으로써, 상기 깊이 맵을 획득하는, 증강 현실 디바이스(100).
According to any one of claims 1 and 2,
The camera 110 includes a left eye camera for acquiring a left eye image and a right eye camera for acquiring a right eye image,
The at least one processor 130,
Applying the left eye image and the right eye image as input to the artificial intelligence model,
An augmented reality device 100 that obtains the depth map by calculating disparity according to the similarity of pixel luminance values of the left-eye image and the right-eye image using the artificial intelligence model.
상기 적어도 하나의 프로세서(130)는,
상기 보정된 법선 벡터에 의해 정의되는 평면 상의 픽셀 및 상기 픽셀과 위치 상으로 인접한 복수의 인접 픽셀들의 깊이 값에 기초하여, 상기 인공지능 모델에 의해 획득된 깊이 맵의 손실값(loss)을 산출하고,
상기 산출된 손실값을 상기 인공지능 모델에 적용하는 트레이닝(training)을 수행함으로써, 상기 적어도 하나의 픽셀의 깊이 값을 보정하는, 증강 현실 디바이스(100).
According to clause 3,
The at least one processor 130,
Based on the depth values of a pixel on a plane defined by the corrected normal vector and a plurality of adjacent pixels in position adjacent to the pixel, calculate a loss value of the depth map obtained by the artificial intelligence model, ,
An augmented reality device 100 that corrects the depth value of the at least one pixel by performing training to apply the calculated loss value to the artificial intelligence model.
상기 적어도 하나의 프로세서(130)는,
상기 보정된 법선 벡터를 갖는 픽셀 및 상기 픽셀에 위치적으로 인접한 상기 복수의 인접 픽셀들로 구성된 평면을 정의하고,
상기 정의된 평면과 상기 카메라(110)의 광선 벡터(ray vector)가 만나는 복수의 포인트에 기초하여 상기 복수의 인접 픽셀들의 깊이 값을 획득하고,
상기 획득된 픽셀의 깊이 값과 상기 복수의 인접 픽셀들의 깊이 값 간의 차이값을 각각 산출하고,
상기 복수의 인접 픽셀들 별로 산출된 차이값에 가중치를 적용하는 가중합(weighted sum) 연산을 수행함으로써, 상기 손실값을 획득하는, 증강 현실 디바이스(100).
According to clause 4,
The at least one processor 130,
Defining a plane consisting of a pixel having the corrected normal vector and a plurality of adjacent pixels that are positionally adjacent to the pixel,
Obtaining depth values of the plurality of adjacent pixels based on a plurality of points where the defined plane meets the ray vector of the camera 110,
Calculating a difference value between the depth value of the acquired pixel and the depth values of the plurality of adjacent pixels, respectively,
An augmented reality device 100 that obtains the loss value by performing a weighted sum operation that applies a weight to the difference value calculated for each of the plurality of adjacent pixels.
상기 가중치는, 상기 깊이 맵에서의 복수의 인접 픽셀들 각각의 상기 카메라(110)와의 거리에 기초하여 결정되는 제1 가중치 및 상기 깊이 맵에서의 상기 픽셀과 상기 복수의 인접 픽셀들 간의 휘도값 차이에 기초하여 결정되는 제2 가중치를 포함하는, 증강 현실 디바이스(100).
According to clause 5,
The weight is a first weight determined based on the distance from the camera 110 of each of the plurality of adjacent pixels in the depth map and the difference in luminance value between the pixel and the plurality of adjacent pixels in the depth map. Augmented reality device 100, including a second weight determined based on .
상기 적어도 하나의 프로세서(130)는,
상기 트레이닝된 인공지능 모델에 상기 좌안 이미지 및 상기 우안 이미지를 입력하는 추론을 수행함으로써, 보정된 깊이 맵을 획득하는, 증강 현실 디바이스(100).
According to any one of claims 3 to 6,
The at least one processor 130,
An augmented reality device 100 that obtains a corrected depth map by performing inference by inputting the left eye image and the right eye image into the trained artificial intelligence model.
상기 카메라(110)는 좌안 이미지를 획득하는 좌안 카메라 및 우안 이미지를 획득하는 우안 카메라를 포함하고,
상기 적어도 하나의 프로세서(130)는,
상기 중력 방향 또는 중력 방향에 수직한 방향에 따라 상기 좌안 이미지 및 상기 우안 이미지의 법선 벡터의 방향을 보정하고,
상기 보정된 법선 벡터의 방향 또는 상기 보정된 법선 벡터의 방향에 수직하는 방향을 따라 평면 가정(plane hypothesis)을 수행하고,
상기 평면 가정에 의해 정의된 평면을 따라 플레인 스윕(plane sweep)을 수행함으로써, 상기 적어도 하나의 픽셀의 깊이 값을 획득하고,
상기 획득된 깊이 값을 이용하여 상기 적어도 하나의 픽셀의 깊이 값을 보정하는, 증강 현실 디바이스(100).
According to claim 1,
The camera 110 includes a left eye camera for acquiring a left eye image and a right eye camera for acquiring a right eye image,
The at least one processor 130,
Correcting the directions of normal vectors of the left-eye image and the right-eye image according to the direction of gravity or a direction perpendicular to the direction of gravity,
Performing a plane hypothesis along the direction of the corrected normal vector or a direction perpendicular to the direction of the corrected normal vector,
Obtaining a depth value of the at least one pixel by performing a plane sweep along a plane defined by the plane assumption,
The augmented reality device 100 corrects the depth value of the at least one pixel using the obtained depth value.
상기 카메라(110)는 ToF 카메라(Time-of-Flight camera)로 구성되고,
상기 적어도 하나의 프로세서(130)는,
상기 ToF 카메라를 이용하여 상기 깊이 맵을 획득하는, 증강 현실 디바이스(100).
According to claim 1,
The camera 110 is configured as a Time-of-Flight camera (ToF camera),
The at least one processor 130,
An augmented reality device 100 that acquires the depth map using the ToF camera.
상기 적어도 하나의 프로세서(130)는,
상기 보정된 법선 벡터에 기초하여 픽셀 별 평면을 정의하고,
RGB 이미지의 색상 정보에 따라 분할된 영역에 기초하여 상기 깊이 맵에서 정의된 평면의 평면 영역을 식별하고,
상기 식별된 평면 영역 내의 인접 픽셀들의 깊이 값에 기초하여 상기 깊이 값을 보정하는, 증강 현실 디바이스(100).
According to clause 9,
The at least one processor 130,
Define a plane for each pixel based on the corrected normal vector,
Identifying a flat area of the plane defined in the depth map based on the area divided according to the color information of the RGB image,
Augmented reality device 100, correcting the depth value based on the depth value of adjacent pixels within the identified planar area.
카메라(110)를 이용하여 획득한 이미지로부터 깊이 맵(depth map)을 획득하는 단계(S310);
상기 깊이 맵에 포함된 적어도 하나의 픽셀의 법선 벡터(normal vector)를 획득하는 단계(S320);
IMU 센서(120)에 의해 측정된 중력 방향에 기초하여 상기 적어도 하나의 픽셀의 법선 벡터의 방향을 보정하는 단계(S330); 및
상기 보정된 법선 벡터의 방향에 기초하여 상기 적어도 하나의 픽셀의 깊이 값을 보정하는 단계(S340);
를 포함하는, 방법.
In the method for the augmented reality device 100 to correct the depth value,
Obtaining a depth map from an image acquired using the camera 110 (S310);
Obtaining a normal vector of at least one pixel included in the depth map (S320);
Correcting the direction of the normal vector of the at least one pixel based on the direction of gravity measured by the IMU sensor 120 (S330); and
Correcting the depth value of the at least one pixel based on the direction of the corrected normal vector (S340);
Method, including.
상기 깊이 맵을 획득하는 단계(S310)는,
좌안 카메라를 이용하여 획득된 좌안 이미지 및 우안 카메라를 이용하여 획득된 우안 이미지를 인공지능 모델에 입력하는 단계; 및
상기 인공지능 모델을 이용하여 상기 좌안 이미지와 상기 우안 이미지의 픽셀 휘도값 유사도에 따른 시차(disparity)를 계산함으로써, 상기 깊이 맵을 획득하는 단계;
를 포함하는, 방법.
According to claim 11,
The step of acquiring the depth map (S310) is,
Inputting a left eye image acquired using a left eye camera and a right eye image acquired using a right eye camera into an artificial intelligence model; and
Obtaining the depth map by calculating disparity according to the similarity of pixel luminance values of the left-eye image and the right-eye image using the artificial intelligence model;
Method, including.
상기 깊이 맵의 픽셀 별 깊이 값을 보정하는 단계(S340)는,
상기 보정된 법선 벡터에 의해 정의되는 평면 상의 픽셀 및 상기 픽셀과 위치 상으로 인접한 복수의 인접 픽셀들의 깊이 값에 기초하여, 상기 인공지능 모델에 의해 획득된 깊이 맵의 손실값(loss)을 산출하는 단계(S810); 및
상기 산출된 손실값을 상기 인공지능 모델에 적용하는 트레이닝(training)을 수행함으로써, 상기 적어도 하나의 픽셀의 깊이 값을 보정하는 단계(S820);
를 포함하는, 방법.
According to claim 12,
The step (S340) of correcting the depth value for each pixel of the depth map is,
Calculating the loss of the depth map obtained by the artificial intelligence model based on the depth values of the pixel on the plane defined by the corrected normal vector and a plurality of adjacent pixels in position adjacent to the pixel. Step (S810); and
Compensating the depth value of the at least one pixel by performing training by applying the calculated loss value to the artificial intelligence model (S820);
Method, including.
상기 손실값을 산출하는 단계(S810)는,
상기 보정된 법선 벡터를 갖는 픽셀 및 상기 픽셀에 위치적으로 인접한 상기 복수의 인접 픽셀들로 구성된 평면을 정의하는 단계(S910);
상기 정의된 평면과 상기 카메라(110)의 광선 벡터(ray vector)가 만나는 복수의 포인트에 기초하여 상기 복수의 인접 픽셀들의 깊이 값을 획득하는 단계(S920);
상기 획득된 픽셀의 깊이 값과 상기 복수의 인접 픽셀들의 깊이 값 간의 차이값을 각각 산출하는 단계(S930); 및
상기 복수의 인접 픽셀들 별로 산출된 차이값에 가중치를 적용하는 가중합(weighted sum) 연산을 수행함으로써, 상기 손실값을 획득하는 단계(S940);
를 포함하는, 방법.
According to claim 13,
The step of calculating the loss value (S810) is,
Defining a plane consisting of a pixel having the corrected normal vector and a plurality of adjacent pixels that are positionally adjacent to the pixel (S910);
Obtaining depth values of the plurality of adjacent pixels based on a plurality of points where the defined plane meets the ray vector of the camera 110 (S920);
Calculating difference values between the depth value of the acquired pixel and the depth values of the plurality of adjacent pixels (S930); and
Obtaining the loss value by performing a weighted sum operation that applies a weight to the difference value calculated for each of the plurality of adjacent pixels (S940);
Method, including.
상기 가중치는, 상기 깊이 맵에서의 복수의 인접 픽셀들 각각의 상기 카메라(110)와의 거리에 기초하여 결정되는 제1 가중치 및 상기 깊이 맵에서의 상기 픽셀과 상기 복수의 인접 픽셀들 간의 휘도값 차이에 기초하여 결정되는 제2 가중치를 포함하는, 방법.
According to claim 14,
The weight is a first weight determined based on the distance from the camera 110 of each of the plurality of adjacent pixels in the depth map and the difference in luminance value between the pixel and the plurality of adjacent pixels in the depth map. A method comprising a second weight determined based on .
상기 트레이닝된 인공지능 모델에 상기 좌안 이미지 및 상기 우안 이미지를 입력하는 추론을 수행함으로써, 보정된 깊이 맵을 획득하는 단계;
를 더 포함하는, 방법.
According to any one of claims 12 to 15,
Obtaining a corrected depth map by performing inference by inputting the left eye image and the right eye image into the trained artificial intelligence model;
A method further comprising:
상기 픽셀 별 법선 벡터의 방향을 보정하는 단계(S330)는,
상기 중력 방향 또는 중력 방향에 수직한 방향에 따라 좌안 카메라를 이용하여 획득된 좌안 이미지 및 우안 카메라를 이용하여 획득된 우안 이미지의 법선 벡터의 방향을 보정하는 단계;
를 포함하고,
상기 적어도 하나의 픽셀의 깊이 값을 보정하는 단계(S340)는,
상기 보정된 법선 벡터의 방향 또는 상기 보정된 법선 벡터의 방향에 수직하는 방향을 따라 평면 가정(plane hypothesis)을 수행하는 단계(S1220); 및
상기 평면 가정에 의해 정의된 평면을 따라 플레인 스윕(plane sweep)을 수행함으로써, 상기 깊이 값을 획득하는 단계(S1230); 및
상기 획득된 깊이 값을 이용하여 상기 적어도 하나의 픽셀의 깊이 값을 보정하는 단계(S1240);
를 포함하는, 방법.
According to claim 11,
The step (S330) of correcting the direction of the normal vector for each pixel is,
Correcting the directions of normal vectors of a left-eye image acquired using a left-eye camera and a right-eye image acquired using a right-eye camera according to the direction of gravity or a direction perpendicular to the direction of gravity;
Including,
The step (S340) of correcting the depth value of the at least one pixel is,
Performing a plane hypothesis along the direction of the corrected normal vector or a direction perpendicular to the direction of the corrected normal vector (S1220); and
Obtaining the depth value by performing a plane sweep along a plane defined by the plane assumption (S1230); and
Correcting the depth value of the at least one pixel using the obtained depth value (S1240);
Method, including.
상기 깊이 맵을 획득하는 단계(S310)는,
ToF 카메라(Time-of-Flight camera)를 이용하여 상기 깊이 맵을 획득하는, 방법.
According to claim 11,
The step of acquiring the depth map (S310) is,
A method of acquiring the depth map using a Time-of-Flight camera (ToF camera).
상기 적어도 하나의 픽셀의 깊이 값을 보정하는 단계(S340)는,
상기 보정된 법선 벡터에 기초하여 픽셀의 평면을 정의하는 단계(S1410);
RGB 이미지의 색상 정보에 따라 분할된 영역에 기초하여 상기 깊이 맵에서 정의된 평면의 평면 영역을 식별하는 단계(S1420); 및
상기 식별된 평면 영역 내의 인접 픽셀들의 깊이 값에 기초하여 적어도 하나의 픽셀의 깊이 값을 보정하는 단계(S1430);
를 포함하는, 방법.
According to clause 18,
The step (S340) of correcting the depth value of the at least one pixel is,
defining a pixel plane based on the corrected normal vector (S1410);
Identifying a flat area of the plane defined in the depth map based on the area divided according to the color information of the RGB image (S1420); and
Compensating the depth value of at least one pixel based on the depth value of adjacent pixels in the identified planar area (S1430);
Method, including.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/KR2023/006490 WO2023224326A1 (en) | 2022-05-18 | 2023-05-12 | Augmented reality device for acquiring depth information, and operating method therefor |
US18/199,226 US20230377182A1 (en) | 2022-05-18 | 2023-05-18 | Augmented reality device for obtaining depth information and method of operating the same |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20220061033 | 2022-05-18 | ||
KR1020220061033 | 2022-05-18 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230161309A true KR20230161309A (en) | 2023-11-27 |
Family
ID=88967979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020220101583A KR20230161309A (en) | 2022-05-18 | 2022-08-12 | An augmented reality device for obtaining depth information and a method for operating the same |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20230161309A (en) |
-
2022
- 2022-08-12 KR KR1020220101583A patent/KR20230161309A/en unknown
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Memo et al. | Head-mounted gesture controlled interface for human-computer interaction | |
US10362296B2 (en) | Localized depth map generation | |
US10580148B2 (en) | Graphical coordinate system transform for video frames | |
US11004230B2 (en) | Predicting three-dimensional articulated and target object pose | |
US9251590B2 (en) | Camera pose estimation for 3D reconstruction | |
CN112652016B (en) | Point cloud prediction model generation method, pose estimation method and pose estimation device | |
KR102612347B1 (en) | Multi-sync ensemble model for device localization | |
US9224237B2 (en) | Simulating three-dimensional views using planes of content | |
JP7178396B2 (en) | Method and computer system for generating data for estimating 3D pose of object included in input image | |
CN109255749B (en) | Map building optimization in autonomous and non-autonomous platforms | |
EP3906527B1 (en) | Image bounding shape using 3d environment representation | |
EP3695381B1 (en) | Floor detection in virtual and augmented reality devices using stereo images | |
US10636190B2 (en) | Methods and systems for exploiting per-pixel motion conflicts to extract primary and secondary motions in augmented reality systems | |
US20230206565A1 (en) | Providing augmented reality in a web browser | |
US11842514B1 (en) | Determining a pose of an object from rgb-d images | |
US10776943B2 (en) | System and method for 3D association of detected objects | |
US10762713B2 (en) | Method for developing augmented reality experiences in low computer power systems and devices | |
US20210407125A1 (en) | Object recognition neural network for amodal center prediction | |
KR20220146901A (en) | Method and Apparatus for Accelerating Simultaneous Localization and Mapping | |
KR20220122287A (en) | Method and apparatus for determining pose of augmented reality providing device | |
CN109710054B (en) | Virtual object presenting method and device for head-mounted display equipment | |
KR20230161309A (en) | An augmented reality device for obtaining depth information and a method for operating the same | |
US11741620B1 (en) | Plane detection using depth sensor and semantic information | |
US20230377182A1 (en) | Augmented reality device for obtaining depth information and method of operating the same | |
CN111489376B (en) | Method, device, terminal equipment and storage medium for tracking interaction equipment |