WO2024147486A1 - 손 관절의 3차원 위치 정보를 획득하는 증강 현실 디바이스 및 그 동작 방법 - Google Patents
손 관절의 3차원 위치 정보를 획득하는 증강 현실 디바이스 및 그 동작 방법 Download PDFInfo
- Publication number
- WO2024147486A1 WO2024147486A1 PCT/KR2023/019015 KR2023019015W WO2024147486A1 WO 2024147486 A1 WO2024147486 A1 WO 2024147486A1 KR 2023019015 W KR2023019015 W KR 2023019015W WO 2024147486 A1 WO2024147486 A1 WO 2024147486A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- coordinate values
- dimensional
- camera
- position coordinate
- augmented reality
- Prior art date
Links
- 230000003190 augmentative effect Effects 0.000 title claims abstract description 215
- 210000002478 hand joint Anatomy 0.000 title claims abstract description 155
- 238000000034 method Methods 0.000 title claims abstract description 78
- 238000013473 artificial intelligence Methods 0.000 claims description 59
- 238000004590 computer program Methods 0.000 claims description 21
- 238000004088 simulation Methods 0.000 claims description 14
- 210000002346 musculoskeletal system Anatomy 0.000 claims description 10
- 238000012937 correction Methods 0.000 claims description 9
- 230000003416 augmentation Effects 0.000 claims 1
- 238000003384 imaging method Methods 0.000 abstract description 2
- 238000004891 communication Methods 0.000 description 22
- 238000010586 diagram Methods 0.000 description 22
- 238000012545 processing Methods 0.000 description 21
- 238000013528 artificial neural network Methods 0.000 description 19
- 230000008859 change Effects 0.000 description 16
- 238000003062 neural network model Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 230000000306 recurrent effect Effects 0.000 description 9
- 238000013527 convolutional neural network Methods 0.000 description 8
- 239000013598 vector Substances 0.000 description 8
- 210000003811 finger Anatomy 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 210000004247 hand Anatomy 0.000 description 7
- 238000004364 calculation method Methods 0.000 description 6
- 239000011521 glass Substances 0.000 description 6
- 230000002457 bidirectional effect Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 5
- 239000003086 colorant Substances 0.000 description 5
- 230000003993 interaction Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 238000013519 translation Methods 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 241000226585 Antennaria plantaginifolia Species 0.000 description 2
- 230000009471 action Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 210000000988 bone and bone Anatomy 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 239000004984 smart glass Substances 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000005286 illumination Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 238000011017 operating method Methods 0.000 description 1
- 230000002787 reinforcement Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 239000010409 thin film Substances 0.000 description 1
- 210000003813 thumb Anatomy 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
- 210000003857 wrist joint Anatomy 0.000 description 1
Images
Definitions
- 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.
- smart glasses are worn as fashion items and are mainly used for outdoor activities.
- augmented reality services Due to the nature of augmented reality devices, touch operation is not possible, so in order to provide augmented reality services, hand interaction using the three-dimensional pose and gesture of the user's hand is used as an input interface. It is important. For example, in augmented reality services, a user interface that uses interaction with the user's hands, such as selecting menu elements, interacting with a virtual object, selecting an item, or placing an object in the virtual hand, is used. ) can be provided. Therefore, in order to implement more realistic augmented reality technology, technology is required to acquire 3D position information of joints included in the hand, accurately track the pose (shape) of the hand through 3D position information, and recognize gestures. do.
- General augmented reality devices do not use a separate external input device to ensure the freedom of both hands of the user, but instead use vision-based hand tracking to recognize the user's hands from images captured using a camera mounted on the augmented reality device.
- Vision-based Hand tracking technology is used.
- Augmented reality devices use a stereo camera containing two or more cameras to hold a device in the hand through triangulation based on the positional relationship between multiple two-dimensional images and cameras acquired in an area where the field of view overlaps. Three-dimensional position information of the included joints can be obtained.
- two-dimensional images are distorted due to lens characteristics, and errors may occur during the process of correcting the distorted image. Due to errors occurring in the 2D image, errors may occur in the 3D location information obtained through triangulation, and the accuracy of the 3D location information may decrease. In particular, errors occurring in distorted images tend to increase toward the edges rather than in the center of the image.
- the augmented reality device may not recognize or misrecognize the pose or gesture of the hand.
- An augmented reality device that acquires 3D position information of hand joints.
- An augmented reality device may include a plurality of cameras that acquire images by photographing a user's hand, a memory that stores a look-up table (LUT), and at least one processor. You can.
- the at least one processor may recognize hand joints from a plurality of images acquired through a plurality of cameras.
- the at least one processor may obtain two-dimensional joint coordinate values regarding the characteristic points of the recognized hand joints.
- the at least one processor may obtain distortion model parameters of the plurality of cameras, positional relationships between the plurality of cameras, and 3-dimensional position coordinate values corresponding to the obtained 2-dimensional joint coordinate values from the look-up table.
- the at least one processor may output 3D position information of the hand joint based on the acquired 3D position coordinate value.
- the look-up table may include a plurality of previously acquired two-dimensional position coordinate values, a plurality of distortion model parameters, a plurality of camera position relationship parameters, and a plurality of three-dimensional position coordinate values.
- the plurality of two-dimensional position coordinate values may be obtained through simulation that applies a plurality of distortion model parameters and a plurality of camera position relationship parameters to the plurality of three-dimensional position coordinate values.
- the method may include recognizing hand joints from a plurality of images obtained by photographing the user's hand using a plurality of cameras.
- the method may include obtaining two-dimensional joint coordinate values regarding feature points of the recognized hand joints.
- the method may include the step of acquiring distortion model parameters of a plurality of cameras, a positional relationship between the plurality of cameras, and a 3-dimensional position coordinate value corresponding to the obtained 2-dimensional joint coordinate value from a look-up table previously stored in the memory. there is.
- the method may include outputting 3D position information of the hand joint based on the obtained 3D position coordinate values.
- the look-up table may include a plurality of previously acquired two-dimensional position coordinate values, a plurality of distortion model parameters, a plurality of camera position relationship parameters, and a plurality of three-dimensional position coordinate values.
- the plurality of two-dimensional position coordinate values may be obtained through simulation that applies a plurality of distortion model parameters and a plurality of camera position relationship parameters to the plurality of three-dimensional position coordinate values.
- the storage medium includes an operation of recognizing hand joints from a plurality of images obtained by photographing a user's hand using a plurality of cameras; An operation of acquiring two-dimensional joint coordinate values related to feature points of recognized hand joints; Obtaining distortion model parameters of a plurality of cameras, positional relationships between the plurality of cameras, and 3-dimensional position coordinate values corresponding to the obtained 2-dimensional joint coordinate values from a look-up table previously stored in a memory; and instructions readable by the augmented reality device so that the augmented reality device performs an operation of outputting 3D position information of the hand joint based on the acquired 3D position coordinate value.
- Figure 3 is a block diagram showing the components of an augmented reality device according to an embodiment of the present disclosure.
- Figure 4 is a block diagram showing components of an augmented reality device and server according to an embodiment of the present disclosure.
- FIG. 10 is a flowchart illustrating a method by which an augmented reality device determines the accuracy of 3D position information of a hand joint according to an embodiment of the present disclosure.
- FIG. 11 is a diagram illustrating a user interface (UI) for notifying whether an augmented reality device according to an embodiment of the present disclosure needs to change the hand joint recognition method.
- UI user interface
- FIG. 13 is a flowchart illustrating a method by which an augmented reality device according to an embodiment of the present disclosure determines the size of an area in which 3D position information of a hand joint is obtained through triangulation among the entire area of the image.
- FIG. 14 is a diagram illustrating a user interface in which an augmented reality device according to an embodiment of the present disclosure displays an area in which an error occurs in 3D position information of a hand joint among the entire area of the image.
- 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.
- the expression “system configured to” may mean that the system is “capable of” in conjunction with other devices or components.
- 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.
- a component when 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.
- the ‘artificial intelligence model’ may be composed of multiple neural network layers.
- Each of the plurality of neural network layers has a plurality of weight values, and neural network calculation is performed through calculation between the calculation result of the previous layer and the plurality of weights.
- Multiple weights of multiple neural network layers can be optimized by the learning results of the artificial intelligence model. For example, a plurality of weights may be updated so that loss or cost values obtained from the artificial intelligence model are reduced or minimized during the learning process.
- Artificial neural network models may include deep neural networks (DNNs), such as convolutional neural networks (CNNs), recurrent neural networks (RNNs), restricted Boltzmann machines (RBMs), and deep belief networks (DBNs). , Bidirectional Recurrent Deep Neural Network (BRDNN), or Deep Q-Networks, etc., but are not limited to the examples described above.
- 'joint' refers to a part of the human body where bones are connected to each other, and refers to not only hands such as fingers, wrists, and palms, but also one or more parts included in the upper body such as neck, arms, and shoulders.
- FIG. 1 is a conceptual diagram illustrating an operation in which the augmented reality device 100 acquires 3D position information of a hand joint according to an embodiment of the present disclosure.
- the augmented reality device 100 is a device capable of expressing augmented reality, and may be composed of, for example, glasses-shaped Augmented Reality Glasses that a user wears on the face.
- the augmented reality device 100 is shown as augmented reality glasses, but it is not limited thereto.
- the augmented reality device 100 may be implemented as a head mounted display device (HMD) worn on the head, an augmented reality helmet, etc.
- HMD head mounted display device
- the first camera 112 is a camera configured to photograph a real object in response to the user's left eye when the user wears the augmented reality device 100 on the head
- the second camera ( 114) is a camera configured to photograph real objects in response to the user's right eye.
- the augmented reality device 100 is shown as including two cameras, but the present disclosure is not limited thereto. In one embodiment of the present disclosure, the augmented reality device 100 may include a plurality of three or more cameras.
- the augmented reality device 100 calculates the distortion model parameters of the lenses of the plurality of cameras, the positional relationship between the plurality of cameras, and the obtained two-dimensional joint coordinate values from a look-up table. Obtain the corresponding 3D position coordinate value.
- the look-up table may be stored in the memory 130 (see FIG. 3) of the augmented reality device 100, the server 300 (see FIG. 4), or an external device. Referring to FIG. 1 together, the look-up table 200 includes a plurality of distortion model parameters (D 1 to D n ) and a plurality of camera position relationship parameters ([R 1
- Figure 3 is a block diagram showing the components of the augmented reality device 100 according to an embodiment of the present disclosure.
- the augmented reality device 100 may include a first camera 112, a second camera 114, a processor 120, a memory 130, and a display unit 140.
- the first camera 112, the second camera 114, the processor 120, the memory 130, and the display unit 140 may each be electrically and/or physically connected to each other.
- FIG. 3 only essential components for explaining the operation of the augmented reality device 100 are shown, and the components included in the augmented reality device 100 are not limited as shown in FIG. 3 .
- the augmented reality device 100 may further include a communication interface 150 (see FIG. 4) for performing data communication with a server 300 (see FIG. 4) or an external device.
- the augmented reality device 100 may not include the display unit 140.
- the first camera 112 and the second camera 114 may be an RGB-depth camera including a depth estimation function, a stereo fisheye camera, a grayscale camera, or an infrared camera. It can be implemented with any known type of camera, such as a camera.
- the processor 120 may acquire a first image of the user's hand from the first camera 112 and a second image of the user's hand from the second camera 114.
- the processor 120 may acquire video data consisting of a plurality of image frames captured in real time by the first camera 112 and the second camera 114.
- the plurality of 3D position coordinate values may respectively correspond to the plurality of first camera 2D position coordinate values and the plurality of second camera 2D position coordinate values according to the plurality of distortion model parameters and the plurality of camera position relationship parameters.
- the plurality of first camera two-dimensional position coordinate values and the plurality of second camera two-dimensional position coordinate values included in the look-up table 200 include a plurality of camera position relationship parameters and a plurality of distortion models. It can be obtained by simulating a plurality of three-dimensional position coordinate values using parameters to reflect the distortion caused by the camera.
- the look-up table 200 will be described in detail with reference to FIG. 5 .
- the processor 120 calculates the second 3D position coordinates from a first area in which the first 3D position coordinate value is obtained through triangulation among the entire area of the stereo image and the look-up table 200.
- the display unit 140 can be controlled to display the second area where the value is obtained in a distinct color.
- the processor 120 detects the movement of the user's hand to adjust the size of the first area, and adjusts the size of the horizontal and vertical axes of the first area based on the detected movement of the user's hand. You can change it.
- a specific embodiment in which the processor 120 displays the first area and the second area in distinct colors and adjusts the size of the first area based on the movement of the user's hand is described in detail in FIGS. 13 to 15. I decided to do it.
- the display unit 140 may include, for example, a liquid crystal display, a thin film transistor-liquid crystal display, an organic light-emitting diode, a flexible display, It may consist of at least one of a 3D display and an electrophoretic display.
- the display unit 140 projects a virtual image or a graphical user interface (for example, a feature point GUI or a bounding box GUI). It may further include an optical engine.
- the optical engine is configured to generate light for a virtual image or graphical user interface and may consist of a projector that includes an imaging panel, illumination optics, projection optics, etc.
- the optical engine may be placed, for example, in the frame or temples of the augmented reality glasses.
- the communication interface 150 can transmit and receive data with the server 300 through a wired or wireless communication network and process the data.
- the communication interface 150 includes, for example, wired LAN, wireless LAN, Wi-Fi, Bluetooth, zigbee, WFD (Wi-Fi Direct), and infrared communication (IrDA, infrared Data Association), BLE (Bluetooth Low Energy), NFC (Near Field Communication), Wibro (Wireless Broadband Internet, Wibro), WiMAX (World Interoperability for Microwave Access, WiMAX), SWAP (Shared Wireless Access Protocol), WiGig Data communication with the server 300 may be performed using at least one of data communication methods including (Wireless Gigabit Allicance, WiGig) and RF communication.
- the communication interface 150 may be CDMA, WCDMA, 3G, 4G (LTE), 5G Sub 6, and/or millimeter wave (mmWave).
- Data can be transmitted and received with the server 300 through a network that complies with mobile communication standards, such as a communication method using ).
- the communication interface 150 is controlled by the processor 120 to set a distortion model parameter (D) according to the physical characteristics of the lenses included in the first camera 112 and the second camera 114. i ), the positional relationship ([R
- the communication interface 150 may provide data of 3D position coordinate values received from the server 300 to the processor 130.
- the augmented reality device 100 is implemented in the form of augmented reality glasses worn on a person's face or as a head-mounted device worn on a person's head, and is designed in a small form factor for portability. Accordingly, the storage capacity of the memory 130 of the augmented reality device 100, the operation processing speed of the processor 120, etc. may be limited compared to those of the server 300. Therefore, after the server 300 performs operations that require storage of large amounts of data and large amounts of computation, the server 300 transmits the necessary data (e.g., 3D position coordinate value data) to the augmented reality device 100 through a communication network. You can.
- the necessary data e.g., 3D position coordinate value data
- the augmented reality device 100 receives and uses data representing 3D position coordinate values from the server 300 without a processor having a large memory and fast computing ability, thereby providing 3D position information of the hand joint.
- the processing time required for acquisition can be shortened and real-time hand interaction can be implemented.
- FIG. 5 is a diagram illustrating a look-up table 200 according to an embodiment of the present disclosure.
- a plurality of two-dimensional position coordinate values (P L_2D ) of the first camera are a plurality of three-dimensional position coordinates using a plurality of camera position relationship parameters ([R L
- a plurality of three-dimensional position coordinate values (P 3D ) included in the look-up table 200 include a plurality of two-dimensional position coordinate values (P L_2D ) for the first camera (left eye camera), a plurality of camera position relationship parameters ([ R L
- the n-th three-dimensional position coordinate value ( p 3D_n ) is the first two-dimensional position coordinate value (P L_n ) with respect to the first camera, the n-th position relationship parameter of the first camera ([R L_n
- 'corresponding' means that the two-dimensional position coordinate values (P L_i , P R_i ) of the first camera and the second camera are camera position relationship parameters ([R L
- the two-dimensional position coordinate values (P L_i , P R_i ) are the randomly generated three-dimensional position coordinate values ( p 3D_i ) by combining the camera position relationship parameters ([R L_i
- FIG. 6 is a diagram illustrating an operation of the augmented reality device 100 according to an embodiment of the present disclosure to acquire three-dimensional position coordinate values of hand joints stored in a look-up table.
- the augmented reality device 100 may obtain location information in a three-dimensional space coordinate system of joints included in the user's hand.
- the augmented reality device 100 includes a plurality of three-dimensional position coordinate values ( p 3D_1 to p 3D_n ) can be obtained.
- 'Range of movable angle' refers to the range of joints included in the upper body, such as the shoulder, arm, or elbow, that can be moved by a swing or spin about the axis of rotation. This refers to the range of angle values.
- the augmented reality device 100 acquires two-dimensional projection coordinate values (P' 1, 2D , P' 2, 2D ) by projecting three-dimensional position coordinate values ( p 3D ) based on the camera position relationship. (Action 2).
- the processor 120 (see FIG. 3) of the augmented reality device 100 determines the positional relationship parameters ([R 1
- the processor 120 stores an arbitrary three-dimensional position coordinate value ( p 3D , see FIG.
- the first camera two-dimensional projection coordinate value (P' 1, 2D ) can be obtained.
- the processor 120 adds a three-dimensional position coordinate value ( p 3D ) to the second image 700-2 based on the second position relationship parameter ([R 2
- the second camera two-dimensional projection coordinate value (P' 2, 2D ) can be obtained.
- FIG. 8 is a diagram illustrating an operation in which the augmented reality device 100 acquires 3D position information 840 of hand joints using an artificial intelligence model 800 according to an embodiment of the present disclosure.
- the processor 120 of the augmented reality device 100 determines the inter-camera positional relationship ([R
- FIG. 9 is a diagram for explaining a training method of an artificial intelligence model 900 according to an embodiment of the present disclosure.
- FIG. 10 is a flowchart illustrating a method by which the augmented reality device 100 determines the accuracy of 3D position information of a hand joint according to an embodiment of the present disclosure.
- Steps S1010 to S1050 shown in FIG. 10 may be performed after the operation according to step S220 shown in FIG. 2 is performed.
- the augmented reality device 100 corrects the distortion of the two-dimensional joint coordinate values based on the distortion model parameters of the lens and the positional relationship between the plurality of cameras.
- the augmented reality device 100 includes a left eye camera (first camera) and a right eye camera (second camera), acquires the first image using the left eye camera, and uses the right eye camera to obtain the first image.
- a second image can be obtained.
- the augmented reality device 100 may acquire two-dimensional joint coordinate values of hand joints from the first image and the second image.
- Equation 1 p j base may represent the first 3-dimensional position coordinate value obtained through steps S1010 to S1030, and p j new may represent the second 3-dimensional position coordinate value obtained through step S230.
- the notification message 1110 may include a graphical user interface (GUI) for performing an operation to change the hand joint recognition method, such as 'yes' or 'no'.
- GUI graphical user interface
- the augmented reality device 100 performs the operation according to step S220 again after outputting the notification message.
- the augmented reality device 100 may acquire two-dimensional joint feature points related to hand joint feature points through a modified hand joint recognition method.
- the augmented reality device 100 measures hand joints through conventional distortion correction and adjustment of two-dimensional joint coordinate values and triangulation using the positional relationship between cameras. 1 3D location information is acquired, and errors in the 3D location information are detected by comparing the obtained first 3D location information with the second 3D location information obtained through the look-up table 200, where the hand joint The accuracy of 3D location information can be improved, thereby improving the stability of hand interaction.
- FIG. 13 is a flowchart illustrating a method by which the augmented reality device 100 according to an embodiment of the present disclosure determines the size of an area in which 3D position information of a hand joint is obtained through triangulation among the entire area of the image.
- the augmented reality device 100 displays the area in the image where an error in the 3D position information of the hand joint was detected.
- the augmented reality device 100 may display a third area 1430 in which an error occurred in the 3D position information of the hand joint among the entire area of the stereo image 1400.
- the augmented reality device 100 may display the third area 1430, where an error was detected, in a color that is distinct from the first area 1410 and the second area 1420.
- the augmented reality device 100 may display the third area 1430 in red, but the display is not limited thereto.
- the augmented reality device 100 adjusts the size of the horizontal and vertical axes of the first area based on the hand movement.
- the augmented reality device 100 may change the size and shape of the first area 1510 of the entire area of the stereo image 1500 based on the recognized hand movement.
- the augmented reality device 100 may change the size and shape of the first area 1510 by adjusting the sizes of the horizontal and vertical axes of the first area based on hand movement, respectively.
- the size and shape of the second area 1520 may also change.
- the present disclosure provides an augmented reality device 100 that acquires 3D position information of hand joints.
- the augmented reality device 100 stores a plurality of cameras 112 and 114 and a look-up table (LUT) 200 that acquire images by photographing the user's hand. It may include a memory 130 and at least one processor 120.
- the at least one processor 120 may recognize hand joints from a plurality of images acquired through a plurality of cameras 112 and 114.
- the at least one processor 120 may obtain two-dimensional joint coordinate values regarding the characteristic points of the recognized hand joints.
- the look-up table 200 includes a plurality of previously acquired two-dimensional position coordinate values, a plurality of distortion model parameters, a plurality of camera position relationship parameters, and a plurality of three-dimensional position coordinate values. can do.
- the plurality of two-dimensional position coordinate values may be obtained through simulation that applies a plurality of distortion model parameters and a plurality of camera position relationship parameters to the plurality of three-dimensional position coordinate values.
- the plurality of three-dimensional position coordinate values included in the look-up table 200 are any three of the hand joints within the range of motion angles of the upper body joints according to the anatomical constraints of the human musculoskeletal system. It may be a coordinate value representing a dimensional position.
- a plurality of two-dimensional position coordinate values included in the look-up table 200 are divided into a plurality of two by projecting a plurality of three-dimensional position coordinate values based on a plurality of camera position relationship parameters.
- Dimensional projection coordinate values can be obtained and obtained through simulation that reflects the distortion of the lens by applying a plurality of distortion model parameters to the obtained plurality of two-dimensional projection coordinate values.
- the at least one processor 120 accesses the look-up table 200 to obtain, from the look-up table 200, distortion model parameters of the lens, positional relationships between a plurality of cameras, And it is possible to search for distortion model parameters, camera position relationship parameters, and 2D position coordinate values that are the same or similar to the obtained 2D joint coordinate values.
- the at least one processor 120 may obtain the searched distortion model parameters, camera position relationship parameters, and 3-dimensional position coordinate values corresponding to the 2-dimensional position coordinate values from the look-up table 200.
- the step of acquiring the three-dimensional position coordinate value (S230) is to access the look-up table 200, obtain a distortion model parameter of the lens from the look-up table 200, and a plurality of It may include searching for positional relationships between cameras, distortion model parameters that are the same or similar to the obtained two-dimensional joint coordinate values, camera positional relationship parameters, and two-dimensional position coordinate values.
- the step of acquiring the 3D position coordinates (S230) includes obtaining 3D position coordinates corresponding to the searched distortion model parameters, camera position relationship parameters, and 2D position coordinates from the look-up table 200. It can be included.
- either the augmented reality device 100 or a third device may execute the computer program product to perform the method according to the disclosed embodiments.
- at least one of the augmented reality device 100 and the third device may execute the computer program product and perform the methods according to the disclosed embodiments in a distributed manner.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Health & Medical Sciences (AREA)
- User Interface Of Digital Computer (AREA)
- General Health & Medical Sciences (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- Biophysics (AREA)
- Social Psychology (AREA)
- Psychiatry (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Computer Graphics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
Abstract
복수의 카메라를 통해 획득된 복수의 이미지로부터 손 관절의 3차원 위치 정보를 획득하는 증강 현실 디바이스 및 그 동작 방법을 개시한다. 본 개시의 일 실시예에 따른 증강 현실 디바이스는 복수의 카메라를 이용하여 사용자의 손을 촬영함으로써 획득된 복수의 이미지로부터 손 관절에 관한 2차원 관절 좌표값을 획득하고, 메모리에 기 저장된 룩 업 테이블(look-up table, LUT)로부터 복수의 카메라의 왜곡 모델 파라미터, 복수의 카메라 간의 위치 관계, 및 획득된 2차원 관절 좌표값에 대응되는 3차원 위치 좌표값을 획득하고, 획득된 3차원 위치 좌표값에 기초하여 손 관절의 3차원 위치 정보를 출력할 수 있다.
Description
본 개시는 사용자의 손에 포함된 관절들의 3차원 위치 정보를 획득하는 증강 현실 디바이스 및 그 동작 방법에 관한 것이다. 구체적으로, 본 개시는 복수의 카메라를 이용하여 사용자의 손을 촬영함으로써 획득된 2차원 이미지로부터 손에 포함된 관절들의 3차원 위치 좌표값 정보를 획득하는 증강 현실 디바이스 및 그 동작 방법을 개시한다.
증강 현실(Augmented Reality)은 현실 세계의 물리적 환경 공간이나 현실 객체(real world object) 상에 가상 이미지를 오버레이(overlay)하여 함께 보여주는 기술로서, 증강 현실 기술을 활용한 증강 현실 디바이스(예를 들어, 스마트 글래스(Smart Glass)가 정보 검색, 길 안내, 카메라 촬영과 같이 일상 생활에서 유용하게 사용되고 있다. 특히, 스마트 글래스는 패션 아이템으로도 착용되고, 실외 활동에 주로 사용되고 있다.
증강 현실 디바이스는 특성 상 터치 조작이 불가능하므로, 증강 현실 서비스를 제공하기 위해서는 입력 수단으로써 사용자의 손의 3차원적 포즈(pose)와 제스처(gesture)를 이용하는 핸드 인터랙션(hand interaction)이 입력 인터페이스로서 중요하다. 예를 들어, 증강 현실 서비스에서는 메뉴의 요소들을 선택하거나, 가상 객체와의 인터랙션을 수행하거나, 아이템을 선택하거나, 가상 손에 객체를 배치하는 등 사용자의 손과의 인터랙션을 이용하는 사용자 인터페이스(User Interface)를 제공할 수 있다. 따라서, 보다 실감나는 증강 현실 기술의 구현을 위해서는 손에 포함되는 관절들의 3차원 위치 정보를 획득하고, 3차원 위치 정보를 통해 손의 포즈(형태)를 정확하게 추적하고, 제스처를 인식하는 기술이 요구된다.
일반적인 증강 현실 디바이스는 사용자의 양 손의 자유로움을 보장하기 위하여 별도의 외부 입력 장치를 사용하지 않고, 증강 현실 디바이스에 탑재되는 카메라를 이용하여 촬영된 이미지로부터 사용자의 손을 인식하는 비젼 기반 핸드 트래킹(Vision-based Hand tracking) 기술을 사용하고 있다. 증강 현실 디바이스는 두 개 이상의 카메라를 포함하는 스테레오 카메라를 이용하여 시야(Field of View)가 겹치는 영역에서 획득된 복수의 2차원 이미지 및 카메라 간의 위치 관계에 기초하여 삼각측량법(triangulation)을 통해 손에 포함된 관절들의 3차원 위치 정보를 획득할 수 있다. 일반적인 RGB 카메라의 경우, 렌즈 특성에 의해 2차원 이미지가 왜곡되며, 왜곡된 이미지를 보정하는 과정에서 오차가 발생될 수 있다. 2차원 이미지에서 발생되는 오차로 인하여, 삼각측량법을 통해 획득된 3차원 위치 정보에는 오차가 발생되고, 3차원 위치 정보의 정확도가 떨어질 수 있다. 특히, 왜곡된 이미지에서 발생되는 오차는 이미지의 중앙 부분 보다 가장자리로 갈수록 커지는 경향이 있다.
손의 관절들의 3차원 위치 정보의 정확도가 낮은 경우, 증강 현실 디바이스가 손의 포즈 또는 제스처를 미인식하거나 오인식할 수 있다.
본 개시의 일 측면(aspect)은 손 관절의 3차원 위치 정보를 획득하는 증강 현실 디바이스를 제공한다. 본 개시의 일 실시예에 따른 증강 현실 디바이스는 사용자의 손을 촬영하여 이미지를 획득하는 복수의 카메라, 룩 업 테이블(look-up table, LUT)을 저장하는 메모리, 및 적어도 하나의 프로세서를 포함할 수 있다. 상기 적어도 하나의 프로세서는 복수의 카메라를 통해 획득된 복수의 이미지로부터 손 관절을 인식할 수 있다. 상기 적어도 하나의 프로세서는 인식된 손 관절의 특징점에 관한 2차원 관절 좌표값을 획득할 수 있다. 상기 적어도 하나의 프로세서는 룩 업 테이블로부터 복수의 카메라의 왜곡 모델 파라미터, 복수의 카메라 간의 위치 관계, 및 획득된 2차원 관절 좌표값에 대응되는 3차원 위치 좌표값을 획득할 수 있다. 상기 적어도 하나의 프로세서는 획득된 3차원 위치 좌표값에 기초하여 손 관절의 3차원 위치 정보를 출력할 수 있다. 상기 룩 업 테이블은 기 획득된 복수의 2차원 위치 좌표값, 복수의 왜곡 모델 파라미터, 복수의 카메라 위치 관계 파라미터, 및 복수의 3차원 위치 좌표값을 포함할 수 있다. 상기 복수의 2차원 위치 좌표값은, 복수의 3차원 위치 좌표값에 복수의 왜곡 모델 파라미터, 및 복수의 카메라 위치 관계 파라미터를 적용하는 시뮬레이션을 통해 획득될 수 있다.
본 개시의 다른 측면(another aspect)은 증강 현실 디바이스가 손 관절의 3차원 위치 정보를 획득하는 방법을 제공한다. 상기 방법은 복수의 카메라를 이용하여 사용자의 손을 촬영함으로써 획득된 복수의 이미지로부터 손 관절을 인식하는 단계를 포함할 수 있다. 상기 방법은 인식된 손 관절의 특징점에 관한 2차원 관절 좌표값을 획득하는 단계를 포함할 수 있다. 상기 방법은 메모리에 기 저장된 룩 업 테이블로부터 복수의 카메라의 왜곡 모델 파라미터, 복수의 카메라 간의 위치 관계, 및 획득된 2차원 관절 좌표값에 대응되는 3차원 위치 좌표값을 획득하는 단계를 포함할 수 있다. 상기 방법은 획득된 3차원 위치 좌표값에 기초하여 손 관절의 3차원 위치 정보를 출력하는 단계를 포함할 수 있다. 상기 룩 업 테이블은 기 획득된 복수의 2차원 위치 좌표값, 복수의 왜곡 모델 파라미터, 복수의 카메라 위치 관계 파라미터, 및 복수의 3차원 위치 좌표값을 포함할 수 있다. 상기 복수의 2차원 위치 좌표값은, 복수의 3차원 위치 좌표값에 복수의 왜곡 모델 파라미터, 및 복수의 카메라 위치 관계 파라미터를 적용하는 시뮬레이션을 통해 획득될 수 있다.
본 개시의 또 다른 측면은 컴퓨터로 읽을 수 있는 저장 매체를 포함하는 컴퓨터 프로그램 제품(Computer Program Product)를 제공한다. 상기 저장 매체는 복수의 카메라를 이용하여 사용자의 손을 촬영함으로써 획득된 복수의 이미지로부터 손 관절을 인식하는 동작; 인식된 손 관절의 특징점에 관한 2차원 관절 좌표값을 획득하는 동작; 메모리에 기 저장된 룩 업 테이블로부터 복수의 카메라의 왜곡 모델 파라미터, 복수의 카메라 간의 위치 관계, 및 획득된 2차원 관절 좌표값에 대응되는 3차원 위치 좌표값을 획득하는 동작; 및 획득된 3차원 위치 좌표값에 기초하여 손 관절의 3차원 위치 정보를 출력하는 동작을 증강 현실 디바이스가 수행하기 위하여, 증강 현실 디바이스에 의해 판독 가능한 명령어들(instructions)을 포함할 수 있다.
본 개시는, 다음의 자세한 설명과 그에 수반되는 도면들의 결합으로 쉽게 이해될 수 있으며, 참조 번호(reference numerals)들은 구조적 구성요소(structural elements)를 의미한다.
도 1은 본 개시의 일 실시예에 따른 증강 현실 디바이스가 손 관절의 3차원 위치 정보를 획득하는 동작을 설명하기 위한 개념도이다.
도 2는 본 개시의 일 실시예에 따른 증강 현실 디바이스의 동작 방법을 도시한 흐름도이다.
도 3은 본 개시의 일 실시예에 따른 증강 현실 디바이스의 구성 요소를 도시한 블록도이다.
도 4는 본 개시의 일 실시예에 따른 증강 현실 디바이스와 서버의 구성 요소를 도시한 블록도이다.
도 5는 본 개시의 일 실시예에 따른 룩 업 테이블을 도시한 도면이다.
도 6은 본 개시의 일 실시예에 따른 증강 현실 디바이스가 룩 업 테이블에 저장되는 손 관절들의 3차원 위치 좌표값을 획득하는 동작을 도시한 도면이다.
도 7은 본 개시의 일 실시예에 따른 증강 현실 디바이스가 룩 업 테이블에 저장되는 손 관절들의 2차원 위치 좌표값을 획득하는 동작을 도시한 도면이다.
도 8은 본 개시의 일 실시예에 따른 증강 현실 디바이스가 인공지능 모델을 이용하여 손 관절들의 3차원 위치 정보를 획득하는 동작을 도시한 도면이다.
도 9는 본 개시의 일 실시예에 따른 인공지능 모델의 학습(training) 방법을 설명하기 위한 도면이다.
도 10은 본 개시의 일 실시예에 따른 증강 현실 디바이스가 손 관절의 3차원 위치 정보의 정확도를 판단하는 방법을 도시한 흐름도이다.
도 11은 본 개시의 일 실시예에 따른 증강 현실 디바이스가 손 관절 인식 방법의 변경 필요 여부를 알리는 사용자 인터페이스(UI)를 도시한 도면이다.
도 12는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 손 관절의 3차원 위치 정보의 인식 오류를 나타내는 사용자 인터페이스(User Interface, UI)를 도시한 도면이다.
도 13은 본 개시의 일 실시예에 따른 증강 현실 디바이스가 이미지의 전체 영역 중 삼각측량법을 통해 손 관절의 3차원 위치 정보를 획득하는 영역의 크기를 결정하는 방법을 도시한 흐름도이다.
도 14는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 이미지의 전체 영역 중 손 관절의 3차원 위치 정보에 오류가 발생된 영역을 표시하는 사용자 인터페이스를 도시한 도면이다.
도 15는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 이미지의 전체 영역 중 삼각측량법을 통해 손 관절의 3차원 위치 정보를 획득하는 영역의 크기를 조정하는 동작을 설명하기 위한 도면이다.
본 명세서의 실시예들에서 사용되는 용어는 본 개시의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 실시예의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 명세서에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 명세서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다.
본 개시 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 본 명세서에 기재된 "...부", "...모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
본 개시에서 사용된 표현 "~하도록 구성된(또는 설정된)(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)를 의미할 수 있다.
또한, 본 개시에서 일 구성요소가 다른 구성요소와 "연결된다" 거나 "접속된다" 등으로 언급된 때에는, 상기 일 구성요소가 상기 다른 구성요소와 직접 연결되거나 또는 직접 접속될 수도 있지만, 특별히 반대되는 기재가 존재하지 않는 이상, 중간에 또 다른 구성요소를 매개하여 연결되거나 또는 접속될 수도 있다고 이해되어야 할 것이다.
본 개시에서, '증강 현실(Augmented Reality)'은 현실 세계(Real world)의 물리적 환경 공간 내에 가상 이미지를 함께 보여주거나 현실 객체와 가상 이미지를 함께 보여주는 것을 의미한다.
본 개시에서, '증강 현실 디바이스'는 증강 현실을 표현할 수 있는 장치로서, 예를 들어, 사용자가 얼굴 부위에 착용하는 안경 형상의 증강 현실 글래스(Augmented Reality Glasses) 뿐만 아니라, 머리에 착용하는 헤드 마운트 디스플레이 장치 (HMD : Head Mounted Display Apparatus)나, 증강 현실 헬멧(Augmented Reality Helmet) 등일 수 있다.
본 개시에서, '인공지능(Artificial Intelligence)'과 관련된 기능은 프로세서와 메모리를 통해 동작된다. 프로세서는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 CPU, AP, DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU, VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU와 같은 인공지능 전용 프로세서일 수 있다. 하나 또는 복수의 프로세서는, 메모리에 저장된 기 정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어한다. 또는, 하나 또는 복수의 프로세서가 인공지능 전용 프로세서인 경우, 인공지능 전용 프로세서는, 특정 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다.
기 정의된 동작 규칙 또는 인공지능 모델은 학습을 통해 만들어진 것을 특징으로 한다. 여기서, 학습을 통해 만들어진다는 것은, 기본 인공지능 모델이 학습 알고리즘에 의하여 다수의 학습 데이터들을 이용하여 학습됨으로써, 원하는 특성(또는, 목적)을 수행하도록 설정된 기 정의된 동작 규칙 또는 인공지능 모델이 만들어짐을 의미한다. 이러한 학습은 본 개시에 따른 인공지능이 수행되는 기기 자체에서 이루어질 수도 있고, 별도의 서버 및/또는 시스템을 통해 이루어 질 수도 있다. 학습 알고리즘의 예로는, 지도형 학습(supervised learning), 비지도형 학습(unsupervised learning), 준지도형 학습(semi-supervised learning) 또는 강화 학습(reinforcement learning)이 있으나, 전술한 예에 한정되지 않는다.
본 개시에서, '인공지능 모델'은, 복수의 신경망 레이어들로 구성될 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다. 복수의 신경망 레이어들이 갖고 있는 복수의 가중치들은 인공지능 모델의 학습 결과에 의해 최적화될 수 있다. 예를 들어, 학습 과정 동안 인공지능 모델에서 획득한 로스(loss) 값 또는 코스트(cost) 값이 감소 또는 최소화되도록 복수의 가중치들이 갱신될 수 있다. 인공 신경망 모델은 심층 신경망(DNN: Deep Neural Network)를 포함할 수 있으며, 예를 들어, CNN(Convolutional Neural Network), RNN(Recurrent Neural Network), RBM(Restricted Boltzmann Machine), DBN(Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 또는 심층 Q-네트워크(Deep Q-Networks) 등이 있으나, 전술한 예에 한정되지 않는다.
본 개시에서, '비전 인식'은 이미지를 인공지능 모델에 입력하고, 인공지능 모델을 이용하는 추론을 통해 입력된 이미지로부터 객체를 인식(detection)하거나, 객체를 특정 카테고리로 분류(classification)하거나, 또는 객체를 세그멘테이션(segmentation)하는 이미지 신호 처리(image signal processing)를 의미한다. 본 개시의 일 실시예에서, 비전 인식은 인공지능 모델을 이용하여, 카메라를 통해 촬영된 이미지로부터 사용자의 손을 인식하고, 손에 포함된 복수의 특징점(예를 들어, 관절들)을 위치 정보를 획득하는 이미지 프로세싱을 의미할 수 있다.
본 개시에서, '관절(joint)'은 뼈와 뼈가 서로 연결되는 인체의 부분으로서, 손가락, 손목, 손바닥 등 손 뿐만 아니라, 목, 팔, 어깨 등 상체에 포함되는 하나 이상의 부위를 나타낸다.
아래에서는 첨부한 도면을 참고하여 본 개시의 실시예에 대하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
이하에서는 도면을 참조하여 본 개시의 실시예들을 상세하게 설명한다.
도 1은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 손 관절의 3차원 위치 정보를 획득하는 동작을 설명하기 위한 개념도이다.
증강 현실 디바이스(100)는 증강 현실을 표현할 수 있는 장치로서, 예를 들어, 사용자가 얼굴 부위에 착용하는 안경 형상의 증강 현실 글래스(Augmented Reality Glasses)로 구성될 수 있다. 도 1에는 증강 현실 디바이스(100)가 증강 현실 글래스로 도시되었으나, 이에 한정되는 것은 아니다. 예를 들어, 증강 현실 디바이스(100)는 머리에 착용하는 헤드 마운트 디스플레이 장치(HMD : Head Mounted Display Apparatus)나, 증강 현실 헬멧(Augmented Reality Helmet) 등으로 구현될 수도 있다.
도 1을 참조하면, 증강 현실 디바이스(100)는 제1 카메라(112) 및 제2 카메라(114)를 포함할 수 있다. 도 1에서는 증강 현실 디바이스(100)의 기능 및/또는 동작을 설명하기 위한 최소한의 구성 요소만이 도시되어 있고, 증강 현실 디바이스(100)에 포함된 구성 요소가 도 1에 도시된 바와 같이 한정되는 것은 아니다. 증강 현실 디바이스(100)의 구성 요소에 대해서는 도 3 및 도 4에서 상세하게 설명하기로 한다.
본 개시의 일 실시예에서, 제1 카메라(112)는 사용자가 증강 현실 디바이스(100)를 머리에 장착하는 경우, 사용자의 좌안에 대응되어 현실 객체를 촬영하도록 구성되는 카메라이고, 제2 카메라(114)는 사용자의 우안에 대응되어 현실 객체를 촬영하도록 구성되는 카메라이다. 도 1에서는 증강 현실 디바이스(100)가 2개의 카메라를 포함하는 것으로 도시되었으나, 본 개시가 이에 한정되는 것은 아니다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 3개 이상의 복수의 카메라를 포함할 수도 있다.
제1 카메라(112)와 제2 카메라(114)는 증강 현실 디바이스(100)의 크기, 형태, 또는 설계에 따른 배치 구조에 따라 상대적인 위치 관계를 가질 수 있다. 카메라 간의 위치 관계(10)는, 증강 현실 디바이스(100)의 서로 다른 위치에 배치된 제1 카메라(112)와 제2 카메라(114) 간의 위치 및 방향에 관한 정보를 포함할 수 있다. 본 개시의 일 실시예에서, 카메라 간의 위치 관계(10)는 R로 표시되는 회전 행렬(rotation matrix) 및 t로 표시되는 변환 벡터(translation vector)를 포함할 수 있다.
왜곡 모델 파라미터(Di)(20)는 카메라의 렌즈의 물리적 특성으로 인하여 발생되는 이미지의 왜곡 현상을 보정하기 위한 파라미터이다. 카메라를 이용하여 객체를 촬영하는 경우, 렌즈의 물리적인 특성 및 객체의 위치에 따라 실제 객체의 위치가 아닌 다른 위치에 광이 투영되어 이미지에 왜곡이 발생될 수 있다. 렌즈의 물리적인 특성에 따라 이미지의 왜곡 모델이 정의될 수 있다. 왜곡 모델은 예를 들어, 배럴 왜곡 모델(Barrel Distortion), 브라운 왜곡 모델(Brown distortion model), 또는 핀 쿠션 왜곡(pincushion distortion) 등이 있으나, 이에 한정되는 것은 아니다. 왜곡 모델 파라미터(20)는 카메라를 이용하여 이미지를 촬영한 이후 렌즈의 물리적 특성에 따라 정의된 왜곡 모델에 기초하여 이미지를 보정하기 위한 파라미터들을 포함할 수 있다. 왜곡 모델 파라미터(20)는 카메라를 이용하여 특정 패턴을 갖는 객체를 촬영하고, 촬영된 이미지에 포함된 객체의 패턴을 캘리브레이션하는 과정을 통해 계산될 수 있다. 본 개시의 일 실시예에서, 제1 카메라(112) 및 제2 카메라(114)에 포함된 렌즈의 물리적 특성에 따라 왜곡 모델이 정의될 수 있다. 제1 카메라(112) 및 제2 카메라(114) 각각에 대하여 정의된 왜곡 모델에 따라 왜곡 모델 파라미터(20)가 미리 계산되어 있을 수 있다.
증강 현실 디바이스(100)는 제1 카메라(112) 및 제2 카메라(114)를 이용하여 획득한 이미지로부터 사용자의 손 관절을 인식하고, 룩 업 테이블(200)로부터 인식된 손 관절에 관한 3차원 위치 정보를 획득할 수 있다. 이하에서는, 도 1 및 도 2를 함께 참조하여 증강 현실 디바이스(100)의 기능 및/또는 동작에 대하여 설명하기로 한다.
도 2는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)의 동작 방법을 도시한 흐름도이다.
도 2를 참조하면, 단계 S210에서 증강 현실 디바이스(100)는 복수의 카메라를 이용하여 사용자의 손을 촬영함으로써 획득된 복수의 이미지로부터 손 관절을 인식한다. 도 1을 함께 참조하면, 증강 현실 디바이스(100)는 제1 카메라(112)를 이용하여 현실 공간에 위치하는 사용자의 손을 촬영함으로써 제1 이미지(31)를 획득하고, 제2 카메라(114)를 이용하여 사용자의 손을 촬영함으로써 제2 이미지(32)를 획득할 수 있다. 증강 현실 디바이스(100)는 제1 이미지(31) 및 제2 이미지(32) 각각으로부터 손 관절의 특징점을 인식할 수 있다. 본 개시에서, '관절(joint)'은 손에 포함되는 복수의 뼈가 서로 연결되는 부분으로서, 손가락, 손 등, 또는 손바닥에 포함되는 하나 이상의 부위를 나타낸다. 본 개시에서, '특징점(feature point)'은 이미지 내에서 주위 배경과 구분되거나 식별이 용이한 지점을 의미할 수 있다. 손 관절의 특징점은 예를 들어, 손목 관절의 특징점, 손바닥 관절의 특징점, 및 손가락(엄지, 검지, 중지, 약지, 소지)의 특징점 중 적어도 하나를 포함할 수 있다.
본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 인공지능 모델(Artificial Intelligent model, AI model)을 이용하여 제1 이미지(31) 및 제2 이미지(32)로부터 손 관절의 특징점을 인식할 수 있다. '인공지능 모델'은 카메라로부터 입력받은 이미지 데이터로부터 객체(예를 들어, 사용자의 손)를 인식하고, 객체의 특징점을 인식하도록 학습된(trained) 심층 신경망 모델을 포함할 수 있다. 심층 신경망 모델은 예를 들어, 컨볼루션 신경망 모델(Convolutional Neural Network; CNN), 순환 신경망 모델(Recurrent Neural Network; RNN), RBM(Restricted Boltzmann Machine), DBN(Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 및 심층 Q-네트워크 (Deep Q-Networks) 중 적어도 하나를 포함할 수 있다.
그러나, 본 개시에서 증강 현실 디바이스(100)가 인공지능 모델을 이용하여 제1 이미지(31) 및 제2 이미지(32)로부터 손 관절의 특징점을 인식하는 것으로 한정되지는 않는다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 공지의 이미지 프로세싱(image processing) 기술을 이용하여 제1 이미지(31) 및 제2 이미지(32) 각각으로부터 사용자의 손을 인식하고, 손에 포함된 관절들에 관한 특징점을 인식할 수 있다.
도 2의 단계 S220에서, 증강 현실 디바이스(100)는 인식된 손 관절의 특징점에 관한 2차원 관절 좌표값을 획득한다. 도 1을 함께 참조하면, 증강 현실 디바이스(100)는 제1 이미지(31)로부터 인식된 손 관절의 2차원 관절 좌표값(P1_n)을 획득할 수 있다. 2차원 관절 좌표값(P1_n)은 제1 이미지(31)로부터 인식된 손 관절의 특징점의 2차원 위치 좌표값(x1_n, y1_n)일 수 있다. 마찬가지로, 증강 현실 디바이스(100)는 제2 이미지(32)로부터 인식된 손 관절의 2차원 관절 좌표값(P2_n)을 획득할 수 있다. 2차원 관절 좌표값(P2_n)은 제2 이미지(32)로부터 인식된 손 관절의 특징점의 2차원 위치 좌표값(x2_n, y2_n)일 수 있다.
도 2의 단계 S230에서, 증강 현실 디바이스(100)는 룩 업 테이블(look-up table)로부터 복수의 카메라의 렌즈의 왜곡 모델 파라미터, 복수의 카메라 간 위치 관계, 및 획득된 2차원 관절 좌표값에 대응되는 3차원 위치 좌표값을 획득한다. 룩 업 테이블은 증강 현실 디바이스(100)의 메모리(130, 도 3 참조) 내에 저장되거나, 서버(300, 도 4 참조) 또는 외부 디바이스에 저장되어 있을 수 있다. 도 1을 함께 참조하면, 룩 업 테이블(200)에는 복수의 왜곡 모델 파라미터(D1 내지 Dn), 복수의 카메라 위치 관계 파라미터([R1|t1] 내지 [Rn|tn]), 복수의 제1 카메라 2차원 위치 좌표값(PL_1 내지 PL_n), 복수의 제2 카메라 2차원 위치 좌표값(PR_1 내지 PR_n), 및 복수의 3차원 위치 좌표값(P3D_1 내지 P3D_n)을 포함될 수 있다. 룩 업 테이블(200)에 포함된 복수의 3차원 위치 좌표값(P3D_1 내지 P3D_n)은 인체의 근골격계의 해부학적 제약에 따른 상체 관절의 가동 각도 범위(range of movable angle) 내에서 손 관절의 임의의 3차원 위치를 나타내는 좌표값으로서, 미리 획득된 좌표값일 수 있다. 복수의 왜곡 모델 파라미터(D1 내지 Dn)는 임의의 왜곡 모델에 의한 이미지의 왜곡을 보정하기 위하여 수학적 모델링을 통해 계산된 파라미터들을 포함할 수 있다.
복수의 카메라 위치 관계 파라미터([R1|t1] 내지 [Rn|tn])는 복수의 회전 행렬(rotation matrix, R) 및 복수의 변환 벡터(translation vector, t)를 포함할 수 있다. 복수의 3차원 위치 좌표값(P3D_1 내지 P3D_n)은 복수의 왜곡 모델 파라미터(D1 내지 Dn) 및 복수의 카메라 위치 관계 파라미터([R1|t1] 내지 [Rn|tn])에 따라 복수의 제1 카메라 2차원 위치 좌표값(PL_1 내지 PL_n) 및 복수의 제2 카메라 2차원 위치 좌표값(PR_1 내지 PR_n)에 각각 대응될 수 있다. 예를 들어, 제1 3차원 위치 좌표값(P3D_1)은 제1 왜곡 모델 파라미터(D1) 및 제1 카메라 위치 관계 파라미터(R1|t1)에 따라 제1 카메라 2차원 위치 좌표값(PL_1) 및 제2 카메라 2차원 위치 좌표값(PR_1)에 대응되고, 제n 3차원 위치 좌표값(P3D_n)은 제n 왜곡 모델 파라미터(Dn) 및 제n 카메라 위치 관계 파라미터(Rn|tn)에 따라 제1 카메라 2차원 위치 좌표값(PL_n) 및 제2 카메라 2차원 위치 좌표값(PR_n)에 대응될 수 있다. 본 개시의 일 실시예에서, 룩 업 테이블(200)에 포함된 복수의 제1 카메라 2차원 위치 좌표값(PL_1 내지 PL_n) 및 복수의 제2 카메라 2차원 위치 좌표값(PR_1 내지 PR_n)은 복수의 카메라 위치 관계 파라미터([R1|t1] 내지 [Rn|tn]) 및 복수의 왜곡 모델 파라미터(D1 내지 Dn)을 이용하여 카메라에 의한 왜곡을 반영하도록 복수의 3차원 위치 좌표값(P3D_1 내지 P3D_n)을 시뮬레이션함으로써 획득될 수 있다.
증강 현실 디바이스(100)는 룩 업 테이블(200)에 액세스(access)하여, 룩 업 테이블(200)로부터 제1 카메라(112)와 제2 카메라(114) 간의 위치 관계([R|t])(10), 제1 카메라(110) 및 제2 카메라(114)의 왜곡 모델 파라미터(Di)(20), 제1 이미지(31)로부터 획득된 2차원 관절 좌표값(P1_n) 및 제2 이미지(32)로부터 획득된 2차원 관절 좌표값(P2_n)과 동일 또는 유사한 왜곡 모델 파라미터, 카메라 위치 관계 파라미터, 제1 카메라 2차원 위치 좌표값, 및 제2 카메라 2차원 위치 좌표값을 검색(search)할 수 있다. 증강 현실 디바이스(100)는 검색된 왜곡 모델 파라미터, 카메라 위치 관계 파라미터, 제1 카메라 2차원 위치 좌표값, 및 제2 카메라 2차원 위치 좌표값에 대응되는 3차원 위치 좌표값을 룩 업 테이블(200)로부터 획득할 수 있다. 예를 들어, 룩 업 테이블(200)의 검색 결과, 제1 카메라(112) 및 제2 카메라(114) 간의 위치 관계(10)와 동일 또는 유사한 제1 카메라 위치 관계 파라미터([R1|t1])가 검색되고, 제1 카메라(110) 및 제2 카메라(114)의 왜곡 모델 파라미터(20)와 동일 또는 유사한 제1 왜곡 모델 파라미터(D1)가 검색되고, 제1 이미지(31)로부터 획득된 2차원 관절 좌표값(P1_n)과 동일 또는 유사한 제1 카메라 2차원 위치 좌표값(PL_1)이 검색되며, 제2 이미지(32)로부터 획득된 2차원 관절 좌표값(P2_n)과 동일 또는 유사한 제2 카메라 2차원 위치 좌표값(PR_1)이 검색된 경우, 증강 현실 디바이스(100)는 검색된 제1 카메라 위치 관계 파라미터([R1|t1]), 제1 왜곡 모델 파라미터(D1, 제1 카메라 2차원 위치 좌표값(PL_1), 및 제2 카메라 2차원 위치 좌표값(PR_1)에 대응되는 제1 3차원 위치 좌표값(P3D_1)을 룩 업 테이블(200)로부터 획득할 수 있다.
도 2의 단계 S240에서, 증강 현실 디바이스(100)는 획득된 3차원 위치 좌표값에 기초하여 손 관절의 3차원 위치 정보를 출력한다. 도 1을 함께 참조하면, 증강 현실 디바이스(100)는 룩 업 테이블(200)로부터 획득한 3차원 위치 좌표값(예를 들어, 제1 3차원 위치 좌표값(P3D_1))을 손 관절의 3차원 위치 정보(40)로서 출력할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 손 관절의 3차원 위치 정보(40)를 디스플레이부(140, 도 3 참조)를 통해 디스플레이할 수 있다.
증강 현실 디바이스는 사용자의 양 손의 자유로움을 보장하기 위하여 별도의 외부 입력 장치를 사용하지 않고, 증강 현실 디바이스에 탑재되는 카메라를 이용하여 촬영된 이미지로부터 사용자의 손을 인식하는 비젼 기반 핸드 트래킹(Vision-based Hand tracking) 기술을 사용한다. 증강 현실 디바이스는 두 개 이상의 카메라를 포함하는 스테레오 카메라를 이용하여 시야(Field of View)가 겹치는 영역에서 획득된 복수의 2차원 이미지 및 카메라 간의 위치 관계에 기초하여 삼각측량법(triangulation)을 통해 손에 포함된 관절들의 3차원 위치 정보를 획득할 수 있다. 일반적인 RGB 카메라의 경우, 렌즈 특성에 의해 2차원 이미지가 왜곡되며, 왜곡된 이미지를 보정하는 과정에서 오차가 발생될 수 있다. 2차원 이미지에서 발생되는 오차로 인하여, 삼각측량법을 통해 획득된 3차원 위치 정보에는 오차가 발생되고, 3차원 위치 정보의 정확도가 떨어질 수 있다. 특히, 왜곡된 이미지에서 발생되는 오차는 이미지의 중앙 부분 보다 가장자리로 갈수록 커지는 경향이 있다.
본 개시는 복수의 카메라를 이용하여 사용자의 손을 촬영함으로써 획득된 복수의 2차원 이미지로부터 손에 포함된 관절들의 3차원 위치 정보를 획득하는 증강 현실 디바이스 및 그 동작 방법을 제공하는 것을 목적으로 한다.
도 1 및 도 2에 도시된 실시예에 따른 증강 현실 디바이스(100)는 종래 기술과는 달리 왜곡 보정 및 삼각측량법을 수행하는 방식을 사용하지 않고, 카메라 간의 위치 관계 및 렌즈의 물리적 특성으로 인한 왜곡을 반영하는 시뮬레이션을 통해 미리 획득된 룩 업 테이블(200)로부터 손 관절의 2차원 관절 좌표값(P1_n, P2_n)에 대응되는 3차원 위치 좌표값(P3D)을 획득하고, 획득된 3차원 위치 좌표값(P3D)을 손 관절의 3차원 위치 정보로서 출력하는 바, 왜곡을 보정하는 과정에서 발생되는 오차를 미연에 방지하고, 손 관절의 3차원 위치 정보의 정확도를 향상시킬 수 있다. 따라서, 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)는 손 관절의 3차원 위치 정보를 이용하는 비젼 기반 핸드 트래킹 기술에서, 손의 포즈 또는 제스처의 인식 정확도 및 안정성을 향상시키는 기술적 효과를 제공한다.
또한, 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)는 룩 업 테이블(200)의 검색을 통해 손 관절의 3차원 위치 정보를 획득하는 바, 왜곡 보정 과정과 삼각측량법을 통해 손 관절의 3차원 위치 정보를 획득하는 기존 방식 대비 핸드 트래킹(hand tracking) 과정을 간소화할 수 있다. 따라서, 본 개시의 증강 현실 디바이스(100)는 핸드 트래킹의 처리 속도가 빠르고, 실시간 처리가 가능하다는 장점이 있다.
본 개시의 일 실시예에 따른 룩 업 테이블(200)은 임의로 생성된 다수의 왜곡 모델 파라미터(D1 내지 Dn)와 카메라 위치의 기하학적 관계에 관한 다수의 카메라 위치 관계 파라미터(([R1|t1] 내지 [Rn|tn])에 따라 시뮬레이션된 복수의 3차원 위치 좌표값(P3D_1 내지 P3D_n)이 포함되어 있는 바, 각각의 기기마다 룩 업 테이블(200)을 변경하거나 튜닝할 필요 없이, 범용적으로 적용 가능한 장점이 있다.
도 3은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)의 구성 요소를 도시한 블록도이다.
도 3을 참조하면, 증강 현실 디바이스(100)는 제1 카메라(112), 제2 카메라(114), 프로세서(120), 메모리(130), 및 디스플레이부(140)를 포함할 수 있다. 제1 카메라(112), 제2 카메라(114), 프로세서(120), 메모리(130), 및 디스플레이부(140)는 각각 전기적 및/또는 물리적으로 서로 연결될 수 있다. 도 3에는 증강 현실 디바이스(100)의 동작을 설명하기 위한 필수적 구성 요소만이 도시되었고, 증강 현실 디바이스(100)가 포함하는 구성 요소가 도 3에 도시된 바와 같이 한정되는 것은 아니다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 서버(300, 도 4 참조) 또는 외부 디바이스와 데이터 통신을 수행하기 위한 통신 인터페이스(150, 도 4 참조)를 더 포함할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 디스플레이부(140)를 포함하지 않을 수도 있다.
본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 휴대용 장치로 구현되고, 이 경우 증강 현실 디바이스(100)는 제1 카메라(112), 제2 카메라(114), 프로세서(120), 디스플레이부(140), 및 통신 인터페이스(150)에 전원을 공급하는 배터리를 더 포함할 수 있다.
제1 카메라(112) 및 제2 카메라(114)는 현실 공간의 객체를 촬영함으로써, 객체에 관한 이미지를 획득하도록 구성된다. 본 개시의 일 실시예에서, 제1 카메라(112) 및 제2 카메라(114)는 사용자의 손을 촬영하여, 손을 포함하는 2차원 이미지를 획득할 수 있다. 제1 카메라(112) 및 제2 카메라(114)는 시야(Field of View)가 겹치는 영역에서 획득된 2차원 이미지와 카메라 간의 위치 관계에 기초하여 삼각측량법(triangulation)을 통해 객체의 3차원 위치 좌표값을 획득하는 스테레오 카메라를 구성할 수 있다. 본 개시의 일 실시예에서, 제1 카메라(112) 및 제2 카메라(114)는 증강 현실 디바이스(100)에 장착될 수 있도록 소형 폼 팩터(form factor)로 구현되고, 저전력을 소비하는 경량 RGB 카메라일 수 있다. 그러나, 이에 한정되는 것은 아니고, 본 개시의 일 실시예에서 제1 카메라(112) 및 제2 카메라(114)는 깊이 추정 기능을 포함하는 RGB-depth 카메라, 스테레오 어안 카메라, 그레이스케일 카메라, 또는 적외선 카메라 등 공지의 모든 종류의 카메라로 구현될 수 있다.
제1 카메라(112) 및 제2 카메라(114)는 렌즈 모듈, 이미지 센서, 및 이미지 프로세싱 모듈을 포함할 수 있다. 제1 카메라(112) 및 제2 카메라(114)는 이미지 센서(예를 들어, CMOS 또는 CCD)에 의해 사용자의 손에 관한 정지 이미지(still image) 또는 동영상(video)을 획득할 수 있다. 동영상은 제1 카메라(112) 및 제2 카메라(114)를 통해 사용자의 손을 포함하는 현실 공간의 객체를 촬영함으로써 실시간으로 획득되는 복수의 이미지 프레임을 포함할 수 있다. 이미지 프로세싱 모듈은 이미지 센서를 통해 획득된 단일 이미지 프레임으로 구성된 정지 이미지 또는 복수의 이미지 프레임으로 구성된 동영상 데이터를 인코딩하여 프로세서(120)에 전달할 수 있다.
본 개시의 모든 도면에서 증강 현실 디바이스(100)는 제1 카메라(112) 및 제2 카메라(114)를 포함하는 2개의 카메라를 포함하는 것으로 도시되었으나, 이에 한정되는 것은 아니다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 3개 이상의 복수의 카메라를 포함할 수도 있다.
프로세서(120)는 메모리(130)에 저장된 프로그램의 하나 이상의 명령어들(instructions)을 실행할 수 있다. 프로세서(120)는 산술, 로직 및 입출력 연산과 이미지 프로세싱을 수행하는 하드웨어 구성 요소로 구성될 수 있다. 도 3에는 프로세서(120)가 하나의 엘리먼트로 도시되었으나, 이에 한정되는 것은 아니다. 본 개시의 일 실시예에서, 프로세서(120)는 하나 이상의 복수 개의 엘리먼트들로 구성될 수 있다. 프로세서(120)는 CPU(Central Processing Unit), AP(Application Processor), DSP(Digital Signal Processor) 등과 같은 범용 프로세서, GPU(Graphic Processing Unit), VPU(Vision Processing Unit)와 같은 그래픽 전용 프로세서 또는 NPU(Neural Processing Unit)와 같은 인공지능 전용 프로세서일 수 있다. 프로세서(120)는, 기 정의된 동작 규칙 또는 인공지능 모델에 따라, 입력 데이터를 처리하도록 제어할 수 있다. 또는, 프로세서(120)가 인공지능 전용 프로세서인 경우, 인공지능 전용 프로세서는 특정 인공지능 모델의 처리에 특화된 하드웨어 구조로 설계될 수 있다.
메모리(130)는 예를 들어, 플래시 메모리 타입(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), 또는 광 디스크 중 적어도 하나의 타입의 저장매체로 구성될 수 있다.
메모리(130)에는 증강 현실 디바이스(100)가 제1 카메라(112) 및 제2 카메라(114)에 의해 획득된 이미지로부터 사용자의 손의 관절들의 3차원 위치 정보를 획득하는 기능 및/또는 동작들과 관련된 명령어들(instructions)이 저장될 수 있다. 본 개시의 일 실시예에서, 메모리(130)에는 프로세서(120)가 판독할 수 있는 명령어들, 알고리즘(algorithm), 데이터 구조, 프로그램 코드(program code), 및 애플리케이션 프로그램(application program) 중 적어도 하나가 저장될 수 있다. 메모리(130)에 저장되는 명령어들, 알고리즘, 데이터 구조, 및 프로그램 코드는 예를 들어, C, C++, 자바(Java), 어셈블러(assembler) 등과 같은 프로그래밍 또는 스크립팅 언어로 구현될 수 있다.
이하의 실시예에서, 프로세서(120)는 메모리(130)에 저장된 명령어들 또는 프로그램 코드들을 실행함으로써 구현될 수 있다.
프로세서(120)는 제1 카메라(112)로부터 사용자의 손을 촬영한 제1 이미지를 획득하고, 제2 카메라(114)로부터 사용자의 손을 촬영한 제2 이미지를 획득할 수 있다. 본 개시의 일 실시예에서, 프로세서(120)는 제1 카메라(112) 및 제2 카메라(114)에 의해 실시간으로 촬영된 복수의 이미지 프레임으로 구성된 동영상 데이터를 획득할 수 있다.
프로세서(120)는 제1 이미지 및 제2 이미지 각각으로부터 손 관절을 인식하고, 손 관절의 특징점에 관한 2차원 관절 좌표값을 획득할 수 있다. 본 개시의 일 실시예에서, 프로세서(120)는 인공지능 모델(Artificial Intelligent model, AI model)을 이용하여 제1 이미지 및 제2 이미지로부터 손 관절의 특징점을 인식할 수 있다. '인공지능 모델'은 입력받은 이미지 데이터로부터 손 관절의 특징점을 인식하도록 학습된 심층 신경망 모델을 포함할 수 있다. 심층 신경망 모델은 예를 들어, 컨볼루션 신경망 모델(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) 중 적어도 하나를 포함할 수 있다. 본 개시의 일 실시예에서, 프로세서(120)는 공지의 이미지 프로세싱(image processing) 기술을 이용하여 제1 이미지 및 제2 이미지 각각으로부터 사용자의 손을 인식하고, 손에 포함된 관절들에 관한 특징점을 인식할 수 있다. 프로세서(120)는 인식된 손 관절의 특징점의 2차원 관절 좌표값을 획득할 수 있다. 2차원 관절 좌표값은 2차원 이미지 내에서 x축 및 y축의 좌표값 정보를 포함할 수 있다.
프로세서(120)는 메모리(130)에 기 저장된 룩 업 테이블(200)로부터 제1 카메라(112) 및 제2 카메라(114)의 렌즈 모듈의 물리적 특성에 따라 계산된 왜곡 모델 파라미터, 제1 카메라(112)와 제2 카메라(114) 간의 위치 관계, 및 제1 이미지 및 제2 이미지로부터 획득된 손 관절 특징점의 2차원 관절 좌표값에 대응되는 3차원 위치 좌표값을 획득할 수 있다. 도 3에 도시된 실시예에서, 룩 업 테이블(200)은 증강 현실 디바이스(100)의 메모리(130)의 저장 공간 내에 온 디바이스(on-device) 방식으로 저장될 수 있다. 룩 업 테이블(look-up table, LUT)(200)은 복수의 왜곡 모델 파라미터, 복수의 카메라 위치 관계 파라미터, 복수의 제1 카메라 2차원 위치 좌표값, 복수의 제2 카메라 2차원 위치 좌표값, 및 복수의 3차원 위치 좌표값에 관한 데이터를 포함할 수 있다. 복수의 3차원 위치 좌표값은 인체의 근골격계의 해부학적 제약에 따른 상체 관절의 가동 각도 범위(range of movable angle) 내에서 손 관절의 임의의 3차원 위치를 나타내는 좌표값으로서, 미리 획득된 좌표값일 수 있다. 복수의 3차원 위치 좌표값은, 복수의 왜곡 모델 파라미터 및 복수의 카메라 위치 관계 파라미터에 따라 복수의 제1 카메라 2차원 위치 좌표값 및 복수의 제2 카메라 2차원 위치 좌표값에 각각 대응될 수 있다. 본 개시의 일 실시예에서, 룩 업 테이블(200)에 포함된 복수의 제1 카메라 2차원 위치 좌표값 및 복수의 제2 카메라 2차원 위치 좌표값은 복수의 카메라 위치 관계 파라미터 및 복수의 왜곡 모델 파라미터를 이용하여 카메라에 의한 왜곡을 반영하도록 복수의 3차원 위치 좌표값을 시뮬레이션함으로써 획득될 수 있다. 룩 업 테이블(200)에 대해서는 도 5에서 상세하게 설명하기로 한다.
도 3에서는, 룩 업 테이블(200)이 메모리(130) 내에 저장되어 있는 것으로 도시되고, 설명되었으나, 본 개시가 상기 실시예로 한정되는 것은 아니다. 본 개시의 일 실시예에서, 룩 업 테이블(200)은 서버(300, 도 4 참조) 또는 외부 디바이스에 저장되어 있을 수 있다. 룩 업 테이블(200)이 서버(300)에 저장되어 있는 실시예에 대해서는 도 4에서 상세하게 설명하기로 한다.
프로세서(120)는 룩 업 테이블(200)에 액세스(access)하여, 룩 업 테이블(200)로부터 제1 카메라(112)와 제2 카메라(114) 간의 위치 관계, 제1 카메라(112) 및 제2 카메라(114)의 왜곡 모델 파라미터, 제1 이미지 및 제2 이미지로부터 각각 획득된 2차원 관절 좌표값과 동일 또는 유사한 왜곡 모델 파라미터, 카메라 위치 관계 파라미터, 제1 카메라 2차원 위치 좌표값, 및 제2 카메라 2차원 위치 좌표값을 검색(search)할 수 있다. 프로세서(120)는 검색된 왜곡 모델 파라미터, 카메라 위치 관계 파라미터, 제1 카메라 2차원 위치 좌표값, 및 제2 카메라 2차원 위치 좌표값에 대응되는 3차원 위치 좌표값을 룩 업 테이블(200)로부터 획득할 수 있다.
프로세서(120)는 룩 업 테이블(200)로부터 획득된 3차원 위치 좌표값에 기초하여 손 관절의 3차원 위치 정보를 출력할 수 있다. 본 개시의 일 실시예에서, 프로세서(120)는 손 관절의 3차원 위치 정보를 디스플레이하도록 디스플레이부(140)를 제어할 수 있다.
본 개시의 일 실시예에서, 프로세서(120)는 룩 업 테이블(200)에 포함된 정보들을 이용하여 학습된(trained) 인공지능 모델(800, 도 8 참조)에 제1 카메라(112) 및 제2 카메라(114)의 렌즈 모듈의 왜곡 모델 파라미터, 제1 카메라(112)와 제2 카메라(114) 간의 위치 관계, 제1 이미지 및 제2 이미지로부터 각각 획득된 2차원 관절 좌표값을 입력하고, 인공지능 모델(800)을 이용하는 추론을 통해 3차원 위치 좌표값을 획득할 수 있다. 프로세서(120)가 인공지능 모델(800)을 이용하여 3차원 위치 좌표값을 획득하는 구체적인 실시예에 대해서는 도 8에서 상세하게 설명하기로 한다.
본 개시의 일 실시예에서, 프로세서(120)는 제1 카메라(112) 및 제2 카메라(114)의 왜곡 모델 파라미터 및 제1 카메라(112)와 제2 카메라(114) 간의 위치 관계에 기초하여 2차원 관절 좌표값의 왜곡을 보정하고, 제1 이미지 및 제2 이미지의 방향에 관한 조정(rectification)을 수행할 수 있다. 프로세서(120)는 왜곡 보정과 조정 결과 보정된 2차원 관절 좌표값 및 제1 카메라(112)와 제2 카메라(114) 간의 위치 관계를 이용하여 삼각측량법(triangulation)을 통해 손 관절의 제1 3차원 위치 좌표값을 산출할 수 있다. 프로세서(120)는 산출된 제1 3차원 위치 좌표값과 룩 업 테이블(200)로부터 획득된 제2 3차원 위치 좌표값을 비교하여, 손 관절의 3차원 위치 정보의 오류(error)를 검출할 수 있다. 본 개시의 일 실시예에서, 프로세서(120)는 오류가 검출된 손 관절의 위치를 오류가 검출되지 않는 위치와 구별되는 컬러로 디스플레이하도록 디스플레이부(140)를 제어할 수 있다. 프로세서(120)가 손 관절의 3차원 위치 정보의 오류를 검출하고, 오류가 검출된 영역을 표시하는 구체적인 실시예에 대해서는 도 10 및 도 11에서 상세하게 설명하기로 한다.
본 개시의 일 실시예에서, 프로세서(120)는 스테레오 이미지의 전체 영역 중 삼각측량법을 통해 제1 3차원 위치 좌표값이 획득되는 제1 영역과 룩 업 테이블(200)로부터 제2 3차원 위치 좌표값이 획득되는 제2 영역을 구별되는 컬러로 디스플레이하도록 디스플레이부(140)를 제어할 수 있다. 본 개시의 일 실시예에서, 프로세서(120)는 제1 영역의 크기를 조절하는 사용자의 손의 움직임을 감지하고, 감지된 사용자의 손의 움직임에 기초하여 제1 영역의 가로축 및 세로축의 크기를 변경할 수 있다. 프로세서(120)가 제1 영역과 제2 영역을 구별되는 컬러로 디스플레이하고, 사용자의 손의 움직임에 기초하여 제1 영역의 크기를 조정하는 구체적인 실시예에 대해서는 도 13 내지 도 15에서 상세하게 설명하기로 한다.
디스플레이부(140)는 제1 카메라(112) 및 제2 카메라(114)를 통해 촬영하여 획득된 스테레오 이미지를 디스플레이하도록 구성된다. 전술한 바와 같이, 디스플레이부(140)는 프로세서(130)의 제어에 의해 이미지 상에서 손 관절의 특징점의 3차원 위치 정보를 나타내는 그래픽 사용자 인터페이스(Graphic User Interface, GUI)를 디스플레이할 수 있다. 본 개시의 일 실시예에서, 디스플레이부(140)는 인식된 사용자의 손 주변의 일정 영역에 바운딩 박스(bounding box)를 표시할 수 있다.
디스플레이부(140)는 예를 들어, 액정 디스플레이(liquid crystal display), 박막 트랜지스터 액정 디스플레이(thin film transistor-liquid crystal display), 유기 발광 다이오드(organic light-emitting diode), 플렉시블 디스플레이(flexible display), 3차원 디스플레이(3D display), 전기영동 디스플레이(electrophoretic display) 중에서 적어도 하나로 구성될 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)가 증강 현실 글래스로 구성되는 경우, 디스플레이부(140)는 가상 이미지 또는 그래픽 사용자 인터페이스(예를 들어, 특징점 GUI 또는 바운딩 박스 GUI)를 투사하는 광학 엔진을 더 포함할 수 있다. 광학 엔진은, 가상 이미지 또는 그래픽 사용자 인터페이스의 광을 생성하도록 구성되고, 화상 패널, 조명 광학계, 투사 광학계 등을 포함하는 프로젝터(projector)로 구성될 수 있다. 광학 엔진은 예를 들어, 증강 현실 글래스의 프레임 또는 안경 다리들에 배치될 수 있다.
도 4는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)와 서버(300)의 구성 요소를 도시한 블록도이다.
도 4를 참조하면, 증강 현실 디바이스(100)는 서버(300)와 데이터 통신을 수행하는 통신 인터페이스(150)를 더 포함할 수 있다. 증강 현실 디바이스(100)에 포함된 제1 카메라(112), 제2 카메라(114), 및 프로세서(120)는 도 3에 도시된 제1 카메라(112), 제2 카메라(114), 및 프로세서(120)와 각각 동일하므로, 중복되는 설명은 생략한다.
통신 인터페이스(150)는 유선 또는 무선 통신 네트워크를 통해 서버(300)와 데이터를 송수신하며, 데이터를 처리할 수 있다. 통신 인터페이스(150)는 예를 들어, 유선 랜, 무선 랜(Wireless LAN), 와이파이(Wi-Fi), 블루투스(Bluetooth), 지그비(zigbee), WFD(Wi-Fi Direct), 적외선 통신(IrDA, infrared Data Association), BLE(Bluetooth Low Energy), NFC(Near Field Communication), 와이브로(Wireless Broadband Internet, Wibro), 와이맥스(World Interoperability for Microwave Access, WiMAX), SWAP(Shared Wireless Access Protocol), 와이기그(Wireless Gigabit Allicance, WiGig) 및 RF 통신을 포함하는 데이터 통신 방식 중 적어도 하나를 이용하여 서버(300)와 데이터 통신을 수행할 수 있다. 그러나, 이에 한정되는 것은 아니고, 증강 현실 디바이스(100)가 모바일 디바이스로 구현되는 경우, 통신 인터페이스(150)는 CDMA, WCDMA, 3G, 4G(LTE), 5G Sub 6, 및/또는 밀리미터 파(mmWave)를 이용한 통신 방식과 같은 이동 통신 규격을 따르는 네트워크를 통하여 서버(300)와 데이터 송수신할 수 있다.
본 개시의 일 실시예에서, 통신 인터페이스(150)는 프로세서(120)의 제어에 의해, 제1 카메라(112) 및 제2 카메라(114)에 포함된 렌즈의 물리적 특성에 따른 왜곡 모델 파라미터(Di), 제1 카메라(112)와 제2 카메라(114) 간의 위치 관계([R|t]), 및 제1 이미지 및 제2 이미지로부터 획득된 2차원 관절 특징점의 데이터를 서버(300)에 전송하고, 서버(300)로부터 룩 업 테이블(200)의 검색을 통해 획득된 3차원 위치 좌표값을 수신할 수 있다. 통신 인터페이스(150)는 서버(300)로부터 수신된 3차원 위치 좌표값의 데이터를 프로세서(130)에 제공할 수 있다.
서버(300)는 증강 현실 디바이스(100)와 통신하는 통신 인터페이스(310), 적어도 하나의 명령어들(instructions) 또는 프로그램 코드를 저장하는 메모리(330), 메모리(330)에 저장된 명령어들 또는 프로그램 코드를 실행하도록 구성되는 프로세서(320)를 포함할 수 있다.
서버(300)의 메모리(330)에는 룩 업 테이블(200)이 저장되어 있을 수 있다. 서버(300)에 저장된 룩 업 테이블(200)은 도 1에 도시되고, 도 3에서 설명된 룩 업 테이블(200)과 동일하므로, 중복되는 설명은 생략한다. 서버(300)는 통신 인터페이스(310)를 통해 증강 현실 디바이스(100)로부터 왜곡 모델 파라미터(Di), 카메라 간 위치 관계([R|t]), 및 2차원 관절 특징점의 데이터를 수신할 수 있다. 서버(300)의 프로세서(320)는 룩 업 테이블(200)에 액세스하여 증강 현실 디바이스(100)로부터 수신된 왜곡 모델 파라미터(Di), 카메라 간 위치 관계([R|t]), 및 2차원 관절 특징점과 동일 또는 유사한 왜곡 모델 파라미터, 카메라 위치 관계 파라미터, 및 2차원 위치 좌표값을 검색하고, 검색된 왜곡 모델 파라미터, 카메라 위치 관계 파라미터, 및 2차원 위치 좌표값에 대응되는 3차원 위치 좌표값을 룩 업 테이블(200)로부터 획득할 수 있다. 프로세서(320)는 통신 인터페이스(310)를 제어하여, 3차원 위치 좌표값의 데이터를 증강 현실 디바이스(100)에 전송할 수 있다.
일반적으로, 증강 현실 디바이스(100)는 사람의 안면에 착용하는 증강 현실 글래스 형태 또는 사람의 머리에 착용하는 헤드 마운티드 디바이스로 구현되는 바, 휴대를 위하여 소형 폼 팩터로 설계된다. 따라서, 증강 현실 디바이스(100)의 메모리(130)의 저장 용량, 프로세서(120)의 연산 처리 속도 등은 서버(300)에 비하여 제한적일 수 있다. 따라서, 서버(300)는 대용량 데이터의 저장 및 대용량의 연산량이 필요한 동작을 수행한 이후, 통신 네트워크를 통하여 필요한 데이터(예를 들어, 3차원 위치 좌표값 데이터)를 증강 현실 디바이스(100)에 전송할 수 있다. 이와 같은 방식으로, 증강 현실 디바이스(100)는 대용량의 메모리 및 빠른 연산 능력을 갖는 프로세서 없이도 서버(300)로부터 3차원 위치 좌표값을 나타내는 데이터를 수신하여 이용함으로써, 손 관절의 3차원 위치 정보를 획득하는데 소요되는 프로세싱 타임(processing time)을 단축시키고, 실시간 핸드 인터랙션을 구현할 수 있다.
도 5는 본 개시의 일 실시예에 따른 룩 업 테이블(200)을 도시한 도면이다.
도 5를 참조하면, 룩 업 테이블(200)은 제1 카메라(좌안 카메라)에 관하여 미리 획득된 복수의 2차원 위치 좌표값(PL_2D), 복수의 카메라 위치 관계 파라미터([RL|tL]), 복수의 왜곡 모델 파라미터(DL), 제2 카메라(우안 카메라)에 관하여 미리 획득된 복수의 2차원 위치 좌표값(PR_2D), 복수의 카메라 위치 관계 파라미터([RR|tR]), 복수의 왜곡 모델 파라미터(DR), 및 미리 획득된 복수의 3차원 위치 좌표값(P3D)의 정보를 포함할 수 있다.
제1 카메라에 관한 복수의 카메라 위치 관계 파라미터([RL|tL])는 복수의 회전 행렬(rotation matrix)(RL_1 내지 RL_n) 및 복수의 변환 벡터(translation vector)(tL_1 내지 tL_n)를 포함할 수 있다. 회전 행렬은 제1 카메라의 기하학적 위치에 따라 x축, y축, 및 z축을 기준으로 회전시키기 위한 특정 각도 정보를 포함한다. 변환 벡터는 객체 중심의 좌표계를 카메라 중심의 좌표계로 변경하기 위한 이동 거리값을 포함하는 벡터로 구성된다.
제1 카메라의 복수의 왜곡 모델 파라미터(DL)는 제1 카메라의 렌즈의 물리적 특성에 따라 정의된 왜곡 모델에 따라 이미지의 왜곡을 보정하기 위한 파라미터를 포함할 수 있다. 복수의 왜곡 모델 파라미터(DL)는 임의의 왜곡 모델에 의한 이미지의 왜곡을 보정하기 위하여 수학적 모델링을 통해 계산된 파라미터들을 포함할 수 있다.
제1 카메라의 복수의 2차원 위치 좌표값(PL_2D)은 복수의 카메라 위치 관계 파라미터([RL|tL]) 및 복수의 왜곡 모델 파라미터(DL)를 이용하여 복수의 3차원 위치 좌표값(P3D)을 시뮬레이션함으로써 획득될 수 있다. 즉, 복수의 2차원 위치 좌표값(PL_2D)은 제1 카메라의 위치 관계와 제1 카메라의 렌즈 왜곡을 반영하는 시뮬레이션을 통해 획득된 좌표값들일 수 있다.
제2 카메라에 관한 복수의 카메라 위치 관계 파라미터([RR|tR]), 복수의 왜곡 모델 파라미터(DR), 및 복수의 2차원 위치 좌표값(PR_2D)는 우안 카메라라는 점을 제외하고는, 제1 카메라의 복수의 카메라 위치 관계 파라미터([RL|tL]), 복수의 왜곡 모델 파라미터(DL), 및 복수의 2차원 위치 좌표값(PL_2D)의 설명과 동일하므로, 중복되는 설명은 생략한다.
룩 업 테이블(200)에 포함된 복수의 3차원 위치 좌표값(P3D)은 제1 카메라(좌안 카메라)에 대한 복수의 2차원 위치 좌표값(PL_2D), 복수의 카메라 위치 관계 파라미터([RL|tL]), 복수의 왜곡 모델 파라미터(DL)과 제2 카메라(우안 카메라)에 대한 복수의 2차원 위치 좌표값(PR_2D), 복수의 카메라 위치 관계 파라미터([RR|tR]), 복수의 왜곡 모델 파라미터(DR)에 각각 대응될 수 있다. 예를 들어, 제1 3차원 위치 좌표값(p
3D_1)은 제1 카메라에 관한 제1 2차원 위치 좌표값(PL_1), 제1 카메라의 제1 위치 관계 파라미터([RL_1|tL_1]), 제1 카메라의 제1 왜곡 모델 파라미터(DL_1), 제2 카메라에 관한 제1 2차원 위치 좌표값(PR_1), 제2 카메라의 제1 위치 관계 파라미터([RR_1|tR_1]), 제2 카메라의 제1 왜곡 모델 파라미터(DR_1)에 대응될 수 있다. 마찬가지로, 제n 3차원 위치 좌표값(p
3D_n)은 제1 카메라에 관한 제1 2차원 위치 좌표값(PL_n), 제1 카메라의 제n 위치 관계 파라미터([RL_n|tL_n]), 제1 카메라의 제n 왜곡 모델 파라미터(DL_n), 제2 카메라에 관한 제1 2차원 위치 좌표값(PR_n), 제2 카메라의 제n 위치 관계 파라미터([RR_n|tR_n]), 제2 카메라의 제n 왜곡 모델 파라미터(DR_n)에 대응될 수 있다.
본 개시에서, '대응되는'은 제1 카메라 및 제2 카메라의 2차원 위치 좌표값(PL_i, PR_i)이 카메라 위치 관계 파라미터([RL|tL], [RR|tR]) 및 왜곡 모델 파라미터(DL, DR)을 반영하여 3차원 위치 좌표값(p
3D_i)을 시뮬레이션함으로써 획득된 것임을 의미할 수 있다. 본 개시의 일 실시예에서, 2차원 위치 좌표값(PL_i, PR_i)은 임의로 생성된 3차원 위치 좌표값(p
3D_i)을 카메라 위치 관계 파라미터([RL_i|tL_i], [RR_i|tR_i])에 따라 투영(projection)하여 2차원 프로젝션 좌표값을 획득하고, 획득된 2차원 프로젝션 좌표값에 왜곡 모델 파라미터(DL_i, DR_i)를 적용하여 렌즈의 왜곡을 반영하는 시뮬레이션을 수행함으로써 획득될 수 있다. 룩 업 테이블(200)에 포함된 3차원 위치 좌표값(p
3D_i)을 임의로 생성하고, 3차원 위치 좌표값(p
3D_i)을 시뮬레이션하여 2차원 위치 좌표값(PL_i, PR_i)을 획득하는 구체적인 실시예에 대해서는 도 6 및 도 7에서 상세하게 설명하기로 한다.
도 6은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 룩 업 테이블에 저장되는 손 관절들의 3차원 위치 좌표값을 획득하는 동작을 도시한 도면이다.
도 6을 참조하면, 증강 현실 디바이스(100)는 사용자의 손에 포함된 관절들의 3차원 공간 좌표계에서의 위치 정보를 획득할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 인체의 근골격계의 해부학적 제약에 따른 상체 관절의 가동 각도 범위 내에서 손 관절의 임의의 3차원 위치를 나타내는 복수의 3차원 위치 좌표값(p
3D_1 내지 p
3D_n)을 획득할 수 있다. '가동 각도 범위(range of movable angle)'는 예를 들어, 어깨, 팔, 또는 팔꿈치 등 상체에 포함되는 관절들 각각의 회전축에 관한 스윙 동작(swing) 또는 스핀 동작(spin)에 의해 움직일 수 있는 각도값 범위를 의미한다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 인체 표준 모델을 이용하거나 또는 3차원 인체 모델의 부위별 신체 길이를 이용하여 사용자의 손의 3차원 공간 상에서의 임의의 위치 정보인 복수의 3차원 위치 좌표값(p
3D_1 내지 p
3D_n)을 획득할 수 있다. 그러나, 이에 한정되는 것은 아니고, 증강 현실 디바이스(100)는 인버스 키네매틱스(inverse kinematics) 알고리즘을 이용하여, 제약 사항 정보에 기초하여 손 관절에 관한 복수의 3차원 위치 좌표값(p
3D_1 내지 p
3D_n)을 획득할 수 있다.
증강 현실 디바이스(100)는 획득된 복수의 3차원 위치 좌표값(p
3D_1 내지 p
3D_n)을 룩 업 테이블(200, 도 3 및 도 5 참조) 형태로 메모리(130, 도 3 참조)에 저장할 수 있다.
도 6에 도시된 실시예에서, 증강 현실 디바이스(100)는 인체의 근골격계의 해부학적 특징에 따른 제약 사항 정보를 이용하여 손 관절의 3차원 위치 좌표값(p
3D_1 내지 p
3D_n)을 획득하고, 룩 업 테이블(200)에 저장하는 바, 인체 구조 상 취할 수 없는 자세를 나타내는 손 관절 데이터의 생성을 미연에 방지하고, 보다 자연스럽고, 사실적인 손 자세 또는 손 동작을 나타내는 이미지 데이터를 획득할 수 있다.
도 7은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 룩 업 테이블에 저장되는 손 관절들의 2차원 위치 좌표값을 획득하는 동작을 도시한 도면이다.
도 7을 참조하면, 증강 현실 디바이스(100)는 가상의 카메라 위치 관계를 시뮬레이션할 수 있다(동작 ①). 증강 현실 디바이스(100)는 제1 카메라(112) 및 제2 카메라(114)를 포함하고, 제1 카메라(112)는 증강 현실 디바이스(100) 상에서 제1 위치 관계 파라미터([R1|t1])에 따른 위치 및 방향에 배치되고, 제2 카메라(114)는 증강 현실 디바이스(100) 상에서 제2 위치 관계 파라미터([R2|t2])에 따른 위치 및 방향에 배치되는 것으로 시뮬레이션될 수 있다. 카메라 위치 관계 파라미터([R|t])는 카메라의 상대적인 위치 및 방향에 관한 정보를 나타내는 파라미터로서, 회전 방향 또는 각도에 관한 회전 행렬(rotation matrix, R) 및 이동 거리값에 관한 변환 벡터(translation vector, t)를 포함할 수 있다.
증강 현실 디바이스(100)는 카메라 위치 관계에 기초하여 3차원 위치 좌표값(p
3D)을 투영(projection)함으로써, 2차원 프로젝션 좌표값(P'1, 2D, P'2, 2D)을 획득할 수 있다 (동작 ②). 증강 현실 디바이스(100)의 프로세서(120, 도 3 참조)는 제1 카메라(112) 및 제2 카메라(114)의 위치 관계 파라미터([R1|t1], [R2|t2])를 이용하여 3차원 위치 좌표값(p
3D)을 투영(projection) 함으로써, 2차원 프로젝션 좌표값(P'1, 2D, P'2, 2D)을 계산할 수 있다. 본 개시의 일 실시예에서, 프로세서(120)는 인체의 근골격계의 제약 사항 정보를 이용하여 획득된 임의의 3차원 위치 좌표값(p
3D, 도 6 참조)을 제1 카메라(112)의 제1 위치 관계 파라미터([R1|t1])에 기초하여 2차원 이미지인 제1 이미지(700-1)에 투영함으로써, 제1 카메라 2차원 프로젝션 좌표값(P'1, 2D)을 획득할 수 있다. 마찬가지로, 프로세서(120)는 제2 카메라(114)의 제2 위치 관계 파라미터([R2|t2])에 기초하여 3차원 위치 좌표값(p
3D)을 제2 이미지(700-2)에 투영함으로써, 제2 카메라 2차원 프로젝션 좌표값(P'2, 2D)을 획득할 수 있다.
증강 현실 디바이스(100)는 2차원 프로젝션 좌표값(P'1, 2D, P'2, 2D)에 왜곡 모델 파라미터(Di)를 적용하여 시뮬레이션함으로써, 왜곡된 2차원 위치 좌표값(P1, 2D, P1, 2D)를 획득할 수 있다 (동작 ③). '왜곡 모델 파라미터(Di)'는 이미지를 촬영하는 카메라에 포함된 렌즈의 물리적 특성에 의한 이미지의 왜곡을 수학적 모델링을 통해 시뮬레이션하는 파라미터이다. 렌즈의 물리적 특성에 따른 왜곡의 정도 또는 왜곡 형태에 따라 왜곡 모델이 정의될 수 있다. 왜곡 모델은 예를 들어, 배럴 왜곡 모델(Barrel Distortion), 브라운 왜곡 모델(Brown distortion model), 또는 핀 쿠션 왜곡(pincushion distortion) 등이 있으나, 이에 한정되는 것은 아니다. 왜곡된 2차원 위치 좌표값(P1, 2D, P1, 2D)은 이상적인 왜곡 모델을 가정하고, 이상적인 왜곡 모델의 왜곡 모델 파라미터(Di)를 적용하여 가상으로 생성된 왜곡에 의해 계산된 값이므로, 오차가 발생되지 않는다.
증강 현실 디바이스(100)의 프로세서(120)는 왜곡된 2차원 위치 좌표값(P1, 2D, P1, 2D)과 시뮬레이션에 적용된 카메라 위치 관계 파라미터(([R1|t1], [R2|t2]), 왜곡 모델 파라미터(Di), 및 3차원 위치 좌표값(p
3D)을 룩 업 테이블(200, 도 1 및 도 3 참조)에 저장할 수 있다. 그러나, 이에 한정되는 것은 아니고, 도 7에 도시된 왜곡된 2차원 위치 좌표값(P1, 2D, P1, 2D)을 획득하기 위한 시뮬레이션은 증강 현실 디바이스(100)가 아닌 다른 디바이스 또는 서버(300, 도 4 참조)에 의해 수행될 수도 있다. 이 경우, 왜곡된 2차원 위치 좌표값(P1, 2D, P1, 2D), 카메라 위치 관계 파라미터(([R1|t1], [R2|t2]), 왜곡 모델 파라미터(Di), 및 3차원 위치 좌표값(p
3D)은 다른 디바이스 또는 서버(300) 내의 룩 업 테이블(200, 도 4 참조)에 저장되어 있을 수 있다.
도 8은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 인공지능 모델(800)을 이용하여 손 관절들의 3차원 위치 정보(840)를 획득하는 동작을 도시한 도면이다.
도 8을 참조하면, 증강 현실 디바이스(100)는 제1 카메라(112)를 이용하여 현실 공간에 위치하는 사용자의 손을 촬영함으로써 제1 이미지(831)를 획득하고, 제2 카메라(114)를 이용하여 사용자의 손을 촬영함으로써 제2 이미지(832)를 획득할 수 있다. 증강 현실 디바이스(100)는 제1 이미지(831) 및 제2 이미지(832) 각각으로부터 손 관절의 특징점을 인식할 수 있다. 증강 현실 디바이스(100)가 제1 이미지(831) 및 제2 이미지(832)로부터 손 관절의 특징점을 인식하는 구체적인 방법은 도 1에서 설명한 것과 동일하므로, 중복되는 설명은 생략한다. 증강 현실 디바이스(100)는 인식된 손 관절의 특징점의 2차원 관절 좌표값(P1_n, P2_n)을 획득할 수 있다.
증강 현실 디바이스(100)의 프로세서(120, 도 3 참조)는 제1 카메라(112)와 제2 카메라(114)의 카메라 간 위치 관계([R|t])(810), 제1 카메라(112) 및 제2 카메라(114)의 렌즈의 물리적 특성에 따른 왜곡 모델 파라미터(Di)(820), 제1 이미지(831)로부터 획득된 2차원 관절 좌표값(P1_n) 및 제2 이미지(832)로부터 획득된 2차원 관절 좌표값(P2_n)을 인공지능 모델(800)에 입력하고, 인공지능 모델(800)을 이용하는 추론을 통해 3차원 위치 좌표값을 획득할 수 있다. 프로세서(120)는 인공지능 모델(800)로부터 획득한 3차원 위치 좌표값을 손 관절의 3차원 위치 정보(840)로서 출력할 수 있다. 본 개시의 일 실시예에서, 프로세서(120)는 손 관절의 3차원 위치 정보(840)를 디스플레이부(140, 도 3 참조) 상에 디스플레이할 수 있다.
인공지능 모델(800)은 룩 업 테이블(200, 도 3 및 도 4 참조)에 저장된 복수의 카메라 위치 관계 파라미터, 복수의 왜곡 모델 파라미터, 제1 카메라의 복수의 2차원 위치 좌표값 및 제2 카메라의 복수의 2차원 위치 좌표값을 입력 데이터로 적용하고, 상기 입력 데이터에 각각 대응되는 복수의 3차원 위치 좌표값을 정답 값(ground truth)으로 적용하는 지도형 학습(supervised learning) 방식으로 학습된 신경망 모델(neural network)일 수 있다. 인공지능 모델(800)을 학습하는 구체적인 방법에 대해서는 도 9에서 상세하게 설명하기로 한다.
도 9는 본 개시의 일 실시예에 따른 인공지능 모델(900)의 학습(training) 방법을 설명하기 위한 도면이다.
도 9를 참조하면, 인공지능 모델(900)은 룩 업 테이블(200, 도 3 및 도 4 참조)에 저장된 카메라 위치 관계 파라미터([R|t])(910), 제1 카메라 및 제2 카메라의 왜곡 모델 파라미터(DL, DR)(920), 제1 카메라의 2차원 위치 좌표값(PL, 2D)(930), 및 제2 카메라의 2차원 위치 좌표값(PR, 2D)(940)을 입력 데이터로 적용하고, 상기 입력 데이터에 대응되는 3차원 위치 좌표값(p
3D)(950)을 정답 값(ground truth)으로 적용하는 지도형 학습(supervised learning) 방식으로 학습될 수 있다. 본 개시의 일 실시예에서, 인공지능 모델(900)은 증강 현실 디바이스(100)에 의해 학습되고, 증강 현실 디바이스(100)의 메모리(130, 도 3 참조)의 저장 공간 내에 온 디바이스(on-device) 방식으로 저장될 수 있지만, 이에 한정되는 것은 아니다. 본 개시의 일 실시예에서, 인공지능 모델(900)은 서버(300, 도 4 참조)에 의해 미리 학습(pre-trained)되어 있을 수 있다. 이 경우, 인공지능 모델(900)은 서버(300) 내에 저장될 수 있다.
인공지능 모델(900)은 심층 신경망 모델(deep neural network)로 구현될 수 있다. 심층 신경망 모델은 복수의 신경망 레이어들을 포함할 수 있다. 복수의 신경망 레이어들 각각은 복수의 가중치들(weight values)을 갖고 있으며, 이전(previous) 레이어의 연산 결과와 복수의 가중치들 간의 연산을 통해 신경망 연산을 수행한다. 복수의 신경망 레이어들이 갖고 있는 복수의 가중치들은 심층 신경망 모델의 학습 결과에 의해 최적화될 수 있다. 예를 들어, 학습 과정 동안 심층 신경망 모델에서 획득한 로스(loss) 값 또는 코스트(cost) 값이 감소 또는 최소화되도록 역전파(back propagation) 등을 통해 복수의 가중치들이 갱신될 수 있다.
본 개시의 일 실시예에서, 인공지능 모델(900)은 컨볼루션 신경망 모델(Convolutional Neural Network, CNN)으로 구현될 수 있으나, 이에 한정되는 것은 아니다. 인공지능 모델(900)은 예를 들어, 순환 신경망 모델(Recurrent Neural Network, RNN), 제한된 볼츠만 머신(Restricted Boltzmann Machine, RBM), 심층 신뢰망(Deep Belief Network, DBN), 양방향 순환 신경망 모델(Bidirectional Recurrent Deep Neural Network, BRDNN) 또는 심층 Q-네트워크(Deep Q-Networks) 등으로 구현될 수도 있다.
도 8 및 도 9에 도시된 실시예에서, 증강 현실 디바이스(100)는 룩 업 테이블(200)를 사용하는 대신, 인공지능 모델(800)을 이용하는 추론을 통해 손 관절의 3차원 위치 정보(840)를 획득하는 바, 프로세싱 타임(processing)을 단축시킬 수 있고, 핸드 인터랙션의 실시간 처리를 구현할 수 있는 기술적 효과를 제공한다. 또한, 본 개시의 일 실시예에 따른 인공지능 모델(900)은 룩 업 테이블(200)에 포함된 다수의 데이터들을 이용하여 학습되는 바, 인공지능 모델(800, 900)을 이용하는 추론을 통해 오차에 강건한(robust) 3차원 위치 정보(840)를 획득할 수 있다. 또한, 인공지능 모델(900)은 인체의 근골격계에 따른 제한 사항을 반영하여 시뮬레이션된 손 관절의 데이터들을 이용하여 학습되는 바, 손 관절의 가동 각도 범위(range of movable angle)를 초과하는 오차를 미연에 방지할 수 있다.
도 10은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 손 관절의 3차원 위치 정보의 정확도를 판단하는 방법을 도시한 흐름도이다.
도 10에 도시된 단계 S1010 내지 S1050은 도 2에 도시된 단계 S220에 따른 동작이 수행된 이후에 수행될 수 있다.
단계 S1010에서, 증강 현실 디바이스(100)는 렌즈의 왜곡 모델 파라미터 및 복수의 카메라 간 위치 관계에 기초하여 2차원 관절 좌표값의 왜곡을 보정한다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 좌안 카메라(제1 카메라) 및 우안 카메라(제2 카메라)를 포함하고, 좌안 카메라를 이용하여 제1 이미지를 획득하며, 우안 카메라를 이용하여 제2 이미지를 획득할 수 있다. 증강 현실 디바이스(100)는 제1 이미지 및 제2 이미지로부터 손 관절의 2차원 관절 좌표값을 획득할 수 있다. 증강 현실 디바이스(100)는 좌안 카메라와 우안 카메라 간의 상대적인 위치 관계를 나타내는 위치 관계 정보([R|t]) 및 좌안 카메라와 우안 카메라에 포함된 렌즈의 물리적 특성에 따라 정의되는 왜곡 모델을 수학적으로 모델링한 왜곡 모델 파라미터를 이용하여 손 관절의 2차원 위치 좌표값의 왜곡을 보정할 수 있다.
단계 S1020에서, 증강 현실 디바이스(100)는 왜곡 모델 파라미터 및 카메라 간의 위치 관계에 기초하여 이미지의 방향을 조정(rectification)한다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 좌안 카메라와 우안 카메라 간의 상대적인 위치 관계 정보([R|t]) 및 좌안 카메라와 우안 카메라의 왜곡 모델 파라미터를 이용하여 제1 이미지 및 제2 이미지의 에피폴라 라인(epipolar line)을 평행하게 나열함으로써, 이미지의 방향을 조정(rectification)할 수 있다. 이미지의 '조정(rectification)'은 본 기술 분야에서 통상의 기술자에게 알려진(well-known) 기술이므로, 상세한 설명은 생략한다.
단계 S1030에서, 증강 현실 디바이스(100)는 왜곡 보정 및 조정(recification) 결과 보정된 2차원 관절 좌표값 및 복수의 카메라 간의 위치 관계를 이용하는 삼각측량법(triangulation)을 통해 손 관절의 제1 3차원 위치 좌표값을 산출한다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 좌안 카메라와 우안 카메라 간의 상대적인 위치 관계 정보([R|t])와 단계 S1010 및 S1020을 거쳐 획득된 2차원 관절 좌표값을 이용하여 3차원 이미지를 획득하고, 3차원 이미지 상에서의 손 관절의 제1 3차원 위치 좌표값을 계산할 수 있다.
단계 S230에서 증강 현실 디바이스(100)는 룩 업 테이블(200, 도 3 및 도 4 참조)로부터 복수의 카메라의 렌즈의 왜곡 모델 파라미터, 복수의 카메라 간 위치 관계, 및 획득된 2차원 관절 특징점에 대응되는 제2 3차원 위치 좌표값을 획득한다. 도 10의 단계 S230은 도 2에 도시된 단계 S230과 동일하므로, 중복되는 설명은 생략한다. 본 개시의 일 실시예에서, 단계 S230에 따른 동작은 단계 S1010 내지 S1030이 수행됨과 동시에 수행될 수 있다. 단계 S230은 단계 S1010 내지 S1030과는 별개의 동작으로서, 독립적으로 수행될 수 있다.
단계 S1040에서, 증강 현실 디바이스(100)는 제1 3차원 위치 좌표값과 제2 3차원 위치 좌표값을 비교하여, 손 관절의 3차원 위치 정보의 오류(error)를 검출한다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)의 프로세서(120, 도 3 참조)는 제1 3차원 위치 좌표값과 제2 3차원 위치 좌표값의 차이값, 제1 3차원 위치 좌표값 및 제2 3차원 위치 좌표값을 이용하여 각각 계산된 손의 각 부위별 길이의 차이값, 및 제1 3차원 위치 좌표값의 절대값 중 적어도 하나에 기초하여 손 관절의 3차원 위치 정보의 오류를 검출할 수 있다. 예를 들어, 프로세서(120)는 하기의 수식 1을 통해 제1 3차원 위치 좌표값과 제2 3차원 위치 좌표값의 차이값을 계산할 수 있다.
상기 수식 1에서, p
j
base는 단계 S1010 내지 S1030을 통해 획득된 제1 3차원 위치 좌표값을 나타내고, p
j
new는 단계 S230을 통해 획득된 제2 3차원 위치 좌표값을 나타낼 수 있다.
예를 들어, 프로세서(120)는 하기의 수식 2를 통해 제1 3차원 위치 좌표값 및 제2 3차원 위치 좌표값을 이용하여 각각 획득된 손의 각 부위별 길이의 차이값을 계산할 수 있다.
상기 수식 2에서, l
i
base는 단계 S1010 내지 S1030을 통해 획득된 제1 3차원 위치 좌표값에 기초하여 계산된 손의 부위의 길이를 나타내고, l
i
new는 단계 S230을 통해 획득된 제2 3차원 위치 좌표값에 기초하여 계산된 손의 부위의 길이를 나타낼 수 있다.
예를 들어, 프로세서(120)는 하기의 수식 3을 통해 제1 3차원 위치 좌표값의 절대값을 계산할 수 있다.
상기 수식 3에서, k는 x, y, 및 z의 3차원 좌표축을 나타낼 수 있다. 본 개시의 일 실시예에서, 프로세서(120)는 수식 1에 의해 계산된 제1 3차원 위치 좌표값과 제2 3차원 위치 좌표값의 차이값 또는 수식 2에 의해 계산된 손의 부위별 길이의 차이값이 기 설정된 임계값을 초과하는 경우, 손 관절의 3차원 위치 정보에 오류가 발생되었음을 검출할 수 있다. 본 개시의 일 실시예에서, 프로세서(120)는 수식 3에 의해 계산된 제1 3차원 위치 좌표값의 절대값이 인체의 근골격계의 해부학적 제약에 따른 상체 관절의 가동 각도 범위(range of movable angle)를 초과하는 3차원 위치 좌표값인 경우, 손 관절의 3차원 위치 정보에 오류가 발생되었음을 검출할 수 있다.
단계 S1050에서, 손 관절의 3차원 위치 정보에 오류가 검출된 경우(단계 S1060), 증강 현실 디바이스(100)는 손 관절의 3차원 정보 획득 방법의 변경에 관한 알림 메시지 출력한다. 도 11은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 손 관절 인식 방법의 변경 필요 여부를 알리는 사용자 인터페이스(UI)를 도시한 도면이다.
도 10의 단계 S1060을 도 11과 함께 참조하면, 증강 현실 디바이스(100)의 프로세서(120)는 손 관절의 3차원 위치 정보에 오류가 검출된 경우, 스테레오 이미지(1100) 상에 손 관절 인식 방법의 변경 필요 여부를 알리는 알림 메시지(1110)를 출력하도록 디스플레이부(140, 도 3 참조)를 제어할 수 있다. 알림 메시지(1110)는 예를 들어, "손 인식 방식 변경이 필요합니다. 인식 방법을 변경할까요?"와 같은 텍스트로 구성된 메시지일 수 있다. 그러나, 이에 한정되는 것은 아니고, 증강 현실 디바이스(100)는 음성 또는 음향을 통해 손 관절 인식 방법의 변경에 관한 알림 메시지를 출력할 수도 있다. 이 경우, 증강 현실 디바이스(100)는 스피커 등 음향 출력 장치를 더 포함할 수 있다.
도 11에 도시된 실시예에서, 알림 메시지(1110)는 '예', '아니오'와 같이 손 관절 인식 방법의 변경 동작을 수행하기 위한 그래픽 사용자 인터페이스(GUI)를 포함할 수 있다.
다시 도 10을 참조하면, 증강 현실 디바이스(100)는 알림 메시지 출력 이후 다시 단계 S220에 따른 동작을 수행한다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 변경된 손 관절 인식 방법을 통해 손 관절의 특징점에 관한 2차원 관절 특징점을 획득할 수 있다.
본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 손 관절의 3차원 위치 정보에서 오류가 검출된 경우, 오류가 검출된 손 관절의 위치를 오류가 검출되지 않은 위치와 구별되는 컬러로 디스플레이할 수 있다. 도 12는 본 개시의 일 실시예에 따른 증강 현실 디바이스가 손 관절의 3차원 위치 정보의 인식 오류를 나타내는 사용자 인터페이스(User Interface, UI)를 도시한 도면이다.
도 12를 참조하면, 증강 현실 디바이스(100)는 스테레오 이미지(1200)에서 손 관절의 3차원 위치 정보(Pn, 3D)를 제1 컬러(예를 들어, 녹색)로 표시할 수 있다. 손 관절의 3차원 위치 정보(Pn, 3D)에서 오류가 검출된 경우, 증강 현실 디바이스(100)는 스테레오 이미지(1200) 상에서 오류가 검출된 손 관절의 3차원 위치 정보(P'n, 3D)를 제1 컬러와 구별되는 제2 컬러(예를 들어, 빨간색)로 표시할 수 있다.
다시 도 10을 참조하면, 단계 S1050에서 손 관절의 3차원 위치 정보에 오류가 검출되지 않은 경우 증강 현실 디바이스(100)는 단계 S240에 따른 동작을 수행한다.
도 10 내지 도 12에 도시된 실시예에서, 증강 현실 디바이스(100)는 종래 방식인 2차원 관절 좌표값의 왜곡 보정 및 조정(rectification)과 카메라 간 위치 관계를 이용하는 삼각측량법을 통해 손 관절의 제1 3차원 위치 정보를 획득하고, 획득된 제1 3차원 위치 정보와 룩 업 테이블(200)을 통해 획득된 제2 3차원 위치 정보를 비교함으로써 3차원 위치 정보의 오류를 검출하는 바, 손 관절의 3차원 위치 정보의 정확도를 향상시키고, 이를 통해 핸드 인터랙션의 안정성을 향상시킬 수 있다.
도 13은 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 이미지의 전체 영역 중 삼각측량법을 통해 손 관절의 3차원 위치 정보를 획득하는 영역의 크기를 결정하는 방법을 도시한 흐름도이다.
도 14는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 스테레오 이미지(1400)의 전체 영역 중 손 관절의 3차원 위치 정보에 오류가 발생된 영역(1430)을 표시하는 사용자 인터페이스를 도시한 도면이다.
도 15는 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)가 스테레오 이미지(1500)의 전체 영역 중 삼각측량법을 통해 손 관절의 3차원 위치 정보를 획득하는 제1 영역(1510)의 크기를 조정하는 동작을 설명하기 위한 도면이다.
이하에서는, 도 13에 따른 증강 현실 디바이스(100)의 동작 방법을 도 14 및 도 15를 함께 참조하여 설명하기로 한다.
단계 S1310에서, 증강 현실 디바이스(100)는 손 관절의 3차원 위치 정보 획득 방법의 변경에 관한 알림 메시지를 출력한다. 단계 S1310은 도 10에 도시된 단계 S1060과 동일하므로, 중복되는 설명은 생략한다.
단계 S1320에서, 증강 현실 디바이스(100)는 이미지의 전체 영역 중 삼각측량법을 통해 제1 3차원 위치 좌표값이 획득되는 제1 영역과 룩 업 테이블로부터 제2 3차원 위치 좌표값이 획득되는 제2 영역을 구별되는 컬러로 디스플레이한다. 일반적으로 이미지의 가장자리에서는 왜곡의 정도가 심하므로, 증강 현실 디바이스(100)는 이미지의 가장자리 부분인 제2 영역에 대해서는 룩 업 테이블(200, 도 1, 도 3, 및 도 4 참조)로부터 제2 3차원 위치 좌표값을 획득하고, 이미지의 중심부를 포함하는 제1 영역에 대해서는 삼각측량법을 통해 제1 3차원 위치 좌표값을 획득할 수 있다. 도 14를 함께 참조하면, 증강 현실 디바이스(100)는 스테레오 이미지(1400)의 전체 영역 중 중심부를 포함하는 제1 영역(1410)과 전체 영역 중 제1 영역(1410)을 제외한 나머지 영역인 제2 영역(1420)을 서로 다른 컬러로 표시할 수 있다. 예를 들어, 증강 현실 디바이스(100)는 제1 영역(1410)을 녹색으로, 제2 영역(1420)을 파란색으로 표시할 수 있다. 그러나, 이에 한정되는 것은 아니다.
본 개시의 일 실시예에서, 알림 메시지(1110, 도 11 참조)에서 손 관절 인식 방법의 변경을 선택하는 사용자 입력이 수신되는 경우(예를 들어, 도 11에 도시된 알림 메시지(1110)에서 "예"를 선택), 증강 현실 디바이스(100)는 스테레오 이미지(1400)의 전체 영역 중 제1 영역(1410)과 제2 영역(1420)을 구별되는 컬러로 디스플레이할 수 있다. 그러나, 이에 한정되는 것은 아니고, 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 손 관절 인식 방법을 변경 UI를 디스플레이하고, UI를 통해 사용자 입력이 수신되는 경우, 스테레오 이미지(1400)의 전체 영역 중 제1 영역(1410)과 제2 영역(1420)을 구별되는 컬러로 디스플레이할 수 있다.
다시 도 13을 참조하면, 단계 S1330에서 증강 현실 디바이스(100)는 이미지 상에서 손 관절의 3차원 위치 정보의 오류가 검출된 영역을 디스플레이한다. 도 14를 함께 참조하면, 증강 현실 디바이스(100)는 스테레오 이미지(1400)의 전체 영역 중 손 관절의 3차원 위치 정보에서 오류가 발생된 제3 영역(1430)을 디스플레이할 수 있다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 오류가 검출된 제3 영역(1430)을 제1 영역(1410) 및 제2 영역(1420)과 구별되는 컬러로 디스플레이할 수 있다. 예를 들어, 증강 현실 디바이스(100)는 제3 영역(1430)을 빨간색으로 표시할 수 있으나, 이에 한정되는 것은 아니다.
다시 도 13을 참조하면, 단계 S1340에서 증강 현실 디바이스(100)는 이미지 상에서 손의 2차원 관절 좌표값을 인식한다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 이미지로부터 손 관절의 특징점을 인식하고, 인식된 손 관절의 특징점의 2차원 관절 좌표값을 획득할 수 있다. 증강 현실 디바이스(100)가 2차원 관절 좌표값을 획득하는 구체적인 방법은 도 2에 도시된 단계 S210 및 S220에서 설명한 방법과 동일하므로, 중복되는 설명은 생략한다.
단계 S1350에서, 증강 현실 디바이스(100)는 기 설정된 시간 동안 인식된 2차원 관절 좌표값에 기초하여 손의 움직임을 감지한다. 본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 기 설정된 시간 동안 획득된 복수의 이미지 프레임으로부터 복수의 2차원 관절 좌표값을 인식하고, 인식된 복수의 2차원 관절 좌표값에 기초하여 손의 움직임을 감지할 수 있다.
손의 움직임이 감지된 경우(S1360), 증강 현실 디바이스(100)는 손의 움직임에 기초하여 제1 영역의 가로축 및 세로축의 크기를 조정한다. 도 15를 함께 참조하면, 증강 현실 디바이스(100)는 인식된 손의 움직임에 기초하여 스테레오 이미지(1500)의 전체 영역 중 제1 영역(1510)의 크기 및 형태를 변경할 수 있다. 증강 현실 디바이스(100)는 손의 움직임에 기초하여 제1 영역의 가로축 및 세로축의 크기를 각각 조정함으로써, 제1 영역(1510)의 크기 및 형태를 변경할 수 있다. 제1 영역(1510)의 크기 및 형태가 변경됨에 따라 제2 영역(1520)의 크기 및 형태도 변경될 수 있다.
다시 도 13을 참조하면, 증강 현실 디바이스(100)는 제1 영역(1510)의 가로축 및 세로축의 크기를 조정한 이후, 단계 S1340으로 돌아가서 손의 2차원 관절 좌표값을 인식할 수 있다.
단계 S1350에서, 손의 움직임이 감지되지 않은 경우 증강 현실 디바이스(100)는 제1 영역 및 제2 영역을 저장한 이후 종료한다.
본 개시는 손 관절의 3차원 위치 정보를 획득하는 증강 현실 디바이스(100)를 제공한다. 본 개시의 일 실시예에 따른 증강 현실 디바이스(100)는 사용자의 손을 촬영하여 이미지를 획득하는 복수의 카메라(112, 114), 룩 업 테이블(look-up table, LUT)(200)을 저장하는 메모리(130), 및 적어도 하나의 프로세서(120)를 포함할 수 있다. 상기 적어도 하나의 프로세서(120)는 복수의 카메라(112, 114)를 통해 획득된 복수의 이미지로부터 손 관절을 인식할 수 있다. 상기 적어도 하나의 프로세서(120)는 인식된 손 관절의 특징점에 관한 2차원 관절 좌표값을 획득할 수 있다. 상기 적어도 하나의 프로세서(120)는 룩 업 테이블(200)로부터 복수의 카메라(112, 114)의 왜곡 모델 파라미터, 복수의 카메라(112, 114) 간의 위치 관계, 및 획득된 2차원 관절 좌표값에 대응되는 3차원 위치 좌표값을 획득할 수 있다. 상기 적어도 하나의 프로세서(120)는 획득된 3차원 위치 좌표값에 기초하여 손 관절의 3차원 위치 정보를 출력할 수 있다.
본 개시의 일 실시예에서, 상기 룩 업 테이블(200)은 기 획득된 복수의 2차원 위치 좌표값, 복수의 왜곡 모델 파라미터, 복수의 카메라 위치 관계 파라미터, 및 복수의 3차원 위치 좌표값을 포함할 수 있다. 상기 복수의 2차원 위치 좌표값은, 복수의 3차원 위치 좌표값에 복수의 왜곡 모델 파라미터, 및 복수의 카메라 위치 관계 파라미터를 적용하는 시뮬레이션을 통해 획득될 수 있다.
본 개시의 일 실시예에서, 룩 업 테이블(200)에 포함된 복수의 3차원 위치 좌표값은, 인체의 근골격계의 해부학적 제약에 따른 상체 관절의 가동 각도 범위 내에서 상기 손 관절의 임의의 3차원 위치를 나타내는 좌표값일 수 있다.
본 개시의 일 실시예에서, 룩 업 테이블(200)에 포함된 복수의 2차원 위치 좌표값은 복수의 3차원 위치 좌표값을 복수의 카메라 위치 관계 파라미터에 기초하여 투영(projection)함으로써 복수의 2차원 프로젝션 좌표값을 획득하고, 획득된 복수의 2차원 프로젝션 좌표값에 복수의 왜곡 모델 파라미터를 적용하여 렌즈의 왜곡을 반영한 시뮬레이션을 통해 획득될 수 있다.
본 개시의 일 실시예에서, 상기 적어도 하나의 프로세서(120)는 룩 업 테이블(200)에 액세스(access)하여, 룩 업 테이블(200)로부터 렌즈의 왜곡 모델 파라미터, 복수의 카메라 간의 위치 관계, 및 획득된 2차원 관절 좌표값과 동일 또는 유사한 왜곡 모델 파라미터, 카메라 위치 관계 파라미터, 및 2차원 위치 좌표값을 검색(search)할 수 있다. 상기 적어도 하나의 프로세서(120)는 검색된 왜곡 모델 파라미터, 카메라 위치 관계 파라미터, 및 2차원 위치 좌표값에 대응되는 3차원 위치 좌표값을 룩 업 테이블(200)로부터 획득할 수 있다.
본 개시의 일 실시예에서, 상기 적어도 하나의 프로세서(120)는 룩 업 테이블(200)을 이용하여 학습된(trained) 인공지능 모델에 렌즈의 왜곡 모델 파라미터, 복수의 카메라 간의 위치 관계, 및 획득된 2차원 관절 좌표값을 입력하고, 인공지능 모델을 이용하는 추론을 통해 3차원 위치 좌표값을 획득할 수 있다.
본 개시의 일 실시예에서, 상기 인공지능 모델은 룩 업 테이블(200)에 포함된 복수의 왜곡 모델 파라미터, 복수의 카메라 위치 관계 파라미터, 및 복수의 2차원 위치 좌표값을 입력 데이터로 적용하고, 복수의 3차원 위치 좌표값을 정답값(ground truth)으로 적용하는 지도 학습(supervised learning)을 통해 학습된 심층 신경망 모델(deep neural network)일 수 있다.
본 개시의 일 실시예에서, 상기 적어도 하나의 프로세서(120)는 렌즈의 왜곡 모델 파라미터 및 복수의 카메라 간의 위치 관계에 기초하여 2차원 관절 좌표값의 왜곡을 보정하고, 복수의 이미지의 방향에 관한 조정(rectification)을 수행할 수 있다. 상기 적어도 하나의 프로세서(120)는 왜곡 보정 및 조정 결과 보정된 2차원 관절 좌표값 및 복수의 카메라 간의 위치 관계를 이용하여 삼각측량법(triangulation)을 통해 손 관절의 제1 3차원 위치 좌표값을 산출할 수 있다. 상기 적어도 하나의 프로세서(120)는 산출된 제1 3차원 위치 좌표값과 룩 업 테이블(200)로부터 획득된 제2 3차원 위치 좌표값을 비교하여, 손 관절의 3차원 위치 정보의 오류(error)를 검출할 수 있다.
본 개시의 일 실시예에서, 상기 적어도 하나의 프로세서(120)는 제1 3차원 위치 좌표값과 제2 3차원 위치 좌표값 간의 차이값, 제1 3차원 위치 좌표값을 통해 산출된 손 관절의 제1 길이와 제2 3차원 위치 좌표값을 통해 산출된 손 관절의 제2 길이 간의 차이값, 및 제1 3차원 위치 좌표값의 절대값 중 적어도 하나에 기초하여, 손 관절의 3차원 위치 인식의 오류 여부를 검출할 수 있다.
본 개시의 일 실시예에서, 증강 현실 디바이스(100)는 디스플레이부(150)를 더 포함할 수 있다. 상기 적어도 하나의 프로세서(120)는 오류가 검출된 손 관절의 위치를 오류가 검출되지 않는 위치와 구별되는 컬러로 디스플레이하도록 디스플레이부(150)를 제어할 수 있다.
본 개시의 일 실시예에서, 상기 적어도 하나의 프로세서(120)는 복수의 이미지의 전체 영역 중 삼각측량법을 통해 제1 3차원 위치 좌표값이 획득되는 제1 영역과 룩 업 테이블(200)로부터 제2 3차원 위치 좌표값이 획득되는 제2 영역을 구별되는 컬러로 디스플레이하도록 디스플레이부(150)를 제어할 수 있다. 상기 적어도 하나의 프로세서(120)는 제1 영역의 크기를 조절하는 사용자의 손의 움직임을 감지하고, 감지된 사용자의 손의 움직임에 기초하여 제1 영역의 가로축 및 세로축의 크기를 변경할 수 있다.
본 개시는 증강 현실 디바이스(100)가 손 관절의 3차원 위치 정보를 획득하는 방법을 제공한다. 상기 방법은 복수의 카메라(112, 114)를 이용하여 사용자의 손을 촬영함으로써 획득된 복수의 이미지로부터 손 관절을 인식하는 단계(S210)를 포함할 수 있다. 상기 방법은 인식된 손 관절의 특징점에 관한 2차원 관절 좌표값을 획득하는 단계(S220)를 포함할 수 있다. 상기 방법은 메모리(130)에 기 저장된 룩 업 테이블(look-up table, LUT)(200)로부터 복수의 카메라의 왜곡 모델 파라미터, 복수의 카메라 간의 위치 관계, 및 획득된 2차원 관절 좌표값에 대응되는 3차원 위치 좌표값을 획득하는 단계(S230)를 포함할 수 있다. 상기 방법은 획득된 3차원 위치 좌표값에 기초하여 손 관절의 3차원 위치 정보를 출력하는 단계(S240)를 포함할 수 있다.
본 개시의 일 실시예에서, 상기 룩 업 테이블(200)은 기 획득된 복수의 2차원 위치 좌표값, 복수의 왜곡 모델 파라미터, 복수의 카메라 위치 관계 파라미터, 및 복수의 3차원 위치 좌표값을 포함할 수 있다. 상기 복수의 2차원 위치 좌표값은, 복수의 3차원 위치 좌표값에 복수의 왜곡 모델 파라미터, 및 복수의 카메라 위치 관계 파라미터를 적용하는 시뮬레이션을 통해 획득될 수 있다.
본 개시의 일 실시예에서, 룩 업 테이블(200)에 포함된 복수의 3차원 위치 좌표값은 인체의 근골격계의 해부학적 제약에 따른 상체 관절의 가동 각도 범위 내에서 손 관절의 임의의 3차원 위치를 나타내는 좌표값일 수 있다.
본 개시의 일 실시예에서, 룩 업 테이블(200)에 포함된 복수의 2차원 위치 좌표값은, 복수의 3차원 위치 좌표값을 복수의 카메라 위치 관계 파라미터에 기초하여 투영(projection)함으로써 복수의 2차원 프로젝션 좌표값을 획득하고, 획득된 복수의 2차원 프로젝션 좌표값에 복수의 왜곡 모델 파라미터를 적용하여 렌즈의 왜곡을 반영한 시뮬레이션을 통해 획득될 수 있다.
본 개시의 일 실시예에서, 상기 3차원 위치 좌표값을 획득하는 단계(S230)는 룩 업 테이블(200)에 액세스(access)하여, 룩 업 테이블(200)로부터 렌즈의 왜곡 모델 파라미터, 복수의 카메라 간의 위치 관계, 및 획득된 2차원 관절 좌표값과 동일 또는 유사한 왜곡 모델 파라미터, 카메라 위치 관계 파라미터, 및 2차원 위치 좌표값을 검색(search)하는 단계를 포함할 수 있다. 상기 3차원 위치 좌표값을 획득하는 단계(S230)는 검색된 왜곡 모델 파라미터, 카메라 위치 관계 파라미터, 및 2차원 위치 좌표값에 대응되는 3차원 위치 좌표값을 룩 업 테이블(200)로부터 획득하는 단계를 포함할 수 있다.
본 개시의 일 실시예에서, 상기 3차원 위치 좌표값을 획득하는 단계(S230)는 룩 업 테이블(200)을 이용하여 학습된(trained) 인공지능 모델에 렌즈의 왜곡 모델 파라미터, 복수의 카메라 간의 위치 관계, 및 획득된 2차원 관절 좌표값을 입력하고, 인공지능 모델을 이용하는 추론을 통해 3차원 위치 좌표값을 획득하는 단계를 포함할 수 있다.
본 개시의 일 실시예에서, 상기 인공지능 모델은 룩 업 테이블(200)에 포함된 복수의 왜곡 모델 파라미터, 복수의 카메라 위치 관계 파라미터, 및 복수의 2차원 위치 좌표값을 입력 데이터로 적용하고, 복수의 3차원 위치 좌표값을 정답값(ground truth)으로 적용하는 지도 학습(supervised learning)을 통해 학습된 심층 신경망 모델(deep neural network)일 수 있다.
본 개시의 일 실시예에서, 상기 방법은 렌즈의 왜곡 모델 파라미터 및 복수의 카메라 간의 위치 관계에 기초하여 2차원 관절 좌표값의 왜곡을 보정하고, 복수의 이미지의 방향에 관한 조정(rectification)을 수행하는 단계(S1010) 및 왜곡 보정 및 조정 결과 보정된 2차원 관절 좌표값 및 복수의 카메라 간의 위치 관계를 이용하여 삼각측량법(triangulation)을 통해 손 관절의 제1 3차원 위치 좌표값을 산출하는 단계(S1020)를 포함할 수 있다. 상기 방법은 산출된 제1 3차원 위치 좌표값과 룩 업 테이블(200)로부터 획득된 제2 3차원 위치 좌표값을 비교하여, 손 관절의 3차원 위치 정보의 오류(error)를 검출하는 단계(S1030)를 포함할 수 있다.
본 개시의 일 실시예에서, 상기 방법은 오류가 검출된 손 관절의 위치를 오류가 검출되지 않는 위치와 구별되는 컬러로 디스플레이하는 단계를 더 포함할 수 있다.
본 개시의 일 실시예에서, 상기 방법은 복수의 이미지의 전체 영역 중 삼각측량법을 통해 제1 3차원 위치 좌표값이 획득되는 제1 영역과 룩 업 테이블(200)로부터 제2 3차원 위치 좌표값이 획득되는 제2 영역을 구별되는 컬러로 디스플레이하는 단계(S1320)를 더 포함할 수 있다. 상기 방법은, 제1 영역의 크기를 조절하는 사용자의 손의 움직임을 감지하는 단계(S1340), 및 감지된 사용자의 손의 움직임에 기초하여 제1 영역의 가로축 및 세로축의 크기를 변경하는 단계(S1350)를 더 포함할 수 있다.
본 개시는 컴퓨터로 읽을 수 있는 저장 매체를 포함하는 컴퓨터 프로그램 제품(Computer Program Product)를 제공한다. 상기 저장 매체는 복수의 카메라(112, 114)를 이용하여 사용자의 손을 촬영함으로써 획득된 복수의 이미지로부터 손 관절을 인식하는 동작; 인식된 손 관절의 특징점에 관한 2차원 관절 좌표값을 획득하는 동작; 메모리에 기 저장된 룩 업 테이블(look-up table, LUT)로부터 복수의 카메라의 왜곡 모델 파라미터, 복수의 카메라 간의 위치 관계, 및 획득된 2차원 관절 좌표값에 대응되는 3차원 위치 좌표값을 획득하는 동작; 및 획득된 3차원 위치 좌표값에 기초하여 손 관절의 3차원 위치 정보를 출력하는 동작을 증강 현실 디바이스(100)가 수행하기 위하여, 증강 현실 디바이스(100)에 의해 판독 가능한 명령어들(instructions)을 포함할 수 있다.
본 개시에서 설명된 증강 현실 디바이스(100)에 의해 실행되는 프로그램은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 프로그램은 컴퓨터로 읽을 수 있는 명령어들을 수행할 수 있는 모든 시스템에 의해 수행될 수 있다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령어(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다.
소프트웨어는, 컴퓨터로 읽을 수 있는 저장 매체(computer-readable storage media)에 저장된 명령어를 포함하는 컴퓨터 프로그램으로 구현될 수 있다. 컴퓨터가 읽을 수 있는 기록 매체로는, 예를 들어 마그네틱 저장 매체(예컨대, ROM(read-only memory), RAM(random-access memory), 플로피 디스크, 하드 디스크 등) 및 광학적 판독 매체(예컨대, 시디롬(CD-ROM), 디브이디(DVD: Digital Versatile Disc)) 등이 있다. 컴퓨터가 읽을 수 있는 기록 매체는 네트워크로 연결된 컴퓨터 시스템들에 분산되어, 분산 방식으로 컴퓨터가 판독 가능한 코드가 저장되고 실행될 수 있다. 매체는 컴퓨터에 의해 판독 가능하며, 메모리에 저장되고, 프로세서에서 실행될 수 있다.
컴퓨터로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장매체의 형태로 제공될 수 있다. 여기서, '비일시적'은 저장매체가 신호(signal)를 포함하지 않으며 실재(tangible)한다는 것을 의미할 뿐 데이터가 저장매체에 반영구적 또는 임시적으로 저장되는 경우를 구분하지 않는다. 예를 들어, '비일시적 저장매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다.
또한, 본 명세서에 개시된 실시예들에 따른 프로그램은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다.
컴퓨터 프로그램 제품은 소프트웨어 프로그램, 소프트웨어 프로그램이 저장된 컴퓨터로 읽을 수 있는 저장 매체를 포함할 수 있다. 예를 들어, 컴퓨터 프로그램 제품은 증강 현실 디바이스(100)의 제조사 또는 전자 마켓(예를 들어, 삼성 갤럭시 스토어)을 통해 전자적으로 배포되는 소프트웨어 프로그램 형태의 상품(예를 들어, 다운로드 가능한 애플리케이션(downloadable application))을 포함할 수 있다. 전자적 배포를 위하여, 소프트웨어 프로그램의 적어도 일부는 저장 매체에 저장되거나, 임시적으로 생성될 수 있다. 이 경우, 저장 매체는 증강 현실 디바이스(100)의 제조사의 서버, 전자 마켓의 서버, 또는 소프트웨어 프로그램을 임시적으로 저장하는 중계 서버의 저장 매체가 될 수 있다.
컴퓨터 프로그램 제품은, 증강 현실 디바이스(100) 및/또는 서버로 구성되는 시스템에서, 서버의 저장매체 또는 증강 현실 디바이스(100)의 저장매체를 포함할 수 있다. 또는, 증강 현실 디바이스(100)와 통신 연결되는 제3 장치(예를 들어, 모바일 디바이스)가 존재하는 경우, 컴퓨터 프로그램 제품은 제3 장치의 저장매체를 포함할 수 있다. 또는, 컴퓨터 프로그램 제품은 증강 현실 디바이스(100)로부터 제3 장치로 전송되거나, 제3 장치로부터 전자 장치로 전송되는 소프트웨어 프로그램 자체를 포함할 수 있다.
이 경우, 증강 현실 디바이스(100) 또는 제3 장치 중 하나가 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수 있다. 또는, 증강 현실 디바이스(100) 및 제3 장치 중 적어도 하나 이상이 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 분산하여 실시할 수 있다.
예를 들면, 증강 현실 디바이스(100)가 메모리(130, 도 3 참조)에 저장된 컴퓨터 프로그램 제품을 실행하여, 증강 현실 디바이스(100)와 통신 연결된 타 전자 장치가 개시된 실시예들에 따른 방법을 수행하도록 제어할 수 있다.
또 다른 예로, 제3 장치가 컴퓨터 프로그램 제품을 실행하여, 제3 장치와 통신 연결된 전자 장치가 개시된 실시예에 따른 방법을 수행하도록 제어할 수 있다.
제3 장치가 컴퓨터 프로그램 제품을 실행하는 경우, 제3 장치는 증강 현실 디바이스(100)로부터 컴퓨터 프로그램 제품을 다운로드하고, 다운로드된 컴퓨터 프로그램 제품을 실행할 수 있다. 또는, 제3 장치는 프리로드(pre-load)된 상태로 제공된 컴퓨터 프로그램 제품을 실행하여 개시된 실시예들에 따른 방법을 수행할 수도 있다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 컴퓨터 시스템 또는 모듈 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
Claims (15)
- 손 관절의 3차원 위치 정보를 획득하는 증강 현실 디바이스(100)에 있어서,사용자의 손을 촬영하여 이미지를 획득하는 복수의 카메라(112, 114);룩 업 테이블(look-up table, LUT)(200)을 저장하는 메모리(130); 및적어도 하나의 프로세서(120);를 포함하고,상기 적어도 하나의 프로세서(120)는,상기 복수의 카메라(112, 114)를 통해 획득된 복수의 이미지로부터 손 관절을 인식하고,상기 인식된 손 관절의 특징점에 관한 2차원 관절 좌표값을 획득하고,상기 룩 업 테이블(200)로부터 상기 복수의 카메라(112, 114)의 왜곡 모델 파라미터, 상기 복수의 카메라(112, 114) 간의 위치 관계, 및 상기 획득된 2차원 관절 좌표값에 대응되는 3차원 위치 좌표값을 획득하고,상기 획득된 3차원 위치 좌표값에 기초하여 상기 손 관절의 3차원 위치 정보를 출력하는, 증강 현실 디바이스(100).
- 제1 항에 있어서,상기 룩 업 테이블(200)은,기 획득된 복수의 2차원 위치 좌표값, 복수의 왜곡 모델 파라미터, 복수의 카메라 위치 관계 파라미터, 및 복수의 3차원 위치 좌표값을 포함하고,상기 복수의 2차원 위치 좌표값은, 상기 복수의 3차원 위치 좌표값에 상기 복수의 왜곡 모델 파라미터, 및 상기 복수의 카메라 위치 관계 파라미터를 적용하는 시뮬레이션을 통해 획득되는 것인, 증강 현실 디바이스(100).
- 제2 항에 있어서,상기 룩 업 테이블(200)에 포함된 상기 복수의 3차원 위치 좌표값은,인체의 근골격계의 해부학적 제약에 따른 상체 관절의 가동 각도 범위(range of movable angle) 내에서 상기 손 관절의 임의의 3차원 위치를 나타내는 좌표값인, 증강 현실 디바이스(100).
- 제2 항에 있어서,상기 룩 업 테이블(200)에 포함된 상기 복수의 2차원 위치 좌표값은,상기 복수의 3차원 위치 좌표값을 상기 복수의 카메라 위치 관계 파라미터에 기초하여 투영(projection)함으로써 복수의 2차원 프로젝션 좌표값을 획득하고, 상기 획득된 복수의 2차원 프로젝션 좌표값에 상기 복수의 왜곡 모델 파라미터를 적용하여 렌즈의 왜곡을 반영한 시뮬레이션을 통해 획득된, 증강 현실 디바이스(100).
- 제1 항 내지 제4 항 중 어느 하나의 항에 있어서,상기 적어도 하나의 프로세서(120)는,상기 룩 업 테이블(200)에 액세스(access)하여, 상기 룩 업 테이블(200)로부터 상기 렌즈의 왜곡 모델 파라미터, 상기 복수의 카메라 간의 위치 관계, 및 상기 획득된 2차원 관절 좌표값과 동일 또는 유사한 왜곡 모델 파라미터, 카메라 위치 관계 파라미터, 및 2차원 위치 좌표값을 검색(search)하고,검색된 왜곡 모델 파라미터, 카메라 위치 관계 파라미터, 및 2차원 위치 좌표값에 대응되는 상기 3차원 위치 좌표값을 상기 룩 업 테이블(200)로부터 획득하는, 증강 현실 디바이스(100).
- 제1 항 내지 제4 항 중 어느 하나의 항에 있어서,상기 적어도 하나의 프로세서(120)는,상기 룩 업 테이블(200)을 이용하여 학습된(trained) 인공지능 모델에 상기 렌즈의 왜곡 모델 파라미터, 상기 복수의 카메라 간의 위치 관계, 및 상기 획득된 2차원 관절 좌표값을 입력하고, 상기 인공지능 모델을 이용하는 추론을 통해 상기 3차원 위치 좌표값을 획득하는, 증강 현실 디바이스(100).
- 제1 항 내지 제6 항 중 어느 하나의 항에 있어서,상기 적어도 하나의 프로세서(120)는,상기 렌즈의 왜곡 모델 파라미터 및 상기 복수의 카메라 간의 위치 관계에 기초하여 상기 2차원 관절 좌표값의 왜곡을 보정하고, 상기 복수의 이미지의 방향에 관한 조정(rectification)을 수행하고,상기 왜곡 보정 및 조정 결과 보정된 2차원 관절 좌표값 및 상기 복수의 카메라 간의 위치 관계를 이용하여 삼각측량법(triangulation)을 통해 상기 손 관절의 제1 3차원 위치 좌표값을 산출하고,상기 산출된 제1 3차원 위치 좌표값과 상기 룩 업 테이블(200)로부터 획득된 제2 3차원 위치 좌표값을 비교하여, 상기 손 관절의 3차원 위치 정보의 오류(error)를 검출하는, 증강 현실 디바이스(100).
- 증강 현실 디바이스(100)가 손 관절의 3차원 위치 정보를 획득하는 방법에 있어서,복수의 카메라(112, 114)를 이용하여 사용자의 손을 촬영함으로써 획득된 복수의 이미지로부터 손 관절을 인식하는 단계(S210);상기 인식된 손 관절의 특징점에 관한 2차원 관절 좌표값을 획득하는 단계(S220);메모리(130)에 기 저장된 룩 업 테이블(look-up table, LUT)(200)로부터 상기 복수의 카메라의 왜곡 모델 파라미터, 상기 복수의 카메라 간의 위치 관계, 및 상기 획득된 2차원 관절 좌표값에 대응되는 3차원 위치 좌표값을 획득하는 단계(S230); 및상기 획득된 3차원 위치 좌표값에 기초하여 상기 손 관절의 3차원 위치 정보를 출력하는 단계(S240);를 포함하는, 방법.
- 제8 항에 있어서,상기 룩 업 테이블(200)은,기 획득된 복수의 2차원 위치 좌표값, 복수의 왜곡 모델 파라미터, 복수의 카메라 위치 관계 파라미터, 및 복수의 3차원 위치 좌표값을 포함하고,상기 복수의 2차원 위치 좌표값은, 상기 복수의 3차원 위치 좌표값에 상기 복수의 왜곡 모델 파라미터, 및 상기 복수의 카메라 위치 관계 파라미터를 적용하는 시뮬레이션을 통해 획득되는 것인, 방법.
- 제9 항에 있어서,상기 룩 업 테이블(200)에 포함된 상기 복수의 3차원 위치 좌표값은,인체의 근골격계의 해부학적 제약에 따른 상체 관절의 가동 각도 범위(range of movable angle) 내에서 상기 손 관절의 임의의 3차원 위치를 나타내는 좌표값인, 방법.
- 제9 항에 있어서,상기 룩 업 테이블(200)에 포함된 상기 복수의 2차원 위치 좌표값은,상기 복수의 3차원 위치 좌표값을 상기 복수의 카메라 위치 관계 파라미터에 기초하여 투영(projection)함으로써 복수의 2차원 프로젝션 좌표값을 획득하고, 상기 획득된 복수의 2차원 프로젝션 좌표값에 상기 복수의 왜곡 모델 파라미터를 적용하여 렌즈의 왜곡을 반영한 시뮬레이션을 통해 획득된, 방법.
- 제8 항 내지 제11 항 중 어느 하나의 항에 있어서,상기 3차원 위치 좌표값을 획득하는 단계(S230)는,상기 룩 업 테이블(200)에 액세스(access)하여, 상기 룩 업 테이블(200)로부터 상기 렌즈의 왜곡 모델 파라미터, 상기 복수의 카메라 간의 위치 관계, 및 상기 획득된 2차원 관절 좌표값과 동일 또는 유사한 왜곡 모델 파라미터, 카메라 위치 관계 파라미터, 및 2차원 위치 좌표값을 검색(search)하는 단계; 및검색된 왜곡 모델 파라미터, 카메라 위치 관계 파라미터, 및 2차원 위치 좌표값에 대응되는 상기 3차원 위치 좌표값을 상기 룩 업 테이블(200)로부터 획득하는 단계;를 포함하는, 방법.
- 제8 항 내지 제11 항 중 어느 하나의 항에 있어서,상기 3차원 위치 좌표값을 획득하는 단계(S230)는,상기 룩 업 테이블(200)을 이용하여 학습된(trained) 인공지능 모델에 상기 렌즈의 왜곡 모델 파라미터, 상기 복수의 카메라 간의 위치 관계, 및 상기 획득된 2차원 관절 좌표값을 입력하고, 상기 인공지능 모델을 이용하는 추론을 통해 상기 3차원 위치 좌표값을 획득하는 단계;를 포함하는, 방법.
- 제8 항 내지 제13 항 중 어느 하나의 항에 있어서,상기 렌즈의 왜곡 모델 파라미터 및 상기 복수의 카메라 간의 위치 관계에 기초하여 상기 2차원 관절 좌표값의 왜곡을 보정하고, 상기 복수의 이미지의 방향에 관한 조정(rectification)을 수행하는 단계(S1010);상기 왜곡 보정 및 조정 결과 보정된 2차원 관절 좌표값 및 상기 복수의 카메라 간의 위치 관계를 이용하여 삼각측량법(triangulation)을 통해 상기 손 관절의 제1 3차원 위치 좌표값을 산출하는 단계(S1020); 및상기 산출된 제1 3차원 위치 좌표값과 상기 룩 업 테이블(200)로부터 획득된 제2 3차원 위치 좌표값을 비교하여, 상기 손 관절의 3차원 위치 정보의 오류(error)를 검출하는 단계(S1030);를 더 포함하는, 방법.
- 컴퓨터로 판독 가능한 저장 매체를 포함하는 컴퓨터 프로그램 제품(Computer Program Product)에 있어서,상기 저장 매체는,복수의 카메라(112, 114)를 이용하여 사용자의 손을 촬영함으로써 획득된 복수의 이미지로부터 손 관절을 인식하는 동작;상기 인식된 손 관절의 특징점에 관한 2차원 관절 좌표값을 획득하는 동작;기 저장된 룩 업 테이블(look-up table, LUT)(200)로부터 상기 복수의 카메라의 왜곡 모델 파라미터, 상기 복수의 카메라 간의 위치 관계, 및 상기 획득된 2차원 관절 좌표값에 대응되는 3차원 위치 좌표값을 획득하는 동작; 및상기 획득된 3차원 위치 좌표값에 기초하여 상기 손 관절의 3차원 위치 정보를 출력하는 동작;을 포함하는, 증강 현실 디바이스(100)가 손 관절의 3차원 위치 정보를 획득하는 방법에 관한 명령어들(instructions)을 포함하는 컴퓨터 프로그램 제품.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020230001327A KR20240109482A (ko) | 2023-01-04 | 2023-01-04 | 손 관절의 3차원 위치 정보를 획득하는 증강 현실 디바이스 및 그 동작 방법 |
KR10-2023-0001327 | 2023-01-04 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2024147486A1 true WO2024147486A1 (ko) | 2024-07-11 |
Family
ID=91803748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2023/019015 WO2024147486A1 (ko) | 2023-01-04 | 2023-11-23 | 손 관절의 3차원 위치 정보를 획득하는 증강 현실 디바이스 및 그 동작 방법 |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR20240109482A (ko) |
WO (1) | WO2024147486A1 (ko) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010092085A (ja) * | 2008-10-03 | 2010-04-22 | Kumamoto Univ | 対象物検出装置および対象物検出方法 |
KR101725024B1 (ko) * | 2016-11-18 | 2017-04-07 | 최재용 | 룩업테이블 기반의 실시간 360도 vr 동영상 제작 시스템 및 이를 이용한 360도 vr 동영상 제작 방법 |
KR20200011425A (ko) * | 2017-12-13 | 2020-02-03 | 구글 엘엘씨 | 2d 이미지로부터의 손 골격 학습, 리프팅 및 노이즈 제거 |
KR20220094680A (ko) * | 2020-12-29 | 2022-07-06 | 광주과학기술원 | 캘리브레이션 시스템 및 방법 |
JP2022136803A (ja) * | 2021-03-08 | 2022-09-21 | 国立大学法人 東京大学 | 3d位置取得方法及び装置 |
-
2023
- 2023-01-04 KR KR1020230001327A patent/KR20240109482A/ko unknown
- 2023-11-23 WO PCT/KR2023/019015 patent/WO2024147486A1/ko unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2010092085A (ja) * | 2008-10-03 | 2010-04-22 | Kumamoto Univ | 対象物検出装置および対象物検出方法 |
KR101725024B1 (ko) * | 2016-11-18 | 2017-04-07 | 최재용 | 룩업테이블 기반의 실시간 360도 vr 동영상 제작 시스템 및 이를 이용한 360도 vr 동영상 제작 방법 |
KR20200011425A (ko) * | 2017-12-13 | 2020-02-03 | 구글 엘엘씨 | 2d 이미지로부터의 손 골격 학습, 리프팅 및 노이즈 제거 |
KR20220094680A (ko) * | 2020-12-29 | 2022-07-06 | 광주과학기술원 | 캘리브레이션 시스템 및 방법 |
JP2022136803A (ja) * | 2021-03-08 | 2022-09-21 | 国立大学法人 東京大学 | 3d位置取得方法及び装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20240109482A (ko) | 2024-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020036343A1 (en) | Electronic device and control method thereof | |
WO2018155892A1 (en) | Method for displaying virtual image, storage medium and electronic device therefor | |
WO2017007166A1 (ko) | 투영 이미지 생성 방법 및 그 장치, 이미지 픽셀과 깊이값간의 매핑 방법 | |
WO2016126083A1 (ko) | 주변 상황 정보를 통지하기 위한 방법, 전자 장치 및 저장 매체 | |
WO2019035582A1 (en) | DISPLAY APPARATUS AND SERVER, AND METHODS OF CONTROLLING THE SAME | |
WO2019022509A1 (en) | DEVICE AND METHOD FOR PROVIDING CONTENT | |
WO2021251534A1 (ko) | 모션 및 얼굴 캡쳐를 이용한 실시간 방송플랫폼 제공 방법, 장치 및 그 시스템 | |
WO2021034006A1 (en) | Method and apparatus for rigging 3d scanned human models | |
WO2022086157A1 (ko) | 전자 장치 및 그 제어 방법 | |
WO2022035054A1 (ko) | 로봇 및 이의 제어 방법 | |
WO2021221436A1 (ko) | 카메라를 이용하여 공간의 깊이를 획득하는 디바이스 및 방법 | |
WO2020122513A1 (ko) | 2차원 이미지 처리 방법 및 이 방법을 실행하는 디바이스 | |
WO2024147486A1 (ko) | 손 관절의 3차원 위치 정보를 획득하는 증강 현실 디바이스 및 그 동작 방법 | |
WO2022145888A1 (ko) | 증강 현실 장치를 제어하는 방법 및 이를 수행하는 증강 현실 장치 | |
WO2022092762A1 (ko) | 스테레오 매칭 방법 및 이를 수행하는 영상 처리 장치 | |
WO2022075686A1 (ko) | 전자 장치 및 그 동작 방법 | |
WO2023063570A1 (ko) | 손 동작에 관한 이미지 데이터를 획득하는 전자 장치 및 그 동작 방법 | |
WO2020251151A1 (ko) | 3차원 가상 공간 모델을 이용한 사용자 포즈 추정 방법 및 장치 | |
WO2024053876A1 (ko) | 카메라 캘리브레이션(camera calibration)을 수행하는 전자 장치 및 그 동작 방법 | |
WO2023132633A1 (ko) | 복수의 카메라를 이용하여 3차원 이미지를 생성하는 방법 및 장치 | |
WO2023239035A1 (ko) | 손 동작에 관한 이미지 데이터를 획득하는 전자 장치 및 그 동작 방법 | |
WO2023239072A1 (ko) | 부호화 이미지로부터 특징점을 획득하는 전자 장치 및 그 동작 방법 | |
WO2024053895A1 (ko) | 현실 공간에서 객체를 제어하는 증강 현실 서비스를 제공하는 증강 현실 디바이스 및 그 동작 방법 | |
WO2023022494A1 (ko) | 아바타 생성 및 가상 피팅을 위한 전자 장치 및 전자 장치의 동작 방법 | |
WO2024063343A1 (ko) | 3d 모션 캡처 방법 및 시스템 |