KR102442780B1 - Method for estimating pose of device and thereof - Google Patents
Method for estimating pose of device and thereof Download PDFInfo
- Publication number
- KR102442780B1 KR102442780B1 KR1020180050747A KR20180050747A KR102442780B1 KR 102442780 B1 KR102442780 B1 KR 102442780B1 KR 1020180050747 A KR1020180050747 A KR 1020180050747A KR 20180050747 A KR20180050747 A KR 20180050747A KR 102442780 B1 KR102442780 B1 KR 102442780B1
- Authority
- KR
- South Korea
- Prior art keywords
- posture
- generating
- feature points
- determining
- imu data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 96
- 230000033001 locomotion Effects 0.000 claims abstract description 100
- 239000013598 vector Substances 0.000 claims description 49
- 230000003068 static effect Effects 0.000 claims description 17
- 230000008859 change Effects 0.000 claims description 9
- 238000005259 measurement Methods 0.000 claims description 8
- 238000013528 artificial neural network Methods 0.000 claims description 5
- 230000000306 recurrent effect Effects 0.000 claims description 5
- 230000004886 head movement Effects 0.000 claims description 4
- 238000009499 grossing Methods 0.000 claims description 3
- 238000009877 rendering Methods 0.000 claims description 3
- 230000036544 posture Effects 0.000 description 160
- 238000005457 optimization Methods 0.000 description 32
- 238000004891 communication Methods 0.000 description 12
- 238000001514 detection method Methods 0.000 description 11
- 238000010168 coupling process Methods 0.000 description 8
- 230000008878 coupling Effects 0.000 description 6
- 238000005859 coupling reaction Methods 0.000 description 6
- 230000001133 acceleration Effects 0.000 description 5
- 125000004122 cyclic group Chemical group 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000001914 filtration Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 206010047571 Visual impairment Diseases 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 210000001525 retina Anatomy 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 239000006185 dispersion Substances 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000004424 eye movement Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000005021 gait Effects 0.000 description 1
- 239000011521 glass Substances 0.000 description 1
- 210000003128 head Anatomy 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/0346—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/10—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
- G01C21/12—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning
- G01C21/16—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration executed aboard the object being navigated; Dead reckoning by integrating acceleration or speed, i.e. inertial navigation
-
- G—PHYSICS
- G03—PHOTOGRAPHY; CINEMATOGRAPHY; ANALOGOUS TECHNIQUES USING WAVES OTHER THAN OPTICAL WAVES; ELECTROGRAPHY; HOLOGRAPHY
- G03H—HOLOGRAPHIC PROCESSES OR APPARATUS
- G03H1/00—Holographic processes or apparatus using light, infrared or ultraviolet waves for obtaining holograms or for obtaining an image from them; Details peculiar thereto
- G03H1/04—Processes or apparatus for producing holograms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/16—Constructional details or arrangements
- G06F1/1613—Constructional details or arrangements for portable computers
- G06F1/163—Wearable computers, e.g. on a belt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/002—Specific input/output arrangements not covered by G06F3/01 - G06F3/16
- G06F3/005—Input arrangements through a video camera
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/03—Arrangements for converting the position or the displacement of a member into a coded form
- G06F3/033—Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
- G06F3/038—Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0481—Interaction techniques based on graphical user interfaces [GUI] based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/04—Inference or reasoning models
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Multimedia (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Automation & Control Theory (AREA)
- Image Analysis (AREA)
- Analysing Materials By The Use Of Radiation (AREA)
Abstract
장치의 자세를 추정하기 위한 방법 및 그 장치가 제공된다. 장치의 자세를 추정하기 위해, 장치의 IMU 데이터를 생성하고, IMU 데이터에 기초하여 현재 시점의 자세를 결정하고, 현재 자세 및 IMU 데이터에 기초하여 생성된 현재 예측 운동 상태 배열을 이용하여 미래 시점의 자세를 추정한다.A method and apparatus for estimating a posture of a device are provided. In order to estimate the posture of the device, IMU data of the device is generated, the posture of the current time is determined based on the IMU data, and the current posture and the current predicted motion state array generated based on the IMU data are used to determine the posture of the future time point. Estimate your posture
Description
아래의 실시예들은 장치의 자세를 추정하기 위한 방법 및 그 장치에 관한 것으로, 보다 상세하게는 관성 측정 장치(IMU)를 이용하여 장치의 자세를 추정하는 방법 및 그 장치에 관한 것이다.The following embodiments relate to a method and apparatus for estimating the posture of a device, and more particularly, to a method and apparatus for estimating the posture of a device using an inertial measurement unit (IMU).
"가상 현실(virtual reality: VR)" 또는 "증강 현실(augmented reality: AR)"과 같은 디스플레이 기술들은 출력된 이미지가 실제인 것처럼 사용자에게 느껴져야 한다. 사용자는 이러한 기술들을 통해 현실에서는 경험할 수 없는, 다양한 경험을 체험할 수 있다. VR 또는 AR을 통해 사용자에게 제공되는 이미지는 실시간성이 중요하다. 특히, 사용자의 자세와 밀접한 관계가 있는 출력 이미지는 사용자의 자세를 정확히 검출해야 한다. 출력 이미지의 실시간성이 낮은 경우, 사용자는 사용자의 자세와 출력 이미지와의 차이에서 발생하는 오차에 의해 불편함을 느낀다.Display technologies such as "virtual reality (VR)" or "augmented reality (AR)" require the output image to feel to the user as if it were real. Users can experience various experiences that cannot be experienced in reality through these technologies. Real-time is important for images provided to users through VR or AR. In particular, the output image closely related to the user's posture needs to accurately detect the user's posture. When the real-time performance of the output image is low, the user feels uncomfortable due to an error occurring in the difference between the user's posture and the output image.
예를 들어, 사용자의 자세를 검출하기 위해 사용자가 착용하는 방식의 장치가 이용될 수 있다. 많은 센서들을 통해 장치의 자세를 검출하는 타이트 커플링(tight coupling) 방법은 높은 정확도를 갖는 장점이 있으나, 많은 데이터로 인하여 고려해야할 제약들이 많아 계산 속도가 느리고, 지연이 발생한다.For example, a device worn by the user may be used to detect the user's posture. The tight coupling method of detecting the posture of the device through many sensors has an advantage of having high accuracy, but there are many constraints to be considered due to a large amount of data, so the calculation speed is slow and a delay occurs.
일 실시예는 장치의 위치를 추정하는 방법 및 그 장치를 제공할 수 있다.One embodiment may provide a method and apparatus for estimating the location of a device.
일 실시예는 루즈 커플링 방법을 이용하여 장치의 위치를 추정하는 방법 및 그 장치를 제공할 수 있다.An embodiment may provide a method and an apparatus for estimating a location of a device using a loose coupling method.
일 측면에 따른, 장치에 의해 수행되는 장치의 자세 추정 방법은, 상기 장치의 관성 측정 장치(Inertial Measurement Unit: IMU)를 이용하여 IMU 데이터를 생성하는 단계, 상기 IMU 데이터에 기초하여 상기 장치의 제1 자세(first pose)를 결정하는 단계, 상기 IMU 데이터에 기초하여 현재 예측 운동 상태 배열(present prediction motional state array)을 생성하는 단계, 및 상기 현재 예측 운동 상태 배열에 기초하여, 상기 제1 자세의 제1 시점(first time point) 이후의 제M 시점에서의 제M 예측 자세(prediction pose)를 추정하는 단계를 포함한다.According to one aspect, a method for estimating a posture of a device performed by a device includes generating IMU data using an inertial measurement unit (IMU) of the device, and generating IMU data based on the IMU data. determining a first pose, generating a present prediction motional state array based on the IMU data, and based on the current predicted motional state array, and estimating an M-th prediction pose at the M-th time point after the first time point.
상기 현재 예측 운동 상태 배열을 생성하는 단계는, 상기 IMU 데이터를 평탄화(smoothing)하는 단계, 상기 평탄화된 IMU 데이터에 기초하여 상기 제1 시점의 제1 운동 상태 벡터(first motional state vector)를 생성하는 단계, 상기 제1 운동 상태 벡터에 기초하여 제N 시점의 제N 예측 운동 상태 벡터를 결정하는 단계, 및 운동 모델(motional model), 이전 예측 운동 상태 배열(previous prediction motional state array) 및 상기 제N 예측 운동 상태 벡터에 기초하여 상기 현재 예측 운동 상태 배열을 생성하는 단계를 포함할 수 있다.The generating of the current predicted motion state array may include smoothing the IMU data, and generating a first motional state vector of the first time based on the flattened IMU data. Step, determining an Nth predicted motional state vector of an Nth time based on the first motional state vector, and a motional model, a previous prediction motional state array, and the Nth and generating the current predicted motion state array based on the predicted motion state vector.
상기 제1 운동 상태 벡터를 생성하는 단계는, 상기 제1 자세와 미리 추정된 제1 예측 자세(first prediction pose) 간의 차이에 기초하여 상기 평탄화된 IMU 데이터를 보정함으로써 상기 제1 운동 상태 벡터를 생성하는 단계를 포함할 수 있다.The generating of the first motion state vector may include generating the first motion state vector by correcting the flattened IMU data based on a difference between the first posture and a pre-estimated first prediction pose. may include the step of
상기 제N 예측 운동 상태 벡터를 결정하는 단계는, 상기 제1 운동 상태 벡터를 입력으로 하는 장단기 메모리(Long-Short Term Memory: LSTM) 방식의 순환 신경망(recurrent neural network)을 이용하여 상기 제N 예측 운동 상태 벡터를 생성하는 단계를 포함할 수 있다.The determining of the N-th predicted motion state vector may include predicting the N-th using a recurrent neural network of a Long-Short Term Memory (LSTM) method using the first motion state vector as an input. generating a motion state vector.
상기 제1 운동 상태 벡터를 생성하는 단계는, 상기 장치의 사용자의 안구 운동 속도(ocular movement velocity) 및 사용자의 머리 운동 속도(head movement velocity) 중 적어도 하나에 기초하여 상기 제1 운동 상태 벡터를 생성하는 빈도를 결정하는 단계를 포함할 수 있다.The generating of the first motion state vector may include generating the first motion state vector based on at least one of an ocular movement velocity and a head movement velocity of a user of the device. It may include the step of determining the frequency of
상기 자세 추정 방법은, 상기 IMU 데이터에 기초하여 상기 장치의 상태가 정적 상태인지 여부를 결정하는 단계를 더 포함하고, 상기 장치의 제1 자세를 결정하는 단계는, 상기 장치의 상태가 정적 상태인지 여부에 기초하여 제1 자세를 결정하는 단계를 포함할 수 있다.The method for estimating the posture further comprises determining whether the state of the device is in a static state based on the IMU data, wherein determining the first posture of the device includes whether the state of the device is in a static state It may include determining the first posture based on whether or not.
상기 자세 추정 방법은, 상기 제M 시점에서 출력될 가상 오브젝트(virtual object)를 생성하는 단계, 및 상기 가상 오브젝트를 출력하는 단계를 더 포함할 수 있다.The method of estimating the posture may further include generating a virtual object to be output at the Mth time point, and outputting the virtual object.
상기 자세 추정 방법은, 상기 가상 오브젝트를 렌더링하는 기간동안 발생하는 장치의 자세 변화에 기초하여 상기 가상 오브젝트를 조정하는 단계를 더 포함할 수 있다.The method for estimating the posture may further include adjusting the virtual object based on a change in the posture of the device that occurs during a period of rendering the virtual object.
상기 가상 오브젝트를 출력하는 단계는, 제M 시점에 대한 이미지와 상기 가상 오브젝트가 합성되도록 가상 오브젝트를 출력하는 단계를 포함할 수 있다.The outputting of the virtual object may include outputting the virtual object so that the image for the M-th viewpoint and the virtual object are synthesized.
상기 가상 오브제트는 홀로그래픽 이미지(holographic image)일 수 있다.The virtual object may be a holographic image.
상기 자세 추정 방법은, 상기 장치의 주변 공간에 대한 맵을 생성하는 단계, 상기 맵을 이용하여 초기 자세(initial pose)를 결정하는 단계, 및 IMU 데이터에 기초하여 상기 장치가 정적 상태(static state)인지 여부를 결정하는 단계를 더 포함하고, 상기 제1 자세는 상기 장치가 정적 상태인 경우에 결정될 수 있다.The method for estimating the posture includes generating a map for the surrounding space of the device, determining an initial pose using the map, and setting the device to a static state based on IMU data. The method may further include determining whether to recognize the first posture, wherein the first posture may be determined when the device is in a static state.
상기 맵을 생성하는 단계는, 상기 장치의 왼쪽 카메라를 이용하여 왼쪽 이미지를 생성하는 단계, 상기 왼쪽 이미지로부터 하나 이상의 제1 특징점들을 생성하는 단계, 상기 장치의 오른쪽 카메라를 이용하여 오른쪽 이미지를 생성하는 단계, 상기 오른쪽 이미지로부터 하나 이상의 제2 특징점들을 생성하는 단계, 상기 제1 특징점들 및 상기 제2 특징점들을 매칭하는 단계, 및 제1 특징점들 및 상기 제2 특징점들 중 매칭된 특징점들 및 매칭되지 않은 특징점들에 기초하여 상기 맵을 생성하는 단계를 포함할 수 있다.The generating of the map may include generating a left image using a left camera of the device, generating one or more first feature points from the left image, and generating a right image using a right camera of the device generating one or more second feature points from the right image, matching the first feature points and the second feature points, and matching and unmatched first feature points and among the second feature points It may include generating the map based on the feature points that are not.
상기 초기 자세를 결정하는 단계는, 상기 왼쪽 카메라 및 상기 오른쪽 카메라 중 적어도 하나에 의해 생성된 이미지로부터 하나의 이상의 특징점(feature point)들을 생성하는 단계, 상기 맵에 미리 설정된 후보 특징점(candidate feature point)들 중 상기 하나 이상의 특징점들에 대응하는 타겟 특징점(target point)을 결정하는 단계, 및 상기 타겟 특징점에 기초하여 상기 초기 자세를 결정하는 단계를 포함할 수 있다.The determining of the initial posture may include generating one or more feature points from an image generated by at least one of the left camera and the right camera, and a candidate feature point preset in the map. The method may include determining a target feature point corresponding to the one or more feature points, and determining the initial posture based on the target feature point.
상기 초기 자세를 결정하는 단계는, 상기 하나 이상의 특징점들 중 상기 맵에 미리 설정된 후보 특징점들에 대응하지 않은 나머지 특징점(remaining feature point)을 결정하는 단계, 및 상기 나머지 특징점에 대응하는 특징점을 상기 맵에 추가함으로써 상기 맵을 업데이트하는 단계를 더 포함할 수 있다.The determining of the initial posture may include determining a remaining feature point that does not correspond to candidate feature points preset in the map among the one or more feature points, and a feature point corresponding to the remaining feature point on the map The method may further include updating the map by adding to .
상기 장치는, 웨어러블 장치(wearable device)일 수 있다.The device may be a wearable device.
다른 일 측면에 따른, 자세를 추정하는 장치는, 적어도 하나의 카메라, 관성 측정 장치(Inertial Measurement Unit: IMU), 자세를 추정하는 프로그램이 기록된 메모리, 및 상기 프로그램을 수행하는 프로세서를 포함하고, 상기 프로그램은, 상기 장치의 관성 측정 장치(Inertial Measurement Unit: IMU)를 이용하여 IMU 데이터를 생성하는 단계, 상기 IMU 데이터에 기초하여 상기 장치의 제1 자세(pose)를 결정하는 단계, 상기 IMU 데이터에 기초하여 현재 예측 운동 상태 배열을 생성하는 단계, 및 상기 현재 예측 운동 상태 배열에 기초하여, 상기 제1 자세의 제1 시점 이후의 제M 시점에서의 제M 예측 자세를 추정하는 단계를 수행한다.According to another aspect, an apparatus for estimating an attitude includes at least one camera, an inertial measurement unit (IMU), a memory in which a program for estimating an attitude is recorded, and a processor for executing the program, The program may include generating IMU data using an inertial measurement unit (IMU) of the device, determining a first pose of the device based on the IMU data, and the IMU data generating a current predicted motion state array based on .
도 1은 일 예에 따른 가상 오브젝트가 출력된 이미지들을 도시한다.
도 2는 일 실시예에 따른 장치의 구성도이다.
도 3은 일 예에 따른 장치의 자세 추정을 위한 클러스터 최적화 방법의 흐름도이다.
도 4는 일 예에 따른 제1 클러스터 최적화 방법의 흐름도이다.
도 5는 일 예에 따른 장치의 주변 공간에 대한 맵을 생성하는 방법의 흐름도이다.
도 6은 일 예에 따른 맵을 이용하여 초기 자세를 결정하는 방법의 흐름도이다.
도 7은 일 예에 따른 초기 자세를 결정하는 동안 클러스터를 최적화하는 방법을 도시한다.
도 8은 일 예에 따른 맵을 업데이트하는 방법의 흐름도이다.
도 9는 일 예에 따른 제2 클러스터 최적화 방법을 도시한다.
도 10은 일 실시예에 따른 제2 클러스터 최적화를 통해 제M 예측 자세를 추정하는 방법의 흐름도이다.
도 11은 일 예에 따른 현재 예측 운동 상태 배열을 생성하는 방법의 흐름도이다.
도 12는 일 예에 따른 제i 시점의 자세에 기초하여 제i+x 시점의 자세를 추정하는 방법을 도시한다.
도 13은 일 예에 따른 현재 예측 운동 상태 배열을 계산하는 방법을 도시한다.
도 14는 일 예에 따른 정적 상태를 검출하는 방법을 도시한다.
도 15는 일 예에 따른 순환 검출에 의해 발생한 지터에 의한 결과를 도시한다.
도 16은 일 예에 따른 가상 오브젝트를 출력하는 방법의 흐름도이다.
도 17은 일 예에 따른 장치의 추정 자세에 기초하여 합성 이미지를 출력하는 방법을 도시한다.
도 18은 일 예에 따른 장치의 모듈들의 구성도이다.
도 19는 일 예에 따른 다양한 검측 방법에 따른 자세 추정 결과를 도시한다.1 illustrates images from which a virtual object is output according to an example.
2 is a block diagram of an apparatus according to an embodiment.
3 is a flowchart of a cluster optimization method for estimating a posture of a device according to an example.
4 is a flowchart of a first cluster optimization method according to an example.
5 is a flowchart of a method of generating a map for a surrounding space of an apparatus according to an example.
6 is a flowchart of a method of determining an initial posture using a map according to an example.
7 illustrates a method of optimizing a cluster while determining an initial posture according to an example.
8 is a flowchart of a method for updating a map according to an example.
9 illustrates a second cluster optimization method according to an example.
10 is a flowchart of a method of estimating an M-th predicted posture through second cluster optimization according to an embodiment.
11 is a flowchart of a method for generating a current predicted motion state arrangement according to an example.
12 illustrates a method of estimating a posture at an i+x time point based on the posture at the i-th time point according to an example.
13 illustrates a method of calculating a current predicted motion state arrangement according to an example.
14 illustrates a method for detecting a static state according to an example.
15 illustrates a result due to jitter generated by cyclic detection according to an example.
16 is a flowchart of a method of outputting a virtual object according to an example.
17 illustrates a method of outputting a composite image based on an estimated posture of an apparatus according to an example.
18 is a block diagram of modules of an apparatus according to an example.
19 illustrates posture estimation results according to various detection methods according to an example.
이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 특허출원의 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다.Hereinafter, embodiments will be described in detail with reference to the accompanying drawings. However, the scope of the patent application is not limited or limited by these embodiments. Like reference numerals in each figure indicate like elements.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.Various modifications may be made to the embodiments described below. It should be understood that the embodiments described below are not intended to limit the embodiments, and include all modifications, equivalents, and substitutions thereto.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Terms used in the examples are only used to describe specific examples, and are not intended to limit the examples. The singular expression includes the plural expression unless the context clearly dictates otherwise. In the present specification, terms such as “comprise” or “have” are intended to designate that a feature, number, step, operation, component, part, or combination thereof described in the specification exists, but one or more other features It is to be understood that this does not preclude the possibility of the presence or addition of numbers, steps, operations, components, parts, or combinations thereof.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related art, and should not be interpreted in an ideal or excessively formal meaning unless explicitly defined in the present application. does not
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same components are assigned the same reference numerals regardless of the reference numerals, and the overlapping description thereof will be omitted. In the description of the embodiment, if it is determined that a detailed description of a related known technology may unnecessarily obscure the gist of the embodiment, the detailed description thereof will be omitted.
도 1은 일 예에 따른 가상 오브젝트가 출력된 이미지들을 도시한다.1 illustrates images from which a virtual object is output according to an example.
예를 들어, 제1 이미지(110)는 실제 오브젝트(111) 및 가상 오브젝트(112)를 포함한다. 가상 오브젝트(112)는 실제 오브젝트(111)에 대한 부가 정보일 수 있다. 제1 이미지(11) 내의 가상 오브젝트(112)의 위치는 사용자의 시선 및 실제 오브젝트(111)의 위치에 기초하여 결정될 수 있다.For example, the
사용자의 시선이 변화하는 경우, 제2 이미지(120)는 변화한다. 제2 이미지(120)는 실제 오브젝트(110)에 대응하는 실제 오브젝트(121) 및 가상 오브젝트(112)에 대응하는 가상 오브젝트(122)를 포함한다. 제2 이미지(120) 내의 실제 오브젝트(121)의 위치는 사용자의 시선을 반영하여 즉각적으로 변화한다. 그러나, 사용자의 시선이 즉각적으로 검출되지 않는 경우, 제2 이미지(120) 내의 가상 오브젝트(122)의 위치가 변경되지 않고, 가상 오브젝트(112)의 위치와 동일하게 결정될 수 있다. 이에 따라, 제2 이미지(120)에 나타나는 실제 오브젝트(121) 및 가상 오브젝트(122) 간의 상대 위치가 적절하지 않을 수 있다.When the user's gaze changes, the
일 측면에 따르면, 사용자의 시선은 사용자의 시선에 대응하는 장치의 자세를 결정함으로써 검출될 수 있다. 장치의 자세는 장치의 센서들을 통해 결정 또는 추정될 수 있다. 아래에서 도 2 내지 도 18을 참조하여 장치의 자세를 추정하는 방법에 대해 상세히 설명한다.According to an aspect, the gaze of the user may be detected by determining a posture of the device corresponding to the gaze of the user. The pose of the device may be determined or estimated via sensors of the device. Hereinafter, a method of estimating the posture of the device will be described in detail with reference to FIGS. 2 to 18 .
아래에서 용어 "자세"는 현재 측정된 데이터를 이용하여 결정된 현재의 자세를 의미하고, 용어 "예측 자세"는 현재 측정된 데이터를 이용하여 추정된 미래의 자세를 의미한다.Hereinafter, the term “posture” refers to a current posture determined using currently measured data, and the term “predicted posture” refers to a future posture estimated using the currently measured data.
도 2는 일 실시예에 따른 장치의 구성도이다.2 is a block diagram of an apparatus according to an embodiment.
장치(200)는 통신부(210), 프로세서(220), 메모리(230), 카메라(240) 및 관성 측정 장치(Inertial Measurement Unit: IMU)를 포함한다. 장치(200)는 전자 장치일 수 있다. 예를 들어, 장치(200)는 사용자에게 AR 또는 VR을 제공하기 위한 이미지를 출력하는 장치일 수 있다. 일 측면에 따르면, 장치(200)는 웨어러블 장치(wearable device)일 수 있다. 예를 들어, 장치(200)는 안경 형태 또는 HMD(head mounted display)일 수 있으나, 이에 한정되지 않는다. 다른 일 측면에 따르면, 장치(200)는 사용자의 위치 측정, 사용자의 위치 추정 등에 이용될 수 있다. 또 다른 일 측면에 따르면, 장치(200)는 자율 주행을 위해 이용될 수 있다.The
통신부(210)는 프로세서(220), 메모리(230), 카메라(240) 및 IMU(250)와 연결되어 데이터를 송수신한다. 통신부(210)는 외부의 다른 장치와 연결되어 데이터를 송수신할 수 있다.The
통신부(210)는 장치(200) 내의 회로망(circuitry)으로 구현될 수 있다. 예를 들어, 통신부(210)는 내부 버스(internal bus) 및 외부 버스(external bus)를 포함할 수 있다. 다른 예로, 통신부(210)는 장치(200)와 외부의 장치를 연결하는 요소일 수 있다. 통신부(210)는 인터페이스(interface)일 수 있다. 통신부(210)는 외부의 장치로부터 데이터를 수신하여, 프로세서(220) 및 메모리(230)에 데이터를 전송할 수 있다.The
프로세서(220)는 통신부(210)가 수신한 데이터 및 메모리(230)에 저장된 데이터를 처리한다. "프로세서"는 목적하는 동작들(desired operations)을 실행시키기 위한 물리적인 구조를 갖는 회로를 가지는 하드웨어로 구현된 데이터 처리 장치일 수 있다. 예를 들어, 목적하는 동작들은 프로그램에 포함된 코드(code) 또는 인스트럭션들(instructions)을 포함할 수 있다. 예를 들어, 하드웨어로 구현된 데이터 처리 장치는 마이크로프로세서(microprocessor), 중앙 처리 장치(central processing unit), 프로세서 코어(processor core), 멀티-코어 프로세서(multi-core processor), 멀티프로세서(multiprocessor), ASIC(Application-Specific Integrated Circuit), FPGA(Field Programmable Gate Array)를 포함할 수 있다.The
프로세서(220)는 메모리(예를 들어, 메모리(230))에 저장된 컴퓨터로 읽을 수 있는 코드(예를 들어, 소프트웨어) 및 프로세서(220)에 의해 유발된 인스트럭션들을 실행한다.
메모리(230)는 통신부(210)가 수신한 데이터 및 프로세서(220)가 처리한 데이터를 저장한다. 예를 들어, 메모리(230)는 프로그램을 저장할 수 있다. 저장되는 프로그램은 장치의 자세를 추정할 수 있도록 코딩되어 프로세서(220)에 의해 실행 가능한 신텍스(syntax)들의 집합일 수 있다.The
일 측면에 따르면, 메모리(230)는 하나 이상의 휘발성 메모리, 비휘발성 메모리 및 RAM(Random Access Memory), 플래시 메모리, 하드 디스크 드라이브 및 광학 디스크 드라이브를 포함할 수 있다.According to one aspect,
메모리(230)는 장치(200)를 동작 시키는 명령어 세트(예를 들어, 소프트웨어)를 저장한다. 장치(200)를 동작 시키는 명령어 세트는 프로세서(220)에 의해 실행된다.The
카메라(240)는 장면을 촬영함으로써 이미지를 생성한다. 예를 들어, 카메라(240)는 사용자의 왼쪽 눈에 출력될 왼쪽 이미지를 생성하는 왼쪽 카메라 및 사용자의 오른쪽 눈에 출력될 오른쪽 이미지를 생성하는 오른쪽 카메라를 포함할 수 있다. 왼쪽 이미지 및 오른쪽 이미지 간에는 양안 시차가 있다. 다른 예로, 카메라(240)는 하나의 이미지를 생성할 수 있고, 프로세서(220)는 이미지 와핑(warping)과 같은 이미지 처리 방법을 이용하여 왼쪽 이미지 및 오른쪽 이미지를 생성할 수 있다.The
IMU(250)는 장치(200)의 움직임에 따른 가속도 및 각속도를 측정함으로써 IMU 데이터를 생성할 수 있다.The
도시되지는 않았으나, 장치(200)는 장치(200)의 위치 또는 자세를 측정할 수 있는 센서들을 포함할 수 있다. 예를 들어, 장치(200)는 GPS(global positioning system)를 포함할 수 있고, 기재된 실시예로 한정되지 않는다.Although not shown, the
통신부(210), 프로세서(220), 메모리(230), 카메라(240) 및 IMU(250)에 대해, 아래에서 도 3 내지 도 18을 참조하여 상세히 설명된다.The
도 3은 일 예에 따른 장치의 자세 추정을 위한 클러스터 최적화 방법의 흐름도이다.3 is a flowchart of a cluster optimization method for estimating a posture of a device according to an example.
일 측면에 따르면, 장치(200)의 자세를 추정하기 위해 제1 클러스터 최적화 단계(310) 및 제2 클러스터 최적화 단계(320)가 수행될 수 있다. 클러스터 최적화는 장치(200)의 자세를 추정하기 위해 이용되는 파라미터들 및 알고리즘을 최적화하는 것을 의미한다.According to an aspect, a first
제1 클러스터 최적화 단계(310)는 타이트 커플링(tight coupling) 클러스터 최적화 방식을 이용하여 수행될 수 있다. 타이트 커플링 클러스터 최적화 방식은 많은 수의 센서들을 이용하여 측정된 데이터를 이용하여 장치(200)의 자세를 추정한다. 예를 들어, 카메라(240)를 이용하여 생성된 이미지 및 IMU(250)를 이용하여 생성된 IMU 데이터가 장치(200)의 자세를 추정하기 위해 이용될 수 있다. 제1 클러스터 최적화 단계(310)에 대해 아래에서 도 4 내지 도 8을 참조하여 상세히 설명된다.The first
제2 클러스터 최적화 단계(320)는 루즈 커플링(loose coupling) 클러스터 최적화 방식을 이용하여 수행할 수 있다. 루즈 커플링 클러스터 최적화 방식은 적은 수의 센서들을 이용하여 측정된 데이터를 이용하여 장치(200)의 자세를 추정한다. 예를 들어, IMU(250)를 이용하여 생성된 IMU 데이터만이 장치(200)의 자세를 추정하기 위해 이용될 수 있다. IMU 데이터는 장치(200)의 가속도 및 각속도를 포함하므로, IMU 데이터를 적분하고, 적분된 값을 이전 자세에 중첩하는 경우 현재 자세를 결정할 수 있다.The second
자세를 추정하기 위해 이용되는 데이터가 적을수록 자세가 빠르게 추정될 수 있다. 제2 클러스터 최적화 단계(320)에 대해 아래에서 도 9 내지 도 15를 참조하여 상세히 설명된다. The less data used to estimate the posture, the faster the posture can be estimated. The second
도 4는 일 예에 따른 제1 클러스터 최적화 방법의 흐름도이다.4 is a flowchart of a first cluster optimization method according to an example.
도 3을 참조하여 전술된 단계(310)는 아래의 단계들(410 내지 440)을 포함한다.Step 310 described above with reference to FIG. 3 includes the following
단계(410)에서, 장치(200)는 장치(200)의 주변 공간에 대한 맵을 생성한다. 장치(200)의 카메라(240)를 통해 촬영된 이미지들을 이용하여 맵이 생성될 수 있다. 맵을 생성하는 방법에 대해, 아래에서 도 5를 참조하여 상세히 설명된다.In
단계(420)에서, 장치(200)는 맵을 이용하여 장치(200)의 초기 자세(initial pose)를 결정한다. 초기 자세를 결정하는 방법에 대해, 아래에서 도 6을 참조하여 상세히 설명된다.In
단계(430)에서, 장치(200)는 IMU 데이터에 기초하여 장치(200)의 상태가 정적 상태(static condition)인지 여부를 결정한다. 정적 상태는 장치(200)의 움직임이 없거나, 미리 설정된 임계 값 이하의 움직임이 나타나는 것을 의미한다.In
IMU 데이터에는 통상적으로 노이즈가 포함되어 있고, 노이즈는 장치(200)의 추측 자세의 오차를 유발한다. 장치(200)의 정적 상태(또는 정지 상태)를 이용하여 자세를 추정하는 경우 노이즈의 영향을 줄일 수 있다. IMU 데이터의 국부적 변이를 분석함으로써 장치(200)가 정적 상태에 있는지가 검출될 수 있다. 장치(200)가 정지 상태인 경우, 그 다음 시점에서 클러스터 최적화를 수행할 때 자세 추정의 정확성을 높이기 위해 제약 조건을 추가한다. 제약 조건은 아래와 같다.IMU data typically includes noise, and the noise causes an error in the guess posture of the
i) 장치(200)의 위치는 맵 포인트의 공간적 위치(예를 들어, 3차원 위치)와 이에 대응하는 이미지(왼쪽 이미지/또는 오른쪽 이미지)의 특징점의 위치에 기초하여 획득할 수 있다. ii) 공간에서의 새로운 맵 포인트의 위치는 장치(200)의 위치와 이미지 상의 새로운 맵 포인트에 대응하는 특징점의 위치에 의해 계산될 수 있다. iii) 전, 후의 이미지들 간의 IMU 데이터 및 IMU 파라미터들을 통해 전, 후의 이미지들 간의 장치의 위치 및 자세가 계산될 수 있다. IMU 파라미터들은 운동 상태 벡터일 수 있다. iv) IMU 파라미터들은 복수의 이미지들 간의 IMU 데이터 및 상기의 복수의 이미지들에 대응하는 장치(200)의 자세를 이용하여 계산될 수 있다. v) 검출된 정지 상태를 통해, 두 개의 이미지들 사이의 자세가 0으로 변화하는 것으로 결정될 수 있다.i) The location of the
맵 포인트, 장치(200)의 자세 및 IMU 데이터 간의 제약 조건이 존재하기 때문에, 이 제약 조건을 최대한 만족하는 장치(200)의 자세가 결정될 수 있다. 상기의 제약 조건의 개수를 많이 만족할수록 정확한 자세가 추정될 수 있으나, 추정 속도는 느려지게된다.Since there is a constraint between the map point, the posture of the
단계(440)에서, 장치(200)의 상태에 따라 제1 클러스터 최적화가 재수행될지 또는 제2 클러스터 최적화가 수행될지가 결정된다.In
제1 클러스터 최적화 단계(310)를 통해, 제2 클러스터 최적화 단계(320)에서 자세 추정을 위해 이용될 파라미터 및 알고리즘이 최적화될 수 있다. 제2 클러스터 최적화 단계(320)에서 자세 추정을 위해 이용될 파라미터 및 알고리즘에 대해, 아래에서 도 10 내지 13을 참조하여 상세히 설명된다.Through the first
도 5는 일 예에 따른 장치의 주변 공간에 대한 맵을 생성하는 방법의 흐름도이다.5 is a flowchart of a method of generating a map for a surrounding space of an apparatus according to an example.
도 4를 참조하여 전술된 단계(410)는 아래의 단계들(510 내지 540)을 포함한다.Step 410 described above with reference to FIG. 4 includes the following
단계(510)에서, 장치(200)는 왼쪽 이미지를 생성할 수 있다. 예를 들어, 왼쪽 카메라를 이용하여 왼쪽 이미지를 생성한다. 다른 예로, 장치(200)는 카메라를 이용하여 촬영된 기준 이미지를 와핑함으로써 왼쪽 이미지를 생성할 수 있다.In
단계(515)에서, 장치(200)는 생성된 왼쪽 이미지 내의 하나 이상의 제1 특징점(feature point)들을 생성한다. 특징점은 이미지 내의 엣지 및 텍스쳐일 수 있다. 예를 들어, 장치(200)는 특징점을 생성하기 위해 brisk 및 sift와 같은 방법을 이용할 수 있다.In
단계(520)에서, 장치(200)는 오른쪽 이미지를 생성할 수 있다. 예를 들어, 오른쪽 카메라를 이용하여 오른쪽 이미지를 생성한다. 다른 예로, 장치(200)는 카메라를 이용하여 촬영된 기준 이미지를 와핑함으로써 오른쪽 이미지를 생성할 수 있다.In
단계(525)에서, 장치(200)는 생성된 오른쪽 이미지 내의 하나 이상의 제2 특징점들을 생성한다.In
단계(530)에서, 장치(200)는 제1 특징점 및 제2 특징점을 매칭한다. 예를 들어, 장치(200)는 RANSAC(fitting via random sample consensus) 방법을 이용하여 매칭 관계를 검증하고, 잘못된 매칭을 제거할 수 있다.In
단계(540)에서, 장치(200)는 제1 특징점 및 제2 특징점 중 매칭된 특징점 및 매칭되지 않은 특징점에 기초하여 맵을 생성한다.In
도 6은 일 예에 따른 맵을 이용하여 초기 자세를 결정하는 방법의 흐름도이다.6 is a flowchart of a method of determining an initial posture using a map according to an example.
도 4를 참조하여 전술된 단계(420)는 아래의 단계들(610 내지 630)을 포함한다.Step 420 described above with reference to FIG. 4 includes the following
단계(610)에서, 장치(200)는 카메라에 의해 생성된 이미지로부터 하나 이상의 특징점들을 생성한다.In
단계(620)에서, 장치(200)는 맵에 미리 설정된 후보 특징점(candidate feature point)들 중 하나 이상의 특징점들에 대응하는 타겟 특징점을 결정한다.In
단계(630)에서, 장치(200)는 타겟 특징점에 기초하여 장치(200)의 초기 자세를 결정한다. 예를 들어, 초기 자세는 사용자의 시선에 대응하는 카메라(240)(또는 장치(200))의 현재 자세일 수 있다. 자세는 카메라의 시점(view point)를 의미할 수 있다.In
단계(310)가 반복적으로 수행되는 동안, 장치(200)의 미래 자세를 추정하기 위한 파라미터들이 최적화될 수 있다. 단계(310)를 통해 최적화된 파라미터들은 단계(320)에서 연속적으로 이용될 수 있다.While
도 7은 일 예에 따른 초기 자세를 결정하는 동안 클러스터를 최적화하는 방법을 도시한다.7 illustrates a method of optimizing a cluster while determining an initial posture according to an example.
제1 자세(710)에서 촬영된 이미지 및 맵을 이용하여 장치(200)의 제1 자세(710)가 결정된다. 예를 들어, 제1 자세(710)에서 촬영된 이미지에 기초하여 맵의 타겟 특징점들(721, 722)이 결정될 수 있다. 사용자는 장치(200)를 착용하고 이동할 수 있다. 이동하는 동안, 장치(200)의 운동 상태가 검출될 수 있다. 운동 상태는 IMU 데이터일 수 있다. 결정된 제1 자세(710) 및 IMU 데이터에 기초하여 제1 자세(710) 이후의 장치(200)의 자세가 추정될 수 있다. 추정된 자세의 오차를 감소시키기 위해 노이즈가 필터링된 IMU 데이터가 이용될 수 있다. 예를 들어, 노이즈 바이어스된 IMU 데이터가 자세를 추정하기 위해 이용될 수 있다.The
제2 자세(711)에서 촬영된 이미지 및 맵을 이용하여 장치(200)의 제2 자세(711)가 결정된다. 예를 들어, 제2 자세(711)에서 촬영된 이미지에 기초하여 맵의 타겟 특징점들(721, 722, 723, 724, 725)이 결정될 수 있다. 결정된 제2 자세(711) 및 IMU 데이터에 기초하여 제2 자세(711) 이후의 장치(200)의 자세가 추정될 수 있다.The
제3 자세(712)에서 촬영된 이미지 및 맵을 이용하여 장치(200)의 제3 자세(712)가 결정된다. 예를 들어, 제3 자세(712)에서 촬영된 이미지에 기초하여 맵의 타겟 특징점들(723, 725, 726, 728, 729)이 결정될 수 있다. 결정된 제3 자세(712) 및 IMU 데이터에 기초하여 제3 자세(712) 이후의 장치(200)의 자세가 추정될 수 있다.A
제4 자세(713)에서 촬영된 이미지 및 맵을 이용하여 장치(200)의 제4 자세(713)가 결정된다. 예를 들어, 제4 자세(713)에서 촬영된 이미지에 기초하여 맵의 타겟 특징점들(726, 727, 728, 729)이 결정될 수 있다. 결정된 제4 자세(712) 및 IMU 데이터에 기초하여 제4 자세(713) 이후의 장치(200)의 자세가 추정될 수 있다.A
제1 자세(710) 내지 제4 자세(713)가 실제의 자세로 결정되고, 실제 자세에 기초하여 자세를 추정하기 위한 파라미터들이 조정될 수 있다. 반복적인 추정을 통해 실제 자세 및 추정 자세 간의 오차가 감소할 수 있다.The
제1 자세(710) 내지 제4 자세(713)의 각각은 초기 자세일 수 있고, 제2 클러스터 최적화를 위해 초기 자세가 업데이트되는 것으로 이해될 수 있다.Each of the
도 8은 일 예에 따른 맵을 업데이트하는 방법의 흐름도이다.8 is a flowchart of a method for updating a map according to an example.
도 4를 참조하여 전술된 단계(420)는 아래의 단계들(810 및 820)을 더 포함할 수 있다.Step 420 described above with reference to FIG. 4 may further include
단계(810)에서, 장치(200)는 생성된 이미지의 하나 이상의 특징점들 중 맵에 미리 설정된 후보 특징점들에 대응하지 않은 나머지 특징점(remaining feature point)을 결정한다.In
단계(810)에서, 장치(200)는 나머지 특징점에 대응하는 특징점을 맵에 추가함으로써 맵을 업데이트한다. 추가된 특징점은 후보 특징점이 된다. 후보 특징점이 증가할수록 특징점을 이용하여 결정되는 장치(200)의 자세의 정확도가 증가할 수 있다.In
도 9는 일 예에 따른 제2 클러스터 최적화 방법을 도시한다.9 illustrates a second cluster optimization method according to an example.
루즈 커플링 클러스터 최적화 방식을 이용한 제2 클러스터 최적화 방법은 적은 수의 센서들에 의해 측정된 데이터를 이용하여 빠르게 장치(200)의 자세를 추정하는 방법이다. 예를 들어, 제1 클러스터 최적화 방법에서 이용되는 데이터들보다 적은 수의 데이터가 이용될 수 있다. 적은 수의 데이터가 이용됨으로써 장치(200)의 자세 추정 속도가 증가할 수 있다.The second cluster optimization method using the loose coupling cluster optimization method is a method of rapidly estimating the posture of the
일 측면에 따르면, IMU 데이터를 이용하여 장치(200)의 현재 자세를 결정하고, IMU 데이터의 히스토리를 이용하여 미래의 장치(200)의 자세를 추정할 수 있다. 현재 자세 및 추정 자세 간의 차이를 감소시키기 위해 순환 검출이 이용될 수 있다.According to an aspect, a current posture of the
아래에서 도 10 내지 도 15를 참조하여 루즈 커플링 클러스터 최적화 방식을 이용하여 장치(200)의 자세를 추정하는 방법이 상세히 설명된다.Hereinafter, a method of estimating the posture of the
도 10은 일 실시예에 따른 제2 클러스터 최적화를 통해 제M 예측 자세를 추정하는 방법의 흐름도이다.10 is a flowchart of a method of estimating an M-th predicted posture through second cluster optimization according to an embodiment.
도 3을 참조하여 전술된 단계(320)는 아래의 단계들(1010 내지 1040)을 포함할 수 있다. 일 측면에 따르면, 단계(320)는 장치(200)의 상태가 정적 상태인 경우에 수행될 수 있다.Step 320 described above with reference to FIG. 3 may include the following
단계(1010)에서, 장치(200)는 IMU(250)를 이용하여 IMU 데이터를 생성한다.At
단계(1020)에서, 장치(200)는 IMU 데이터에 기초하여 장치(200)의 제1 자세(first pose)를 결정한다. 제1 자세는 현재 시점(i 시점)의 장치(200)의 자세이다.In
일 측면에 따르면, 장치(200)는 장치(200)의 상태가 정적 상태인지 여부에 기초하여 제1 자세를 결정할 수 있다. 예를 들어, 장치(200)는 장치(200)의 상태가 정적 상태인 경우, IMU 데이터를 이용하여 제1 자세를 결정한다.According to an aspect, the
단계(1030)에서, 장치(200)는 IMU 데이터에 기초하여 현재 예측 운동 상태 배열을 생성한다. 용어 "예측 운동 상태 배열"은 장치(200)의 운동 상태를 예측하는 벡터를 시점(time point)에 따라 나열한 것을 의미한다. 용어 "현재 예측 운동 상태 배열(present prediction motional state array)"은 현재 시점(i 시점)에서 추정한 예측 운동 상태 배열을 의미한다. 용어 "이전 예측 운동 상태 배열(previous prediction motional state array)"은 이전 시점(i-1 시점)에서 추정한 예측 운동 상태 배열을 의미한다. 즉, 이전 예측 운동 상태 배열이 갱신됨으로써 현재 예측 운동 상태 배열이 생성될 수 있다.In
현재 예측 운동 상태 배열을 생성하는 방법에 대해, 아래에서 도 11 내지 13을 참조하여 상세히 설명된다.A method of generating the current predicted motion state arrangement is described in detail below with reference to FIGS. 11 to 13 .
단계(1040)에서, 장치(200)는 현재 예측 운동 상태 배열에 기초하여 제1 자세 이후의 제M 시점에서의 제M 예측 자세를 추정한다. M은 1보다 큰 자연수이다.In
도 11은 일 예에 따른 현재 예측 운동 상태 배열을 생성하는 방법의 흐름도이다.11 is a flowchart of a method for generating a current predicted motion state arrangement according to an example.
도 10을 참조하여 전술된 단계(1030)는 아래의 단계들(1110 내지 1140)을 포함한다.
단계(1110)에서, 장치(200)는 노이즈(noise) 및 이상점(outlier)을 제거하기 위해 측정된 IMU 데이터를 평탄화(smoothing)한다. 예를 들어, 칼만 필터(Kalman filter)가 IMU 데이터를 평탄화하기 위해 이용될 수 있다.In
단계(1120)에서, 장치(200)는 평탄화된 IMU 데이터에 기초하여 제1 시점의 제1 운동 상태 벡터를 생성한다. 예를 들어, 운동 상태 벡터는 아래의 [수학식 1]로 표현될 수 있다.In
[수학식 1]에서 S는 운동 상태 벡터이고, v는 운동 속도, av는 운동 가속도, w는 선회 속도, 및 aw는 선회 가속도이다. 선회 속도 및 선회 가속도는 각각의 6축 방향을 나타내도록 추가될 수 있다. 또한, 운동 상태 벡터는 카메라(240)의 위치를 더 포함할 수 있다.In [Equation 1], S is a motion state vector, v is a motion speed, a v is a motion acceleration, w is a turning speed, and a w is a turning acceleration. The turning speed and turning acceleration can be added to indicate the respective six-axis directions. In addition, the motion state vector may further include a position of the
일 측면에 따르면, 장치(200)는 제1 자세와 미리 추정된 제1 예측 자세(first prediction pose) 간의 차이에 기초하여 상기 평탄화된 IMU 데이터를 보정함으로써 상기 제1 운동 상태 벡터를 생성할 수 있다. 제1 자세와 미리 추정된 제1 예측 자세 간의 차이는 보충량으로 정의될 수 있다.According to one aspect, the
일 측면에 따르면, 장치(200)는 장치(200)의 사용자의 안구 운동 속도(ocular movement velocity) 및 사용자의 머리 운동 속도(head movement velocity) 중 적어도 하나에 기초하여 제1 운동 상태 벡터를 생성하는 빈도를 결정할 수 있다. 예를 들어, 순화 검출 인하여 유발된 차이를 보충하는 경우, 보충 속도는 사용자의 안구 운동 속도 및/또는 사용자의 머리 운동 속도와 연관된다. 머리 운동 속도가 빨라질수록 보충 속도가 빨라진다.According to one aspect, the
단계(1130)에서, 장치(200)는 제1 운동 상태 벡터에 기초하여 제N 시점의 제N 운동 상태 벡터를 결정한다. 예를 들어, 제N 시점은 현재의 시점에서 예측할 수 있는 가장 먼 시점의 시점일 수 있다. N은 M보다 큰 자연수이다.In
일 측면에 따르면, 장치(200)는 제1 운동 상태 벡터를 입력으로 하는 장단기 메모리(Long-Short Term Memory: LSTM) 방식의 순환 신경망(recurrent neural network)을 이용하여 제N 예측 운동 상태 벡터를 생성할 수 있다. 순환 신경망은 딥 러닝 네트워크(deep learning network)로 구성될 수 있다.According to one aspect, the
단계(1140)에서, 장치(200)는 운동 모델(motional model), 이전 예측 운동 상태 배열 및 제N 예측 운동 상태 벡터에 기초하여 현재 예측 운동 상태 배열을 생성한다. 운동 모델은 선형 운동 모델 또는 비-선형 운동 모델을 포함할 수 있다. 생성된 IMU 데이터에 기초하여 복수의 운동 모델들 중 적절한 운동 모델이 선택될 수 있다.In
도 12는 일 예에 따른 제i 시점의 자세에 기초하여 제i+x 시점의 자세를 추정하는 방법을 도시한다.12 illustrates a method of estimating a posture at an i+x time point based on the posture at the i-th time point according to an example.
장치(200)는 자세 추정 유닛일 수 있다. 현재 시점이 제i 시점인 경우, 결정된 제i 시점의 자세(Pi)가 자세 추정 유닛의 입력이고, 자세 추정 유닛의 출력은 예측 운동 상태 배열을 이용한 제i+x 시점의 예측 자세(P"i+x)일 수 있다.The
IMU 데이터는 제i+x 시점까지 반복적이고, 계속적으로 생성되므로, 제i+x 시점이 도달할 때까지, 순환 검출을 통해 제i+x 시점의 예측 자세(P"i+x)가 계속적으로 업데이트될 수 있다.Since the IMU data is repeatedly and continuously generated until the i+x time point, the predicted posture (P" i+x ) of the i+x time point is continuously maintained through the cyclic detection until the i+x time point is reached. may be updated.
자세 추정 유닛의 상세한 동작 과정은 아래와 같다.A detailed operation process of the posture estimation unit is as follows.
i) IMU 데이터를 통해 결정된 제i 시점의 자세(Pi) 및 제i-1 시점에서 예측된 제i 시점의 예측 자세(P'i)의 차이가 계산된다. 오차는 제i 시점의 운동 상태 벡터(Si)를 조정하기 위해 이용될 수 있다. 필요에 따라 칼만 이득(Kgi)이 추가로 운동 상태 벡터(Si)를 조정하기 위해 이용될 수 있다.i) The difference between the posture (P i ) of the i-th time determined through the IMU data and the predicted posture (P′ i ) of the i-th time predicted at the i-1 time is calculated. The error may be used to adjust the motion state vector (S i ) of the i-th time point. The Kalman gain (Kg i ) may be used to further adjust the motion state vector (S i ) as needed.
ii) 제i 시점의 운동 상태 벡터(Si) 및 운동 모델(M)에 기초하여 제i+1 시점의 예측 자세(P'i+1)가 계산된다. 제i+1 시점의 예측 자세(P'i+1)는 제i+1 시점에서 자세 추정 유닛의 입력이 된다.ii) The predicted posture (P′ i+1 ) at the i+1th time point is calculated based on the motion state vector (S i ) and the motion model (M) at the i-th time point. The predicted posture P′ i+1 at the i+1th time point becomes an input to the posture estimation unit at the i+1th time point.
iii) 운동 상태 벡터(Si)를 입력으로 하는 장단기 메모리(Long-Short Term Memory: LSTM) 방식의 순환 신경망(recurrent neural network)을 이용하여 제i+N-1 시점의 제i+N-1 예측 운동 상태 벡터(S'i+N-1)를 생성한다. 도 12의 실시예서는 운동 상태 벡터를 이용하였으나, 다른 실시예에서는 장치(200)의 상태를 나타내는 다른 정보들을 이용할 수 있고, 개시된 실시예로 한정되지 않는다.iii) Using a recurrent neural network of a Long-Short Term Memory (LSTM) method with a motion state vector (S i ) as an input, i+N-1 at the i+N-1 time point A predicted motion state vector (S' i+N-1 ) is generated. In the embodiment of FIG. 12 , a motion state vector is used, but in another embodiment, other information indicating the state of the
예를 들어, 제i+N-1 예측 운동 상태 벡터(S'i+N-1)는 아래의 [수학식 2]를 이용하여 계산될 수 있다.For example, the i+N-1th predicted motion state vector (S′ i+N-1 ) may be calculated using
vi) 운동 모델(M), 이전 예측 운동 상태 배열 및 제i+N-1 예측 운동 상태 벡터(S'i+N-1)에 기초하여 현재 예측 운동 상태 배열을 생성한다. vi) generate the current predicted motion state sequence based on the motion model M, the previous predicted motion state sequence, and the i+N-1 predicted motion state vector (S′ i+N-1 ).
현재 시점이 제i+1 시점으로 변화하는 경우, 제i+1 시점의 예측 자세(P'i+1) 및 이전에 계산된 현재 예측 운동 상태 배열이 이전 예측 운동 상태 배열로서 자세 추정 유닛에 순환 입력될 수 있다. 현재 시점이 제i+x 시점이 될 때까지 상기의 동작들이 순환적으로 수행될 수 있다. 순환 방식을 이용하여 제i+x 시점 예측 자세 및 IMU 데이터를 이용하여 결정된 제i+x 시점 예측 자세 간의 오차를 감소시킬 수 있다.When the current time point changes to the i+1th time point, the predicted posture (P′ i+1 ) of the i+1th time point and the previously calculated current predicted motion state arrangement are circulated to the posture estimation unit as the previous predicted motion state arrangement. can be entered. The above operations may be cyclically performed until the current time point becomes the i+x time point. An error between the predicted posture at the i+x time point and the posture predicted using the IMU data may be reduced by using the cycle method.
도 13은 일 예에 따른 현재 예측 운동 상태 배열을 계산하는 방법을 도시한다.13 illustrates a method of calculating a current predicted motion state arrangement according to an example.
LSTM 방식을 이용하여 생성된 제i+N-1 예측 운동 상태 벡터(S'i+N-1)가 LSTM 예측 운동 상태 배열에 추가될 수 있다. 예를 들어, LSTM 예측 운동 상태 배열은 N개의 데이터들을 포함하고, 선입선출(first in first out: FIFO) 방식으로 최신의 데이터를 추가할 수 있다. LSTM 예측 운동 상태 배열은 운동 상태 슬라이딩 윈도우(motional state sliding window)일 수 있다.The i+N-1th predicted motion state vector (S′ i+N-1 ) generated using the LSTM method may be added to the LSTM predicted motion state array. For example, the LSTM prediction motion state array may include N pieces of data, and the latest data may be added in a first in first out (FIFO) manner. The LSTM prediction motion state arrangement may be a motional state sliding window.
과거의 시점인 제i-1 시점에서 계산된 이전 예측 운동 상태 배열(제i-1 시점에서는 현재 예측 운동 상태 배열) 및 LSTM 예측 운동 상태 배열에 기초하여 현재 예측 운동 상태 배열이 계산될 수 있다. 예를 들어, 이전 예측 운동 상태 배열 및 LSTM 예측 운동 상태 배열을 병합(combine)함으로써 현재 예측 운동 상태 배열이 계산될 수 있다. 최신의 예측 운동 상태 벡터일수록 더 큰 가중치가 부여될 수 있다.The current predicted motion state arrangement may be calculated based on the previous predicted motion state arrangement (the current predicted motion state arrangement at the i-1th time point) and the LSTM predicted motion state arrangement calculated at the i-1 th time point, which is a past time point. For example, the current predicted motion state sequence may be calculated by merging the previous predicted motion state sequence and the LSTM predicted motion status sequence. The more recent the predicted motion state vector, the greater the weight may be given.
생성된 현재 예측 운동 상태 배열에 기초하여 제i+x 시점의 예측 자세(P"i+x)가 생성될 수 있다. 예를 들어, 아래의 [수학식 2]을 이용하여 제i+x 시점의 예측 자세(P"i+x)가 계산될 수 있다.The predicted posture (P" i+x ) of the i+x time point may be generated based on the generated current predicted motion state arrangement. For example, the i+x time point using the following [Equation 2] A predicted posture (P" i+x ) of can be calculated.
도 14는 일 예에 따른 정적 상태를 검출하는 방법을 도시한다.14 illustrates a method for detecting a static state according to an example.
두꺼운 선은 사용자가 보행할 때의 IMU 데이터의 분산 변화 곡선이다. 사용자 보행의 반복성으로 인하여 IMU 데이터의 분산은 주기적으로 변한다. IMU 데이터의 국부적 분산(시간 창 내의 분산)이 예측된 임계 값보다 작은 경우, 무게 중심(center of mass)에 대응하여 발이 지면과 맞닿는 위상에 해당하며, 이 위상은 제로 속도(zero-speed) 구간이라고 한다. 일 실시예에서, 임계 값을 이용하여 장치(200)의 운동 과정에서 제로 속도 구간을 추출하여, 이 구간을 클러스터 최적화에 제약 조건으로서 부가한다.The thick line is the variance change curve of the IMU data when the user walks. Due to the repeatability of the user's gait, the distribution of the IMU data changes periodically. If the local variance (dispersion within the time window) of the IMU data is smaller than the predicted threshold, it corresponds to the phase in which the foot touches the ground in response to the center of mass, and this phase corresponds to the zero-speed interval. It is said In one embodiment, a zero velocity section is extracted from the motion process of the
도 15는 일 예에 따른 순환 검출에 의해 발생한 지터에 의한 결과를 도시한다.15 illustrates a result due to jitter generated by cyclic detection according to an example.
자세들 간의 차이를 유발할 수 있는 IMU 적분의 오류 외에도, 동일한 맵의 순환 검출로 인해 자세들 간의 차이가 발생할 수도 있다. 도 15는 순환 검출로 지터(jitter)가 발생한 장면을 나타낸다.In addition to errors in the IMU integration that can cause differences between postures, differences between postures can also occur due to circular detection of the same map. Fig. 15 shows a scene in which jitter occurs due to cyclic detection.
장치(200)가 한바퀴 운동한 후, 이전에 경유한 위치에 도달했을 때, 이전에 저장된 맵 포인트와 최근에 저장된 맵 포인트 간에 일정한 편차가 있을 수 있다. 이 때, 순환 검출 기능을 이용하여 현재 맵 포인트의 위치를 업데이트해야 할 필요성이 있다. 즉, IMU 적분에 오차가 존재하여 유발된 자세 차이와 순환으로 유발된 자세 차이가 모두 보정되어야 할 필요성이 있다.When the
망막에 투사되는 오브젝트 운동 속도와 사람의 눈으로 오브젝트의 운동을 감지하는 민감성 사이에는 반비례 관계가 성립된다. 이에, 안구의 운동 속도 HS 및 가상 오브젝트의 운동 속도 P를 감지하여, 사람이 감지한 속도 HT가 계산될 수 있다. 그리고, 사람이 감지한 속도 HT를 이용하여 바이어스가 감소하는 속도가 결정된다. 사람이 감지한 속도 HT가 크면 클수록, 바이어스 감소가 빨라진다. 사람이 감지한 속도 HT는 아래의 [수학식 4]를 이용하여 계산될 수 있다.An inverse relationship is established between the speed of the object's movement projected on the retina and the sensitivity of the human eye to detect the object's movement. Accordingly, by detecting the movement speed H S of the eye and the movement speed P of the virtual object, the speed H T sensed by the person may be calculated. Then, the speed at which the bias decreases is determined using the speed H T sensed by the person. The larger the human-sensed speed H T is, the faster the bias reduction is. The speed H T sensed by a person may be calculated using the following [Equation 4].
[수학식 4]에서, 는 대부분 상황에서 0.6이고, 는 오브젝트의 크기이고, 는 망막에 투사되는 오브젝트의 크기이다.In [Equation 4], is 0.6 in most situations, is the size of the object, is the size of the object projected onto the retina.
도 16은 일 예에 따른 가상 오브젝트를 출력하는 방법의 흐름도이다.16 is a flowchart of a method of outputting a virtual object according to an example.
AR 시스템 또는 VR 시스템에서, SLAM(Simultaneous Localization and Mapping) 계산법을 이용하여 현재 시점의 장치(200)의 자세를 결정한 후, 장치(200)의 자세에 따라 가상 오브젝트를 제작할 필요성이 있다. 또한, 제작한 가상 오브젝트를 실제 오브젝트 상에 중첩하여 출력 또는 디스플레이 할 수 있다. 가상 오브젝트의 생성이 복잡하거나, 조명 계산이 포함되어 있는 경우, 가상 오브젝트를 생성하기 위해 일정한 시간이 소요된다. 이는 가상 오브젝트의 출력에 일정한 지연을 유발하여, AR 또는 VR 효과에 영향을 줄 수 있다. 아래에서는 이러한 지연을 감소시킬 수 있는 이미지 출력 방법에 대해 설명한다.In an AR system or a VR system, there is a need to determine the posture of the
아래의 단계들(1610 내지 1650)은 도 10을 참조하여 전술된 단계(1040)가 수행한 후에 수행될 수 있다.The following
단계(1610)에서, 장치(200)는 제M 시점에서 출력될 가상 오브젝트를 생성한다. 예를 들어, 가상 오브젝트는 홀로그래픽 이미지(holographic image) 또는 홀로그램(hologram)일 수 있다.In
이전 이미지에 대해 생성된 홀로그래픽 이미지와 깊이 이미지가 새로운 홀로그래픽 이미지를 생성하기 위해 이용될 수 있다. 이전 이미지의 각 포인트에 대한 깊이 정보 및 두 개의 이미지들의 홀로그램 이미지에 대응하는 장치(200)의 자세는 미리 알고 있는 정보이므로, 생성될 이미지의 화소에 대응하는 이전 이미지의 화소의 위치가 계산될 수 있다. 이전 이미지의 화소를 상기 화소에 대응하는 생성될 이미지의 화소에 복사한다. 이러한 방법은 처리해야할 계산량을 감소시키므로 가상 오브젝트의 생성 시간을 감소시킬 수 있다.The holographic image and depth image created for the previous image can be used to create a new holographic image. Since the depth information for each point of the previous image and the posture of the
단계(1620)에서, 장치(200)는 가상 오브젝트를 조정한다.In
장치(200)는 가상 오브젝트를 렌더링(rendering)하는 기간 동안 발생하는 장치(200)의 자세 변화를 획득하고, 획득된 자세 변화에 대응하도록 가상 오브젝트를 조정한다.The
가상 오브젝트가 출력되는 시점은 제M 시점일 수 있다. IMU 데이터 생성의 주파수가 가상 오브젝트가 출력되는 주파수보다 큰 경우, 가상 오브젝트가 출력되는 시점들 사이의 시점들에서 IMU 데이터들이 생성될 수 있다. 예를 들어, IMU 데이터들을 적분함으로써 제1 시점 및 제M 시점 간의 장치(200)의 운동 상태가 획득될 수 있다. 획득된 운동 상태에 기초하여 자세 변화가 획득될 수 있고, 획득된 자세 변화를 이용하여 가상 오브젝트를 조정할 수 있다.The time point at which the virtual object is output may be the Mth time point. When the frequency of generating the IMU data is greater than the frequency at which the virtual object is output, IMU data may be generated at time points between the time points at which the virtual object is output. For example, the motion state of the
단계(1630)에서, 장치(200)는 가상 오브젝트를 출력한다. 예를 들어, 장치(200)는 제M 시점에 대한 이미지를 생성하고, 생성된 이미지와 가상 오브젝트가 합성되도록 가상 오브젝트를 출력할 수 있다. 다른 예로, 장치(200)는 가상 오브젝트만을 출력할 수 있다.In
도 17은 일 예에 따른 장치의 추정 자세에 기초하여 합성 이미지를 출력하는 방법을 도시한다.17 illustrates a method of outputting a composite image based on an estimated posture of an apparatus according to an example.
제1 시점부터 제M 시점의 장치(200)의 자세가 추정될 수 있다. 제M 시점의 장치(200)의 자세가 추정된 시점부터 제M 시점에서 출력될 가상 오브젝트가 생성(또는 렌더링)될 수 있다.The posture of the
제1 시점과 제M 시점 사이의 시점들에서 IMU 데이터들이 획득될 수 있고, 획득된 IMU 데이터들에 기초하여 제M 시점의 장치(200)의 자세가 계속적으로 재추정될 수 있다. 가상 오브젝트가 재추정된 장치(200)의 자세에 대응하도록 조정될 수 있다. 제M 시점에서 가상 오브젝트가 디스플레이된다.IMU data may be acquired at time points between the first time point and the M-th time point, and the posture of the
도 18은 일 예에 따른 장치의 모듈들의 구성도이다.18 is a configuration diagram of modules of an apparatus according to an example.
장치(200)는 SLAM 모듈, 자세 추정 모듈 및 이미지 생성 모듈을 포함할 수 있다. SLAM 모듈은 복수의 센서들의 융합을 이용하고, 높은 프레임 레이트로 장치(200)의 현재 자세를 생성한다. 자세 추정 모듈은 SLAM 모듈의 출력과 데이터 필터링에 기초하여 장치(200)의 미래 자세를 추측한다. 이미지 생성 모듈은 가상 오브젝트 생성 기간 동안의 장치(200)의 자세 변화에 따라 생성된 가상 오브젝트 또는 이미지를 조정한다.The
도 19는 일 예에 따른 다양한 검측 방법에 따른 자세 추정 결과들을 도시한다.19 illustrates posture estimation results according to various detection methods according to an example.
다양한 검측 방법에 따른 자세 추정 결과들 중 IMU 적분 필터링을 이용한 방법이 가장 평탄한 추정 결과를 나타낸다. 제1 클러스터 최적화 단계 및 제2 클러스터 최적화 단계를 연속적으로 수행하는 경우, IMU 데이터를 적분하고, 노이즈 등을 제거하는 필터링을 이용하면, 장치(200)의 자세가 급격한 변화를 갖도록 추정되는 것을 방지할 수 있다.Among the posture estimation results according to various detection methods, the method using IMU integral filtering shows the flattest estimation result. When the first cluster optimization step and the second cluster optimization step are successively performed, by integrating the IMU data and using filtering to remove noise, etc., it is possible to prevent the posture of the
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and available to those skilled in the art of computer software. Examples of the computer-readable recording medium include magnetic media such as hard disks, floppy disks and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic such as floppy disks. - includes magneto-optical media, and hardware devices specially configured to store and execute program instructions, such as ROM, RAM, flash memory, and the like. Examples of program instructions include not only machine language codes such as those generated by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, and vice versa.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may comprise a computer program, code, instructions, or a combination of one or more thereof, which configures a processing device to operate as desired or is independently or collectively processed You can command the device. The software and/or data may be any kind of machine, component, physical device, virtual equipment, computer storage medium or device, to be interpreted by or to provide instructions or data to the processing device. , or may be permanently or temporarily embody in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored in one or more computer-readable recording media.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described with reference to the limited embodiments and drawings, various modifications and variations are possible by those skilled in the art from the above description. For example, the described techniques are performed in a different order than the described method, and/or the described components of the system, structure, apparatus, circuit, etc. are combined or combined in a different form than the described method, or other components Or substituted or substituted by equivalents may achieve an appropriate result.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments, and equivalents to the claims are also within the scope of the following claims.
200: 장치
210: 통신부
220: 프로세서
230: 메모리
240: IMU
250: 카메라200: device
210: communication unit
220: processor
230: memory
240: IMU
250: camera
Claims (17)
상기 장치의 관성 측정 장치(Inertial Measurement Unit: IMU)를 이용하여 IMU 데이터를 생성하는 단계;
상기 IMU 데이터에 기초하여 상기 장치의 제1 자세(first pose)를 결정하는 단계;
상기 IMU 데이터에 기초하여 현재 예측 운동 상태 배열(present prediction motional state array)을 생성하는 단계; 및
상기 현재 예측 운동 상태 배열에 기초하여, 상기 제1 자세의 제1 시점(first time point) 이후의 제M 시점에서의 제M 예측 자세(prediction pose)를 추정하는 단계 - 상기 M은 1 보다 큰 자연수임 -
를 포함하고,
상기 현재 예측 운동 상태 배열을 생성하는 단계는,
상기 IMU 데이터를 평탄화(smoothing)하는 단계;
상기 평탄화된 IMU 데이터에 기초하여 상기 제1 시점의 제1 운동 상태 벡터(first motional state vector)를 생성하는 단계;
상기 제1 운동 상태 벡터에 기초하여 제N 시점의 제N 예측 운동 상태 벡터를 결정하는 단계 - 상기 N은 상기 M보다 큰 자연수임 -; 및
운동 모델(motional model), 이전 예측 운동 상태 배열(previous prediction motional state array) 및 상기 제N 예측 운동 상태 벡터에 기초하여 상기 현재 예측 운동 상태 배열을 생성하는 단계
를 포함하는,
자세 추정 방법.
A method for estimating a posture of a device, performed by the device, comprising:
generating IMU data using an inertial measurement unit (IMU) of the device;
determining a first pose of the device based on the IMU data;
generating a present prediction motional state array based on the IMU data; and
estimating an M th prediction pose at an M th time point after a first time point of the first pose, based on the current predicted motion state arrangement, wherein M is greater than 1 natural Commitment -
including,
The step of generating the current predicted motion state array comprises:
smoothing the IMU data;
generating a first motional state vector of the first time point based on the flattened IMU data;
determining an N-th predicted motion-state vector at an N-th time based on the first motion-state vector, wherein N is a natural number greater than M; and
generating the current predicted motional state array based on a motional model, a previous prediction motional state array, and the Nth predicted motional state vector;
containing,
Posture estimation method.
상기 제1 운동 상태 벡터를 생성하는 단계는,
상기 제1 자세와 미리 추정된 제1 예측 자세(first prediction pose) 간의 차이에 기초하여 상기 평탄화된 IMU 데이터를 보정함으로써 상기 제1 운동 상태 벡터를 생성하는 단계
를 포함하는,
자세 추정 방법.
According to claim 1,
The step of generating the first motion state vector comprises:
generating the first motion state vector by correcting the flattened IMU data based on a difference between the first pose and a pre-estimated first prediction pose;
containing,
Posture estimation method.
상기 제N 예측 운동 상태 벡터를 결정하는 단계는,
상기 제1 운동 상태 벡터를 입력으로 하는 장단기 메모리(Long-Short Term Memory: LSTM) 방식의 순환 신경망(recurrent neural network)을 이용하여 상기 제N 예측 운동 상태 벡터를 생성하는 단계
를 포함하는,
자세 추정 방법.
According to claim 1,
The determining of the N-th predicted motion state vector comprises:
Generating the N-th predicted motion state vector using a recurrent neural network of a long-short-term memory (LSTM) method using the first motion state vector as an input
containing,
Posture estimation method.
상기 제1 운동 상태 벡터를 생성하는 단계는,
상기 장치의 사용자의 안구 운동 속도(ocular movement velocity) 및 사용자의 머리 운동 속도(head movement velocity) 중 적어도 하나에 기초하여 상기 제1 운동 상태 벡터를 생성하는 빈도를 결정하는 단계
를 포함하는,
자세 추정 방법.
According to claim 1,
The step of generating the first motion state vector comprises:
determining a frequency of generating the first motion state vector based on at least one of a user's ocular movement velocity and a user's head movement velocity of the device;
containing,
Posture estimation method.
상기 IMU 데이터에 기초하여 상기 장치의 상태가 정적 상태인지 여부를 결정하는 단계
를 더 포함하고,
상기 장치의 제1 자세를 결정하는 단계는,
상기 장치의 상태가 정적 상태인지 여부에 기초하여 제1 자세를 결정하는 단계
를 포함하는,
자세 추정 방법.
According to claim 1,
determining whether the state of the device is a static state based on the IMU data;
further comprising,
Determining the first posture of the device comprises:
determining a first posture based on whether the state of the device is a static state;
containing,
Posture estimation method.
상기 제M 시점에서 출력될 가상 오브젝트(virtual object)를 생성하는 단계; 및
상기 가상 오브젝트를 출력하는 단계
를 더 포함하는,
자세 추정 방법.
According to claim 1,
generating a virtual object to be output at the Mth time point; and
outputting the virtual object
further comprising,
Posture estimation method.
상기 가상 오브젝트를 렌더링하는 기간동안 발생하는 장치의 자세 변화에 기초하여 상기 가상 오브젝트를 조정하는 단계
를 더 포함하는,
자세 추정 방법.
8. The method of claim 7,
adjusting the virtual object based on a change in the posture of the device that occurs during the rendering period of the virtual object;
further comprising,
Posture estimation method.
상기 가상 오브젝트를 출력하는 단계는,
제M 시점에 대한 이미지와 상기 가상 오브젝트가 합성되도록 가상 오브젝트를 출력하는 단계
를 포함하는,
자세 추정 방법.
8. The method of claim 7,
The step of outputting the virtual object comprises:
Outputting a virtual object so that the image for the Mth viewpoint and the virtual object are synthesized
containing,
Posture estimation method.
상기 가상 오브젝트는 홀로그래픽 이미지(holographic image)인,
자세 추정 방법.
8. The method of claim 7,
The virtual object is a holographic image (holographic image),
Posture estimation method.
상기 장치의 주변 공간에 대한 맵을 생성하는 단계;
상기 맵을 이용하여 초기 자세(initial pose)를 결정하는 단계; 및
IMU 데이터에 기초하여 상기 장치가 정적 상태(static state)인지 여부를 결정하는 단계
를 더 포함하고,
상기 제1 자세는 상기 장치가 정적 상태인 경우에 결정되는,
자세 추정 방법.
According to claim 1,
generating a map of the surrounding space of the device;
determining an initial pose using the map; and
determining whether the device is in a static state based on IMU data;
further comprising,
wherein the first posture is determined when the device is in a static state;
Posture estimation method.
상기 맵을 생성하는 단계는,
상기 장치의 왼쪽 카메라를 이용하여 왼쪽 이미지를 생성하는 단계;
상기 왼쪽 이미지로부터 하나 이상의 제1 특징점들을 생성하는 단계;
상기 장치의 오른쪽 카메라를 이용하여 오른쪽 이미지를 생성하는 단계;
상기 오른쪽 이미지로부터 하나 이상의 제2 특징점들을 생성하는 단계;
상기 제1 특징점들 및 상기 제2 특징점들을 매칭하는 단계; 및
제1 특징점들 및 상기 제2 특징점들 중 매칭된 특징점들 및 매칭되지 않은 특징점들에 기초하여 상기 맵을 생성하는 단계
를 포함하는,
자세 추정 방법.
12. The method of claim 11,
Creating the map includes:
generating a left image using a left camera of the device;
generating one or more first feature points from the left image;
generating a right image using the right camera of the device;
generating one or more second feature points from the right image;
matching the first feature points and the second feature points; and
generating the map based on matched and unmatched feature points among the first feature points and the second feature points
containing,
Posture estimation method.
상기 초기 자세를 결정하는 단계는,
상기 왼쪽 카메라 및 상기 오른쪽 카메라 중 적어도 하나에 의해 생성된 이미지로부터 하나의 이상의 특징점(feature point)들을 생성하는 단계;
상기 맵에 미리 설정된 후보 특징점(candidate feature point)들 중 상기 하나 이상의 특징점들에 대응하는 타겟 특징점(target point)을 결정하는 단계; 및
상기 타겟 특징점에 기초하여 상기 초기 자세를 결정하는 단계
를 포함하는,
자세 추정 방법.
13. The method of claim 12,
The step of determining the initial posture comprises:
generating one or more feature points from an image generated by at least one of the left camera and the right camera;
determining a target feature point corresponding to the one or more feature points among candidate feature points preset in the map; and
determining the initial posture based on the target feature point
containing,
Posture estimation method.
상기 초기 자세를 결정하는 단계는,
상기 하나 이상의 특징점들 중 상기 맵에 미리 설정된 후보 특징점들에 대응하지 않은 나머지 특징점(remaining feature point)을 결정하는 단계; 및
상기 나머지 특징점에 대응하는 특징점을 상기 맵에 추가함으로써 상기 맵을 업데이트하는 단계
를 더 포함하는,
자세 추정 방법.
14. The method of claim 13,
The step of determining the initial posture comprises:
determining, among the one or more feature points, remaining feature points that do not correspond to candidate feature points preset in the map; and
updating the map by adding feature points corresponding to the remaining feature points to the map;
further comprising,
Posture estimation method.
상기 장치는,
웨어러블 장치(wearable device)인,
자세 추정 방법.
According to claim 1,
The device is
A wearable device,
Posture estimation method.
A computer-readable recording medium storing a program for performing the method of any one of claims 1 to 15.
적어도 하나의 카메라;
관성 측정 장치(Inertial Measurement Unit: IMU);
자세를 추정하는 프로그램이 기록된 메모리; 및
상기 프로그램을 수행하는 프로세서
를 포함하고,
상기 프로그램은,
상기 장치의 관성 측정 장치(Inertial Measurement Unit: IMU)를 이용하여 IMU 데이터를 생성하는 단계;
상기 IMU 데이터에 기초하여 상기 장치의 제1 자세(pose)를 결정하는 단계;
상기 IMU 데이터에 기초하여 현재 예측 운동 상태 배열을 생성하는 단계; 및
상기 현재 예측 운동 상태 배열에 기초하여, 상기 제1 자세의 제1 시점 이후의 제M 시점에서의 제M 예측 자세를 추정하는 단계 - 상기 M은 1 보다 큰 자연수임 -
를 수행하고,
상기 현재 예측 운동 상태 배열을 생성하는 단계는,
상기 IMU 데이터를 평탄화(smoothing)하는 단계;
상기 평탄화된 IMU 데이터에 기초하여 상기 제1 시점의 제1 운동 상태 벡터(first motional state vector)를 생성하는 단계;
상기 제1 운동 상태 벡터에 기초하여 제N 시점의 제N 예측 운동 상태 벡터를 결정하는 단계 - 상기 N은 상기 M보다 큰 자연수임 -; 및
운동 모델(motional model), 이전 예측 운동 상태 배열(previous prediction motional state array) 및 상기 제N 예측 운동 상태 벡터에 기초하여 상기 현재 예측 운동 상태 배열을 생성하는 단계
를 포함하는,
자세 추정 장치.In the posture estimation device,
at least one camera;
Inertial Measurement Unit (IMU);
a memory in which a program for estimating posture is recorded; and
a processor that executes the program
including,
The program is
generating IMU data using an inertial measurement unit (IMU) of the device;
determining a first pose of the device based on the IMU data;
generating a current predicted motion state array based on the IMU data; and
estimating an M-th predicted posture at an M-th time point after the first time point of the first posture based on the current predicted motion state arrangement, wherein M is a natural number greater than 1;
do,
The step of generating the current predicted motion state array comprises:
smoothing the IMU data;
generating a first motional state vector of the first time point based on the flattened IMU data;
determining an N-th predicted motion-state vector at an N-th time based on the first motion-state vector, wherein N is a natural number greater than M; and
generating the current predicted motional state array based on a motional model, a previous prediction motional state array, and the Nth predicted motional state vector;
containing,
Posture estimation device.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/114,622 US10964030B2 (en) | 2018-02-12 | 2018-08-28 | Device and method with pose estimator based on current predicted motion state array |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810148359.1 | 2018-02-12 | ||
CN201810148359.1A CN110163909B (en) | 2018-02-12 | 2018-02-12 | Method, apparatus and storage medium for obtaining device pose |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20190098003A KR20190098003A (en) | 2019-08-21 |
KR102442780B1 true KR102442780B1 (en) | 2022-09-14 |
Family
ID=67635306
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180050747A KR102442780B1 (en) | 2018-02-12 | 2018-05-02 | Method for estimating pose of device and thereof |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR102442780B1 (en) |
CN (1) | CN110163909B (en) |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11100713B2 (en) * | 2018-08-17 | 2021-08-24 | Disney Enterprises, Inc. | System and method for aligning virtual objects on peripheral devices in low-cost augmented reality/virtual reality slip-in systems |
CN110910447B (en) * | 2019-10-31 | 2023-06-06 | 北京工业大学 | Visual odometer method based on dynamic and static scene separation |
CN112785682A (en) * | 2019-11-08 | 2021-05-11 | 华为技术有限公司 | Model generation method, model reconstruction method and device |
CN110954134B (en) * | 2019-12-04 | 2022-03-25 | 上海有个机器人有限公司 | Gyro offset correction method, correction system, electronic device, and storage medium |
US11430179B2 (en) * | 2020-02-24 | 2022-08-30 | Microsoft Technology Licensing, Llc | Depth buffer dilation for remote rendering |
CN113807124B (en) * | 2020-06-11 | 2023-12-12 | Oppo广东移动通信有限公司 | Image processing method, device, storage medium and electronic equipment |
CN111862288B (en) * | 2020-07-29 | 2024-08-13 | 北京小米移动软件有限公司 | Pose rendering method, device and medium |
CN113841025A (en) * | 2020-10-14 | 2021-12-24 | 深圳市大疆创新科技有限公司 | Position and attitude determination method for movable platform, related device and system |
CN112489224A (en) * | 2020-11-26 | 2021-03-12 | 北京字跳网络技术有限公司 | Image drawing method and device, readable medium and electronic equipment |
CN112734852B (en) * | 2021-03-31 | 2021-06-29 | 浙江欣奕华智能科技有限公司 | Robot mapping method and device and computing equipment |
CN113218389B (en) * | 2021-05-24 | 2024-05-17 | 北京航迹科技有限公司 | Vehicle positioning method, device, storage medium and computer program product |
CN113674412B (en) * | 2021-08-12 | 2023-08-29 | 浙江工商大学 | Pose fusion optimization-based indoor map construction method, system and storage medium |
CN113847907B (en) * | 2021-09-29 | 2024-09-13 | 深圳市慧鲤科技有限公司 | Positioning method and device, equipment and storage medium |
CN113838135B (en) * | 2021-10-11 | 2024-03-19 | 重庆邮电大学 | Pose estimation method, system and medium based on LSTM double-flow convolutional neural network |
CN114543797B (en) * | 2022-02-18 | 2024-06-07 | 北京市商汤科技开发有限公司 | Pose prediction method and device, equipment and medium |
CN114419259B (en) * | 2022-03-30 | 2022-07-12 | 中国科学院国家空间科学中心 | Visual positioning method and system based on physical model imaging simulation |
WO2024108394A1 (en) * | 2022-11-22 | 2024-05-30 | 北京小米移动软件有限公司 | Posture acquisition method, apparatus, virtual reality device, and readable storage medium |
CN117726678B (en) * | 2023-12-12 | 2024-09-20 | 中山大学·深圳 | Unmanned system pose estimation method, unmanned system pose estimation device, computer equipment and storage medium |
CN117889853B (en) * | 2024-03-15 | 2024-06-04 | 歌尔股份有限公司 | SLAM positioning method, terminal device and readable storage medium |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170206712A1 (en) * | 2014-11-16 | 2017-07-20 | Eonite Perception Inc. | Optimizing head mounted displays for augmented reality |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101826206B (en) * | 2010-03-31 | 2011-12-28 | 北京交通大学 | Camera self-calibration method |
US9652893B2 (en) * | 2014-04-29 | 2017-05-16 | Microsoft Technology Licensing, Llc | Stabilization plane determination based on gaze location |
CN107065902B (en) * | 2017-01-18 | 2019-02-01 | 中南大学 | UAV Attitude fuzzy adaptive predictive control method and system based on nonlinear model |
CN106840151B (en) * | 2017-01-23 | 2019-05-17 | 厦门大学 | Model-free deformation of hull measurement method based on delay compensation |
CN107193279A (en) * | 2017-05-09 | 2017-09-22 | 复旦大学 | Robot localization and map structuring system based on monocular vision and IMU information |
-
2018
- 2018-02-12 CN CN201810148359.1A patent/CN110163909B/en active Active
- 2018-05-02 KR KR1020180050747A patent/KR102442780B1/en active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170206712A1 (en) * | 2014-11-16 | 2017-07-20 | Eonite Perception Inc. | Optimizing head mounted displays for augmented reality |
Also Published As
Publication number | Publication date |
---|---|
CN110163909B (en) | 2024-08-13 |
CN110163909A (en) | 2019-08-23 |
KR20190098003A (en) | 2019-08-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102442780B1 (en) | Method for estimating pose of device and thereof | |
US11010921B2 (en) | Distributed pose estimation | |
US20190251696A1 (en) | Device and method with pose estimator | |
KR102006043B1 (en) | Head pose tracking using a depth camera | |
CN107748569B (en) | Motion control method and device for unmanned aerial vehicle and unmanned aerial vehicle system | |
US7613356B2 (en) | Position and orientation detection method and apparatus | |
US12073630B2 (en) | Moving object tracking method and apparatus | |
US20060146046A1 (en) | Eye tracking system and method | |
EP3896655B1 (en) | Augmented reality (ar) device and method of predicting pose therein | |
KR20170053007A (en) | Method and apparatus for estimating pose | |
KR102559203B1 (en) | Method and apparatus of outputting pose information | |
Tomažič et al. | Fusion of visual odometry and inertial navigation system on a smartphone | |
WO2022066486A1 (en) | Joint camera and inertial measurement unit calibration | |
KR20220122287A (en) | Method and apparatus for determining pose of augmented reality providing device | |
CN117044194A (en) | Contextualization and refinement of synchronous positioning and map construction | |
US11188787B1 (en) | End-to-end room layout estimation | |
US20240071018A1 (en) | Smooth object correction for augmented reality devices | |
KR20230018214A (en) | Method and apparatus of estimating pose | |
US12094154B2 (en) | Electronic device for predicting pose and operating method thereof | |
EP2990085B1 (en) | Method and apparatus for estimating the value of an input in presence of a perturbing factor | |
US11443455B2 (en) | Prior informed pose and scale estimation | |
KR20180061956A (en) | Method and apparatus for estimating eye location | |
KR102555269B1 (en) | Posture estimation fusion method and system using omnidirectional image sensor and inertial measurement sensor | |
WO2021065607A1 (en) | Information processing device and method, and program | |
KR20220107471A (en) | Pose prediction method, pose prediction device, and augmented reality glasses based on pose prediction |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |