WO2023113471A1 - 복수의 카메라를 이용하여 촬영된 객체의 3차원 골격 데이터를 획득하는 전자 장치 및 방법 - Google Patents

복수의 카메라를 이용하여 촬영된 객체의 3차원 골격 데이터를 획득하는 전자 장치 및 방법 Download PDF

Info

Publication number
WO2023113471A1
WO2023113471A1 PCT/KR2022/020374 KR2022020374W WO2023113471A1 WO 2023113471 A1 WO2023113471 A1 WO 2023113471A1 KR 2022020374 W KR2022020374 W KR 2022020374W WO 2023113471 A1 WO2023113471 A1 WO 2023113471A1
Authority
WO
WIPO (PCT)
Prior art keywords
image
camera
skeleton data
data
region
Prior art date
Application number
PCT/KR2022/020374
Other languages
English (en)
French (fr)
Inventor
김덕호
권태혁
박황필
정지원
Original Assignee
삼성전자 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 삼성전자 주식회사 filed Critical 삼성전자 주식회사
Priority to EP22907938.9A priority Critical patent/EP4365840A1/en
Priority to CN202280066775.1A priority patent/CN118056230A/zh
Priority to US18/082,190 priority patent/US20230186512A1/en
Publication of WO2023113471A1 publication Critical patent/WO2023113471A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/06Topological mapping of higher dimensional structures onto lower dimensional surfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/174Segmentation; Edge detection involving the use of two or more images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/50Depth or shape recovery
    • G06T7/55Depth or shape recovery from multiple images
    • G06T7/593Depth or shape recovery from multiple images from stereo images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V40/00Recognition of biometric, human-related or animal-related patterns in image or video data
    • G06V40/20Movements or behaviour, e.g. gesture recognition
    • G06V40/28Recognition of hand or arm movements, e.g. recognition of deaf sign language
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20036Morphological image processing
    • G06T2207/20044Skeletonization; Medial axis transform

Definitions

  • the present disclosure relates to an electronic device and method for obtaining 3D skeletal data of an object from images captured by a plurality of cameras within a limited power budget.
  • VR virtual reality
  • AR augmented reality
  • electronic devices for providing VR or AR there are electronic devices provided in a form that can be worn on the body. These electronic devices may be commonly referred to as wearable devices.
  • a head-mounted electronic device such as a head mounted display (HMD) may be included.
  • the head-mounted electronic device may be worn on a part of the user's body (eg, the user's head) to provide a VR or AR environment to the user.
  • Provision of an AR environment may include, for example, provision of a display capable of implementing augmented reality and various user interfaces.
  • Augmented reality technology is a technology that synthesizes virtual objects or information in a real environment to make the virtual objects or information look like objects existing in a real physical environment.
  • Modern computing and display technologies have enabled the development of systems for augmented reality experiences, in which a digitally recreated image or portion thereof is displayed in a way that can be thought of or perceived as real. can be presented to the user.
  • an operation of detecting a region of interest including an image corresponding to the object is performed only for an image obtained through any one of a plurality of cameras included in an electronic device, so that an object is detected in an image.
  • a method for obtaining 3D skeleton data of an object photographed using a first camera and a second camera by an electronic device disclosed as a technical means for achieving the above-described technical problem is, using the first camera Acquiring a first image and acquiring a second image using a second camera, obtaining a first region of interest (ROI) including an object from the first image, and obtaining an object from the first region of interest Obtaining first skeleton data including at least one feature point of, Obtaining a second region of interest from a second image based on the first skeleton data and relative positional information of the first camera and the second camera; obtaining second skeleton data including at least one feature point of an object from a second region of interest; and acquiring 3D skeleton data of the object based on the first skeleton data and the second skeleton data. can do.
  • ROI region of interest
  • An electronic device for obtaining 3D coordinates of an object using a plurality of cameras disclosed as a technical means for achieving the above-described technical problem is a first camera, a second camera, and a storage unit that stores at least one instruction. , and at least one processor electrically connected to the first camera and the second camera and executing at least one command stored in the storage unit. By executing at least one command, the processor acquires a first image through a first camera and a second image through a second camera, acquires a first region of interest including an object from the first image, and obtains a first region of interest from the first image.
  • First skeleton data including at least one feature point of an object is obtained from a region of interest, and a second region of interest is obtained from a second image based on the first skeleton data and relative positional information of the first camera and the second camera.
  • second skeleton data including at least one feature point of the object from the second region of interest may be acquired, and 3D skeleton data of the object may be obtained based on the first skeleton data and the second skeleton data.
  • a computer-readable recording medium disclosed as a technical means for achieving the above-described technical problem may store a program for executing at least one of the embodiments of the disclosed method in a computer.
  • FIG. 1 is a schematic diagram of a method of acquiring 3D skeletal data of a hand by using a plurality of cameras in an electronic device according to an embodiment of the present disclosure.
  • FIG. 2 is a flowchart of a method of acquiring 3D skeleton data of an object by using a plurality of cameras in an electronic device according to an embodiment of the present disclosure.
  • FIG 3 is a diagram for explaining an operation of obtaining a region of interest (ROI) from one camera image according to an embodiment of the present disclosure.
  • ROI region of interest
  • FIG. 4 is a diagram for explaining an operation of acquiring hand skeleton data from a region of interest of a camera image according to an embodiment of the present disclosure.
  • FIG. 5 is a diagram for explaining an operation of obtaining a region of interest of another camera image based on hand skeleton data acquired from the region of interest of one camera image according to an embodiment of the present disclosure.
  • FIG. 6 is a diagram for explaining an operation of obtaining hand skeleton data from a region of interest of another camera image according to an embodiment of the present disclosure.
  • FIG. 7 is a diagram for explaining an operation of obtaining 3D skeletal data of an object based on skeletal data of an object obtained from different camera images according to an embodiment of the present disclosure.
  • FIG. 8 is a diagram for explaining an operation of obtaining 3D skeletal data of an object based on skeletal data of an object acquired from different camera images according to an embodiment of the present disclosure.
  • FIG. 9 illustrates an operation of determining, by an electronic device including a plurality of cameras, at least one camera image to be used in a method of obtaining 3D skeletal data of a hand among a plurality of camera images according to an embodiment of the present disclosure. It is a drawing for explanation.
  • FIG. 10 is a block diagram of an electronic device according to an embodiment of the present disclosure.
  • the expression "at least one of a, b, or c” means “a”, “b”, “c”, “a and b”, “a and c", “b and c”, “a, b” and c”, or variations thereof.
  • a processor configured (or configured) to perform A, B, and C may include a dedicated processor (e.g., an embedded processor) to perform those operations, or by executing one or more software programs stored in memory; It may mean a general-purpose processor (eg, CPU or application processor) capable of performing corresponding operations.
  • a dedicated processor e.g., an embedded processor
  • It may mean a general-purpose processor (eg, CPU or application processor) capable of performing corresponding operations.
  • a processor may consist of one or a plurality of processors.
  • the one or more processors may be a general-purpose processor such as a CPU, an AP, or a digital signal processor (DSP), a graphics-only processor such as a GPU or a vision processing unit (VPU), or an artificial intelligence-only processor such as an NPU.
  • DSP digital signal processor
  • GPU graphics-only processor
  • VPU vision processing unit
  • NPU artificial intelligence-only processor
  • One or more processors control input data to be processed according to predefined operating rules or artificial intelligence models stored in a memory.
  • the processors dedicated to artificial intelligence may be designed with a hardware structure specialized for processing a specific artificial intelligence model.
  • a predefined action rule or an artificial intelligence model is characterized in that it is created through learning.
  • being created through learning means that a basic artificial intelligence model (or deep learning model) is learned using a plurality of learning data by a learning algorithm, and thus a predefined operation set to perform a desired characteristic (or purpose).
  • rules or artificial intelligence models are created.
  • Such learning may be performed in the device itself in which artificial intelligence according to the present disclosure is performed, or through a separate server and/or system.
  • Examples of learning algorithms include supervised learning, unsupervised learning, semi-supervised learning, or reinforcement learning, but are not limited to the above examples.
  • An artificial intelligence model may be composed of a plurality of neural network layers.
  • Each of the plurality of neural network layers has a plurality of weight values, and a neural network operation is performed through an operation between an operation result of a previous layer and a plurality of weight values.
  • a plurality of weights possessed by a plurality of neural network layers may be optimized by a learning result of an artificial intelligence model. For example, a plurality of weights may be modified so that a loss value or a cost value obtained from an artificial intelligence model is reduced or minimized during a learning process.
  • the artificial neural network may include a deep neural network (DNN), for example, a Convolutional Neural Network (CNN), a Deep Neural Network (DNN), a Recurrent Neural Network (RNN), a Restricted Boltzmann Machine (RBM), A deep belief network (DBN), a bidirectional recurrent deep neural network (BRDNN), or deep Q-networks, but is not limited to the above examples.
  • DNN deep neural network
  • CNN Convolutional Neural Network
  • DNN Deep Neural Network
  • RNN Recurrent Neural Network
  • RBM Restricted Boltzmann Machine
  • BBN Restricted Boltzmann Machine
  • BBN deep belief network
  • BNN bidirectional recurrent deep neural network
  • Q-networks deep Q-networks
  • a 'Field of View (FOV)' of a camera represents an area of an image or video captured through a camera.
  • the field of view may also be referred to as FOV degree.
  • An area of an image or video photographed by a camera may indicate an area of an image or video displayed within a display screen area.
  • 'video' or 'image sequence' may represent a moving image or video.
  • a video or image sequence may include a series of still pictures with temporal precedence.
  • a 'video frame' or 'image' may represent a sheet of a still image output to a display. That is, in an image in which a moving image is created by displaying consecutive scenes at short time intervals, each scene may be displayed individually.
  • a 'keypoint (feature point)' may indicate a point that is easily identified or differentiated from the surrounding background in a video or image.
  • Feature points can be used when tracking or recognizing an object in an image. For example, points that can be easily identified even when the shape, size, or position of an object is changed, or points that can be easily identified even when the viewpoint or lighting of a camera are changed can be set as feature points.
  • a feature point may be a corner point of an object image or points located on a boundary line of an object.
  • feature points may be included in the joint part. Throughout this specification, a user's hand is described as an example of an object in an image or video.
  • the present invention is not limited to an embodiment related to a user's hand.
  • other body parts of the user may be objects in an image or video.
  • a part or element of a non-human object eg, a hand or foot of an animal or a part of an electronic device
  • a part or element of a non-human object may be an object of an image or video.
  • a 'graph' may represent a set of structured information composed of points (nodes) and lines (edges) connecting the points.
  • a connection relationship between nodes can be structurally represented through a graph.
  • a graph may be created by expressing nodes and relationships between nodes in a hierarchical manner, and may have a tree structure in which nodes are connected through edges.
  • 'skeleton data' of an object may include at least one feature point of the object as a joint.
  • Skeleton data may be a 'data set' including coordinate information on a plurality of joints.
  • skeletal data may include a 'skeleton graph'.
  • the skeleton graph may include at least one feature point of an object as a node. That is, nodes of the skeletal graph may correspond to joints (feature points) of objects.
  • feature points of the hand may be included in the joint of the hand.
  • the skeleton graph may include edges connecting nodes corresponding to adjacent joint pairs in the same finger.
  • the skeletal graph of the hand may be used for determining the 3D pose of the hand.
  • a 'gesture' may represent a movement of an object such as a body part such as a hand or a foot or a specific non-physical object.
  • FIG. 1 is a schematic diagram of a method of acquiring 3D skeletal data HC of a hand H by using a plurality of cameras in an electronic device 10 according to an embodiment of the present disclosure.
  • the electronic device 10 may include an augmented reality device (AR device) capable of acquiring a video or image sequence using a plurality of cameras.
  • An augmented reality device is a device capable of expressing augmented reality (AR), and may display an image including a physical object and a virtual object existing in reality.
  • the electronic device 10 may include, for example, augmented reality glasses in the shape of glasses worn on the user's face, a head mounted display (HMD) worn on the head, and a virtual reality headset (virtual reality headset).
  • VRH virtual reality headset
  • the electronic device 10 of the present disclosure is not limited to the above examples, and provides a virtual reality service or an augmented reality service to a user, or a 3D hand pose and hand gesture using a plurality of cameras. (gesture) can include various types of devices.
  • the 3D pose of the hand H may be recognized through a 'hand skeleton detection and tracking' technique.
  • the hand skeleton detection and tracking technology is a technology for detecting moving joint parts on an image of a human hand (H), dividing and projecting a predetermined skeleton structure.
  • the electronic device 10 may include a plurality of cameras for acquiring a 3D image of the user's hand H.
  • a distance to the object to be photographed may be calculated from a plurality of images obtained from each of the plurality of cameras, and a 3D image of the object to be photographed may be obtained. there is.
  • a 3D image of a specific object may include depth information of each pixel included in the image corresponding to the object.
  • a set of a plurality of cameras may correspond to a computational camera, and a 3D image including depth information is generated by reprocessing images formed from subjects through a lens of each camera of the plurality of cameras through calculation. can do.
  • a 3D image of a specific object may include 3D coordinate information of feature points of the object.
  • the user's hand (H) may include a plurality of feature points respectively corresponding to a plurality of joints (joints), and the 3D image of the user's hand (H) obtained through a plurality of cameras may include a plurality of joints (joints). It may include 3D coordinate information from a predetermined origin for each of the .
  • the electronic device 10 may capture the user's hand H wearing the electronic device 10 using a plurality of cameras.
  • the electronic device 10 may include two cameras.
  • the electronic device 10 may obtain a first image IM1 through a first camera and a second image IM2 through a second camera.
  • Each of the first image IM1 and the second image IM2 may include a hand image corresponding to the user's hand H.
  • the electronic device 10 may obtain a first region of interest (ROI1) including a hand image corresponding to the hand H of the user from the first image IM1.
  • the first region of interest ROI1 may have a block or window shape including a hand image.
  • the image region including the hand image is converted to the first region of interest ROI1 by using the first image IM1 as an input value.
  • a first deep learning model trained to output may be used. An operation of acquiring the first region of interest ROI1 from the first image IM1 will be described in detail with reference to FIG. 3 to be described later.
  • the electronic device 10 may obtain first skeleton data HC1 including at least one feature point of the hand H from the first region of interest ROI1.
  • the first skeleton data HC1 may be a skeleton graph including edges and nodes. At least one characteristic point of the hand H may be included in a joint part of the hand.
  • the first skeleton data HC1 may be a data set including coordinate information about at least one feature point (eg, joint) of the hand H. Coordinate information about hand feature points may include 2-dimensional coordinate values or 3-dimensional coordinate values.
  • a second deep learning model may be used in an operation of acquiring the first skeleton data HC1 from the first region of interest ROI1.
  • the second deep learning model may be trained to output first skeletal data HC1 of the hand H by using the first region of interest ROI1 as an input value.
  • the second deep learning model is trained to output first skeleton data HC1 including coordinate values of at least one feature point of the hand H by taking the first region of interest ROI1 as an input value.
  • each feature point included in the first skeleton data HC1 obtained by using the second deep learning model may correspond to a 3D positional coordinate of a preset origin in space.
  • the electronic device 10 obtains a second region of interest ROI2 from the second image IM2 based on the first skeleton data HC1 and relative position information of the first and second cameras.
  • the second region of interest ROI2 may indicate a region including an image corresponding to the user's hand H in the second image IM2 .
  • the operation of obtaining the second region of interest ROI2 from the second image IM2 based on the first skeleton data HC1 may include at least one feature point included in the first skeleton data HC1. , projecting the corresponding 3-dimensional position coordinates to 2-dimensional position coordinates on the second image IM2; It may include identifying a block including location coordinates, and determining the identified block as a second region of interest ROI2.
  • the relative positions of the first camera and the second camera information may be used.
  • Relative location information between the first camera and the second camera may correspond to a distance or baseline between the first camera and the second camera.
  • the electronic device 10 may obtain second skeleton data HC2 including at least one feature point of the hand H from the second region of interest ROI2.
  • the second skeleton data HC2 may be a skeleton graph including edges and nodes. At least one characteristic point of the hand H may be included in a joint part of the hand.
  • the second skeleton data HC2 may be a data set including coordinate information about at least one feature point (eg, joint) of the hand.
  • a third deep learning model may be used in an operation of acquiring the second skeleton data HC2 from the second region of interest ROI2.
  • the third deep learning model may be trained to output the second skeleton data HC2 of the hand H by using the second region of interest ROI2 as an input value.
  • the third deep learning model takes the second region of interest ROI2 as an input value and outputs second skeleton data HC2, which is a skeleton graph including coordinate values for at least one feature point of the hand H. can be trained to do
  • each of the feature points included in the second skeleton data HC2 obtained by using the third deep learning model is a 2-dimensional location coordinate of a predetermined origin on a plane including the second image IM2. can correspond to
  • the electronic device 10 may obtain 3D skeleton data HC of the hand H based on the first skeleton data HC1 and the second skeleton data HC2.
  • feature points included in the first skeleton data HC1 correspond to 3D positional coordinates of a preset origin in space
  • feature points included in the second skeleton data HC2 correspond to a second image ( IM2)
  • the electronic device 10 may project corresponding 3D location coordinates to 2D location coordinates on the first image IM1 for each feature point included in the first skeleton data HC1. there is.
  • the 2D position coordinates projected on the first image IM1 and the 2D position coordinates of the corresponding feature point in the second skeleton data HC2 are calculated.
  • triangulation may be used for an operation of obtaining 3D location coordinates using two 2D location coordinates.
  • FIGS. 7 and 8 An operation of acquiring the 3D skeletal data HC of the object (hand H) based on the first skeletal data HC1 and the second skeletal data HC2 will be described with reference to FIGS. 7 and 8 , which will be described later. Let me explain in more detail.
  • Hand interaction functions as one of the important input interfaces in the electronic device 10 that provides augmented reality services to users, such as AR glasses.
  • the electronic device 10 such as AR glasses may obtain a control signal through an estimated 3D pose of a user's hand or body part and a recognized gesture.
  • the electronic device 10 uses a plurality of cameras to accurately estimate the 3D pose of the user's hand, and estimates the depths (relative positions on the z-axis) of the joints of the hand from camera images from various viewpoints. After that, the 2D camera image can be restored into a 3D image using the estimated depth information.
  • an operation for finding a position of a hand from each camera image consumes particularly large amount of power.
  • a region of interest (ROI) including an image corresponding to the user's hand H it is possible to reduce the number of times the detection operation is performed to find the location where the hand H is included in the image. Furthermore, it is possible to reduce the total calculation time of the operation of obtaining 3D skeletal data of the hand and reduce the amount of power consumed by the electronic device 10 .
  • FIG. 2 is a flowchart of a method of acquiring 3D skeleton data of an object by using a plurality of cameras in an electronic device according to an embodiment of the present disclosure.
  • step S210 the electronic device acquires a first image through a first camera and a second image through a second camera.
  • each of the first image and the second image may include an image corresponding to an object (eg, a user's hand).
  • the user's hand is described as one example of an object photographed by the first camera and the second camera.
  • the object captured by the camera may be a user's arm, a user's foot, or a non-physical object or part of an object. That is, in one embodiment, the first image and the second image may be images corresponding to objects captured by the first camera or the second camera, respectively, and the object may have a specific skeleton.
  • step S220 the electronic device acquires a first ROI including an image corresponding to an object (eg, the user's hand) from the first image.
  • a first deep learning model trained to output an image region including an object image as the first region of interest by using the first image as an input value can be used
  • step S230 the electronic device obtains first skeleton data including at least one feature point of the object from the first ROI.
  • the operation of obtaining the first skeleton data from the first ROI includes a coordinate value of at least one feature point of an object (eg, hand) using the first ROI as an input value.
  • a second deep learning model, trained to output 1 skeleton data may be used.
  • the first skeleton data acquired using the second deep learning model may include 3D positional coordinates of a predetermined origin in the space of each feature point.
  • the first skeleton data may have 3D coordinate values (xn, yn, zn) corresponding to a specific joint n.
  • a 3D coordinate value (xn, yn, zn) corresponding to a specific joint n may indicate a relative position of the corresponding joint in 3D space from a preset origin.
  • the electronic device may acquire a second ROI from the second image based on the first skeleton data.
  • the operation of acquiring the second region of interest from the second image based on the first skeleton data includes the 3D location coordinates of feature points included in the first skeleton data, and the 2D location on the second image IM2. It may include projecting a coordinate, identifying a block including the projected 2D location coordinates from a second image, and determining the identified block as a second region of interest.
  • relative location information eg, base A baseline
  • 3D depth information is obtained through disparity calculation from 2D images acquired through two cameras disposed at different positions. can do.
  • Parallax may represent a positional difference of a corresponding axis in the first image and the second image according to the distance between the first camera and the second camera along a specific axis.
  • an object eg, user's hand
  • 3D position coordinates predicted through the 2D first image the angles of view of the first camera and the second camera, and relative positional information. It is possible to predict which part of the second image the region will correspond to.
  • the electronic device may obtain second skeleton data including at least one feature point of an object (eg, hand) from the second region of interest.
  • a third deep learning model may be used in the operation of obtaining the second skeleton data from the second region of interest.
  • the second skeleton data acquired using the third deep learning model may include 2D positional coordinates of respective feature points with respect to the set origins on the second image plane.
  • the second skeleton data may have a 2D coordinate value (xm,ym) corresponding to a specific joint m.
  • the 2D coordinate value (xm,ym) corresponding to a specific joint m may indicate a relative position of the corresponding joint on a 2D plane from a preset origin.
  • the electronic device may obtain 3D skeletal data of an object (eg, a hand) based on the first skeletal data and the second skeletal data.
  • an object eg, a hand
  • the first skeleton data includes 3D positional coordinates of an origin set in the space of feature points
  • the second skeleton data includes 2D positional coordinates of origins set on a second image plane of featurepoints.
  • the electronic device may project the 3D location coordinates of feature points included in the first skeleton data into 2D location coordinates on the first image plane.
  • 3D position coordinates are obtained by using the 2D position coordinates projected on the first image plane and the corresponding 2D position coordinates included in the second skeleton data.
  • triangulation may be used for an operation of obtaining 3D location coordinates using two 2D location coordinates.
  • 3D depth information is obtained through disparity calculation from 2D images acquired through two cameras disposed at different positions. can do. Therefore, the object (eg, the user's hand) through the 2D position coordinates projected onto the first image plane, the 2D position coordinates obtained from the second image, and the relative position information of the first camera and the second camera. It is possible to obtain 3D structure information about.
  • the first framework data may include 3D positional coordinates of preset origins in the space of feature points
  • the second framework data may also include 3D positional coordinates of corresponding feature points with respect to the same origin.
  • the electronic device converts a value obtained by averaging the 3D position coordinates of the first skeleton data and the 3D position coordinates of the second skeleton data into the 3D position coordinates of the corresponding feature point. can decide
  • a graph including at least one feature point of an object (eg, hand) as a joint is generated using the second region of interest as an input value.
  • a second deep learning model trained to output with 2 skeleton data, may be used.
  • the second deep learning model may output 3D location coordinates corresponding to feature points of the skeleton data
  • the third deep learning model may output 2D location coordinates corresponding to feature points of the skeleton data.
  • the electronic device may determine, for each feature point, a value obtained by weight-combining the position coordinates in the first framework data and the same-dimensional position coordinates in the second framework data as the 3-dimensional position coordinates of the corresponding feature point. .
  • FIG. 3 is a diagram for explaining an operation of obtaining a region of interest (a first region of interest, ROI1) from one camera image (a first camera image, IM1) according to an embodiment of the present disclosure.
  • an object eg, a first image IM1 of a first image IM1 obtained through a first camera and a second image IM2 acquired through a second camera
  • a first region of interest ROI1 including a hand image corresponding to the user's hand may be obtained.
  • the first region of interest ROI1 may have a block or window shape including a hand image.
  • the image region including the hand image is converted to the first region of interest ROI1 by using the first image IM1 as an input value. ), a first deep learning model trained to output may be used.
  • a frame scanning operation or an edge analysis method may be used in the operation of detecting the first region of interest ROI1 in the first image IM1.
  • the frame scanning operation shows a method of searching for an area including a hand by setting a frame to a plurality of blocks having a certain size and then scanning the blocks from an upper left corner to a lower right corner.
  • the size of the block may be preset. For example, if the processor determines that there are a plurality of hand-included regions because the size of the block is small, the scanning operation may be performed again by increasing the block size, and the hand is included in a specific block because the block size is large.
  • the scanning operation may be performed again by reducing the block size (in the corresponding block).
  • the size of the finally selected first region of interest ROI1 may vary according to the distance from the electronic device to the hand. For example, if the hand is located close to the camera, the image corresponding to the hand will be large, and accordingly, the size of the block (window) of the first region of interest ROI1 may be large. For example, when the hand is far from the camera, the size of the block (window) of the first region of interest ROI1 may be set small.
  • a first deep learning algorithm or other algorithms may be used in the operation of detecting the location of the first region of interest ROI1 from the first image IM1.
  • an operation of detecting a hand position ie, a region of interest
  • the electronic device includes an image corresponding to the user's hand only for one image (first image, IM1) among a plurality of images obtained from a plurality of cameras.
  • a first region of interest ROI1 may be detected. Therefore, according to an embodiment of the present disclosure, an operation of detecting a region of interest may not be performed on a plurality of images respectively obtained from all a plurality of cameras, and thus, less power consumption is possible.
  • FIG. 4 is a diagram for explaining an operation of obtaining first skeleton data HC1 of an object, for example, a hand, from a region of interest ROI1 of a first camera image IM1 according to an embodiment of the present disclosure. .
  • the electronic device may acquire first skeleton data HC1 of the hand from the first region of interest ROI1.
  • the first skeleton data HC1 may be expressed as a graph including joints as nodes and lines connecting the joints as edges.
  • the first skeletal data HC1 may indicate a 'data set' including coordinate values for each feature point using joints as feature points. That is, the electronic device according to an embodiment of the present disclosure provides first skeleton data HC1 (or first skeleton graph or first skeleton graph) including coordinate information about joints (or feature points or nodes) from the first region of interest ROI1. 1 data set) can be obtained.
  • At least one characteristic point of the hand may be included in a joint portion of the hand.
  • a hand joint graph may include 21 points. Each of the 21 points can be located on the joints of five fingers and on the palm.
  • a second deep learning model trained to output as the first framework data HC1 may be used.
  • the first skeleton data HC1 obtained by using the second deep learning model may include 3D positional coordinates of a preset origin in the space of each feature point.
  • 3D coordinate information about a hand joint may be detected from the position of the hand (the first region of interest, ROI1) on the first camera image IM1.
  • a second deep learning algorithm or other algorithms may be used to detect the 3D coordinate values of the hand joints.
  • a 3D structure of a hand predicted from a single 2D camera image may have lower accuracy than a 3D structure of a hand obtained using two 2D images.
  • a method of estimating the 3D structure of the hand according to relative positions between joints may be used to acquire the 3D structure of the hand from a single camera image.
  • a stochastic estimation method through a database in which 'relative positional relationship between joints' and '3D pose of the hand' are matched and stored can be used. .
  • FIG. 5 is another camera image based on first skeleton data HC1 of an object, for example, a hand, obtained from a first region of interest ROI1 of a first camera image IM1 according to an embodiment of the present disclosure. It is a diagram for explaining an operation of acquiring the second region of interest (ROI2) of (the second camera image, IM2).
  • ROI2 region of interest
  • an image corresponding to the user's hand is displayed on another camera image (second camera image, IM2) using the hand's three-dimensional skeleton data (HC1) obtained from one camera image (first camera image, IM1).
  • a second region of interest ROI2 predicted to be included may be calculated.
  • the second region of interest ROI2 corresponding to the position of the hand on the other camera may have a rectangular block (box or window) shape.
  • the relative positions of the first camera and the second camera Information may be used.
  • 3D depth information may be obtained from 2D images acquired through two cameras disposed at different locations through disparity calculation.
  • the parallax may indicate a positional difference of a corresponding axis between the first camera image IM1 and the second camera image IM2 according to the distance between the first camera and the second camera along a specific axis.
  • the user's hand image is obtained from the first camera image IM1 through the 3D position coordinates predicted through the 2D first camera image IM1 and the angles of view and relative position information of the first and second cameras. It may be predicted which part of the second camera image IM2 the displayed region (region of interest, ROI1) corresponds to.
  • the first deep learning model may be applied again to the calculated second region of interest ROI2 to determine an accurate region including an actual user's hand image.
  • the size of the image (calculated size of the second region of interest (ROI2)) used in the operation for detecting the hand position is reduced compared to the original image (the second camera image (IM2)), so that the overall operation of the electronic device is reduced. load can be reduced.
  • Equation 1 may be used for an operation of obtaining a second region of interest (ROI2) on another camera image from the 3D hand skeleton data (HC1) obtained from one camera image (first camera image, ROI1). there is.
  • ROI2 region of interest
  • HC1 3D hand skeleton data
  • (X, Y, Z) are 3D coordinate values of the first skeleton data HC1 obtained from the first region of interest ROI1, and (u, v) are obtained from the first region of interest ROI1. It represents a 2D coordinate value obtained by projecting the 3D coordinate value of the first skeleton data HC1 onto the plane of the second camera image IM2.
  • f x , f y , c x , and c y are properties determined based on internal factors of the electronic device, which convert parameter space coordinates (3D) inside the camera to image pixel coordinates (2D). It can be used in operation, and can be preset in the manufacturing stage of the camera module. For example, f x and f y may be determined based on the focal length of the camera (eg, the second camera), and c x and c y are the image (eg, the second camera image IM2) It can be determined based on the distance from the center of to the upper left corner.
  • r ij and t k are attributes determined based on external factors of the electronic device, and may be preset in the manufacturing stage of the electronic device.
  • r ij represents an axis rotation angle parameter from a preset origin (eg, a center point of an electronic device or an intermediate point between a first camera and a second camera) to a camera (eg, a second camera).
  • t k may represent a distance parameter from a preset origin (eg, a center point of an electronic device or an intermediate point between a first camera and a second camera) to a camera (eg, a second camera).
  • 2D coordinates projected onto the second image may be calculated for each of the 3D hand joint coordinates.
  • the electronic device according to an embodiment of the present disclosure may identify the minimum and maximum values on the x-axis and the minimum and maximum values on the y-axis among 2D coordinate values for each hand joint.
  • y min min(y 0 ,y 1 ,...,y n )
  • y max max(y 0 ,y 1 ,...,y n )
  • a rectangular block having a line as one diagonal may be determined as the second region of interest ROI2 in the second image IM2 .
  • FIG. 6 illustrates an operation of obtaining skeletal data HC2 of an object, for example, a hand, from a second region of interest ROI2 of another camera image (second camera image IM2) according to an embodiment of the present disclosure. It is a drawing for
  • a skeleton of the hand may be detected from the position of the hand (region of interest).
  • a third deep learning or other algorithm may be used for the motion of detecting the joint of the hand.
  • the detected hand joint may include 2D coordinate information.
  • the operation of obtaining the second skeleton data HC2 of the hand from the second region of interest ROI2 of the second camera image IM2 is the first camera image IM1, which has been described above with reference to FIG. 4 . It may be performed similarly to the operation of obtaining the first skeleton data HCl of the hand from the first region of interest ROI1 of the hand.
  • a second deep learning algorithm or other algorithms may be used in the operation of detecting the second skeleton data HC2, and in this case, the detected hand joints may include 3D coordinate information.
  • the first skeleton data HC1 and the second skeleton data HC2 are skeleton data for the same hand, and feature points included in the first skeleton data HC1 and the second skeleton data HC2 are Included feature points may correspond to each other on a one-to-one basis. Therefore, in subsequent operations for acquiring 3D skeletal data of the user's hand, a 3D skeletal structure of the user's hand is calculated based on the parallax of the 2D joint coordinate pairs corresponding one-to-one. can do.
  • FIG. 7 is a diagram for explaining an operation of obtaining 3D skeletal data of an object based on skeletal data of an object, for example, a hand, obtained from different camera images according to an embodiment of the present disclosure
  • 8 is a diagram for explaining an operation of obtaining 3D skeletal data of an object based on skeletal data of an object, eg, a hand, obtained from different camera images according to an embodiment of the present disclosure.
  • the second bone data obtained from the second camera image may include 2D coordinate values of joints.
  • the first skeleton data obtained from the first camera image may include 2D coordinate values or 3D coordinate values of joints.
  • the 3D coordinate values of the first skeleton data are calculated using parallax according to stereo vision. may be projected as 2D coordinate values on the first camera image plane.
  • 3D depth information of each joint may be obtained by calculating a disparity of a pair of 2D coordinates from relative position information of the first camera and the second camera.
  • 3D depth information of each joint may be obtained by calculating a disparity of a pair of 2D coordinates from relative position information of the first camera and the second camera.
  • FIG. 7 shows a view of the two cameras and the user's hand in the xz plane.
  • the user's hand may be positioned at point P.
  • P For example, when 3D depth information is calculated for a specific feature point, the position of the corresponding feature point may be indicated as a P point.
  • the following proportional equation can be obtained from a triangle formed by (P, x l , x r ) and a triangle formed by (P, Left camera, Right camera).
  • Z represents the depth from the camera to a specific point P.
  • the Z value may correspond to the D+f value.
  • Depth Z can be calculated according to the proportional formula as follows.
  • p (x l , y l , Z, 1) is configured using the two-dimensional coordinates (x l , y l ) obtained from the first camera (eg, the left camera) and the depth value Z obtained can do.
  • the 2D coordinates obtained from the first camera may be converted into 3D coordinates.
  • R may represent an axis rotation angle parameter from the first camera to a preset origin (eg, a center point of the electronic device or an intermediate point between the first camera and the second camera)
  • T may represent an axis rotation angle parameter from the first camera to a predetermined origin point.
  • a distance parameter to a set origin eg, a central point of the electronic device or an intermediate point between the first and second cameras
  • the 3D coordinates of corresponding feature points can be calculated from the 2D x-coordinates (x l and x r ) of the paired feature points in two images (IM l and IM r ).
  • a triangulation method may be used to calculate the 3D coordinates of feature points.
  • a first camera and a second camera may be disposed at points O l and O r , respectively. At this time, the following equation can be obtained according to the ratio of the triangles.
  • b represents the distance between the first camera and the second camera. b may be determined according to the relative positions of the first camera and the second camera. b may correspond to 'b' of FIG. 7 described above, and may be expressed as a baseline.
  • first camera When an image captured by a left camera (first camera) is referred to as a first image, two-dimensional coordinates (x l , y l ) of the first hand joint having the lower left corner of the first image as the origin may be obtained.
  • second camera the image captured by the right camera (second camera)
  • the two-dimensional coordinates (x r , y r ) of the second hand joint with the lower left corner of the second image as the origin can be obtained.
  • a depth value (depth) Z is obtained by performing an operation only on the x-axis coordinate value of a specific point P, Z becomes a z-axis coordinate value, and a y-axis coordinate value can be calculated using this. Therefore, it is possible to obtain the 3D coordinates (x p , y p , z p ) of the feature point even if the operation is performed only on the x-axis coordinate value.
  • the first skeleton data obtained from the first image may include 3D coordinate values of joints
  • the second skeleton data obtained from the second image may include 3D coordinate values of joints.
  • the electronic device may obtain the 3D skeleton data of the hand by calculating an average of coordinate values of the first skeleton data and coordinate values of the second skeleton data.
  • the electronic device may acquire 3D skeleton data of the hand by combining the 3D coordinate values of the first skeleton data and the 3D coordinate values of the second skeleton data with weights. For example, a weight for combining a 3D first joint coordinate value and a 3D second joint coordinate value may be determined based on a 3D joint coordinate value in a previous frame on the time axis.
  • 3D hand joint coordinates of a previous frame may be considered for stable hand position tracking and gesture recognition. This can prevent discontinuous calculation of the position and shape of the user's hand in continuous images.
  • FIG. 9 illustrates at least one camera for use in a method of obtaining 3D skeletal data of an object, for example, a hand, among images of a plurality of cameras by an electronic device including a plurality of cameras according to an embodiment of the present disclosure. It is a diagram for explaining an operation of determining an image.
  • the electronic device may include four cameras disposed at different locations, and the four cameras acquire images (a), images (b), images (c), and images (d), respectively. can do.
  • the electronic device Prior to performing an operation corresponding to step 120 of FIG. 1 described above, that is, an operation of acquiring a first region of interest including a hand image corresponding to the user's hand from the first image, the electronic device uses four cameras. A first image and a second image may be determined among the acquired four images. For example, in the case shown in FIG. 9 , the electronic device may determine image (b) as the first image and image (c) as the second image. Thereafter, the electronic device may obtain a first ROI from image b, which is the first image.
  • a first camera that is a main camera for tracking a user's hand among a plurality of cameras may be preset.
  • the first camera may be preset as a camera that captures a lower front area where a user's gesture interaction mainly occurs.
  • the electronic device may determine the second camera from among cameras other than the first camera.
  • the second camera may be determined according to a relative position of the first region of interest obtained from an image captured by the first camera in the first image, a position where the first camera is disposed, and a position where the second camera is disposed.
  • an operation of the electronic device determining the second camera among other cameras other than the first camera may be performed between steps 120 and 140 in FIG. 1 described above.
  • FIG. 10 is a block diagram of an electronic device 1000 according to an embodiment of the present disclosure.
  • the electronic device 1000 may be a device that obtains 3D skeletal data of an object, for example, a user's hand, from 2D images or images obtained through a plurality of cameras.
  • the electronic device 1000 may include, for example, glasses-shaped AR glasses worn on the face of the user, a head mounted display (HMD) worn on the head, and a virtual reality headset (VRH). ), or various wearable devices such as an AR helmet.
  • HMD head mounted display
  • VRH virtual reality headset
  • the electronic device 1000 according to an embodiment of the present disclosure is not limited to the above example, and the electronic device 1000 includes a plurality of cameras and various types of devices that acquire and process video or images. can include
  • an electronic device 1000 may include a first camera 1011, a second camera 1012, a processor 1020, and a storage unit 1030.
  • the electronic device 1000 may be implemented with more components than those shown in FIG. 10 , or the electronic device 1000 may be implemented with fewer components than those shown in FIG. 10 .
  • the first camera 1011 and the second camera 1012 may include digital photographing devices. In one embodiment, the first camera 1011 and the second camera 1012 may obtain an input image or an input image, respectively. In one embodiment, the first camera 1011 and the second camera 1012 may capture images or videos corresponding to respective angles of view.
  • the first camera 1011 and the second camera 1012 may each obtain a 2D image.
  • the electronic device 1000 may obtain a front area image including an image corresponding to the user's hand using the first camera 1011 and the second camera 1012 .
  • the storage unit 1030 may store a program to be executed by the processor 1020 to be described later to control the operation of the electronic device 1000 .
  • the storage unit 1030 may store a program including at least one instruction for controlling the operation of the electronic device 1000 .
  • Instructions and program codes readable by the processor 1020 may be stored in the storage 1030 .
  • the processor 1020 may be implemented to execute instructions or codes of a program stored in the storage unit 1030 .
  • the storage unit 1030 may store data input to or output from the electronic device 1000 .
  • the storage unit 1030 may be, for example, a flash memory, a hard disk, a multimedia card micro type, or a card type storage unit (eg, SD or XD storage). memory, etc.), RAM (RAM, Random Access Memory), SRAM (Static Random Access Memory), ROM (ROM, Read-Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory) , a magnetic storage unit, a magnetic disk, and an optical disk may include at least one type of storage medium.
  • the storage unit 1030 is not limited to the above example, and may include all kinds of storage media capable of storing data.
  • the processor 1020 may control overall operations of the electronic device 1000 .
  • the processor 1020 may generally control the first camera 1011, the second camera 1012, and the storage 1030 by executing programs stored in the storage 1030.
  • the processor 1020 may include hardware components that perform arithmetic, logic, and input/output operations and signal processing.
  • the processor 1020 may include, for example, a central processing unit, a microprocessor, a graphic processing unit, application specific integrated circuits (ASICs), digital signal processors (DSPs), and digital signal processors (DSPDs). Signal Processing Devices), PLDs (Programmable Logic Devices), and FPGAs (Field Programmable Gate Arrays).
  • the processor 1020 executes at least one command stored in the storage 1030 so that an object, for example, an image corresponding to the user's hand, is generated only for the first image acquired through the first camera 1011. Even if an operation of detecting the included region of interest is performed, the overall 3D joint structure of the hand can be obtained. For example, the processor 1020 obtains a first image through the first camera 1011 and obtains a second image through the second camera 1012 by executing at least one command stored in the storage unit 1030.
  • An operation in which the processor 1020 acquires the first image through the first camera 1011 and the second image through the second camera 1012 may correspond to step S210 of FIG. 2 described above.
  • An operation of the processor 1020 obtaining the first region of interest including the hand image from the first image may correspond to step S220 of FIG. 2 described above.
  • An operation of the processor 1020 obtaining first skeleton data including at least one feature point of the hand from the first region of interest may correspond to step S230 of FIG. 2 described above.
  • An operation of obtaining the second region of interest from the second image based on the first skeleton data by the processor 1020 may correspond to step S240 of FIG. 2 described above.
  • An operation of the processor 1020 obtaining second skeleton data including at least one feature point of the hand from the second region of interest may correspond to step S250 of FIG. 2 described above.
  • An operation of the processor 1020 obtaining 3D skeletal data of the hand based on the first skeletal data and the second skeletal data may correspond to step S260 of FIG. 2 described above.
  • an operation of detecting a region of interest including an image corresponding to a hand is performed only for an image obtained through any one of a plurality of cameras included in an electronic device, It is possible to reduce the total computation time of the operation of obtaining 3D hand skeleton data and reduce the amount of power consumed by the electronic device by reducing the number of detection operations for identifying the position of the hand in .
  • An embodiment of the present disclosure may be implemented or supported by one or more computer programs, and the computer programs may be formed from computer readable program codes and recorded in a computer readable medium.
  • application and “program” mean one or more computer programs, software components, sets of instructions, procedures, functions, objects suitable for implementation in computer readable program code. ), class, instance, related data, or part thereof.
  • Computer readable program code may include various types of computer code, including source code, object code, and executable code.
  • Computer readable medium means read only memory (ROM), random access memory (RAM), hard disk drive (HDD), compact disc (CD), digital video disc (DVD), or various types of memory; It may include various types of media that can be accessed by a computer.
  • the device-readable storage medium may be provided in the form of a non-transitory storage medium.
  • a 'non-transitory storage medium' is a tangible device, and may exclude wired, wireless, optical, or other communication links that transmit transitory electrical or other signals. Meanwhile, this 'non-temporary storage medium' does not distinguish between a case in which data is semi-permanently stored in the storage medium and a case in which data is temporarily stored in the storage medium.
  • the 'non-temporary storage medium' may include a buffer in which data is temporarily stored.
  • Computer readable media can be any available media that can be accessed by a computer and can include both volatile and nonvolatile media, removable and non-removable media. Computer readable media include media on which data can be permanently stored and media on which data can be stored and later overwritten, such as rewritable optical discs or removable memory devices.
  • the method according to various embodiments disclosed in this document may be included and provided in a computer program product.
  • Computer program products may be traded between sellers and buyers as commodities.
  • a computer program product is distributed in the form of a device-readable storage medium (eg, compact disc read only memory (CD-ROM)), or through an application store or on two user devices (eg, smart It can be distributed (eg, downloaded or uploaded) online, directly between phones).
  • a computer program product eg, a downloadable app
  • a storage medium readable by a device such as a manufacturer's server, an application store server, or a relay server's memory. It can be at least temporarily stored in or temporarily created.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Psychiatry (AREA)
  • Social Psychology (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Image Analysis (AREA)

Abstract

전자 장치가 복수의 카메라를 이용하여 촬영된 객체의 3차원 골격 데이터를 획득하는 방법이 제공된다. 방법은, 제1 카메라를 이용하여 제1 이미지를 획득하고 제2 카메라를 이용하여 제2 이미지를 획득하는 단계, 제1 이미지로부터 객체가 포함된 제1 관심 영역(region of interest, ROI)을 획득하는 단계, 제1 관심 영역으로부터, 객체의 적어도 하나의 특징점을 포함하는 제1 골격 데이터를 획득하는 단계, 제1 골격 데이터, 및 제1 카메라 및 제2 카메라의 상대적 위치 정보에 기초하여 제2 이미지로부터 제2 관심 영역을 획득하는 단계, 제2 관심 영역으로부터, 객체의 적어도 하나의 특징점을 포함하는 제2 골격 데이터를 획득하는 단계, 및 제1 골격 데이터 및 제2 골격 데이터에 기초하여, 객체의 3차원 골격 데이터를 획득하는 단계를 포함할 수 있다.

Description

복수의 카메라를 이용하여 촬영된 객체의 3차원 골격 데이터를 획득하는 전자 장치 및 방법
본 개시는 한정된 전력 예산(power budget) 내에서 복수의 카메라를 통해 촬영된 이미지로부터 객체의 3차원 골격 데이터를 획득하는 전자 장치 및 방법에 관한 것이다.
기술의 발달로 가상 현실(virtual reality, VR) 또는 증강 현실(augmented reality, AR)을 이용하는 컨텐츠(content)의 보급이 증가하고 있다. VR 또는 AR을 제공하기 위한 전자 장치들 중에는 신체에 착용할 수 있는 형태로 제공되는 전자 장치들이 있다. 이러한 전자 장치들은 통상적으로 웨어러블 디바이스(wearable device)라고 할 수 있다. 신체에 착용할 수 있는 전자 장치들의 형태들 중에 HMD(head mounted display)와 같은 헤드 장착형 전자 장치가 포함될 수도 있다. 헤드 장착형 전자 장치는 사용자의 신체 일부(예를 들면, 사용자의 머리)에 착용되어 사용자에게 VR 또는 AR 환경을 제공할 수 있다. AR 환경의 제공이란 예를 들어, 증강 현실을 구현할 수 있는 디스플레이 및 다양한 사용자 인터페이스의 제공을 포함할 수 있다.
증강 현실 기술은 현실의 환경에 가상 사물이나 정보를 합성하여, 가상 사물이나 정보가 현실의 물리적 환경에 존재하는 사물처럼 보이도록 하는 기술이다. 현대의 컴퓨팅 및 디스플레이 기술은 증강 현실 경험을 위한 시스템의 개발을 가능하게 하였는데, 증강 현실 경험에서는, 디지털적으로 재생성된 이미지 또는 그 일부가, 현실인 것처럼 생각되거나 또는 현실로서 인식될 수 있는 방식으로 사용자에게 제시될 수 있다.
터치 조작이 불가능하며, 별도의 입력 장치를 사용하기도 용이하지 않은 헤드 장착형 웨어러블 디바이스에서는, 사용자의 손이나 신체 부위의 3차원적 포즈(pose)와 제스처(gesture)를 이용하는 핸드 인터랙션(hand interaction)이 입력 인터페이스로서 중요하다. 따라서, 보다 실감나는 증강 현실 기술의 구현을 위해서는 손의 3차원적 포즈(형태)를 정확히 추정하고 제스처를 정확히 인식하는 기술이 요구된다.
증강 현실 기술에 대한 관심이 높아짐에 따라, 증강 현실을 구현하는 다양한 기술들에 대한 개발이 활발하게 이루어지고 있다. 특히 경량의 헤드 장착형 전자 장치에서는 배터리 용량이 한정적이다. 이에 따라, 복수의 카메라를 이용해 사용자의 손 등의 포즈 및 제스처를 인식할 때 전자 장치에서 소비하는 전력의 양을 줄일 수 있는 기술이 요구된다.
본 개시의 일 실시예는, 전자 장치에 포함된 복수의 카메라들 중 어느 하나를 통해 획득한 이미지에 대해서만, 객체에 대응되는 이미지가 포함된 관심 영역을 검출하는 동작을 수행함으로써, 이미지에서 객체의 위치를 식별하는 검출 동작의 수행 횟수를 줄여, 객체의 3차원 골격 데이터를 획득하는 동작의 총 연산 시간을 줄일 수 있고, 전자 장치에서 소비하는 전력의 양을 줄일 수 있는, 전자 장치 및 방법을 제공할 수 있다.
본 개시의 일 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 이하의 실시예들로부터 또 다른 기술적 과제들이 유추될 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서 개시된 전자 장치가 제1 카메라 및 제2 카메라를 이용하여 촬영된 객체의 3차원 골격 데이터(skeleton data)를 획득하는 방법은, 제1 카메라를 이용하여 제1 이미지를 획득하고 제2 카메라를 이용하여 제2 이미지를 획득하는 단계, 제1 이미지로부터 객체가 포함된 제1 관심 영역(region of interest, ROI)을 획득하는 단계, 제1 관심 영역으로부터, 객체의 적어도 하나의 특징점을 포함하는 제1 골격 데이터를 획득하는 단계, 제1 골격 데이터, 및 제1 카메라 및 제2 카메라의 상대적 위치 정보에 기초하여 제2 이미지로부터 제2 관심 영역을 획득하는 단계, 제2 관심 영역으로부터, 객체의 적어도 하나의 특징점을 포함하는 제2 골격 데이터를 획득하는 단계, 및 제1 골격 데이터 및 제2 골격 데이터에 기초하여, 객체의 3차원 골격 데이터를 획득하는 단계를 포함할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서 개시된 복수의 카메라를 이용하여 객체의 3차원 좌표를 획득하는 전자 장치는, 제1 카메라, 제2 카메라, 적어도 하나의 명령어(instruction)를 저장하는 저장부, 및 제1 카메라 및 제2 카메라와 전기적으로 연결되며, 저장부에 저장된 적어도 하나의 명령어를 실행하는 적어도 하나의 프로세서를 포함할 수 있다. 프로세서는 적어도 하나의 명령어를 실행함으로써, 제1 카메라를 통해 제1 이미지를 획득하고 제2 카메라를 통해 제2 이미지를 획득하고, 제1 이미지로부터 객체가 포함된 제1 관심 영역을 획득하고, 제1 관심 영역으로부터 객체의 적어도 하나의 특징점을 포함하는 제1 골격 데이터를 획득하고, 제1 골격 데이터, 및 상기 제1 카메라 및 제2 카메라의 상대적 위치 정보에 기초하여 제2 이미지로부터 제2 관심 영역을 획득하고, 제2 관심 영역으로부터 객체의 적어도 하나의 특징점을 포함하는 제2 골격 데이터를 획득하고, 제1 골격 데이터 및 제2 골격 데이터에 기초하여 객체의 3차원 골격 데이터를 획득할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서 개시된, 컴퓨터로 읽을 수 있는 기록 매체는, 개시된 방법의 실시예들 중에서 적어도 하나를 컴퓨터에서 실행시키기 위한 프로그램이 저장된 것일 수 있다.
도 1은 본 개시의 일 실시예에 따른 전자 장치가 복수의 카메라를 이용하여 손의 3차원 골격 데이터를 획득하는 방법의 개요도이다.
도 2는 본 개시의 일 실시예에 따른 전자 장치가 복수의 카메라를 이용하여 객체의 3차원 골격 데이터를 획득하는 방법의 흐름도이다.
도 3은 본 개시의 일 실시예에 따른 하나의 카메라 이미지에서 관심 영역(region of interest, ROI)을 획득하는 동작을 설명하기 위한 도면이다.
도 4는 본 개시의 일 실시예에 따른 카메라 이미지의 관심 영역으로부터 손의 골격 데이터를 획득하는 동작을 설명하기 위한 도면이다.
도 5는 본 개시의 일 실시예에 따른 하나의 카메라 이미지의 관심 영역으로부터 획득된 손의 골격 데이터에 기초하여 다른 카메라 이미지의 관심 영역을 획득하는 동작을 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시예에 따른 다른 카메라 이미지의 관심 영역으로부터 손의 골격 데이터를 획득하는 동작을 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시예에 따른 서로 다른 카메라 이미지로부터 획득된 객체의 골격 데이터들에 기초하여 객체의 3차원 골격 데이터를 획득하는 동작을 설명하기 위한 도면이다.
도 8은 본 개시의 일 실시예에 따른 서로 다른 카메라 이미지로부터 획득된 객체의 골격 데이터들에 기초하여 객체의 3차원 골격 데이터를 획득하는 동작을 설명하기 위한 도면이다.
도 9는 본 개시의 일 실시예에 따른 복수의 카메라를 포함하는 전자 장치가 복수의 카메라 이미지들 중 손의 3차원 골격 데이터를 획득하는 방법에 이용하기 위한 적어도 하나의 카메라 이미지를 결정하는 동작을 설명하기 위한 도면이다.
도 10은 본 개시의 일 실시예에 따른 전자 장치의 블록도이다.
아래에서는 첨부한 도면을 참조하여 본 개시가 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 개시의 실시예를 상세히 설명한다. 그러나 본 개시는 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 개시를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 개시의 실시예들에서 사용되는 용어는 본 개시의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 실시예의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 명세서에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다. 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 용어들은 본 명세서에 기재된 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가질 수 있다.
본 개시에서, "a, b 또는 c 중 적어도 하나" 표현은 "a", "b", "c", "a 및 b", "a 및 c", "b 및 c", "a, b 및 c 모두", 혹은 그 변형들을 지칭할 수 있다.
본 개시 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 본 명세서에 기재된 "~부", "~모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
본 명세서에서 사용된 표현 "~하도록 구성된(또는 설정된)(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)를 의미할 수 있다.
본 개시에 따른 인공지능과 관련된 기능은 프로세서와 메모리를 통해 동작된다. 프로세서는 하나 또는 복수의 프로세서로 구성될 수 있다. 이때, 하나 또는 복수의 프로세서는 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), DNN (Deep Neural Network), RNN (Recurrent Neural Network), RBM (Restricted Boltzmann Machine), DBN (Deep Belief Network), BRDNN(Bidirectional Recurrent Deep Neural Network) 또는 심층 Q-네트워크 (Deep Q-Networks) 등이 있으나, 전술한 예에 한정되지 않는다.
본 개시에서 카메라의 ‘시야(Field of View, FOV)’는 카메라를 통해 촬영된 이미지 또는 영상의 영역을 나타낸다. 시야는 시야각(FOV degree)으로 지칭될 수도 있다. 카메라를 통해 촬영된 이미지 또는 영상의 영역은, 곧 디스플레이 화면 범위(screen area) 내에 표시되는 이미지 또는 영상의 영역을 나타낼 수도 있다.
본 개시에서 ‘영상(video)’ 또는 ‘이미지 시퀀스(image sequence)’는 움직이는 화상 또는 동영상을 나타낼 수 있다. 영상 또는 이미지 시퀀스는 시간적 선후관계를 가지는 일련의 정지 화상들을 포함할 수 있다.
본 개시에서 ‘영상의 프레임(video frame)’ 또는 ‘이미지(image)’는 디스플레이에 출력되는 정지 이미지의 낱장을 나타낼 수 있다. 즉, 연속된 장면을 짧은 시간 간격으로 표시하여 움직이는 화상을 만들어내는 영상에 있어서, 각각의 장면의 낱장을 나타낼 수 있다.
본 개시에서 ‘특징점(keypoint, feature point)’은 영상 또는 이미지 내에서 주위 배경과 구분되거나 식별이 용이한 지점을 나타낼 수 있다. 특징점은 영상에서 객체를 추적하거나 인식 할 때 이용될 수 있다. 예를 들어, 객체의 형태나 크기나 위치가 변해도 쉽게 식별이 가능한 점(point), 또는 카메라의 시점이나 조명이 변해도 쉽게 식별이 가능한 점(point)을 특징점으로 설정할 수 있다. 예를 들어, 객체 이미지의 코너점(comer point)이나 객체의 경계선 상에 위치하는 점들이 특징점이 될 수 있다. 추적 대상이 되는 객체가 사용자의 손(hand)인 경우, 관절 부분에 특징점이 포함될 수 있다. 본 명세서 전반에 걸쳐 이미지 또는 영상 내의 객체의 예시로 사용자의 손에 대해 설명된다. 한편, 본 발명은 사용자의 손과 관련된 실시예에 한정되지 않는다. 본 발명의 일 실시예에 따르면, 사용자의 다른 신체 부위가 이미지 또는 영상 내의 객체가 될 수 있다. 본 발명의 일 실시예에 따르면, 인간이 아닌(non-human) 객체의 일부 또는 요소(예를 들어, 동물의 손 또는 발 또는 전자 장치의 일부)가 이미지 또는 영상의 객체가 될 수 있다.
본 개시에서 '그래프(graph)'는 점(노드, node)들과 점들을 연결하는 선(엣지, edge)들로 구성된 구조화된 정보의 집합을 나타낼 수 있다. 그래프를 통해 노드들 간의 연결 관계를 구조적으로 나타낼 수 있다. 그래프는 노드들 및 노드들 간의 관계를 계층화 하여 표현함으로써 생성될 수 있으며, 노드들이 엣지를 통해 연결되는 트리 구조를 가질 수 있다.
본 개시에서 객체의 '골격 데이터(skeleton data)'는 객체의 적어도 하나의 특징점들을 조인트(joint)로 포함할 수 있다. 골격 데이터는 복수의 조인트들에 대한 좌표 정보를 포함하는 '데이터 세트(data set)'일 수 있다. 본 개시에서 골격 데이터는 '골격 그래프(skeleton graph)'를 포함할 수 있다. 골격 그래프는 객체의 적어도 하나의 특징점들을 노드로 포함할 수 있다. 즉, 골격 그래프의 노드는 객체의 조인트(특징점)에 대응될 수 있다. 예를 들어, 손의 특징점은 손의 관절 부위에 포함될 수 있다. 골격 그래프는 동일한 손가락에서 인접한 관절 쌍에 대응되는 노드들을 연결하는 엣지를 포함할 수 있다. 손의 골격 그래프는 손의 3차원적 포즈를 결정하는 동작에 이용될 수 있다.
본 개시에서 ‘제스처(gesture)’는 손, 발 등의 신체 일부 또는 비 신체적인 특정한 물건과 같은 객체(object)의 움직임을 나타낼 수 있다.
이하 첨부된 도면을 참고하여 본 개시를 상세히 설명하기로 한다.
도 1은 본 개시의 일 실시예에 따른 전자 장치(10)가 복수의 카메라를 이용하여 손(H)의 3차원 골격 데이터(HC)를 획득하는 방법의 개요도이다.
본 개시의 일 실시예에 따른 전자 장치(10)는, 복수의 카메라를 이용하여 영상 또는 이미지 시퀀스를 획득할 수 있는 증강 현실 장치(augmented reality device, AR device)를 포함할 수 있다. 증강 현실 장치는 증강 현실(augmented reality, AR)을 표현할 수 있는 장치로서, 현실에 존재하는 물리적 대상체(physical object) 및 가상 대상체(virtual object)를 포함하는 이미지를 표시할 수 있다.
전자 장치(10)는 예를 들어, 사용자가 안면부에 착용하는 안경 형상의 증강 현실 안경 장치(augmented reality glasses), 두부에 착용하는 헤드 마운트 디스플레이 장치(head mounted display, HMD), 가상 현실 헤드셋(virtual reality headset, VRH), 또는 증강 현실 헬멧(augmented reality helmet) 등을 포함할 수 있다. 한편, 본 개시의 전자 장치(10)는 전술한 예시로 한정되는 것은 아니며, 사용자에게 가상 현실 서비스 또는 증강 현실 서비스를 제공하거나, 복수의 카메라를 이용해 손의 3차원 포즈(pose) 및 손의 제스처(gesture)를 인식하는 다양한 종류의 기기를 포함할 수 있다.
본 개시의 일 실시예에서, 손(H)의 3차원 포즈는 ‘손 골격 감지 및 추적(hand skeleton detection and tracking)’기술을 통해 인식될 수 있다. 손 골격 감지 및 추적 기술은, 사람의 손(H) 이미지 상에서 움직이는 관절 부위를 탐지하여, 미리 정해진 골격(skeleton) 구조를 분할해서 투영해 주는 기술이다. 일 실시예에서, 사람의 손의 골격 구조는 각 손가락의 끝점(5개), 각 손가락의 관절점(5X3=15개), 및 손바닥 점(1개)을 포함할 수 있으나, 이에 한정되는 것은 아니다.
증강 현실 서비스를 제공하는 전자 장치(10)에서 사용자의 손(H)의 3차원적 포즈와 제스처를 이용하는 핸드 인터랙션(hand interaction)은 주요한 입력 인터페이스 중 하나로 기능한다. 일 실시예에서, 전자 장치(10)는 사용자의 손(H)의 3차원 이미지를 획득하기 위한 복수의 카메라를 포함할 수 있다. 복수의 카메라(예를 들어, 두 개의 카메라)를 이용하는 경우, 복수의 카메라 각각으로부터 획득된 복수의 상으로부터 촬영 대상 객체까지의 거리를 계산할 수 있고, 촬영 대상 객체에 대한 3차원 이미지를 획득할 수 있다.
특정 물체의 3차원 이미지는, 해당 물체에 대응되는 이미지에 포함된 각 픽셀의 깊이 정보를 포함할 수 있다. 복수의 카메라들의 집합은 연산 카메라(computational camera)에 대응될 수 있고, 피사체들로부터 복수의 카메라들 각각의 카메라의 렌즈를 통해 형성된 이미지를 연산을 통해 재가공하여 깊이 정보를 포함하는 3차원 이미지를 생성할 수 있다. 일 실시예에서, 특정 물체의 3차원 이미지는 해당 물체의 특징점들의 3차원 좌표 정보를 포함할 수 있다.
예를 들어, 사용자 손(H)은 복수의 관절(조인트)들에 각각 대응되는 복수의 특징점들을 포함할 수 있고, 복수의 카메라들을 통해 획득된 사용자 손(H)의 3차원 이미지는 복수의 관절들 각각에 대한 기 설정된 원점으로부터의 3차원 좌표 정보를 포함할 수 있다.
도 1을 참조하면 단계 110에서 전자 장치(10)는 복수의 카메라를 이용하여 전자 장치(10)를 착용한 사용자의 손(H)을 촬영할 수 있다. 일 실시예에서, 전자 장치(10)는 두 개의 카메라를 포함할 수 있다. 전자 장치(10)는 제1 카메라를 통해 제1 이미지(IM1)를 획득하고, 제2 카메라를 통해 제2 이미지(IM2)를 획득할 수 있다. 제1 이미지(IM1) 및 제2 이미지(IM2)는 각각 사용자의 손(H)에 대응되는 손 이미지를 포함할 수 있다.
단계 120에서, 전자 장치(10)는 제1 이미지(IM1)로부터 사용자의 손(H)에 대응되는 손 이미지가 포함된 제1 관심 영역(region of interest 1, ROI1)을 획득할 수 있다. 예를 들어, 제1 관심 영역(ROI1)은 손 이미지를 포함하는 블록(block) 또는 윈도우(window) 형태를 가질 수 있다. 일 실시예에서, 제1 이미지(IM1)로부터 제1 관심 영역(ROI1)을 획득하는 동작에서는, 제1 이미지(IM1)를 입력 값으로 하여 손 이미지를 포함하는 이미지 영역을 제1 관심 영역(ROI1)으로 출력하도록 훈련된, 제1 딥러닝(deep learning) 모델이 이용될 수 있다. 제1 이미지(IM1)로부터 제1 관심 영역(ROI1)을 획득하는 동작에 대해서는 후술할 도 3을 참조하여 보다 자세히 설명하도록 한다.
단계 130에서, 전자 장치(10)는 제1 관심 영역(ROI1)으로부터, 손(H)의 적어도 하나의 특징점을 포함하는 제1 골격 데이터(HC1)를 획득할 수 있다. 예를 들어, 제1 골격 데이터(HC1)는 엣지와 노드를 포함하는 골격 그래프일 수 있다. 손(H)의 적어도 하나의 특징점은 손의 관절 부분에 포함될 수 있다. 예를 들어, 제1 골격 데이터(HC1)는 손(H)의 적어도 하나의 특징점(예를 들어, 조인트)에 대한 좌표 정보를 포함하는 데이터 세트일 수 있다. 손의 특징점에 대한 좌표 정보는 2차원 좌표 값 또는 3차원 좌표 값을 포함할 수 있다.
일 실시예에서, 제1 관심 영역(ROI1)으로부터 제1 골격 데이터(HC1)를 획득하는 동작에서는, 제2 딥러닝 모델이 이용될 수 있다. 제2 딥러닝 모델은 제1 관심 영역(ROI1)을 입력 값으로 하여 손(H)의 제1 골격 데이터(HC1)를 출력하도록 훈련될 수 있다. 예를 들어, 제2 딥러닝 모델은 제1 관심 영역(ROI1)을 입력 값으로 하여 손(H)의 적어도 하나의 특징점에 대한 좌표 값을 포함하는 제1 골격 데이터(HC1)를 출력하도록 훈련될 수 있다. 일 실시예에서, 제2 딥러닝 모델을 이용하여 획득된 제1 골격 데이터(HC1)에 포함된 각각의 특징점들은, 공간 내의 기 설정된 원점에 대한 3차원 위치 좌표에 대응될 수 있다.
제1 관심 영역(ROI1)으로부터, 손(H)의 적어도 하나의 특징점을 포함하는 제1 골격 데이터(HC1)를 획득하는 동작에 대해서는 후술할 도 4를 참조하여 보다 자세히 설명하도록 한다.
단계 140에서, 전자 장치(10)는 제1 골격 데이터(HC1), 및 제1 카메라와 제2 카메라의 상대적 위치 정보에 기초하여 제2 이미지(IM2)로부터 제2 관심 영역(ROI2)을 획득할 수 있다. 제2 관심 영역(ROI2)은 제2 이미지(IM2) 내에서 사용자의 손(H)에 대응되는 이미지가 포함되는 영역을 나타낼 수 있다. 일 실시예에서, 제1 골격 데이터(HC1)에 기초하여 제2 이미지(IM2)로부터 제2 관심 영역(ROI2)을 획득하는 동작은, 제1 골격 데이터(HC1)에 포함된 적어도 하나의 특징점에 대해, 대응되는 3차원 위치 좌표를 제2 이미지(IM2) 상의 2차원 위치 좌표로 투영(projection) 시키는 단계, 제2 이미지(IM2)로부터, 제1 골격 데이터(HC1)에 포함된 특징점들의 2차원 위치 좌표들을 포함하는 블록을 식별하는 단계, 및 식별된 블록을 제2 관심 영역(ROI2)으로 결정하는 단계를 포함할 수 있다. 이 때, 제1 골격 데이터(HC1)에 포함된 특징점의 3차원 위치 좌표를 제2 이미지(IM2) 상의 2차원 위치 좌표로 투영(projection) 시키는 단계에서, 제1 카메라와 제2 카메라의 상대적인 위치 정보가 이용될 수 있다. 제1 카메라와 제2 카메라의 상대적인 위치 정보는, 제1 카메라와 제2 카메라의 간격 또는 베이스라인(baseline)에 대응될 수 있다. 제1 골격 데이터(HC1)에 기초하여 제2 이미지(IM2)로부터 제2 관심 영역(ROI2)을 획득하는 동작에 대해서는 후술할 도 5를 참조하여 보다 자세히 설명하도록 한다.
단계 150에서, 전자 장치(10)는 제2 관심 영역(ROI2)으로부터 손(H)의 적어도 하나의 특징점을 포함하는 제2 골격 데이터(HC2)를 획득할 수 있다. 예를 들어, 제2 골격 데이터(HC2)는 엣지와 노드를 포함하는 골격 그래프일 수 있다. 손(H)의 적어도 하나의 특징점은 손의 관절 부분에 포함될 수 있다. 예를 들어, 제2 골격 데이터(HC2)는 손의 적어도 하나의 특징점(예를 들어, 조인트)에 대한 좌표 정보를 포함하는 데이터 세트일 수 있다.
일 실시예에서, 제2 관심 영역(ROI2)으로부터 제2 골격 데이터(HC2)를 획득하는 동작에서는, 제3 딥러닝 모델이 이용될 수 있다. 제3 딥러닝 모델은 제2 관심 영역(ROI2)을 입력 값으로 하여 손(H)의 제2 골격 데이터(HC2)를 출력하도록 훈련될 수 있다. 예를 들어, 제3 딥러닝 모델은 제2 관심 영역(ROI2)을 입력 값으로 하여 손(H)의 적어도 하나의 특징점에 대한 좌표 값을 포함하는 골격 그래프인 제2 골격 데이터(HC2)를 출력하도록 훈련될 수 있다. 일 실시예에서, 제3 딥러닝 모델을 이용하여 획득된 제2 골격 데이터(HC2)에 포함된 각각의 특징점들은, 제2 이미지(IM2)를 포함하는 평면 상의 기 설정된 원점에 대한 2차원 위치 좌표에 대응될 수 있다.
제2 관심 영역(ROI2)으로부터, 손(H)의 적어도 하나의 특징점을 포함하는 제2 골격 데이터(HC2)를 획득하는 동작에 대해서는 후술할 도 6을 참조하여 보다 자세히 설명하도록 한다.
단계 160에서, 전자 장치(10)는 제1 골격 데이터(HC1) 및 제2 골격 데이터(HC2)에 기초하여, 손(H)의 3차원 골격 데이터(HC)를 획득할 수 있다.
일 실시예에서, 제1 골격 데이터(HC1)에 포함된 특징점들은, 공간 내의 기 설정된 원점에 대한 3차원 위치 좌표에 대응되고, 제2 골격 데이터(HC2)에 포함된 특징점들은, 제2 이미지(IM2)를 포함하는 평면 상의 기 설정된 원점에 대한 2차원 위치 좌표에 대응될 수 있다. 이 경우, 전자 장치(10)는 제1 골격 데이터(HC1)에 포함된 각각의 특징점에 대해, 대응되는 3차원 위치 좌표를 제1 이미지(IM1) 상의 2차원 위치 좌표로 투영(projection) 시킬 수 있다. 이후, 제1 골격 데이터(HC1)에 포함된 각각의 특징점에 대해, 제1 이미지(IM1) 상에 투영된 2차원 위치 좌표와 제2 골격 데이터(HC2)에서 대응되는 특징점의 2차원 위치 좌표를 이용하여, 3차원 위치 좌표를 획득할 수 있다. 예를 들어, 두 개의 2차원 위치 좌표를 이용하여 3차원 위치 좌표를 획득하는 동작에는 삼각측량법이 이용될 수 있다.
제1 골격 데이터(HC1) 및 제2 골격 데이터(HC2)에 기초하여, 객체(손(H))의 3차원 골격 데이터(HC)를 획득하는 동작에 대해서는 후술할 도 7 및 도 8을 참조하여 보다 자세히 설명하도록 한다.
AR 안경 등 사용자에게 증강 현실 서비스를 제공하는 전자 장치(10)에서 핸드 인터랙션은 중요한 입력 인터페이스 중 하나로 기능한다. AR 안경 등의 전자 장치(10)에서는 사용자 손 또는 신체 부위의 추정된 3차원 포즈 및 인식된 제스처를 통해 제어 신호를 획득할 수 있다.
일 실시예에서, 전자 장치(10)는 사용자 손의 3차원 포즈를 정확히 추정하기 위해 복수의 카메라를 사용하고, 다양한 시점의 카메라 이미지들로부터 손의 관절들의 깊이(z축 상의 상대적인 위치)를 추정한 후, 추정된 깊이 정보를 이용하여 2차원의 카메라 이미지를 3차원 이미지로 복원할 수 있다. 이와 같이 복수의 카메라를 이용하여 손의 3차원 골격 구조 정보를 획득하는 일련의 동작들 중에서, 각각의 카메라 이미지로부터 손의 위치를 찾는 동작에 특히 소모되는 전력량이 크다.
따라서, 본 개시의 일 실시예에 따르면, 전자 장치(10)에 포함된 복수의 카메라들 중 어느 하나를 통해 획득한 이미지에 대해서만, 사용자 손(H)에 대응되는 이미지가 포함된 관심 영역(ROI)을 검출하는 동작을 수행함으로써, 이미지에서 손(H)이 포함된 위치를 찾는 검출 동작의 수행 횟수를 줄일 수 있다. 나아가 손의 3차원 골격 데이터를 획득하는 동작의 총 연산 시간을 줄일 수 있고, 전자 장치(10)에서 소비하는 전력의 양을 줄일 수 있다.
도 2는 본 개시의 일 실시예에 따른 전자 장치가 복수의 카메라를 이용하여 객체의 3차원 골격 데이터를 획득하는 방법의 흐름도이다.
단계 S210에서, 전자 장치는 제1 카메라를 통해 제1 이미지를 획득하고, 제2 카메라를 통해 제2 이미지를 획득한다. 예를 들어, 제1 이미지 및 제2 이미지는 각각 객체(예를 들어, 사용자의 손)에 대응되는 이미지를 포함할 수 있다. 여기서 사용자의 손은 제1 카메라와 제2 카메라에 의해 촬영된 객체의 하나의 예시로 설명된다. 일 실시예에서, 카메라를 통해 촬영되는 객체는 사용자의 팔, 사용자의 발, 또는 비 신체적인 객체 또는 물체의 일부가 될 수도 있다. 즉, 일 실시예에서 제1 이미지 및 제2 이미지는 각각 제1 카메라 또는 제2 카메라를 통해 촬영되는 객체에 대응되는 이미지일 수 있고, 여기서 객체는 특정한 골격을 가질 수 있다.
단계 S220에서, 전자 장치는 제1 이미지로부터 객체(예를 들어, 사용자의 손)에 대응되는 이미지가 포함된 제1 관심 영역을 획득한다. 일 실시예에서, 제1 이미지로부터 제1 관심 영역을 획득하는 동작에서는, 제1 이미지를 입력 값으로 하여 객체 이미지를 포함하는 이미지 영역을 제1 관심 영역으로 출력하도록 훈련된 제1 딥러닝 모델이 이용될 수 있다.
단계 S230에서, 전자 장치는 제1 관심 영역으로부터 객체의 적어도 하나의 특징점을 포함하는 제1 골격 데이터를 획득한다. 일 실시예에서, 제1 관심 영역으로부터 제1 골격 데이터를 획득하는 동작에는, 제1 관심 영역을 입력 값으로 하여 객체(예를 들어, 손)의 적어도 하나의 특징점에 대한 좌표 값을 포함하는 제1 골격 데이터를 출력하도록 훈련된, 제2 딥러닝 모델이 이용될 수 있다.
일 실시예에서, 제2 딥러닝 모델을 이용하여 획득된 제1 골격 데이터는, 각각의 특징점들의 공간 내의 기 설정된 원점에 대한 3차원 위치 좌표를 포함할 수 있다. 예를 들어, 제1 골격 데이터는 특정 조인트 n에 대응되는 3차원 좌표 값 (xn,yn,zn)을 가질 수 있다. 특정 조인트 n에 대응되는 3차원 좌표 값 (xn,yn,zn)은 해당 조인트의 기 설정된 원점으로부터의 3차원 공간 상 상대적인 위치를 나타낼 수 있다.
단계 S240에서, 전자 장치는 제1 골격 데이터에 기초하여 제2 이미지로부터 제2 관심 영역을 획득할 수 있다. 일 실시예에서, 제1 골격 데이터에 기초하여 제2 이미지로부터 제2 관심 영역을 획득하는 동작은, 제1 골격 데이터에 포함된 특징점의 3차원 위치 좌표를 제2 이미지(IM2) 상의 2차원 위치 좌표로 투영(projection) 시키는 단계, 제2 이미지로부터, 투영된 2차원 위치 좌표들을 포함하는 블록을 식별하는 단계, 및 식별된 블록을 제2 관심 영역으로 결정하는 단계를 포함할 수 있다.
일 실시예에서, 제1 골격 데이터에 포함된 특징점의 3차원 위치 좌표를 제2 이미지 상의 2차원 위치 좌표로 투영 시키는 단계에서, 제1 카메라와 제2 카메라의 상대적인 위치 정보(예를 들어, 베이스라인(baseline))가 이용될 수 있다. 예를 들어, '스테레오 비전(stereo vision)' 기술에 따라, 서로 다른 위치에 배치된 두 개의 카메라를 통해 획득된 2차원의 이미지들로부터, 시차(disparity) 계산을 통해 3차원의 깊이 정보를 획득할 수 있다. 시차는 제1 카메라와 제2 카메라가 특정 축에 대해 이격된 정도에 따라, 제1 이미지 및 제2 이미지에서 발생하는 해당 축의 위치 차이를 나타낼 수 있다. 따라서, 2차원의 제1 이미지를 통해 예측된 3차원 위치 좌표와, 제1 카메라와 제2 카메라의 화각 및 상대적인 위치 정보를 통해 제1 이미지 상 객체(예를 들어, 사용자의 손) 이미지가 표시된 영역이 제2 이미지 상 어떤 부분에 대응될지 예측할 수 있다.
단계 S250에서, 전자 장치는 제2 관심 영역으로부터 객체(예를 들어, 손)의 적어도 하나의 특징점을 포함하는 제2 골격 데이터를 획득할 수 있다. 일 실시예에서, 제2 관심 영역으로부터 제2 골격 데이터를 획득하는 동작에서는, 제2 관심 영역을 입력 값으로 하여 객체의 적어도 하나의 특징점에 대한 좌표 값을 포함하는 제2 골격 데이터로 출력하도록 훈련된, 제3 딥러닝 모델이 이용될 수 있다.
일 실시예에서, 제3 딥러닝 모델을 이용하여 획득된 제2 골격 데이터는, 각각의 특징점들의 제2 이미지 평면 상 기 설정된 원점에 대한 2차원 위치 좌표를 포함할 수 있다. 예를 들어, 제2 골격 데이터는 특정 조인트 m에 대응되는 2차원 좌표 값 (xm,ym)을 가질 수 있다. 특정 조인트 m에 대응되는 2차원 좌표 값 (xm,ym)은 해당 조인트의 기 설정된 원점으로부터의 2차원 평면 상 상대적인 위치를 나타낼 수 있다.
단계 S260에서, 전자 장치는 제1 골격 데이터 및 제2 골격 데이터에 기초하여, 객체(예를 들어, 손)의 3차원 골격 데이터를 획득할 수 있다.
일 실시예에서, 제1 골격 데이터는 특징점의 공간 내 기 설정된 원점에 대한 3차원 위치 좌표를 포함하고, 제2 골격 데이터는 특징점의 제2 이미지 평면 상 기 설정된 원점에 대한 2차원 위치 좌표를 포함할 수 있다. 이 경우, 전자 장치는 제1 골격 데이터에 포함된 특징점들의 3차원 위치 좌표를, 제1 이미지 평면 상의 2차원 위치 좌표로 투영(projection) 시킬 수 있다. 이후, 제1 골격 그래프의 각각의 특징점에 대해, 제1 이미지 평면 상에 투영된 2차원 위치 좌표와 제2 골격 데이터에 포함된 대응되는 2차원 위치 좌표를 이용하여, 3차원 위치 좌표를 획득할 수 있다. 예를 들어, 두 개의 2차원 위치 좌표를 이용하여 3차원 위치 좌표를 획득하는 동작에는 삼각측량법이 이용될 수 있다. 예를 들어, '스테레오 비전(stereo vision)' 기술에 따라, 서로 다른 위치에 배치된 두 개의 카메라를 통해 획득된 2차원의 이미지들로부터, 시차(disparity) 계산을 통해 3차원의 깊이 정보를 획득할 수 있다. 따라서, 제1 이미지 평면 상으로 투영된 2차원 위치 좌표, 제2 이미지에서 획득된 2차원 위치 좌표, 및 제1 카메라와 제2 카메라의 상대적인 위치 정보를 통해 객체(예를 들어, 사용자의 손)에 대한 3차원 구조 정보를 획득할 수 있다.
일 실시예에서, 제1 골격 데이터가 특징점들의 공간 내의 기 설정된 원점에 대한 3차원 위치 좌표를 포함하고, 제2 골격 데이터 또한 대응되는 특징점들의 동일한 원점에 대한 3차원 위치 좌표를 포함할 수도 있다. 이 경우, 전자 장치는 각각의 특징점들에 대해, 제1 골격 데이터에서의 3차원 위치 좌표와 제2 골격 데이터에서의 3차원 위치 좌표를 평균(average)한 값을 해당 특징점의 3차원 위치 좌표로 결정할 수 있다.
일 실시예에서, 제2 관심 영역으로부터 제2 골격 데이터를 획득하는 동작에서는, 제2 관심 영역을 입력 값으로 하여 객체(예를 들어, 손)의 적어도 하나의 특징점을 조인트로 포함하는 그래프를 제2 골격 데이터로 출력하도록 훈련된, 제2 딥러닝 모델이 이용될 수 있다. 제2 딥러닝 모델은 골격 데이터의 특징점들에 3차원 위치 좌표를 대응시켜 출력하고, 제3 딥러닝 모델은 골격 데이터의 특징점들에 2차원 위치 좌표를 대응시켜 출력할 수 있다.
일 실시예에서, 전자 장치는 각각의 특징점에 대해, 제1 골격 데이터에서의 위치 좌표와, 제2 골격 데이터에서의 동일 차원 위치 좌표를 가중치 결합한 값을 해당 특징점의 3차원 위치 좌표로 결정할 수도 있다.
도 3은 본 개시의 일 실시예에 따른 하나의 카메라 이미지(제1 카메라 이미지, IM1)에서 관심 영역(제1 관심 영역, ROI1)을 획득하는 동작을 설명하기 위한 도면이다.
본 개시의 일 실시예에 따른 전자 장치는, 제1 카메라를 통해 획득된 제1 이미지(IM1) 및 제2 카메라를 통해 획득된 제2 이미지(IM2) 중 제1 이미지(IM1)로부터 객체, 예를 들어, 사용자의 손에 대응되는 손 이미지가 포함된 제1 관심 영역(ROI1)을 획득할 수 있다. 예를 들어, 제1 관심 영역(ROI1)은 손 이미지를 포함하는 블록(block) 또는 윈도우(window) 형태를 가질 수 있다. 일 실시예에서, 제1 이미지(IM1)로부터 제1 관심 영역(ROI1)을 획득하는 동작에서는, 제1 이미지(IM1)를 입력 값으로 하여 손 이미지를 포함하는 이미지 영역을 제1 관심 영역(ROI1)으로 출력하도록 훈련된, 제1 딥러닝(deep learning) 모델이 이용될 수 있다.
일 실시예에서, 제1 이미지(IM1)에서 제1 관심 영역(ROI1)을 검출하는 동작에는 프레임 스캐닝(frame scanning) 동작 또는 엣지 분석법이 이용될 수도 있다. 프레임 스캐닝 동작에서는 프레임을 일정 크기의 복수개의 블록으로 설정한 후, 좌측 상단으로부터 우측 하단까지 블록들을 스캐닝하여 통해 손이 포함된 영역을 검색하는 방법을 나타낸다. 이 때, 블록의 크기는 기 설정될 수 있다. 예를 들어, 프로세서를 통해, 블록의 크기가 작아서 손이 포함되는 영역이 복수 개인 것으로 판단될 경우, 블록 사이즈를 늘려서 스캐닝 동작을 재차 수행할 수 있고, 블록 크기가 커서 특정 블록에서 손이 포함되는 픽셀 영역이 작다고 판단될 경우 (해당 블록 내에서) 블록 사이즈를 줄여서 스캐닝 동작을 재차 수행할 수도 있다. 예를 들어, 최종 선택되는 제1 관심 영역(ROI1)의 크기는 전자 장치로부터의 손까지의 거리에 따라 달라질 수 있다. 예를 들어, 손이 카메라에 가까이 위치한 경우에는 손에 대응되는 이미지가 클 것이고, 따라서 제1 관심 영역(ROI1)의 블록(윈도우) 크기가 클 수 있다. 예를 들어, 손이 카메라로부터 멀리 위치한 경우, 제1 관심 영역(ROI1)의 블록(윈도우) 크기가 작게 설정될 수도 있다.
일 실시예에서, 제1 이미지(IM1)로부터 제1 관심 영역(ROI1)의 위치를 검출하는 동작에는 제1 딥러닝 알고리즘 또는 기타 알고리즘이 이용될 수도 있다. 종래 기술에서는 서로 다른 카메라로부터 획득된 복수의 이미지 마다 손의 위치(즉, 관심 영역)을 검출하는 동작을 수행하였다. 한편, 본 개시의 일 실시예에 따른 방법에 따르면, 전자 장치는 복수의 카메라로부터 획득된 복수의 이미지들 중 하나의 이미지(제1 이미지, IM1)에 대해서만 사용자의 손에 대응되는 이미지가 포함된 제1 관심 영역(ROI1)을 검출할 수 있다. 따라서, 본 개시의 일 실시예에 따르면, 모든 복수의 카메라로부터 각각 획득된 복수의 이미지들에 대해 전부 관심 영역을 검출하는 동작을 수행하지 않을 수 있고, 따라서, 보다 적은 전력 소비가 가능하다.
도 4는 본 개시의 일 실시예에 따른 제1 카메라 이미지(IM1)의 관심 영역(ROI1)으로부터 객체, 예를 들어, 손의 제1 골격 데이터(HC1)를 획득하는 동작을 설명하기 위한 도면이다.
도 4를 참조하면, 전자 장치는 제1 관심 영역(ROI1)으로부터, 손의 제1 골격 데이터(HC1)를 획득할 수 있다. 제1 골격 데이터(HC1)는 조인트를 노드로, 조인트를 연결한 선을 엣지로 포함하는 그래프(graph)로 표현될 수 있다. 제1 골격 데이터(HC1)는 조인트를 특징점으로 하고, 각각의 특징점들에 대한 좌표 값을 포함하는 '데이터 세트(set)'를 나타낼 수 있다. 즉, 본 개시의 일 실시예에 따른 전자 장치는 제1 관심 영역(ROI1)으로부터 조인트(또는 특징점 또는 노드)에 대한 좌표 정보를 포함하는 제1 골격 데이터(HC1)(또는 제1 골격 그래프 또는 제1 데이터 세트)를 획득할 수 있다. 손의 적어도 하나의 특징점은 손의 관절 부분에 포함될 수 있다. 예를 들어, 손 관절 그래프는 21개의 점을 포함할 수 있다. 21개의 점은 각각 5개의 손가락의 관절들 및 손바닥에 위치할 수 있다.
일 실시예에서, 제1 관심 영역(ROI1)으로부터 제1 골격 데이터(HC1)를 획득하는 동작에서는, 제1 관심 영역(ROI1)을 입력 값으로 하여 손의 적어도 하나의 특징점을 노드로 포함하는 그래프를 제1 골격 데이터(HC1)로 출력하도록 훈련된, 제2 딥러닝 모델이 이용될 수 있다. 일 실시예에서, 제2 딥러닝 모델을 이용하여 획득된 제1 골격 데이터(HC1)는 각각의 특징점들의 공간 내 기 설정된 원점에 대한 3차원 위치 좌표를 포함할 수 있다.
일 실시예에서 제1 카메라 이미지(IM1) 상 손의 위치(제1 관심 영역, ROI1)로부터 손 관절(skeleton)에 대한 3차원 좌표 정보를 검출할 수 있다. 손 관절에 대한 3차원 좌표 값을 검출하는 동작에는 제2 딥러닝 알고리즘 또는 기타 알고리즘이 이용될 수 있다. 일 실시예에서 단일한 2차원 카메라 이미지로부터 예측된 손의 3차원 구조는 2개의 2차원 이미지를 이용해 획득된 손의 3차원 구조에 비해 정확도가 낮을 수 있다.
일 실시예에서, 단일한 카메라 이미지로부터 손의 3차원 구조를 획득하는 동작에는, 관절(조인트)들 간의 상대적인 위치에 따라 손의 3차원 구조를 추정하는 방법 등이 이용될 수 있다. 관절들 간의 상대적인 위치에 따라 손의 3차원 좌표를 추정하는 방법에서는, '관절들 간의 상대적인 위치 관계'와 '손의 3차원 포즈'가 매칭되어 저장된 데이터베이스를 통한 확률적인 추정 방법이 이용될 수 있다.
도 5는 본 개시의 일 실시예에 따른 제1 카메라 이미지(IM1)의 제1 관심 영역(ROI1)으로부터 획득된 객체, 예를 들어, 손의 제1 골격 데이터(HC1)에 기초하여 다른 카메라 이미지(제2 카메라 이미지, IM2)의 제2 관심 영역(ROI2)을 획득하는 동작을 설명하기 위한 도면이다.
일 실시예에서, 하나의 카메라 이미지(제1 카메라 이미지, IM1)로부터 획득된 손의 3차원 골격 데이터(HC1)를 이용해 다른 카메라 이미지(제2 카메라 이미지, IM2) 상에서 사용자 손에 대응되는 이미지가 포함될 것으로 예측되는 제2 관심 영역(ROI2)을 산출할 수 있다. 예를 들어, 다른 카메라 상의 손의 위치에 대응되는 제2 관심 영역(ROI2)은 사각형 블록(박스 또는 윈도우) 형태를 가질 수 있다.
일 실시예에서, 제1 골격 데이터(HC1)에 포함된 특징점의 3차원 위치 좌표를 제2 카메라 이미지(IM2) 상의 2차원 위치 좌표로 투영 시키는 단계에서, 제1 카메라와 제2 카메라의 상대적인 위치 정보(예를 들어, 베이스라인(baseline))가 이용될 수 있다. 예를 들어, 서로 다른 위치에 배치된 두 개의 카메라를 통해 획득된 2차원의 영상들로부터, 시차(disparity) 계산을 통해 3차원의 깊이 정보를 획득할 수 있다. 시차는 제1 카메라와 제2 카메라가 특정 축에 대해 이격된 정도에 따라, 제1 카메라 이미지(IM1) 및 제2 카메라 이미지(IM2)에서 발생하는 해당 축의 위치 차이를 나타낼 수 있다. 따라서, 2차원의 제1 카메라 이미지(IM1)를 통해 예측된 3차원 위치 좌표와, 제1 카메라와 제2 카메라의 화각 및 상대적인 위치 정보를 통해 제1 카메라 이미지(IM1) 상 사용자의 손 이미지가 표시된 영역(관심 영역, ROI1)이 제2 카메라 이미지(IM2) 상 어떤 부분에 대응될지 예측할 수 있다.
일 실시예에서, 산출된 제2 관심 영역(ROI2)에 다시 제1 딥러닝 모델을 적용하여 실제 사용자의 손 이미지가 포함되는 정확한 영역을 결정할 수도 있다. 이 경우, 손 위치 검출을 위한 동작에 이용되는 이미지의 크기(산출된 제2 관심 영역(ROI2)의 크기)가 원본 이미지(제2 카메라 이미지(IM2))에 비해 감소함으로써, 전체적인 전자 장치의 연산 로드는 줄어들 수 있다.
하나의 카메라 이미지(제1 카메라 이미지, ROI1)로부터 획득된 손의 3차원 골격 데이터(HC1)로부터 다른 카메라 이미지 상 제2 관심 영역(ROI2)을 획득하는 동작에는 아래의 수학식 1이 이용될 수 있다.
[수학식 1]
Figure PCTKR2022020374-appb-img-000001
여기서, (X,Y,Z)는 제1 관심 영역(ROI1)으로부터 획득된 제1 골격 데이터(HC1)의 3차원 좌표 값이며, (u,v)는 제1 관심 영역(ROI1)으로부터 획득된 제1 골격 데이터(HC1)의 3차원 좌표 값을 제2 카메라 이미지(IM2) 평면 상으로 투영(projection)시킨 2차원 좌표 값을 나타낸다.
수학식 1에서 fx, fy, cx, cy는 전자 장치의 내부 요인에 기초하여 결정되는 속성으로서, 카메라 내부의 파라미터 공간 좌표(3차원)를 이미지 픽셀 좌표(2차원)로 변환하는 동작에서 이용될 수 있고, 카메라 모듈의 제조 단계에서 기 설정될 수 있다. 예를 들어, fx 및 fy는 카메라(예를 들어, 제2 카메라)의 초점거리에 기초하여 결정될 수 있고, cx 및 cy는 이미지(예를 들어, 제2 카메라 이미지(IM2))의 중심으로부터 좌측상단까지의 거리에 기초하여 결정될 수 있다.
수학식 1에서 rij 및 tk(i,j,k = 1 or 2 or 3)는 전자 장치의 외부 요인에 기초하여 결정되는 속성으로서, 전자 장치의 제조 단계에서 기 설정될 수 있다. 예를 들어, rij는 기 설정된 원점(예를 들어, 전자 장치의 중심점 또는 제1 카메라 및 제2 카메라의 중간 지점)으로부터 카메라(예를 들어, 제2 카메라)까지의 축 회전 각도 파라미터를 나타낼 수 있고, tk는 기 설정된 원점(예를 들어, 전자 장치의 중심점 또는 제1 카메라 및 제2 카메라의 중간 지점)으로부터 카메라(예를 들어, 제2 카메라)까지의 거리 파라미터를 나타낼 수 있다.
일 실시예에서, 각각의 3차원 손 관절 좌표들에 대해 제2 이미지 상 투영된 2차원 좌표가 계산될 수 있다. 본 개시의 일 실시예에 따른 전자 장치는, 각각의 손 관절들에 대한 2차원 좌표 값들 중 x축 상 최소 값 및 최대 값, y축 상 최소 값 및 최대 값을 식별할 수 있다.
Xmin=min(x0,x1,...,xn)
Xmax=max(x0,x1,...,xn)
ymin=min(y0,y1,...,yn)
ymax=max(y0,y1,...,yn)
여기서, n은 손 관절의 개수(또는 조인트의 개수 또는 손 특징점의 개수)(예를 들어, n=21)를 나타낼 수 있고, (xmin,ymin)과 (xmax,ymax)를 잇는 선을 하나의 대각선으로 하는 직사각형 형태의 블록이 제2 이미지(IM2) 내의 제2 관심 영역(ROI2)으로 결정될 수 있다.
도 6은 본 개시의 일 실시예에 따른 다른 카메라 이미지(제2 카메라 이미지, IM2)의 제2 관심 영역(ROI2)으로부터 객체, 예를 들어, 손의 골격 데이터(HC2)를 획득하는 동작을 설명하기 위한 도면이다.
도 6을 참조하면, 손의 위치(관심 영역)로부터 손의 관절(skeleton)을 검출할 수 있다. 손의 관절을 검출하는 동작에는 제3 딥러닝 또는 기타 알고리즘이 이용될 수 있다. 검출된 손의 관절은 2차원 좌표 정보를 포함할 수 있다.
일 실시예에서, 제2 카메라 이미지(IM2)의 제2 관심 영역(ROI2)으로부터 손의 제2 골격 데이터(HC2)를 획득하는 동작은 도 4를 참조하여 전술한, 제1 카메라 이미지(IM1)의 제1 관심 영역(ROI1)으로부터 손의 제1 골격 데이터(HC1)를 획득하는 동작과 유사하게 수행될 수 있다. 예를 들어, 제2 골격 데이터(HC2)를 검출하는 동작에는 제2 딥러닝 알고리즘 또는 기타 알고리즘이 이용될 수도 있고, 이 경우 검출된 손의 관절은 3차원 좌표 정보를 포함할 수도 있다.
일 실시예에서, 제1 골격 데이터(HC1)와 제2 골격 데이터(HC2)는 동일한 손에 대한 골격 데이터이고, 제1 골격 데이터(HC1)에 포함된 특징점들과 제2 골격 데이터(HC2)에 포함된 특징점들은 각각 1대1로 대응될 수 있다. 따라서, 사용자의 손의 3차원 골격 데이터를 획득하기 위한 이후 동작들에서, 각각 1대1로 대응되는 2차원 관절 좌표 쌍(pair)의 시차에 기초하여 사용자의 손에 대한 3차원 골격 구조를 산출할 수 있다.
도 7은 본 개시의 일 실시예에 따른 서로 다른 카메라 이미지로부터 획득된 객체, 예를 들어, 손의 골격 데이터들에 기초하여 객체의 3차원 골격 데이터를 획득하는 동작을 설명하기 위한 도면이고, 도 8은 본 개시의 일 실시예에 따른 서로 다른 카메라 이미지로부터 획득된 객체, 예를 들어, 손의 골격 데이터들에 기초하여 객체의 3차원 골격 데이터를 획득하는 동작을 설명하기 위한 도면이다.
도 7 및 도 8을 참조하여 제2 카메라 이미지로부터 획득된 제2 손 위치 좌표가 2차원 좌표 정보에 대응되는 경우 손의 3차원 좌표를 획득하는 동작이 설명될 수 있다. 예를 들어, 제2 카메라 이미지로부터 획득된 제2 골격 데이터가 조인트들의 2차원 좌표 값을 포함할 수 있다. 제1 카메라 이미지로부터 획득된 제1 골격 데이터는 조인트들의 2차원 좌표 값 또는 3차원 좌표 값을 포함할 수 있다. 제1 카메라 이미지로부터 획득된 제1 골격 데이터가 조인트들의 3차원 좌표 값을 포함하는 경우, 스테레오 비전에 따라 시차를 이용해 조인트의 3차원 좌표 값을 산출하기 위해, 제1 골격 데이터의 3차원 좌표 값들을 제1 카메라 이미지 평면 상의 2차원 좌표 값으로 투영시킬 수 있다. 이후, 제1 카메라와 제2 카메라의 상대적인 위치 정보로부터 한 쌍의 2차원 좌표의 시차(disparity) 계산을 통해 각각의 조인트들의 3차원의 깊이 정보를 획득할 수 있다. 이하, 도 7 및 도 8을 참조하여 특징점에 대한 2차원 좌표 쌍을 이용해 3차원 좌표를 생성하는 동작을 구체적으로 설명하도록 한다.
도 7은 두 개의 카메라 및 사용자의 손을 x-z 평면에서 바라본 모습을 도시한다. 사용자의 손은 P점에 위치할 수 있다. 예를 들어, 특정 특징점에 대해 3차원 깊이 정보를 계산할 때, 해당 특징점의 위치를 P점으로 나타낼 수 있다. 도 7을 참조하면, (P, xl, xr)이 이루는 삼각형과, (P, Left camera, Right camera)가 이루는 삼각형으로부터 다음과 같은 비례식이 획득될 수 있다.
b+xr-xl : b = Z-f : Z
여기서, Z는 카메라로부터 특정 포인트 P까지의 깊이를 나타낸다. Z 값은 D+f 값에 대응될 수 있다. 깊이 Z는 비례식에 따라 다음과 같이 계산될 수 있다.
Figure PCTKR2022020374-appb-img-000002
이후, 제1 카메라(예를 들어, 좌측 카메라)로부터 획득된 2차원 좌표 (xl, yl) 및 획득한 깊이 값 Z를 이용하여 p=(xl, yl, Z, 1)를 구성할 수 있다.
다음으로, p에 기초하여 제1 카메라로부터 획득된 2차원 좌표를 3차원 좌표로 변환할 수 있다.
Figure PCTKR2022020374-appb-img-000003
Figure PCTKR2022020374-appb-img-000004
Figure PCTKR2022020374-appb-img-000005
여기서, R은 제1 카메라로부터 기 설정된 원점(예를 들어, 전자 장치의 중심점 또는 제1 카메라 및 제2 카메라의 중간 지점)까지의 축 회전 각도 파라미터를 나타낼 수 있고, T는 제1 카메라로부터 기 설정된 원점(예를 들어, 전자 장치의 중심점 또는 제1 카메라 및 제2 카메라의 중간 지점)까지의 거리 파라미터를 나타낼 수 있다.
도 8을 참조하면, 두 이미지(IMl,IMr)에서 쌍을 이루는 특징점의 2차원 x좌표(xl 및 xr)로부터 해당 특징점의 3차원 좌표를 계산할 수 있다. 특징점의 3차원 좌표 계산에는 삼각측량법이 이용될 수 있다. Ol, Or 지점에 각각 제1 카메라 및 제2 카메라가 배치될 수 있다. 이 때, 삼각형의 비율에 따라 다음과 같은 수학식이 획득될 수 있다.
Figure PCTKR2022020374-appb-img-000006
Figure PCTKR2022020374-appb-img-000007
Figure PCTKR2022020374-appb-img-000008
여기서, b는 제1 카메라 및 제2 카메라 사이의 거리를 나타낸다. b는 제1 카메라 및 제2 카메라의 상대적인 위치에 따라 결정될 수 있다. b는 전술한 도 7의 'b'에 대응될 수 있고, 베이스라인(baseline)으로 표현될 수 있다.
좌측 카메라(제1 카메라)로 촬영한 이미지를 제1 이미지라고 할 때, 제1 이미지의 좌측 하단을 원점으로 하는 제1 손 관절의 2차원 좌표(xl,yl)를 획득할 수 있다. 마찬가지로, 우측 카메라(제2 카메라)로 촬영한 이미지를 제2 이미지라고 할 때, 제2 이미지의 좌측 하단을 원점으로 하는 제2 손 관절의 2차원 좌표(xr,yr)를 획득할 수 있다.
특정 포인트 P의 x축 좌표 값에 대해서만 연산 수행하여 깊이 값(뎁스) Z를 획득할 경우, Z는 z축 좌표 값이 되고, 이를 이용하여 y축 좌표 값을 산출할 수 있다. 따라서 x축 좌표 값에 대해서만 연산을 수행하여도 특징점에 대한 3차원 좌표 (xp,yp,zp)를 획득할 수 있다.
일 실시예에서, 제1 이미지로부터 획득된 제1 골격 데이터가 조인트들의 3차원 좌표 값을 포함하고, 제2 이미지로부터 획득된 제2 골격 데이터가 조인트들의 3차원 좌표 값을 포함할 수도 있다. 이러한 경우, 전자 장치는 제1 골격 데이터의 좌표 값 및 제2 골격 데이터의 좌표 값의 평균을 산출함으로써 손의 3차원 골격 데이터를 획득할 수 있다. 일 실시예에서, 전자 장치는 제1 골격 데이터의 3차원 좌표 값 및 제2 골격 데이터의 3차원의 좌표 값을 가중치 결합하여 손의 3차원 골격 데이터를 획득할 수도 있다. 예를 들어, 3차원의 제1 조인트 좌표 값 및 3차원의 제2 조인트 좌표 값을 결합하기 위한 가중치(weight)는 시간 축 상 이전 프레임에서의 3차원 조인트 좌표 값에 기초하여 결정될 수 있다. 본 개시의 일 실시예에서, 안정적인 손 위치 추적 및 제스처 인식을 위해 이전 프레임의 3차원 손 관절 좌표가 고려될 수 있다. 이는 연속적인 영상에서 사용자의 손 위치 및 형태가 불연속적으로 계산되는 것을 방지할 수 있다.
도 9는 본 개시의 일 실시예에 따른 복수의 카메라를 포함하는 전자 장치가 복수의 카메라 이미지들 중 객체, 예를 들어, 손의 3차원 골격 데이터를 획득하는 방법에 이용하기 위한 적어도 하나의 카메라 이미지를 결정하는 동작을 설명하기 위한 도면이다.
일 실시예에서, 전자 장치는 서로 다른 위치에 배치된 4개의 카메라를 포함할 수 있고, 4개의 카메라는 각각 이미지 (a), 이미지 (b), 이미지 (c), 및 이미지(d)를 획득할 수 있다. 전자 장치는 전술한 도 1의 단계 120에 대응되는 동작, 즉 제1 이미지로부터 사용자의 손에 대응되는 손 이미지가 포함된 제1 관심 영역을 획득하는 동작을 수행하기에 앞서, 4개의 카메라를 통해 획득된 4개의 이미지 중 제1 이미지 및 제2 이미지를 결정할 수 있다. 예를 들어, 도 9에 도시된 경우, 전자 장치는 이미지 (b)를 제1 이미지로 결정하고 이미지 (c)를 제2 이미지로 결정할 수 있다. 이후, 전자 장치는, 제1 이미지인 이미지(b)로부터 제1 관심 영역을 획득할 수 있다.
일 실시예에서, 복수의 카메라 중 사용자의 손을 추적하기 위한 주 카메라인 제1 카메라는 기 설정되어 있을 수 있다. 예를 들어, 제1 카메라는 사용자의 제스처 인터랙션이 주로 발생하는 전방 하부 영역을 촬영하는 카메라로 기 설정될 수 있다. 전자 장치는 제1 카메라를 제외한 다른 카메라들 중에서 제2 카메라를 결정할 수 있다. 제2 카메라는 제1 카메라를 통해 촬영된 이미지에서 획득된 제1 관심 영역의 제1 이미지 내의 상대적인 위치, 제1 카메라가 배치된 위치, 및 제2 카메라가 배치된 위치에 따라 결정될 수 있다. 제1 카메라가 기 설정되어 있는 경우, 전자 장치가 제1 카메라를 제외한 다른 카메라들 중 제2 카메라를 결정하는 동작은, 전술한 도 1에서 단계 120 및 단계 140의 사이에서 수행될 수 있다.
도 10은 본 개시의 일 실시예에 따른 전자 장치(1000)의 블록도이다.
전자 장치(1000)는 복수의 카메라를 통해 획득된 2차원의 영상 또는 이미지로부터 객체, 예를 들어, 사용자의 손의 3차원 골격 데이터를 획득하는 장치일 수 있다. 전자 장치(1000)는 예를 들어, 사용자가 안면부에 착용하는 안경 형상의 AR 안경(AR glasses), 두부에 착용하는 헤드 마운트 디스플레이(head mounted display, HMD), 가상 현실 헤드셋(virtual reality headset, VRH), 또는 AR 헬멧(AR helmet) 등의 다양한 웨어러블 장치(wearable device)로 구성될 수 있다. 한편, 본 개시의 일 실시예에 따른 전자 장치(1000)가 전술한 예시로 한정되는 것은 아니며, 전자 장치(1000)는 복수의 카메라를 포함하고, 영상 또는 이미지를 획득 및 처리하는 다양한 종류의 기기를 포함할 수 있다.
도 10을 참조하면, 전자 장치(1000)는 제1 카메라(1011), 제2 카메라(1012), 프로세서(1020), 및 저장부(1030)를 포함할 수 있다. 도 10에 도시된 구성 요소보다 많은 구성 요소들에 의해 전자 장치(1000)가 구현될 수도 있고, 도 10에 도시된 구성 요소보다 적은 구성 요소에 의해 전자 장치(1000)가 구현될 수도 있다.
제1 카메라(1011) 및 제2 카메라(1012)는 디지털 촬영 장치를 포함할 수 있다. 일 실시예에서, 제1 카메라(1011) 및 제2 카메라(1012)는 각각 입력 영상 또는 입력 이미지를 획득할 수 있다. 일 실시예에서, 제1 카메라(1011) 및 제2 카메라(1012)는 각각의 화각에 대응되는 이미지 또는 영상을 촬영할 수 있다.
일 실시예에서, 제1 카메라(1011) 및 제2 카메라(1012)는 각각 2차원 이미지를 획득할 수 있다. 전자 장치(1000)는 제1 카메라(1011) 및 제2 카메라(1012)를 이용하여 사용자의 손에 대응되는 이미지를 포함하는 전방 영역 이미지를 획득할 수 있다.
저장부(1030)는 전자 장치(1000)의 동작을 제어하기 위해 후술할 프로세서(1020)에 의해 실행될 프로그램을 저장할 수 있다. 저장부(1030)는 전자 장치(1000)의 동작을 제어하기 위한 적어도 하나의 명령어들(instructions)을 포함하는 프로그램을 저장할 수 있다. 저장부(1030)에는 프로세서(1020)가 판독할 수 있는 명령어들 및 프로그램 코드(program code)가 저장될 수 있다. 일 실시예에서, 프로세서(1020)는 저장부(1030)에 저장된 프로그램의 명령어들 또는 코드들을 실행하도록 구현될 수 있다. 저장부(1030)는 전자 장치(1000)로 입력되거나 전자 장치(1000)로부터 출력되는 데이터를 저장할 수 있다.
저장부(1030)는 예를 들어, 플래시 저장부(flash memory), 하드디스크(hard disk), 멀티미디어 카드 마이크로 타입(multimedia card micro type), 카드 타입의 저장부(예를 들어, SD 또는 XD 저장부 등), 램(RAM, Random Access Memory), SRAM(Static Random Access Memory), 롬(ROM, Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), PROM(Programmable Read-Only Memory), 자기 저장부, 자기 디스크, 광디스크 중 적어도 하나의 타입의 저장 매체를 포함할 수 있다. 다만 저장부(1030)는 전술한 예시로 한정되는 것은 아니며, 데이터가 저장될 수 있는 모든 종류의 저장 매체를 포함할 수 있다.
프로세서(1020)는, 전자 장치(1000)의 전반적인 동작을 제어할 수 있다. 예를 들어, 프로세서(1020)는 저장부(1030)에 저장된 프로그램들을 실행함으로써, 제1 카메라(1011), 제2 카메라(1012), 및 저장부(1030) 등을 전반적으로 제어할 수 있다.
프로세서(1020)는 산술, 로직 및 입출력 연산과 시그널 프로세싱을 수행하는 하드웨어 구성 요소를 포함할 수 있다. 프로세서(1020)는 예를 들어, 중앙 처리 장치(Central Processing Unit), 마이크로 프로세서(microprocessor), 그래픽 프로세서(Graphic Processing Unit), ASICs(Application Specific Integrated Circuits), DSPs(Digital Signal Processors), DSPDs(Digital Signal Processing Devices), PLDs(Programmable Logic Devices), 및 FPGAs(Field Programmable Gate Arrays) 중 적어도 하나로 구성될 수 있으나, 이에 제한되는 것은 아니다.
프로세서(1020)는, 저장부(1030)에 저장된 적어도 하나의 명령어들을 실행함으로써, 제1 카메라(1011)를 통해 획득된 제1 이미지에 대해서만 객체, 예를 들어, 사용자의 손에 대응되는 이미지가 포함된 관심 영역을 검출하는 동작을 수행하더라도, 손의 전체적인 3차원 관절 구조를 획득할 수 있다. 예를 들어 프로세서(1020)는, 저장부(1030)에 저장된 적어도 하나의 명령어들을 실행함으로써, 제1 카메라(1011)를 통해 제1 이미지를 획득하고 제2 카메라(1012)를 통해 제2 이미지를 획득하고, 제1 이미지로부터 손 이미지가 포함된 제1 관심 영역을 획득하고, 제1 관심 영역으로부터 손의 적어도 하나의 특징점을 포함하는 제1 골격 데이터를 획득하고, 제1 골격 데이터, 및 제1 카메라와 제2 카메라의 상대적 위치 정보에 기초하여 제2 이미지로부터 제2 관심 영역을 획득하고, 제2 관심 영역으로부터 손의 적어도 하나의 특징점을 포함하는 제2 골격 데이터를 획득하고, 제1 골격 데이터 및 제2 골격 데이터에 기초하여 손의 3차원 골격 데이터를 획득할 수 있다.
프로세서(1020)가 제1 카메라(1011)를 통해 제1 이미지를 획득하고 제2 카메라(1012)를 통해 제2 이미지를 획득하는 동작은 전술한 도 2의 단계 S210에 대응될 수 있다. 프로세서(1020)가 제1 이미지로부터 손 이미지가 포함된 제1 관심 영역을 획득하는 동작은 전술한 도 2의 단계 S220에 대응될 수 있다. 프로세서(1020)가 제1 관심 영역으로부터 손의 적어도 하나의 특징점을 포함하는 제1 골격 데이터를 획득하는 동작은 전술한 도 2의 단계 S230에 대응될 수 있다. 프로세서(1020)가 제1 골격 데이터에 기초하여 제2 이미지로부터 제2 관심 영역을 획득하는 동작은 전술한 도 2의 단계 S240에 대응될 수 있다. 프로세서(1020)가 제2 관심 영역으로부터 손의 적어도 하나의 특징점을 포함하는 제2 골격 데이터를 획득하는 동작은 전술한 도 2의 단계 S250에 대응될 수 있다. 프로세서(1020)가 제1 골격 데이터 및 제2 골격 데이터에 기초하여 손의 3차원 골격 데이터를 획득하는 동작은 전술한 도 2의 단계 S260에 대응될 수 있다.
이와 같이, 본 개시의 일 실시예에 따르면, 전자 장치에 포함된 복수의 카메라들 중 어느 하나를 통해 획득한 이미지에 대해서만 손에 대응되는 이미지가 포함된 관심 영역을 검출하는 동작을 수행함으로써, 이미지에서 손의 위치를 식별하는 검출 동작의 수행 횟수를 줄여, 손의 3차원 골격 데이터를 획득하는 동작의 총 연산 시간을 줄일 수 있고, 전자 장치에서 소비하는 전력의 양을 줄일 수 있다.
본 개시의 일 실시예는 하나 이상의 컴퓨터 프로그램들에 의해 구현 또는 지원될 수 있고, 컴퓨터 프로그램들은 컴퓨터 판독 가능한 프로그램 코드(code)로부터 형성되고, 컴퓨터로 판독 가능한 매체에 수록될 수 있다. 본 개시에서, "애플리케이션(application)" 및 "프로그램(program)"은 컴퓨터 판독 가능한 프로그램 코드에서의 구현에 적합한 하나 이상의 컴퓨터 프로그램, 소프트웨어 컴포넌트, 명령어 세트, 프로시저(procedure), 함수, 개체(object), 클래스, 인스턴스, 관련 데이터, 또는 그것의 일부를 나타낼 수 있다. "컴퓨터 판독 가능한 프로그램 코드"는, 소스 코드, 목적 코드, 및 실행 가능한 코드를 포함하는 다양한 유형의 컴퓨터 코드를 포함할 수 있다. "컴퓨터 판독 가능한 매체"는, ROM(read only memory), RAM(random access memory), 하드 디스크 드라이브(HDD), CD(compact disc), DVD(digital video disc), 또는 다양한 유형의 메모리와 같이, 컴퓨터에 의해 액세스될 수 있는 다양한 유형의 매체를 포함할 수 있다.
또한, 기기로 읽을 수 있는 저장매체는, 비일시적(non-transitory) 저장 매체의 형태로 제공될 수 있다. 여기서, ‘비일시적 저장 매체'는 실재(tangible)하는 장치이고, 일시적인 전기적 또는 다른 신호들을 전송하는 유선, 무선, 광학적, 또는 다른 통신 링크들을 배제할 수 있다. 한편, 이 '비일시적 저장 매체'는 데이터가 저장 매체에 반영구적으로 저장되는 경우와 임시적으로 저장되는 경우를 구분하지 않는다. 예를 들어, '비일시적 저장 매체'는 데이터가 임시적으로 저장되는 버퍼를 포함할 수 있다. 컴퓨터 판독 가능한 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함할 수 있다. 컴퓨터 판독 가능한 매체는, 데이터가 영구적으로 저장될 수 있는 매체와 데이터가 저장되고 나중에 덮어쓰기 될 수 있는 매체, 이를테면 재기입 가능한 광 디스크 또는 소거 가능한 메모리 디바이스를 포함한다.
일 실시예에 따르면, 본 문서에 개시된 다양한 실시예들에 따른 방법은 컴퓨터 프로그램 제품(computer program product)에 포함되어 제공될 수 있다. 컴퓨터 프로그램 제품은 상품으로서 판매자 및 구매자 간에 거래될 수 있다. 컴퓨터 프로그램 제품은 기기로 읽을 수 있는 저장 매체(예를 들어, compact disc read only memory (CD-ROM))의 형태로 배포되거나, 또는 어플리케이션 스토어를 통해 또는 두 개의 사용자 장치들(예를 들어, 스마트폰) 간에 직접, 온라인으로 배포(예를 들어, 다운로드 또는 업로드)될 수 있다. 온라인 배포의 경우에, 컴퓨터 프로그램 제품(예를 들어, 다운로더블 앱(downloadable app))의 적어도 일부는 제조사의 서버, 어플리케이션 스토어의 서버, 또는 중계 서버의 메모리와 같은 기기로 읽을 수 있는 저장 매체에 적어도 일시 저장되거나, 임시적으로 생성될 수 있다.
전술한 본 개시의 설명은 예시를 위한 것이며, 본 개시가 속하는 기술분야의 통상의 지식을 가진 자는 본 개시의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 개시의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 개시의 범위에 포함되는 것으로 해석되어야 한다.

Claims (15)

  1. 전자 장치가 제1 카메라 및 제2 카메라를 이용하여 촬영된 객체의 3차원 골격 데이터(skeleton data)를 획득하는 방법에 있어서,
    상기 제1 카메라를 이용하여 제1 이미지를 획득하고 상기 제2 카메라를 이용하여 제2 이미지를 획득하는 단계;
    상기 제1 이미지로부터 상기 객체가 포함된 제1 관심 영역(region of interest, ROI)을 획득하는 단계;
    상기 제1 관심 영역으로부터, 상기 객체의 적어도 하나의 특징점을 포함하는 제1 골격 데이터를 획득하는 단계;
    상기 제1 골격 데이터, 및 상기 제1 카메라 및 제2 카메라의 상대적 위치 정보에 기초하여 상기 제2 이미지로부터 제2 관심 영역을 획득하는 단계;
    상기 제2 관심 영역으로부터 상기 객체의 적어도 하나의 특징점을 포함하는 제2 골격 데이터를 획득하는 단계; 및
    상기 제1 골격 데이터 및 상기 제2 골격 데이터에 기초하여, 상기 객체의 3차원 골격 데이터를 획득하는 단계를 포함하는, 방법.
  2. 제1항에 있어서, 상기 객체는 사용자의 손 또는 사용자의 신체 일부인 것을 특징으로 하는, 방법.
  3. 제1항에 있어서,
    상기 제1 이미지로부터 상기 제1 관심 영역을 획득하는 단계는, 상기 제1 이미지를 입력 값으로 하여 상기 객체가 포함된 이미지 영역을 상기 제1 관심 영역으로 출력하도록 훈련된, 제1 딥러닝(deep learning) 모델을 이용하는 것인, 방법.
  4. 제1항에 있어서,
    상기 제1 관심 영역으로부터 상기 제1 골격 데이터를 획득하는 단계는, 상기 제1 관심 영역을 입력 값으로 하여 상기 객체의 적어도 하나의 특징점을 조인트(joint)로 포함하는 그래프를 상기 제1 골격 데이터로 출력하도록 훈련된, 제2 딥러닝 모델을 이용하는 것인, 방법.
  5. 제1항에 있어서,
    상기 제1 골격 데이터는 상기 적어도 하나의 특징점의 공간 내 기 설정된 원점에 대한 3차원 위치 좌표를 포함하는, 방법.
  6. 제5항에 있어서,
    상기 제1 골격 데이터, 및 상기 제1 카메라 및 제2 카메라의 상대적 위치 정보에 기초하여 상기 제2 이미지로부터 제2 관심 영역을 획득하는 단계는,
    상기 제1 골격 데이터에 포함된 적어도 하나의 특징점의 3차원 위치 좌표를 상기 제2 이미지 상의 2차원 위치 좌표로 투영(projection) 시키는 단계;
    상기 제2 이미지로부터, 상기 제1 골격 데이터에 포함된 특징점의 상기 2차원 위치 좌표를 포함하는 블록을 식별하는 단계; 및
    상기 식별된 블록을 상기 제2 관심 영역으로 결정하는 단계를 포함하는, 방법.
  7. 제1항에 있어서,
    상기 제2 골격 데이터는 상기 적어도 하나의 특징점의 상기 제2 이미지 평면 상 기 설정된 원점에 대한 2차원 위치 좌표를 포함하는, 방법.
  8. 제7항에 있어서,
    상기 제2 관심 영역으로부터 상기 제2 골격 데이터를 획득하는 단계는, 상기 제2 관심 영역을 입력 값으로 하여 상기 객체의 적어도 하나의 특징점을 조인트로 포함하는 그래프를 상기 제2 골격 데이터로 출력하도록 훈련된 제3 딥러닝 모델을 이용하는 것인, 방법.
  9. 제7항에 있어서,
    상기 제1 골격 데이터는 상기 적어도 하나의 특징점의 공간 내 기 설정된 원점에 대한 3차원 위치 좌표를 포함하고,
    상기 제1 골격 데이터 및 상기 제2 골격 데이터에 기초하여 상기 객체의 3차원 골격 데이터를 획득하는 단계는,
    상기 적어도 하나의 특징점에 대해, 상기 제1 골격 데이터에 포함된 3차원 위치 좌표를 상기 제1 이미지 평면 상 2차원 위치 좌표로 투영(projection) 시키는 단계; 및
    상기 제1 이미지 평면 상에 투영된 2차원 위치 좌표 및 상기 제2 골격 데이터에 포함된 2차원 위치 좌표에 기초하여, 3차원 위치 좌표를 획득하는 단계를 포함하는, 방법.
  10. 제1항에 있어서,
    상기 제2 골격 데이터는 상기 적어도 하나의 특징점의 공간 내 기 설정된 원점에 대한 3차원 위치 좌표를 포함하는, 방법.
  11. 제10항에 있어서,
    상기 제2 관심 영역으로부터 상기 제2 골격 데이터를 획득하는 단계는, 상기 제2 관심 영역을 입력 값으로 하여 상기 객체의 적어도 하나의 특징점을 조인트로 포함하는 그래프를 상기 제2 골격 데이터로 출력하도록 훈련된 제2 딥러닝 모델을 이용하는 것인, 방법.
  12. 제10항에 있어서,
    상기 제1 골격 데이터는 상기 적어도 하나의 특징점의 공간 내 기 설정된 원점에 대한 3차원 위치 좌표를 포함하고,
    상기 제1 골격 데이터 및 상기 제2 골격 데이터에 기초하여 상기 객체의 3차원 골격 데이터를 획득하는 단계는, 상기 적어도 하나의 특징점에 대해, 상기 제1 골격 데이터에 포함된 3차원 위치 좌표 및 상기 제2 골격 데이터에 포함된 3차원 위치 좌표의 평균(average)값에 기초하여, 3차원 위치 좌표를 획득하는 단계를 포함하는, 방법.
  13. 제1항에 있어서,
    상기 제1 골격 데이터 및 상기 제2 골격 데이터에 기초하여 상기 객체의 3차원 골격 데이터를 획득하는 단계는, 상기 적어도 하나의 특징점에 대해, 상기 제1 골격 데이터에 포함된 위치 좌표 및 상기 제2 골격 데이터에 포함된 위치 좌표의 가중치 결합에 기초하여, 3차원 위치 좌표를 획득하는 단계를 포함하는, 방법.
  14. 전자 장치에 있어서,
    제1 카메라;
    제2 카메라;
    적어도 하나의 명령어(instruction)를 저장하는 저장부; 및
    상기 제1 카메라 및 상기 제2 카메라와 전기적으로 연결되며, 상기 저장부에 저장된 적어도 하나의 명령어를 실행하는 적어도 하나의 프로세서를 포함하고,
    상기 프로세서는 상기 적어도 하나의 명령어를 실행함으로써,
    상기 제1 카메라를 통해 제1 이미지를 획득하고 상기 제2 카메라를 통해 제2 이미지를 획득하고,
    상기 제1 이미지로부터, 객체가 포함된 제1 관심 영역(region of interest, ROI)을 획득하고,
    상기 제1 관심 영역으로부터, 상기 객체의 적어도 하나의 특징점을 포함하는 제1 골격 데이터를 획득하고,
    상기 제1 골격 데이터, 및 상기 제1 카메라 및 제2 카메라의 상대적 위치 정보에 기초하여 상기 제2 이미지로부터 제2 관심 영역을 획득하고,
    상기 제2 관심 영역으로부터 상기 객체의 적어도 하나의 특징점을 포함하는 제2 골격 데이터를 획득하고,
    상기 제1 골격 데이터 및 상기 제2 골격 데이터에 기초하여, 상기 객체의 3차원 골격 데이터를 획득하는, 전자 장치.
  15. 제1항 내지 제13항 중 어느 한 항의 방법을 컴퓨터에서 수행하기 위한 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체.
PCT/KR2022/020374 2021-12-15 2022-12-14 복수의 카메라를 이용하여 촬영된 객체의 3차원 골격 데이터를 획득하는 전자 장치 및 방법 WO2023113471A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP22907938.9A EP4365840A1 (en) 2021-12-15 2022-12-14 Electronic device and method for acquiring three-dimensional skeleton data of subject photographed using plurality of cameras
CN202280066775.1A CN118056230A (zh) 2021-12-15 2022-12-14 用于获得使用多个相机拍摄的对象的三维骨骼数据的电子设备和方法
US18/082,190 US20230186512A1 (en) 2021-12-15 2022-12-15 Electronic device and method for obtaining three-dimensional (3d) skeleton data of user's hand photographed using plurality of cameras

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210179973A KR20230090852A (ko) 2021-12-15 2021-12-15 복수의 카메라를 이용하여 촬영된 손의 3차원 골격 데이터를 획득하는 전자 장치 및 방법
KR10-2021-0179973 2021-12-15

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US18/082,190 Continuation US20230186512A1 (en) 2021-12-15 2022-12-15 Electronic device and method for obtaining three-dimensional (3d) skeleton data of user's hand photographed using plurality of cameras

Publications (1)

Publication Number Publication Date
WO2023113471A1 true WO2023113471A1 (ko) 2023-06-22

Family

ID=86773050

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2022/020374 WO2023113471A1 (ko) 2021-12-15 2022-12-14 복수의 카메라를 이용하여 촬영된 객체의 3차원 골격 데이터를 획득하는 전자 장치 및 방법

Country Status (2)

Country Link
KR (1) KR20230090852A (ko)
WO (1) WO2023113471A1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120044484A (ko) * 2010-10-28 2012-05-08 삼성전자주식회사 이미지 처리 시스템에서 물체 추적 장치 및 방법
KR102138680B1 (ko) * 2018-04-16 2020-07-28 연세대학교 산학협력단 영상 인식 장치 및 방법
KR20210009458A (ko) * 2019-07-16 2021-01-27 삼성전자주식회사 객체 검출 방법 및 객체 검출 장치
KR20210011425A (ko) * 2019-01-18 2021-02-01 베이징 센스타임 테크놀로지 디벨롭먼트 컴퍼니 리미티드 이미지 처리 방법 및 디바이스, 이미지 장치, 및 저장 매체
KR20210036879A (ko) * 2020-06-08 2021-04-05 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드 가상 오브젝트 구동 방법, 장치, 전자기기 및 판독 가능 저장매체

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120044484A (ko) * 2010-10-28 2012-05-08 삼성전자주식회사 이미지 처리 시스템에서 물체 추적 장치 및 방법
KR102138680B1 (ko) * 2018-04-16 2020-07-28 연세대학교 산학협력단 영상 인식 장치 및 방법
KR20210011425A (ko) * 2019-01-18 2021-02-01 베이징 센스타임 테크놀로지 디벨롭먼트 컴퍼니 리미티드 이미지 처리 방법 및 디바이스, 이미지 장치, 및 저장 매체
KR20210009458A (ko) * 2019-07-16 2021-01-27 삼성전자주식회사 객체 검출 방법 및 객체 검출 장치
KR20210036879A (ko) * 2020-06-08 2021-04-05 베이징 바이두 넷컴 사이언스 테크놀로지 컴퍼니 리미티드 가상 오브젝트 구동 방법, 장치, 전자기기 및 판독 가능 저장매체

Also Published As

Publication number Publication date
KR20230090852A (ko) 2023-06-22

Similar Documents

Publication Publication Date Title
JP7011608B2 (ja) 3次元空間内の姿勢推定
CN110799991B (zh) 用于使用卷积图像变换执行同时定位和映射的方法和***
WO2020122432A1 (ko) 전자 장치 및 그의 3d 이미지 표시 방법
KR20170031733A (ko) 디스플레이를 위한 캡처된 이미지의 시각을 조정하는 기술들
US11935187B2 (en) Single-pass object scanning
WO2022174594A1 (zh) 基于多相机的裸手追踪显示方法、装置及***
US11763477B2 (en) Person height estimation
WO2021221436A1 (ko) 카메라를 이용하여 공간의 깊이를 획득하는 디바이스 및 방법
CN114930798A (zh) 拍摄对象切换方法及装置、图像处理方法及装置
WO2022198508A1 (zh) 镜头异常提示方法、装置、可移动平台及可读存储介质
WO2021221341A1 (ko) 증강 현실 장치 및 그 제어 방법
JP2022133133A (ja) 生成装置、生成方法、システム、およびプログラム
WO2023113471A1 (ko) 복수의 카메라를 이용하여 촬영된 객체의 3차원 골격 데이터를 획득하는 전자 장치 및 방법
WO2022114506A1 (ko) 전자 장치 및 전자 장치의 제어 방법
WO2012153868A1 (ja) 情報処理装置、情報処理方法および情報処理プログラム
WO2022092762A1 (ko) 스테레오 매칭 방법 및 이를 수행하는 영상 처리 장치
WO2021261619A1 (ko) 영상에서 평면을 검출하는 전자 장치 및 그 동작 방법
WO2023132633A1 (ko) 복수의 카메라를 이용하여 3차원 이미지를 생성하는 방법 및 장치
WO2024053876A1 (ko) 카메라 캘리브레이션(camera calibration)을 수행하는 전자 장치 및 그 동작 방법
EP4365840A1 (en) Electronic device and method for acquiring three-dimensional skeleton data of subject photographed using plurality of cameras
CN111754543A (zh) 图像处理方法、装置及***
WO2022086028A1 (ko) 전자 장치 및 이의 제어 방법
WO2022146109A1 (ko) 도메인 전이학습을 통한 적외선 카메라 기반의 손 자세 추정 방법 및 시스템
WO2024053895A1 (ko) 현실 공간에서 객체를 제어하는 증강 현실 서비스를 제공하는 증강 현실 디바이스 및 그 동작 방법
WO2024147486A1 (ko) 손 관절의 3차원 위치 정보를 획득하는 증강 현실 디바이스 및 그 동작 방법

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22907938

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2022907938

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2022907938

Country of ref document: EP

Effective date: 20240130