KR20160122709A - 디바이스의 모션의 추정을 결정하기 위한 방법들 및 시스템들 - Google Patents

디바이스의 모션의 추정을 결정하기 위한 방법들 및 시스템들 Download PDF

Info

Publication number
KR20160122709A
KR20160122709A KR1020167020628A KR20167020628A KR20160122709A KR 20160122709 A KR20160122709 A KR 20160122709A KR 1020167020628 A KR1020167020628 A KR 1020167020628A KR 20167020628 A KR20167020628 A KR 20167020628A KR 20160122709 A KR20160122709 A KR 20160122709A
Authority
KR
South Korea
Prior art keywords
motion
determining
estimate
camera
imu
Prior art date
Application number
KR1020167020628A
Other languages
English (en)
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 구글 테크놀로지 홀딩스 엘엘씨
Publication of KR20160122709A publication Critical patent/KR20160122709A/ko

Links

Images

Classifications

    • G06T7/0042
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; 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/16Navigation; 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
    • G01C21/165Navigation; 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 combined with non-inertial navigation instruments
    • G01C21/1656Navigation; 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 combined with non-inertial navigation instruments with passive imaging devices, e.g. cameras
    • 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
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/10Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 by using measurements of speed or acceleration
    • G01C21/12Navigation; 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/16Navigation; 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
    • G01C21/165Navigation; 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 combined with non-inertial navigation instruments
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/38Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
    • G01S19/39Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/42Determining position
    • G01S19/48Determining position by combining or switching between position solutions derived from the satellite radio beacon positioning system and position solutions derived from a further system
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/02Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
    • G01S5/0257Hybrid positioning
    • G01S5/0263Hybrid positioning by combining or switching between positions derived from two or more separate positioning systems
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/02Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations using radio waves
    • G01S5/0257Hybrid positioning
    • G01S5/0263Hybrid positioning by combining or switching between positions derived from two or more separate positioning systems
    • G01S5/0264Hybrid positioning by combining or switching between positions derived from two or more separate positioning systems at least one of the systems being a non-radio wave positioning system
    • G06K9/00664
    • G06T7/0022
    • G06T7/2033
    • G06T7/2066
    • G06T7/2086
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/269Analysis of motion using gradient-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/285Analysis of motion using a sequence of stereo image pairs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/97Determining parameters from multiple pictures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/10Terrestrial scenes
    • H04N5/23254
    • H04N5/23258
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6811Motion detection based on the image signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6812Motion detection based on additional sensors, e.g. acceleration sensors

Landscapes

  • Engineering & Computer Science (AREA)
  • Remote Sensing (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Automation & Control Theory (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Navigation (AREA)
  • Position Fixing By Use Of Radio Waves (AREA)
  • Studio Devices (AREA)

Abstract

디바이스의 모션의 추정을 결정하기 위한 방법들 및 시스템들이 제공된다. 예시적인 방법은 슬라이딩 시간 윈도우 동안 디바이스의 IMU(inertial measurement unit)로부터 데이터를 수신하는 단계 및 디바이스의 카메라로부터 이미지들을 수신하는 단계를 포함한다. 그 방법은 또한 IMU로부터의 데이터에 기초하여 디바이스의 모션의 IMU 추정 및 이미지들에서의 특징 추적에 기초하여 디바이스의 모션의 카메라 추정을 결정하는 단계를 포함한다. 그 방법은, IMU 추정 및 카메라 추정이 임계량보다 큰 차이를 갖는다는 것에 기초하여, 슬라이딩 시간 윈도우 동안의 디바이스의 포지션 또는 속도 중 하나 또는 그 초과를 결정하는 단계, 및 IMU로부터의 데이터 및 디바이스의 포지션 또는 속도에 의해 지원될 때 디바이스의 모션의 전체 추정을 결정하는 단계를 포함한다.

Description

디바이스의 모션의 추정을 결정하기 위한 방법들 및 시스템들{METHODS AND SYSTEMS FOR DETERMINING ELSTIMATION OF MOTION OF A DEVICE}
[0001] 본원에서 달리 언급되지 않는다면, 본 섹션에서 설명되는 자료들이 본 출원의 청구항들에 대한 종래 기술은 아니며 본 섹션에서의 포함에 의해 종래 기술인 것으로 인정되는 것은 아니다.
[0002] 센서 융합(sensor fusion)은, 결과적으로 생성되는 정보가 보다 완벽해지도록, 독립 소스들로부터의 감지(sensory) 데이터로부터 유추되는 데이터 또는 센서 데이터를 결합하는 것을 포함한다. 융합 프로세스를 위한 데이터 소스들은 다수의 개별 센서들을 포함할 수 있다. 각각의 센서는, 예를 들어, 임의의 환경에서의 동일한 오브젝트에 관해 또는 임의의 환경에서의 동일한 위치에 관해 서로 다른 정보를 제공할 수 있다. 센서 데이터를 결합함으로써, 오브젝트 또는 위치의 보다 완벽한 묘사가 제공될 수 있다. 예로서, 하나의 센서는 오브젝트의 이미지를 캡처하기 위한 카메라를 포함할 수 있고, 또 다른 센서는 이미지를 캡처하기 위해 사용되는 디바이스의 위치를 결정하기 위한 위치 검출 능력들을 포함할 수 있다. 센서 데이터를 결합함으로써, 이미지 데이터 및 디바이스에 대한 특정 위치 정보가 제공된다.
[0003] 일 예에서, 슬라이딩 시간 윈도우(sliding time window) 동안 디바이스의 IMU(inertial measurement unit)로부터 데이터를 수신하는 단계 및 슬라이딩 시간 윈도우 동안 디바이스의 카메라로부터 이미지들을 수신하는 단계를 포함하는 방법이 제공된다. 방법은 또한 IMU로부터의 데이터에 기초하여 디바이스의 모션(motion)의 IMU 추정을 결정하는 단계, 및 이미지들에서의 특징 추적에 기초하여 디바이스의 모션의 카메라 추정을 결정하는 단계를 포함한다. 방법은 또한, 디바이스의 모션의 IMU 추정 및 디바이스의 모션의 카메라 추정이 임계량보다 큰 차이를 갖는 것에 기초하여, 슬라이딩 시간 윈도우 동안의 디바이스의 포지션 또는 속도 중 하나 또는 그 초과를 결정하는 단계, 및 IMU로부터의 데이터 및 디바이스의 포지션 또는 속도 중 하나 또는 그 초과에 의해서 지원될 때 슬라이딩 시간 윈도우 동안의 디바이스의 모션의 전체 추정을 결정하는 단계를 포함한다.
[0004] 다른 예에서는, 명령들을 저장하도록 구성되는 컴퓨터 판독가능 메모리가 제공되고, 그 명령들은 디바이스에 의해서 실행될 때 그 디바이스로 하여금 기능들을 수행하게 한다. 기능들은, 슬라이딩 시간 윈도우 동안 상기 디바이스의 IMU(inertial measurement unit)로부터 데이터를 수신하는 기능, 및 슬라이딩 시간 윈도우 동안 디바이스의 카메라로부터 이미지들을 수신하는 기능을 포함한다. 기능들은 또한, IMU로부터의 데이터에 기초하여 디바이스의 모션(motion)의 IMU 추정을 결정하는 기능, 및 이미지들에서의 특징 추적에 기초하여 디바이스의 모션의 카메라 추정을 결정하는 기능을 포함한다. 기능들은 또한, 디바이스의 모션의 IMU 추정 및 디바이스의 모션의 카메라 추정이 임계량보다 큰 차이를 갖는 것에 기초하여, 슬라이딩 시간 윈도우 동안의 디바이스의 포지션 또는 속도 중 하나 또는 그 초과를 결정하는 기능, 및 IMU로부터의 데이터 및 디바이스의 포지션 또는 속도 중 하나 또는 그 초과에 의해서 지원될 때 슬라이딩 시간 윈도우 동안의 디바이스의 모션의 전체 추정을 결정하는 기능을 포함한다.
[0005] 다른 예에서는, 하나 또는 그 초과의 프로세서들 및 명령들을 저장하도록 구성되는 데이터 저장소를 포함하는 디바이스가 제공되고, 그 명령들은 하나 또는 그 초과의 프로세서들에 의해 실행될 때 그 디바이스로 하여금 기능들을 수행하게 한다. 기능들은, 슬라이딩 시간 윈도우 동안 디바이스의 IMU(inertial measurement unit)로부터 데이터를 수신하는 기능, 및 슬라이딩 시간 윈도우 동안 디바이스의 카메라로부터 이미지들을 수신하는 기능을 포함한다. 기능들은 또한, IMU로부터의 데이터에 기초하여 디바이스의 모션(motion)의 IMU 추정을 결정하는 기능, 및 이미지들에서의 특징 추적에 기초하여 디바이스의 모션의 카메라 추정을 결정하는 기능을 포함한다. 기능들은 또한, 디바이스의 모션의 IMU 추정 및 디바이스의 모션의 카메라 추정이 임계량보다 큰 차이를 갖는 것에 기초하여, 슬라이딩 시간 윈도우 동안의 디바이스의 포지션 또는 속도 중 하나 또는 그 초과를 결정하는 기능, 및 IMU로부터의 데이터 및 디바이스의 포지션 또는 속도 중 하나 또는 그 초과에 의해서 지원될 때 슬라이딩 시간 윈도우 동안의 디바이스의 모션의 전체 추정을 결정하는 기능을 포함한다.
[0006] 이러한 및 다른 양상들, 장점들, 및 대안들은, 적절한 경우 첨부 도면들을 참조로 하여, 하기의 상세한 설명을 판독함으로써 당업자들에게 명백해질 것이다.
[0007] 도 1은 예시적인 컴퓨팅 디바이스를 예시한다.
[0008] 도 2는 또 다른 예시적 컴퓨팅 디바이스를 예시한다.
[0009] 도 3a-3b는 도 2의 컴퓨팅 디바이스의 일부 센서들의 구성을 도시하는 컴퓨팅 디바이스의 개념적 예시들이다.
[0010] 도 4는 본원에 설명된 적어도 일부 실시예들에 따른, 디바이스의 모션의 추정을 결정하기 예시적인 방법의 블록도이다.
[0011] 도 5는 카메라 및 IMU(inertial measurement unit) 각각에 대한 예시적인 시간 축과 그 시간 축에 걸쳐 카메라 및 IMU로부터의 예시적인 출력들을 예시한다.
[0012] 도 6a-6c는 슬라이딩 시간 윈도우에 걸쳐 예시적인 카메라 이미지 출력들을 예시한다.
[0013] 도 7은 카메라 이미지들 및 IMU 데이터에 기초하는 디바이스의 모션의 예시적인 추정들에 대한 개념적 예시이다.
[0014] 도 8은 카메라 이미지들 및 IMU 데이터, 그리고 시간 스케일에 걸친 디바이스의 추가적인 포지션 데이터에 기초하는 디바이스의 모션의 예시적인 추정들에 대한 개념적 예시이다.
[0015] 도 9는 디바이스의 모션의 예시적인 전체 추정에 대한 개념적 예시이다.
[0016] 도 10은 카메라 이미지들 및 IMU 데이터에 기초하는 디바이스의 모션의 예시적인 추정들에 대한 다른 개념적 예시이다.
[0017] 도 11은 카메라 이미지들 및 IMU 데이터, 그리고 시간 스케일에 걸친 디바이스의 추가적인 포지션 데이터에 기초하는 디바이스의 모션의 예시적인 추정들에 대한 다른 개념적 예시이다.
[0018] 도 12는 디바이스의 모션의 예시적인 전체 추정에 대한 다른 개념적 예시이다.
[0019] 도 13은 디바이스의 모션의 표현들의 예시적인 나란한 뷰들을 보여주는 디스플레이이다.
[0020] 하기의 상세한 설명은 첨부 도면들을 참조로 개시된 시스템들 및 방법들의 다양한 특징들 및 기능들을 설명한다. 도면들에서, 문맥이 달리 지시하지 않는 한, 유사한 심볼들은 유사한 컴포넌트들을 식별한다. 본원에 설명된 예시적 시스템 및 방법 실시예들은 제한적인 것을 의미하지 않는다. 개시된 시스템들 및 방법들의 특정 양상들은 광범위한 여러 구성들로 배열 및 결합될 수 있다는 것이 쉽게 이해될 것이며, 이들 모두가 본원에서 고려된다.
[0021] 예들 내에서는, 디바이스의 모션의 추정을 결정하기 위한 방법들 및 시스템들이 설명된다. 예시적인 방법은, 슬라이딩 시간 윈도우 동안 디바이스의 IMU(inertial measurement unit)로부터 데이터를 수신하는 단계, 및 슬라이딩 시간 윈도우 동안 디바이스의 카메라로부터 이미지들을 수신하는 단계를 포함한다. 방법은 또한, IMU로부터의 데이터에 기초하여 디바이스의 모션의 IMU 추정을 결정하는 단계, 및 이미지들에서의 특징 추적에 기초하여 디바이스의 모션의 카메라 추정을 결정하는 단계를 포함한다. 디바이스의 모션의 IMU 추정 및 디바이스의 모션의 카메라 추정이 임계량보다 큰 차이를 갖는 것에 기초하여, 방법은, 슬라이딩 시간 윈도우 동안의 디바이스의 포지션 또는 속도 중 하나 또는 그 초과를 결정하는 단계, 및 IMU로부터의 데이터 및 디바이스의 포지션 또는 속도 중 하나 또는 그 초과에 의해서 지원될 때 슬라이딩 시간 윈도우 동안의 디바이스의 모션의 전체 추정을 결정하는 단계를 포함한다. 예시적인 방법들은 시간에 걸쳐 이동 디바이스의 포지션 변화를 추정하기 위해 그 이동 디바이스의 센서들로부터의 데이터를 사용할 수 있고, 그 센서들은 오도메트리(odometry)로 지칭될 수 있다. 디바이스의 포지션의 추정은 공지된 또는 인위적인 시작 위치에 대한 것일 수 있다.
[0022] 이제 도면들을 참조로, 도 1은 예시적인 컴퓨팅 디바이스(100)를 예시한다. 일부 예들에서, 도 1에 예시된 컴포넌트들은 다수의 컴퓨팅 디바이스들에 걸처 분포될 수 있다. 그러나, 예를 돕기 위해, 컴포넌트들은 하나의 예시적 컴퓨팅 디바이스(100)의 일부로서 도시되고 설명된다. 컴퓨팅 디바이스(100)는, 모바일 디바이스(예컨대, 모바일 전화), 데스크톱 컴퓨터, 랩톱 컴퓨터, 이메일/메시징 디바이스, 테블릿 컴퓨터, 또는 본원에 설명된 기능들을 수행하도록 구성될 수 있는 유사한 디바이스일 수 있거나 또는 이들을 포함할 수 있다. 일반적으로, 컴퓨팅 디바이스(100)는, 본원에 설명된 방법들 및 기능들에 따라 데이터를 송신하거나 또는 데이터를 수신하도록 구성되는, 임의의 타입의 컴퓨팅 디바이스 또는 송신기일 수 있다.
[0023] 컴퓨팅 디바이스(100)는 인터페이스(102), 무선 통신 컴포넌트(104), 셀룰러 라디오 통신 컴포넌트(106), GPS(global position system) 수신기(108), 센서(들)(110), 데이터 저장소(112) 및 프로세서(들)(114)를 포함할 수 있다. 도 1에 예시된 컴포넌트들은 통신 링크(116)에 의해 함께 링크될 수 있다. 컴퓨팅 디바이스(100)는 또한, 컴퓨팅 디바이스(100) 내에서의 통신 및 컴퓨팅 디바이스(100)와 다른 컴퓨팅 디바이스들(미도시), 예컨대 서버 엔티티 간의 통신을 가능하게 하기 위한 하드웨어를 포함할 수 있다. 하드웨어는, 예를 들어, 송신기들, 수신기들 및 안테나들을 포함할 수 있다.
[0024] 인터페이스(102)는 컴퓨팅 디바이스(100)가 다른 컴퓨팅 디바이스들(미도시), 예컨대 서버와 통신하는 것을 허용하도록 구성될 수 있다. 따라서, 인터페이스(102)는 하나 또는 그 초과의 컴퓨팅 디바이스들로부터 입력 데이터를 수신하도록 구성될 수 있으며, 또한 출력 데이터를 하나 또는 그 초과의 컴퓨팅 디바이스들로 전송하도록 구성될 수 있다. 인터페이스(102)는 유선 또는 무선 통신 프로토콜에 따라 기능하도록 구성될 수 있다. 일부 예들에서, 인터페이스(102)는 버튼들, 키보드, 터치 스크린, 스피커(들)(118), 마이크로폰(들)(120) 및/또는 입력들을 수신하기 위한 임의의 다른 엘리먼트들뿐만 아니라, 하나 또는 그 초과의 디스플레이들 및/또는 출력들을 통신하기 위한 임의의 다른 엘리먼트들을 포함할 수 있다.
[0025] 무선 통신 컴포넌트(104)는 하나 또는 그 초과의 무선 통신 표준들에 따라 컴퓨팅 디바이스(100)에 대한 무선 데이터 통신을 원활하게 하도록 구성된 통신 인터페이스일 수 있다. 예를 들어, 무선 통신 컴포넌트(104)는 하나 또는 그 초과의 IEEE 802.11 표준들에 따라 무선 데이터 통신을 원활하게 하도록 구성된 Wi-Fi 통신 컴포넌트를 포함할 수 있다. 다른 예로서, 무선 통신 컴포넌트(104)는 하나 또는 그 초과의 블루투스 표준들에 따라 무선 데이터 통신을 원활하게 하도록 구성된 블루투스 통신 컴포넌트를 포함할 수 있다. 다른 예들이 또한 가능하다.
[0026] 셀룰러 라디오 통신 컴포넌트(106)는, 네트워크에 대한 모바일 연결성(mobile connectivity)을 제공하기 위해 셀룰러 무선 기지국과의 무선 통신(음성 및/또는 데이터)을 원활하게 하도록 구성된 통신 인터페이스일 수 있다. 셀룰러 라디오 통신 컴포넌트(106)는, 예를 들어, 컴퓨팅 디바이스(100)가 위치되는 셀의 기지국에 연결되도록 구성될 수 있다.
[0027] GPS 수신기(108)는 GPS 위성들에 의해 전송되는 신호들을 정밀하게 시간설정(timing)함으로써 컴퓨팅 디바이스(100)의 위치를 추정하도록 구성 될 수 있다.
[0028] 센서(들)(110)는 하나 또는 그 초과의 센서들을 포함할 수 있거나, 또는 컴퓨팅 디바이스(100) 내에 포함된 하나 또는 그 초과의 센서들을 나타낼 수 있다. 예시적인 센서들은 가속도계, 자이로스코프, 보수계, 광 센서들, 마이크로폰, 카메라(들), 적외선 플래시, 기압계, 자력계, GPS, WiFi, NFC(near field communication), 블루투스, 프로젝터, 깊이 센서, 온도 센서들, 또는 다른 위치 및/또는 상황 인식 센서들을 포함한다.
[0029] 데이터 저장소(112)는, 프로세서(들)(114)에 의해 액세스되고 실행될 수 있는 프로그램 로직(122)을 저장할 수 있다. 데이터 저장소(112)는 또한 센서(들)(110)에 의해 수집된 데이터, 또는 무선 통신 컴포넌트(104), 셀룰러 라디오 통신 컴포넌트(106) 및 GPS 수신기(108) 중 임의의 것에 의해 수집된 데이터를 저장할 수 있다.
[0030] 프로세서(들)(114)는 임의의 센서(들)(110)에 의해 수집된 데이터를 수신하고 데이터에 기초하여 임의의 수의 기능들을 수행하도록 구성될 수 있다. 예로서, 프로세서(들)(114)는 하나 또는 그 초과의 위치-결정 컴포넌트들, 예컨대 무선 통신 컴포넌트(104), 셀룰러 라디오 통신 컴포넌트(106), 또는 GPS 수신기(108)를 사용하여 컴퓨팅 디바이스(100)의 하나 또는 그 초과의 지리적 위치 추정(estimate)들을 결정하도록 구성될 수 있다. 프로세서(들)(114)는 컴퓨팅 디바이스(100)의 무선 범위 내에서 하나 또는 그 초과의 알려진 무선 액세스 포인트들의 존재 및/또는 이들의 위치에 기초하여 컴퓨팅 디바이스(100)의 위치를 결정하기 위해 위치-결정 알고리즘을 사용할 수 있다. 일 예에서, 무선 위치 컴포넌트(104)는 하나 또는 그 초과의 무선 액세스 포인트들(예를 들어, MAC 어드레스)의 아이덴티티를 결정하고 하나 또는 그 초과의 무선 액세스 포인트들 각각으로부터 수신되는 신호들의 세기(예를 들어, 수신 신호 강도 표시)를 측정할 수 있다. 각각의 고유한 무선 액세스 포인트로부터의 수신 신호 강도 표시(RSSI:received signal strength indication)는 각각의 무선 액세스 포인트로부터의 거리를 결정하는데 사용될 수 있다. 이후 거리들은 각각의 고유한 무선 액세스 포인트가 위치되는 장소에 관한 정보를 저장하는 데이터베이스와 비교될 수 있다. 각각의 무선 액세스 포인트로부터의 거리 그리고 각각의 무선 액세스 포인트들의 알려진 위치에 기초하여, 컴퓨팅 디바이스(100)의 위치 추정이 결정될 수 있다.
[0031] 다른 경우에서, 프로세서(들)(114)는 인근 셀룰러 기지국들에 기초하여 컴퓨팅 디바이스(100)의 위치를 결정하기 위해 위치-결정 알고리즘을 사용할 수 있다. 예를 들어, 셀룰러 라디오 통신 컴포넌트(106)는 셀룰러 네트워크로부터의 신호를 컴퓨팅 디바이스(100)로 송신하고 있는 또는 컴퓨팅 디바이스(100)에 마지막으로 송신한 셀을 식별하도록 구성될 수 있다. 셀룰러 라디오 통신 컴포넌트(106)는 또한 신호를 제공하는 기지국에 대한 RTT(round trip time)를 측정하고, 이 정보를 식별된 셀과 결합하여 위치 추정을 결정하도록 구성될 수 있다. 다른 예에서, 셀룰러 통신 컴포넌트(106)는 컴퓨팅 디바이스(100)의 위치를 추정하기 위해 3개 또는 그 초과의 기지국들로부터의 OTDOA(observed time difference of arrival)를 사용하도록 구성될 수 있다.
[0032] 일부 구현들에서, 컴퓨팅 디바이스(100)는 다층 리눅스 플랫폼으로 구성될 수 있는 디바이스 플랫폼(미도시)을 포함할 수 있다. 디바이스 플랫폼은 상이한 애플리케이션들 및 애플리케이션 프레임워크뿐만 아니라 다양한 커널들, 라이브러리들 및 런타임 엔티티들을 포함할 수 있다. 다른 예들에서, 다른 포맷들 또는 운영 시스템들이 마찬가지로 컴퓨팅 디바이스(100)를 동작시킬 수 있다.
[0033] 통신 링크(116)가 유선 연결로서 예시되었으나, 무선 연결들이 또한 사용될 수 있다. 예를 들어, 통신 링크(116)는, 다른 가능성들 중에서도, 유선 직렬 버스, 예컨대 유니버셜 직렬 버스 또는 병렬 버스, 또는 예를 들어, IEEE 802.11(임의의 IEEE 802.11 개정들 포함)에 설명된 통신 프로토콜들 또는 단거리 무선 라디오 기술을 사용하는 무선 연결일 수 있다.
[0034] 컴퓨팅 디바이스(100)는 더 많은 수의 또는 더 적은 수의 컴포넌트들을 포함할 수 있다. 또한, 본원에 설명된 예시적인 방법들은 컴퓨팅의 디바이스(100)의 컴포넌트들에 의해 개별적으로 또는 컴퓨팅 디바이스(100)의 컴포넌트들 중 하나 또는 이들 모두에 의한 결합으로 수행될 수 있다.
[0035] 도 2는 또 다른 예시적 컴퓨팅 디바이스(200)를 예시한다. 도 2에서의 컴퓨팅 디바이스(200)는 도 1에 도시된 컴퓨팅 디바이스(100)의 일부를 나타낼 수 있다. 도 2에서, 컴퓨팅 디바이스(200)는 다수의 센서들, 예컨대 자이로스코프(204) 및 가속도계(206)를 포함하는 IMU(inertial measurement unit)(202), 글로벌 셔터(GS) 카메라(208), 롤링 셔터(RS) 카메라(210), 전면 카메라(front facing camera)(212), IR(infrared) 플래시(214), 기압계(216), 자력계(218), GPS 수신기(220), WiFi/NFC/블루투스 센서(222), 프로젝터(224), 깊이 센서(226) 및 온도 센서(228)를 포함하는 것으로 도시되며, 이들 각각은 코-프로세서(230)로 출력한다. 코-프로세서(230)는 애플리케이션 프로세서(232)로부터 입력을 수신하고 애플리케이션 프로세서(232)로 출력한다. 컴퓨팅 디바이스(200)는 애플리케이션 프로세서(232)로 직접 출력하는 제 2 IMU(234)를 더 포함할 수 있다.
[0036] IMU(202)는 자이로스코프(204) 및 가속도계(206)의 출력들에 기초하여 컴퓨팅 디바이스(200)의 속도, 배향 및 중력들을 결정하도록 구성될 수 있다.
[0037] GS 카메라(208)는, 컴퓨팅 디바이스(200)의 정면을 등지는 후면 카메라(rear facing camera)가 되도록 컴퓨팅 디바이스(200) 상에 구성될 수 있다. GS 카메라(208)는 카메라(208)의 모든 픽셀들의 출력들을 동시에 판독하도록 구성될 수 있다. GS 카메라(208)는, 광각 뷰잉을 위해, 어안 센서(fish eye sensor)와 같이 대략 120-170도의 시계를 갖도록 구성될 수 있다.
[0038] RS 카메라(210)는 픽셀 디스플레이의 상단(top)으로부터 픽셀 디스플레이의 하단(bottom)으로 픽셀들의 출력들을 판독하도록 구성될 수 있다. 일 예로서, 다른 센서들도 마찬가지로 가능하지만, RS 카메라(210)는 적색/녹색/청색(RGB) 적외선(IR) 4 메가픽셀 이미지 센서일 수 있다. RS 카메라(210)는, 예를 들어, 대략 5.5ms의 최소 판독(readout) 시간으로 동작하도록 빠른 노출을 가질 수 있다. GS 카메라(208)와 마찬가지로, RS 카메라(210)는 후면 카메라일 수 있다.
[0039] 카메라(212)는, 전면 카메라로서 또는 GS 카메라(208)와 RS 카메라(210)의 반대쪽을 향하는 방향에 구성된, 컴퓨팅 장치(200)의 추가 카메라일 수 있다. 카메라(212)는 컴퓨팅 디바이스(200)의 제 1 시점(viewpoint)의 이미지들을 캡처하도록 구성될 수 있고 GS 카메라(208) 및 RS 카메라(210)는 디바이스의 제 2 시점(제 1 시점과는 반대임)의 이미지들을 캡처하도록 구성될 수 있다. 예를 들면, 카메라(212)는 광각 카메라일 수 있으며, 광각 뷰잉을 위해 대략 120-170도 시계를 가질 수 있다.
[0040] 예를 들어, IR 플래시(214)는 컴퓨팅 디바이스(200)에 대한 광원을 제공할 수 있고, GS 카메라(208) 및 RS 카메라(210)에 대한 광을 제공하기 위해 컴퓨팅 디바이스(200)의 후방을 향하는 방향으로 광을 출력하도록 구성될 수 있다. 일부 예들에서, IR 플래시(214)는 낮은 듀티 사이클, 예컨대 5㎐로, 또는 코-프로세서(230) 또는 애플리케이션 프로세서(232)에 의해 지시될 때 비-연속적인 방식으로 플래시하도록 구성될 수 있다. 예를 들어, IR 플래시(214)는 모바일 디바이스들에서 사용하도록 구성된 LED 광원을 포함할 수 있다.
[0041] 도 3a-3b는 도 2의 컴퓨팅 디바이스(200)의 일부 센서들의 구성을 도시하는 컴퓨팅 디바이스(300)의 개념적 예시들이다. 도 3a-3b에서, 컴퓨팅 디바이스(300)는 모바일 전화로 도시되어 있다. 컴퓨팅 디바이스(300)는 도 1의 컴퓨팅 디바이스(100)나 도 2의 컴퓨팅 디바이스(200)와 유사할 수 있다. 도 3a는 전면 카메라(304) 및 P/L 센서 개구(306)(예를 들어, 근접도 또는 광 센서)와 함께, 디스플레이(302)가 제공되는 컴퓨팅 디바이스(300)의 정면을 예시한다. 전면 카메라(304)는 도 2에 설명된 것과 같은 카메라(212)일 수 있다.
[0042] 도 3b는 후방 카메라(310) 및 또 다른 후방 카메라(314)가 제공된 컴퓨팅 디바이스(300)의 후면(308)을 예시한다. 도 2의 컴퓨팅 디바이스(200)에 설명된 것과 같이, 후방 카메라(310)는 RS 카메라(210)일 수 있고 후방 카메라(312)는 GS 카메라(208)일 수 있다. 컴퓨팅 디바이스(300)의 후면(308)은 또한 IR 플래시(314)를 포함하며, 이 IR 플래시(314)는 도 2의 컴퓨팅 디바이스(200)에서 설명된 것과 같은 IR 플래시(214) 또는 프로젝터(224)일 수 있다. 일 예에서, IR 플래시(214)와 프로젝터(224)는 동일한 하나일 수 있다. 이를테면, 하나의 IR 플래시가 IR 플래시(214) 및 프로젝터(224)의 기능들을 수행하도록 사용될 수 있다. 다른 예에서, 컴퓨팅 장치(300)는 후방 카메라(310) 근처에 위치된 제 2 플래시(예를 들면, LED 플래시)(미도시)를 포함할 수 있다. 센서들의 구성 및 배치는, 예를 들면, 컴퓨팅 디바이스(300)의 원하는 기능을 제공하는데 유용할 수 있으나, 다른 구성들도 마찬가지로 가능하다.
[0043] 다시 도 2를 참조하면, 기압계(216)는 압력 센서를 포함할 수 있고, 기압들(air pressures) 및 고도 변화들을 결정하도록 구성될 수 있다.
[0044] 예를 들어, 자력계(218)는 컴퓨팅 디바이스(200)의 롤(roll), 요(yaw) 및 피치(pitch) 측정들을 제공하도록 구성될 수 있으며, 내부 나침반로서 동작하도록 구성될 수 있다. 일부 예들에서, 자력계(218)는 IMU(202)의 컴포넌트(미도시)일 수 있다.
[0045] GPS 수신기(220)는 도 1의 컴퓨팅 디바이스(100)에서 설명된 GPS 수신기(108)와 유사할 수 있다. 추가 예들에서, GPS(220)는 또한 GPS 위성들 또는 다른 네트워크 엔티티들로부터 수신되는 타이밍 신호들을 출력할 수 있다. 이러한 타이밍 신호들은 동일한 위성 타임스탬프들을 포함하는 다수의 디바이스들에 걸쳐 센서들로부터 수집된 데이터를 동기화하는데 사용될 수 있다.
[0046] WiFi/NFC/블루투스 센서(222)는, 다른 디바이스와의 무선 통신을 이 다른 디바이스와의 접촉을 통해 또는 이와 아주 근접해지는 것을 통해 구축하기 위해, 도 1의 컴퓨팅 디바이스(100)에 대해 위에서 논의된 것과 같은 WiFi 및 블루투스 표준들에 따라 그리고 NFC 표준들에 따라 동작하도록 구성된 무선 통신 컴포넌트들을 포함할 수 있다.
[0047] 프로젝터(224)는 임의의 환경의 도트 패턴을 생성하는 패턴 발생기와 함께 레이저를 갖는 구조화된 광 프로젝터일 수 있거나 또는 이를 포함할 수 있다. 프로젝터(224)는 이 환경에서의 오브젝트들의 깊이에 대한 정보, 예컨대 오브젝트들의 3차원(3D) 특징들을 복원하기 위해 RS 카메라(210)와 함께 동작하도록 구성될 수 있다. 예를 들어, 별도의 깊이 센서(226)는 환경에서의 오브젝트들의 범위를 감지하기 위해 주변 광 조건들 하에서 3D로 도트 패턴의 비디오 데이터를 캡처하도록 구성될 수 있다. 프로젝터(224) 및/또는 깊이 센서(226)는 투사된 도트 패턴에 기초하여 오브젝트들의 형상들을 결정하도록 구성될 수 있다. 예로서, 깊이 센서(226)는 프로젝터(224)로 하여금 도트 패턴을 생성하게 하고 RS 카메라(210)로 하여금 도트 패턴의 이미지를 캡처하게 하도록 구성될 수 있다. 깊이 센서(226)는 이후 도트 패턴의 이미지를 프로세싱하고, 다양한 알고리즘들을 사용하여 3D 데이터를 삼각측량 및 추출하고, 깊이 이미지를 코-프로세서(230)에 출력할 수 있다.
[0048] 온도 센서(228)는 예를 들어 컴퓨팅 디바이스(200)의 주변 환경의 온도 또는 온도 구배, 예컨대 온도 변화를 측정하도록 구성될 수 있다.
[0049] 코-프로세서(230)는 컴퓨팅 디바이스(200) 상의 모든 센서들을 제어하도록 구성될 수 있다. 예들에서, 코-프로세서(230)는, IR 플래시(214)에 매칭하도록 카메라들(208, 210 및 212) 중 임의의 카메라의 노출 시간들을 제어하고, 프로젝터(224) 펄스 싱크(sync), 듀레이션 및 세기를 제어하고, 그리고 일반적으로는, 센서들의 데이터 캡처 또는 수집 시간들을 제어할 수 있다. 코-프로세서(230)는 또한 애플리케이션 프로세서(232)에 대한 적절한 포맷으로 센서들 중 임의의 센서로부터의 데이터를 프로세싱하도록 구성될 수 있다. 일부 예들에서, 코-프로세서(230)는, 센서들 중 동일한 타임스탬프 또는 데이터 수집 시간(또는 시간 기간)에 해당하는 임의의 센서로부터의 모든 데이터를 애플리케이션 프로세서(232)에 제공될 하나의 데이터 구조로 병합한다.
[0050] 애플리케이션 프로세서(232)는 컴퓨팅 디바이스(200)의 다른 기능을 제어하도록, 예컨대 운영 시스템 또는 컴퓨팅 디바이스(200)에 저장된 임의의 수의 소프트웨어 애플리케이션에 따라 동작하도록 컴퓨팅 디바이스(200)를 제어하게 구성될 수 있다. 애플리케이션 프로세서(232)는, 임의의 수의 타입들의 기능을 수행하기 위해, 센서들에 의해 수집되고 코-프로세서로부터 수신된 데이터를 사용할 수 있다. 애플리케이션 프로세서(232)는 코-프로세서(230)의 출력들을 수신할 수 있으며, 일부 예들에서, 애플리케이션 프로세서(232)는 GS 카메라(208) 및 RS 카메라(210)를 비롯한 다른 센서들로부터의 원시 데이터(raw data) 출력들을 마찬가지로 수신할 수 있다.
[0051] 제 2 IMU(234)는 애플리케이션 프로세서(232)로 직접 수집된 데이터를 출력할 수 있고, 이 수집된 데이터는 애플리케이션 프로세서(232)에 의해 수신되고, 데이터 수집을 시작하도록 다른 센서들을 트리거링하는데 사용될 수 있다. 예로서, 제 2 IMU(234)의 출력들은 컴퓨팅 디바이스(200)의 모션을 표시할 수 있고, 컴퓨팅 디바이스(200)가 모션 상태일 때, 컴퓨팅 디바이스(200)가 이미지 데이터, GPS 데이터 등을 수집하는 것이 바람직할 수 있다. 따라서, 애플리케이션 프로세서(232)는 IMU(234)의 출력들이 모션을 표시하는 시간들에서 데이터를 수집하기 위해서 공통 버스들 상의 통신 시그널링을 통해 다른 센서들을 트리거시킬 수 있다.
[0052] 도 2에 도시된 컴퓨팅 디바이스(200)는 센서들과 프로세서들 각각의 사이에 다수의 통신 버스들을 포함할 수 있다. 예를 들어, 코-프로세서(230)는 통신용 멀티-마스터 직렬 싱글-엔드형 버스(multi-master serial single-ended bus)를 포함하는 I2C(inter-integrated circuit) 버스를 통해 IMU(202), GS 카메라(208) 및 RS 카메라(212) 각각과 통신할 수 있다. 코-프로세서(230)는 동일한 I2C 버스 또는 개별 통신 버스를 통해, IMU(202), GS 카메라(208) 및 RS 카메라(212) 각각에 의해 수집된, 측정된 또는 검출된 원시 데이터를 수신할 수 있다. 코-프로세서(230)는, 풀 듀플렉스 모드(full duplex mode)에서 동작할 수 있는 동기식 직렬 데이터 링크를 포함하는 SPI(serial peripheral interface) 버스, I2C 버스, 그리고 카메라 또는 픽셀 정보를 통신하도록 구성된 직렬 인터페이스를 포함하는 MIPI(mobile industry processor interface)를 포함하는 다수의 통신 버스들을 통해 애플리케이션 프로세서(232)와 통신할 수 있다. 다양한 버스들의 사용은, 예를 들어, 개별 통신 버스에 의해 제공되는 대역폭뿐만 아니라 데이터의 통신 속도에 대한 요구(need)에 기초하여 결정될 수 있다.
[0053] 본원의 예에서, 컴퓨팅 디바이스(200)는 그 컴퓨팅 디바이스(200)가 환경을 통해 이동할 때 데이터를 수집할 수 있고, 오도메트리 기능들을 수행하도록 구성될 수 있다. 오도메트리는 시간에 걸쳐 포지션 변화를 추정하기 위해 이동하고 있는 센서들로부터의 데이터의 사용을 포함한다. 오도메트리는 컴퓨팅 디바이스(200)의 궤적 또는 경로를 결정하기 위해서 시작 위치에 대한 컴퓨팅 디바이스(200)의 포지션을 추정하는데 사용될 수 있다. 일부 예들에서는, 컴퓨팅 디바이스(200)에 의해 이동되는 경로를 결정하기 위해서, 디바이스가 환경을 통해 이동함에 따라 센서 데이터의 슬라이딩 윈도우가 프로세싱될 수 있다.
[0054] 도 4는 본원에 설명된 적어도 일부 실시예들에 따른, 디바이스의 모션의 추정을 결정하기 예시적인 방법의 블록도이다. 도 4에 도시된 방법(400)은, 예를 들면, 예를 들어, 도 1의 컴퓨팅 디바이스(100), 도 2의 컴퓨팅 디바이스(200) 또는 도 3의 컴퓨팅 디바이스(300)에 사용될 수 있거나, 또는 도 1의 컴퓨팅 디바이스(100), 도 2의 컴퓨팅 디바이스(200) 또는 도 3의 컴퓨팅 디바이스(300)의 임의의 컴포넌트들의 결합에 의해 수행될 수 있는 방법의 실시예를 제시한다. 방법(400)은 하나 또는 그 초과의 블록들(402-412)에 의해 예시된 것과 같은 하나 또는 그 초과의 동작들, 기능들 또는 액션들을 포함할 수 있다. 블록들이 순차적인 순서로 예시되었지만, 이들 블록들은 어떤 경우들에서는 동시에 그리고/또는 본원에 설명된 것들과는 상이한 순서로 수행될 수 있다. 또한, 원하는 구현에 기초하여, 다양한 블록들은 더 적은 수의 블록들로 결합되거나, 추가의 블록들로 나뉘거나 그리고/또는 제거될 수 있다.
[0055] 또한, 본원에 개시된 방법(400) 및 다른 프로세스들 및 방법들에 대해, 흐름도는 본원의 실시예들에 대한 하나의 가능성 있는 구현의 동작 및 기능을 나타낸다. 이와 관련하여, 각각의 블록은 모듈, 세그먼트, 또는 프로세스에서의 특정한 논리적 기능들 또는 단계들을 구현하도록 프로세서에 의해 실행가능한 하나 또는 그 초과의 명령들을 포함하는 프로그램 코드의 일부를 나타낼 수 있다. 프로그램 코드는 예를 들어 임의의 타입의 컴퓨터 판독가능 매체, 예컨대 디스크 또는 하드 드라이브를 포함하는 저장 디바이스 상에 저장될 수 있다. 컴퓨터 판독가능 매체는, 예를 들어, 비일시적 컴퓨터 판독가능 매체, 예컨대 레지스터 메모리, 프로세서 캐시 및 RAM(Random Access Memory)과 같이 짧은 시간 기간들 동안 데이터를 저장하는 컴퓨터 판독가능 매체를 포함할 수 있다. 컴퓨터 판독 가능 매체는 또한, 예를 들어, 다른 비일시적 매체, 예컨대 ROM(read only memory), 광학 또는 자기 디스크들, CD-ROM(compact-disc read only memory)과 같은 보조의 또는 영구적 장기간 저장소를 포함할 수 있다. 컴퓨터 판독가능 매체는 또한 임의의 다른 휘발성 또는 비휘발성 저장 시스템들일 수 있다. 컴퓨터 판독가능 매체는, 예를 들어, 컴퓨터 판독가능 저장 매체, 유형의(tangible) 저장 디바이스 또는 다른 제조 물품으로 고려될 수 있다. 프로그램 코드(또는 코드를 위한 데이터)는 또한, 예를 들어, 통신 매체를 포함하는 다른 매체, 예컨대 무선 통신 매체 상에 저장 또는 제공될 수 있다.
[0056] 또한, 본원에 개시된 방법(400) 및 다른 프로세스들 및 방법들에 대해, 도 4에서의 각각의 블록은 프로세스에서의 특정한 논리적 기능들을 수행하도록 배선된 회로를 나타낼 수 있다.
[0057] 방법(400)의 기능들은 컴퓨팅 디바이스에 의해 완전히 수행될 수 있거나, 또는 다수의 컴퓨팅 디바이스들 및/또는 서버에 걸쳐 분포될 수 있다. 일부 예들에서, 컴퓨팅 디바이스는 컴퓨팅 디바이스의 센서들로부터 정보를 수신할 수 있거나, 또는 컴퓨팅 디바이스가 서버인 경우, 정보는 정보를 수집하는 다른 디바이스로부터 수신될 수 있다. 컴퓨팅의 디바이스는 추가로, 예를 들어, 다른 디바이스들의 센서로부터 정보를 수신하기 위해 서버와 통신할 수 있다. 방법(400)은 추가로, 운영 시스템에 기초하여 기능하도록 구성된 애플리케이션 프로세서 및 디바이스의 복수의 센서들로부터 데이터를 수신하도록 구성된 코-프로세서를 갖는 디바이스에 의해 수행될 수 있다. 센서들은, 예를 들어, IMU, 글로벌 셔터 카메라, 롤링 셔터 카메라, 구조화된 광 프로젝터, 깊이 카메라, 적외선 플래시, 기압계, 자력계 및 온도 센서를 비롯하여, 도 1, 도 2 또는 도 3a-3b 중 임의의 도면에서 앞서 설명된 것과 같은 임의의 센서들을 포함할 수 있다.
[0058] 블록(402)에서, 방법(400)은 슬라이딩 시간 윈도우 동안 디바이스의 IMU(inertial measurement unit)로부터 데이터를 수신하는 단계를 포함한다. 디바이스의 프로세서는 그 디바이스의 3 자유도 포지션(예를 들어, X 축, Y 축, 및 Z 축을 따라) 및 3 자유도 배향(예를 들어, 롤(roll), 피치(pitch), 요(yaw))를 나타낼 수 있는 데이터를 수신할 수 있다. IMU 데이터는 슬라이딩 시간 윈도우에 걸쳐 디바이스의 모션을 나타낼 수 있다. 데이터가 임의의 정해진 시간 기간에 걸쳐 IMU에 의해 수집될 수 있고, 일부 예들에서는, IMU가 데이터를 계속적으로 수집할 수 있다. 일부 경우들에서, 슬라이딩 시간 윈도우는 IMU가 데이터를 수집하는 시간을 표시할 수 있다. 또는, 예컨대 IMU가 데이터를 계속해서 수집하는 예들에서, 슬라이딩 시간 윈도우는 프로세서가 IMU 데이터를 수신하는 시간 기간을 표시할 수 있다.
[0059] 슬라이딩 시간 윈도우는 현재 시간 프레임에 대한 시간의 양을 포함한다. 일 예에서, 시간 윈도우는 대략 1-10초일 수 있으며, 그 시간 윈도우는 슬라이딩 시간 윈도우가 지난 1-10초에 걸쳐 IMU에 의해 수집된 가장 최근 데이터량을 커버하도록 시간적으로 앞으로 계속해서 슬라이딩한다. 시간 윈도우는 또한 더 작거나 혹은 더 클 수도 있다. IMU 데이터는 영구 저장소에 저장될 수 있거나, 또는 예를 들어 새롭게 수신된 데이터가 원형 버퍼에서 가장 오래된 데이터를 덮어쓰도록 그 원형 버퍼에 저장될 수 있다. 따라서, 시간 윈도우는 데이터가 IMU에 의해 수집되었을 때를 표시할 수 있다.
[0060] 블록(404)에서, 방법(400)은 슬라이딩 시간 윈도우 동안 디바이스의 카메라로부터 이미지들을 수신하는 단계를 포함한다. 예를 들어, 카메라는 슬라이딩 시간 윈도우 동안 이미지들을 캡처하도록 구성될 수 있다. 디바이스가 후면 카메라를 구비한 모바일 전화를 포함하는 예에서, 그 카메라는 슬라이딩 시간 윈도우 동안 디바이스의 시계에 있는 이미지들을 캡처할 수 있다. 디바이스가 후면 및 전면 카메라 둘 모두를 포함하는 다른 예들에서, 하나 또는 둘 모두의 카메라들은 슬라이딩 시간 윈도우 동안 이미지들을 캡처하도록 구성될 수 있다. 예를 들어 시간 윈도우의 길이에 따라 시간 윈도우 내에서 임의의 수의 이미지들, 예컨대 1-3개의 이미지들이 캡처될 수 있다. 카메라는 또한 시간 윈도우 동안 라이브 비디오를 캡처하도록 구성될 수 있고, 그 비디오의 프레임들은 이미지들로서 취해질 수 있다.
[0061] 블록(406)에서, 방법(400)은 IMU로부터의 데이터에 기초하여 디바이스의 모션의 IMU 추정을 결정하는 단계를 포함한다. 예로서, 디바이스의 프로세서는 6 자유도(예를 들어 x, y, z 및 θx, θy 및 θz)의 경우, 속도를 결정하기 위해서 시간에 걸쳐 IMU 가속 데이터를 통합할 수 있다. 프로세서는 포지션을 결정하기 위해서 속도를 추가로 통합할 수 있다. 특정 예로서, IMU 데이터의 프로세싱에 기초하여, 프로세서는 디바이스가 시간 당 1.5 마일(mile)의 평균 속도로 한 시간 동안 서쪽으로 이동하였다고 검출할 수 있고, 이어서 프로세서는 디바이스가 그의 초기 포지션 또는 임의의 시작, 공지된 또는 기준 포지션의 대략 1.5 마일 서쪽에 있다고 결정할 수 있다. 프로세서는 예를 들어 디바이스가 시간 기간에 걸쳐 이동한 경로가 될 모션의 추정을 결정할 수 있다. 모션의 추정은 6 자유도(예를 들어 (e.g., x, y, z 및 θx, θy 및 θz) 중 임의의 자유도를 따르거나 또는 자유도들 중 임의의 자유도들의 조합을 따를 수 있다. 모션의 추정은 가속도, 속도, 포지션 또는 그러한 팩터들의 임의의 조합의 변화의 측면에서 이루어질 수 있다.
[0062] 블록(408)에서, 방법(400)은 이미지들에서의 특징 추적에 기초하여 디바이스의 모션의 카메라 추정을 결정하는 단계를 포함한다. 예를 들어, 프로세서는 카메라에 의해 캡처된 이미지들에 기초하여 디바이스의 모션의 추정을 결정할 수 있다. 이미지들 각각은 특징들의 세트, 또는 특징 추적 알고리즘이 다수의 프레임들에 록킹(lock)하고 이들을 완수할 수 있는 이미지들에서의 포인트들을 식별하기 위해 프로세싱될 수 있다. 예시적인 특징들 포인트들은 특정 추적 알고리즘에 따라 고유의 밝은/어두운 스폿들(spots) 또는 에지들/코너들인 이미지에서의 포인트들일 수 있다. 이를테면, 에지는 두 이미지 영역들 간에 경계가 존재하는 이미지에서의 포인트를 포함하고, 코너는 국부적인 2차원 구조를 갖는 이미지에서의 포인트-유형 특징들을 지칭한다. Harris & Stephens 알고리즘과 같은 다른 알고리즘들이 에지들 및 코너들을 검출하는데 사용될 수 있다. 예를 들어 코너들 및 관심 포인트들을 검출하기 위해서 FAST(feature detection from the Accelerated Segment Test) 알고리즘과 같은 또 다른 방법들이 역시 사용될 수 있다. 게다가, 얼룩과 같은 특징들이 이미지에서의 관심 영역들(예를 들어, 코너 검출기에 의해 검출되기에 매우 원활한 영역들)을 설명할 수 있고, FAST 알고리즘이 또한, 특히, 얼룩을 검출하기 위해 마찬가지로 사용될 수 있다.
[0063] 하나의 예시적인 특징 추적 방법은 KLT(Kanade-Lucas-Tomasi) 특징 추적기 방법을 포함한다. 일 경우에서, 특징들은 이미지의 각각의 2×2 구배 행렬의 최소 고유값을 검사함으로써 위치결정되고, 특징들은 이미지들의 두 윈도우들 간의 차이를 최소화하는 Newton-Raphson 방법을 사용하여 추적될 수 있다.
[0064] 일단 특징이 연속 이미지들에서 식별되면, 디바이스의 모션의 추정이 그 이미지들에서 특징의 이동으로 인해 결정될 수 있다. 예를 들어, 만약 특징이 정지 오브젝트라면, 이미지들 내에서 그 특징의 이동은 디바이스의 이동으로 인한 것이다. 예들 내에서는, 카메라로부터의 이미지들 간의 차이가 임계량보다 클 때, 이미지들은 슬라이딩 시간 윈도우 동안의 IMU로부터의 대응하는 데이터와 연관될 수 있는데, 그 이유는 이미지들이 그 이미지들 도처에서 추적될 수 있는 캡쳐된 상이한 특징들을 갖기 때문이다.
[0065] 일부 예들에서, 연속 이미지들 간에 이미지들에서 특징들의 이동이 결정되고, 이미지들에서 이동 오브젝트를 나타내는 특징들의 이동으로서 연관될 수 있다. 특징들이 이동 오브젝트를 나타낼 때, 이미지들 간의 특징들의 이동은 디바이스의 이동으로 인한 것이 아닐 수 있고(또는 오브젝트의 이동 및 디바이스의 이동으로 인한 것일 수 있음), 따라서 특징 추적 방법들이 정확하지 않을 수 있다. 그 결과로, 이동 오브젝트와 연관된 특징들 이외의 특징들이 특징 추적을 위해 사용될 수 있다. 특징들이 정지 오브젝트와 연관될 때, 그 특징들은 특징 추적을 위해 사용될 수 있다.
[0066] 이미지들 내에서 정지 오브젝트들의 특징들로부터 이동 오브젝트들의 특징들을 구별하기 위해, 모든 특징들의 모션 모델이 비교될 수 있다. 대부분의 특징들의 모션 모델과는 다른 모션 모델을 보여주는 특징들이 이동 오브젝트들로부터의 특징들을 나타낼 수 있다. 이미지들에서의 대부분의 특징들은 정지 오브젝트를 나타내고, 따라서 오정합점 제거(outlier rejection)가 예를 들어 상당한 편차를 갖는 그러한 특징들의 모션 모델에 기초하여 이동 오브젝트들의 특징들을 식별하기 위해 수행될 수 있다는 것이 고려될 수 있다.
[0067] 특징들의 이동은 병진 운동 모델을 사용하여 모델링될 수 있고, 여기서 특징은 선형 변환이 이루어진다. 이미지에서 고정된 윈도우의 특징 포인트 x에 대한 병진 운동 모델은 아래의 함수 h에 의해 설명될 수 있다.
h(x) = x + △x 수학식 (1)
[0068] 특징의 이동은 또한 아핀(affine) 운동 모델을 사용하여 모델링될 수 있는데, 그것은 다음과 같이 정의될 수 있다:
h(x) = Dx +d 수학식(2)
여기서, D는 변형 행렬이고, d는 윈도우의 중심의 병진이다.
[0069] 다른 예들에서는, 이미지들 내에서 정지 오브젝트들의 특징들로부터 이동 오브젝트들의 특징들을 구별하기 위해, 다른 기능들이 수행될 수 있다. 두 이미지들 간에 특징이 추적될 때는, 특징이 정지 상태이고 디바이스가 이동 중인 경우에 발생할 시프트와 이미지 평면 내의 특징의 모션이 부합하는지 여부가 결정될 수 있다. 이를 위해서, 디바이스의 컴퓨팅된 회전이 추적된 특징들의 서브세트로부터 컴퓨팅되는 추정된 이동 방향 및 자이로스코프로부터의 측정들에 기초하여 사용될 수 있다. 만약 후속 이미지에서의 실제 위치 및 예상 위치의 특징들 간의 차이가 임계치보다 크다면, 특징은 오정합점으로 식별될 수 있다.
[0070] 블록(410)에서, 방법(400)은 디바이스의 모션의 IMU 추정 및 디바이스의 모션의 카메라 추정이 임계량보다 큰 차이를 갖는다는 것에 기초하여 슬라이딩 시간 윈도우 동안의 디바이스의 포지션 또는 속도 중 하나 또는 그 초과를 결정하는 단계를 포함한다. 프로세서는 임의의 임계 편차량 내의 매치가 존재하는지를 결정하기 위해서 IMU 데이터 및 카메라 데이터로부터의 모션의 추정들 각각을 비교하도록 구성될 수 있다. 예를 들어, 만약 모션의 두 추정들이 대략 동일하다면, 예컨대 모션의 경로를 따라 서로의 대략 수 센티미터 내에 있거나 거의 동일한 시작 및 종료 위치들을 갖는다면, 매치가 결정될 수 있다. 이러한 경우에서는, IMU 데이터 및 카메라 이미지들 둘 모두가 디바이스의 모션을 나타낼 수 있다.
[0071] 디바이스의 모션의 IMU 추정과 디바이스의 모션의 카메라 추정의 비교를 수행하기 위해서, 이미지들의 특징들은 이미지 공간에서 x, y 좌표 프레임으로 투사될 수 있고, 데이터의 포지션들을 매칭시키기 위해 개별 데이터의 타임스탬프들에 기초하여 IMU 데이터에 링크될 수 있다. 디바이스의 모션을 가장 잘 설명하는 카메라 이미지들 및 IMU 데이터는 매치가 존재하는 경우에 결정될 수 있다.
[0072] 그러나, 디바이스의 모션의 IMU 추정 및 디바이스의 모션의 카메라 추정이 임계량보다 크게 다른 경우들에서는, 추가적인 데이터가 슬라이딩 시간 윈도우 동안의 디바이스의 모션을 추정하기 위해 결정될 수 있다. 그 추가적인 데이터는 슬라이딩 시간 윈도우 동안의 디바이스의 포지션 또는 속도를 포함한다. 디바이스의 포지션은 GPS 수신기, WiFi 수신기 등을 포함한 디바이스의 다른 센서들로부터 결정될 수 있거나 디바이스의 지리적 포지션을 결정하기 위해 프로세싱될 수 있는 다른 센서 데이터로부터 결정될 수 있다. 디바이스의 속도는 또한 다른 센서들로부터의 데이터에 기초하여 또는 다른 센서들로부터의 데이터의 통합에 기초하여 결정될 수 있다.
[0073] 일부 예들에서, 디바이스의 모션의 카메라 추정은, 이를테면 예를 들어 모든 또는 많은 이미지들이 동일할 때는 디바이스가 거의 정지 상태라는 것을 표시할 수 있다. 이러한 예들에서, 방법(400)은 디바이스가 여전히 수직으로 또는 수평으로 이동하고 있을 수 있기 때문에 디바이스의 수직축 및 수평축에 대해 디바이스의 포지션 또는 속도를 결정하는 단계를 포함할 수 있다. 예를 들어, 디바이스는 엘리베이터에 존재할 수 있고, 카메라 이미지들은 수직축을 따라 디바이스의 이동 동안 동일할 가능성이 있을 것이다. IMU 데이터는 이동을 표시할 수 있지만, 카메라 이미지들은 수직축을 따른 이동을 나타내지 않을 것이다. 따라서, 예를 들어, 추가적인 포지션 정보가 IMU 데이터를 검증하기 위해 결정될 수 있다. 카메라 이미지들이 대략 불변적일 수 있는 다른 경우는 디바이스가 이동 중인 자동차 또는 기차 내에 있을 때를 포함하고, 비록 디바이스가 경로를 따라 수평으로 이동하고 있더라도 그 디바이스는 시간에 걸쳐 동일한 이미지들을 캡처할 수 있다. IMU 데이터는 이동을 표시할 수 있고, 추가적인 포지션 정보는 IMU 데이터를 검증하기 위해 결정될 수 있다. 따라서, 디바이스의 지리적 위치가 그 디바이스의 위치-감지 센서들로부터의 하나 또는 그 초과의 출력들에 기초하여 슬라이딩 시간 윈도우 동안 결정될 수 있다.
[0074] 블록(412)에서, 방법(400)은 IMU로부터의 데이터 및 디바이스의 포지션 또는 속도 중 하나 또는 그 초과에 의해 지원될 때 슬라이딩 시간 윈도우 동안의 디바이스의 모션의 전체 추정을 결정하는 단계를 포함한다. 예들 내에서, IMU 데이터에 기초하여 결정되는 디바이스의 모션의 추정은 그 디바이스의 포지션 및/또는 속도 정보로부터 검증될 수 있다. 디바이스에 대한 모션의 전체 추정은 슬라이딩 시간 윈도우가 새로운 시간 기간들을 포함하도록 변경되기 때문에 시간에 걸쳐 결정될 수 있다.
[0075] 도 5는 카메라 및 IMU 각각에 대한 개념적인 시간 축과 그 시간 축에 걸쳐 카메라 및 IMU로부터의 예시적인 출력들을 예시한다. 도시된 바와 같이, IMU는 카메라보다 더 높은 빈도로 출력들을 제공하도록 구성될 수 있다. 슬라이딩 시간 윈도우는 임의의 시간 윈도우이도록 구성될 수 있고, 도 5에 도시된 예에서, 슬라이딩 시간 윈도우는 3개의 카메라 이미지들 및 7개의 IMU 데이터 출력들을 포함한다. 카메라 이미지 출력들 및 IMU 데이터 출력들은 대략 동일한 시간에 함께 수집되어진 이미지와 IMU 데이터를 연관시키도록 예를 들어 데이터의 타임스탬프들에 의해 링크되거나 연관될 수 있다.
[0076] 도 6a-6c는 슬라이딩 시간 윈도우에 걸쳐 예시적인 카메라 이미지 출력들을 예시한다. 예를 들어, 주차된 자전거의 3개의 이미지들이 도시되고, 슬라이딩 시간 윈도우에 걸쳐, 디바이스는 이동하면서 보여지는 이미지들을 캡처하였다. 이미지들의 컨텐츠는 디바이스의 이동으로 인해 변한다. 도 6a에서, 이미지의 특징들이 결정될 수 있고, 대표 도면들은 특징들(602, 604, 606 및 608)을 포함한다. 이미지들의 특징들(602, 604, 606 및 608)은 추적 알고리즘이 다수의 프레임들에 록킹하고 이들을 완수할 수 있는 이미지들에서의 특정 포인트들을 포함한다. 특징들(602, 604, 606 및 608)은 오브젝트의 밝거나 어두운 스폿들 또는 에지들을 포함한다.
[0077] 에지 검출 기술은 이미지 밝기가 급격하게 변하거나 불연속성을 갖는 디지털 이미지의 포인트들을 식별할 수 있다. 이미지 밝기가 급격하게 변하는 포인트들은 에지들로 불리는 곡선 라인 세그먼트들의 세트로 조직화될 수 있다. 코너 검출은 특정 종류들의 특징들을 추출하고 이미지의 컨텐츠를 추론하기 위해 컴퓨터 비전 시스템들 내에서 사용되는 다른 접근법이고, 코너는 두 에지들의 교차로서 정의될 수 있다. 코너는 또한 포인트로서 정의될 수 있는데, 그 포인트에 대해서 그 포인트의 국부적인 인근에는 두 개의 우세하면서 상이한 에지 방향들이 존재한다. 다른 특징 검출 방법들은, 디지털 이미지의 영역들을 둘러싼 지역들과 비교해서 밝기 또는 컬러와 같은 특성에 있어 상이한 그 디지털 이미지의 영역들을 검출하는 것을 목적으로 하는 방법들을 지칭하는 얼룩 검출을 포함한다.
[0078] 도 6a, 도 6b 및 도 6c 간에 도시된 바와 같이, 특징들(602, 604, 606 및 608) 중 일부는 에지 이미지에 포함되고, 그러한 공통 특징들의 경로가 결정될 수 있다. 예를 들어, 특징들(602 및 604)은 3개의 모든 이미지들에서 확인되고, 그 특징들의 경로가 결정될 수 있다. 특징들(602 및 604)의 경로는 위에서 설명된 바와 같이 병진 운동을 사용하여 선형 변환에 의해 특징화될 수 있다.
[0079] 도 7은 카메라 이미지들 및 IMU 데이터에 기초하는 디바이스의 모션의 예시적인 추정들에 대한 개념적 예시이다. 도 7에 도시된 바와 같이, 디바이스의 모션의 예시적인 카메라 추정은 (도 6a-6c에 도시된 연속 이미지들에서 특징들을 추적하는 것과 같은) 이미지들에서의 특징들의 특징 추적을 사용하여 결정되었다. 모션의 추정은 시간에 걸쳐 x-축을 따라 상대적인 포지션으로서 도시되어 있다. 그래프는 IMU 데이터에 기초한 디바이스의 모션의 추정을 또한 도시하는데, 그 추정은 차이에 의해 도시된 바와 같이 카메라 추정과 때때로 다르다. 그 차이는 예를 들어 시간 스케일에 걸쳐 언제라도, 또는 시간 스케일을 따라 여러 경우들에서, 또는 슬라이딩 시간 윈도우의 시작 및 종료 시에 테스트됨으로써, 그 차이가 임계치를 초과하는지가 결정될 수 있다. 추정들의 원하는 정확성에 기초해서, 임계치를 초과한다는 것은 단지 한번만 초과하는 것, 여러번 초과하는 것 등에 기초할 수 있다. 그 차이가 임계량보다 크고 미리 셋팅된 임계치를 초과하는(임계치의 크기 및 인스턴스들 둘 모두의 측면에서 초과함) 예들에서는, 추가적인 포지션 데이터가 결정될 수 있다.
[0080] 도 8은 카메라 이미지들 및 IMU 데이터, 그리고 시간 스케일에 걸친 디바이스의 추가적인 포지션 데이터에 기초하는 디바이스의 모션의 예시적인 추정들에 대한 개념적 예시이다. 예를 들어, 디바이스의 지리적 위치들은 위치(1), 위치(2), 위치(3) 및 위치(4)의 그래프내 포인트들에 의해 도시된 바와 같이 주기적으로 결정될 수 있다. 이 예에서, 포지션 데이터는 IMU 데이터에 기초하여 모션의 추정을 확인하거나 검증하는데, 그 이유는 데이터 포인트들이 모션의 IMU 추정을 위한 라인을 따르거나 그에 근접하기 때문이다.
[0081] 도 9는 디바이스의 모션의 예시적인 전체 추정에 대한 개념적 예시이다. 이 예에서, 디바이스의 모션의 전체 추정은 디바이스의 위치(4)에 도시된 바와 같은 포지션의 편차뿐만 아니라 시간 스케일을 따라 다양한 위치들에서 모션의 카메라 추정 간에 도시된 편차를 고려하기 위해서 약간 수정된 모션의 IMU 추정일 수 있다. 예를 들어, 그 수정들은 차이가 임계치보다 큰 임의의 시간 프레임에서 카메라 추정 및 IMU 추정의 평균이도록 추정을 성형하는 것을 포함할 수 있다. 대안적으로, 그 수정들은 차이가 임계치보다 큰 임의의 시간 프레임들에서 (예를 들어, 위치(4)를 따라) 추가적인 포지션 정보의 데이터 포인트(들)를 경로가 가로지르도록 하는 것을 포함할 수 있다.
[0082] 도 10은 카메라 이미지들 및 IMU 데이터에 기초하는 디바이스의 모션의 예시적인 추정들에 대한 다른 개념적 예시이다. 도 10의 이 예에서, 모션의 카메라 추정은 시간에 걸쳐 거의 정적인 것으로 도시되어 있다. 예를 들어, 디바이스에 의해 포착되는 이미지들은 시간에 걸쳐 대략 동일할 수 있는데, 이는 디바이스가 시간 기간에 걸쳐 이동하지 않음을 표시한다. 도 10은 또한 일정한 레이트로의 시간 이동에 걸쳐 디바이스의 모션의 IMU 추정을 거의 일정한 것으로 예시한다. 도 10은 디바이스가 자동차 내부에 있으면서 앞으로 이동하지만 캡처되고 있는 이미지들은 어떤 변화들도 보여주지 않는(예를 들어, 디바이스가 자동차 내에서 이동하고 있지 않음) 예를 예시할 수 있다. 따라서, 도 10에 예시된 그래프로부터는, 모션의 카메라 추정과 모션의 IMU 추정 간에 차이가 존재하며, 그 차이는 적어도 정해진 슬라이딩 시간 윈도우의 일부 시간 프레임들 동안은 정해진 임계치를 초과할 수 있다.
[0083] 도 11은 카메라 이미지들 및 IMU 데이터, 그리고 시간 스케일에 걸친 디바이스의 추가적인 포지션 데이터에 기초하는 디바이스의 모션의 예시적인 추정들에 대한 다른 개념적 예시이다. 도 11에서는, 모션의 카메라 추정과 모션의 IMU 추정 간의 차이가 임계치를 초과하기 때문에, 추가적인 포지션 데이터가 위치(1), 위치(2), 위치(3) 및 위치(4)의 그래프 상에 데이터 포인트들로서 결정되고 도시되어 있다. 이 예에서, 포지션 데이터 포인트들은 개략적으로 디바이스의 움직임의 IMU 추정의 경로를 따라 있다.
[0084] 도 12는 디바이스의 모션의 예시적인 전체 추정에 대한 다른 개념적 예시이다. 도 12에서는, 모션의 전체 추정이 모션의 IMU 추정이도록 취해질 수 있는데, 그 이유는 모션의 카메라 추정이 정적이고 포지션 데이터가 모션의 IMU 추정을 지원하기 때문이다.
[0085] 일부 예들 내에서, 디바이스의 모션의 추정은 디스플레이 상의 표현으로서 제공될 수 있다. 도 13은 디바이스의 모션의 표현들의 예시적인 나란한 뷰들을 보여주는 디스플레이이다. 디스플레이는 디바이스의 디스플레이, 또는 디바이스로부터 데이터를 수신하는 다른 디스플레이일 수 있다. 도 13에서, 디스플레이의 부분(1300)은 라이브 비디오 피드(live video feed) 또는 디바이스에 의해 캡처된 이미지들의 디스플레이를 포함한다. 디스플레이의 다른 부분(1302)은 디바이스가 이동하는 경로의 조관(birds-eye) 표현(1304)을 포함한다. 조관 표현(1304)은 디바이스의 모션의 전체 추정의 하향식 투시 라인 표현(예를 들어, 2차원)일 수 있다. 예를 들어, 조관 표현(1304)은 경로를 따라 이동하는 디바이스가 방향전환하는 것을 도시하고, 섹션(1306)에서는, 디바이스가 계단통 위로 수직으로 이동할 수 있다.
[0086] 비록 도 13에 도시된 디스플레이는 나란한 디스플레이이지만, 다수의 별개 디스플레이들이 마찬가지로 제공될 수 있다. 도 13에 도시된 디스플레이는 하나의 축을 따라 디바이스의 모션을 예시할 수 있지만, 실시간으로도 마찬가지로 제공될 수 있다.
[0087] 예들 내에서는, 이미지들 및 IMU 데이터가 수집되어 디바이스의 위치와 연관될 수 있다. 제 1 경우에서, 디바이스의 위치는 알려지지 않을 수 있고, 따라서 이미지들 및 IMU 데이터는 디바이스의 기준 프레임의 제 1 좌표계에 기초하여 디바이스의 시작 위치와 연관될 수 있다. 시작 위치는 좌표들 (0,0,0) 또는 어떤 임의적인 공간으로 정의될 수 있고, 디바이스의 원점으로 간주될 수 있다. 일단 데이터베이스에 저장되고 대응하는 지리적 위치들을 가지는 특징들을 갖는 이미지들에서 특징들의 인지가 수행되면, 디바이스의 모션의 전체 추정은 인지되는 특징들의 개별 지리적 위치들에 기초하여 제 2 좌표계에 있도록 수정될 수 있다. 예를 들어, 디바이스는, 이미지들을 서버에 전송하고 오브젝트의 식별 및 오브젝트의 위치(예를 들어, 특정 거리에 위치된 빌딩)를 수신함으로써 이미지들에서 특징들의 오브젝트 인지를 수행할 수 있다. 예를 들어, 디바이스의 기준 프레임 및 연관된 기준 좌표들은 병진 선형 변환을 사용하여 식별된 오브젝트의 실제 지리적 기준 좌표들로 전환될 수 있다.
[0088] 예를 들어, 일부 경우들에서, 지리적 시작 위치는 GPS 수신기 또는 다른 위치-기반 수신기로부터의 데이터에 기초하여 또한 결정될 수 있다.
[0089] 추가 예들 내에서, 디바이스의 위치들의 추가적인 세부사항들이 캡처된 이미지들 및 수집된 IMU 데이터에 기초하여 결정될 수 있다. 일 예에서는, 디바이스의 배향에 대해 중력의 방향을 결정하기 위해서 중력 벡터들이 IMU로부터의 데이터로부터 결정될 수 있고, 추가적인 정보가 디바이스의 깊이 카메라로부터 수신될 수 있다. 바닥을 나타내는 깊이 카메라로부터의 정보 내의 특징들이 중력 벡터들에 수직하는 깊이 카메라로부터의 정보 내의 특징들에 기초하여 결정될 수 있다. 일단 바닥의 위치의 추정이 결정되면, 바닥까지의 거리에 기초한 디바이스의 높이의 추정이 또한 결정될 수 있다.
[0090] 다른 예에서는, 슬라이딩 시간 윈도우 동안 디바이스의 카메라의 포즈 또는 배향이 디바이스의 모션의 전체 추정에 기초하여 결정될 수 있다. IMU 데이터는 디바이스의 요, 피치 및 롤을 표시할 수 있고, 카메라는 디바이스에 대해 고정 포지션에 있다. 따라서, 카메라의 고정된 상대적 포지션 및 IMU 데이터를 사용하여, 카메라의 배향이 결정될 수 있다. 이것은, 예를 들어, 카메라에 대해 거꾸로 있거나 또는 그렇지 않으면 카메라에 대해 비스듬이 있는 오브젝트들을 나타낼 수 있고, 포즈/배향이 특징 추적 목적들을 위해서 이미지들을 수직으로 있도록 전환하는데 사용될 수 있는 경우들에서, 도움을 줄 수 있다.
[0091] 예들 내에서, 컴퓨팅 디바이스는 그 컴퓨팅 디바이스의 이용가능한 센서들로부터의 출력들에 기초하여 모션 추적을 수행하도록 구성될 수 있다. 예로서, 디바이스의 오도메트리 추정기는 컴퓨팅 디바이스의 모션의 추정을 생성하기 위해서 이용가능한 센서들로부터의 임의의 출력들을 활용하도록 구성될 수 있다. 이를테면, 컴퓨팅 디바이스는 카메라의 렌즈를 방해하는 주머니 또는 백팩 내에 위치될 수 있고, 따라서 이미지 데이터가 유용하지 않을 수 있다. 컴퓨팅 디바이스는 IMU, GPS 수신기, 기압계 등으로부터의 출력들 또는 단계 카운팅과 같은 다른 모션 추적 방법을 모션 프로파일로 스위칭하도록 구성될 수 있다. 오도메트리 추정들은 센서 데이터가 이용가능하지 않게 될 때 모션의 추정의 정확성을 떨어뜨리도록 구성될 수 있다. 카메라들이 방해받고, WiFi/블루투스 시스템들이 액세스포인트들의 범위 밖에 있는 기타 등등의 예들에서는, 오도메트리 추정기가 이용가능한 센서들로부터의 출력들을 통해 포지션의 추정을 여전히 생성할 수 있다. 추정은 이용가능한 센서들로부터의 모든 관측들 및 출력들이 제공되는 확률 또는 센서 출력들에서 불확실성 또는 잡음을 제공하는 신뢰도 레벨과 연관될 수 있다.
[0092] 본원에 설명된 어레인지먼트들은 단지 예시 목적인 것임이 이해되어야 한다. 이로써, 당업자들은 다른 어레인지먼트들 및 다른 엘리먼트들(예를 들어, 머신들, 인터페이스들, 기능들, 순서들 및 기능들의 그룹핑들 등)이 대신 사용될 수 있고, 일부 엘리먼트들은 원하는 결과들에 따라 완전히 생략될 수 있다는 것을 인식할 것이다. 또한, 설명된 다수의 엘리먼트들은 별개의 또는 분포된 컴포넌트들로서 또는 임의의 적절한 결합 및 위치에서 다른 컴포넌트들과 함께 구현될 수 있는 기능 엔티티들이며, 또는 독립 구조들로서 설명된 다른 구조적 엘리먼트들이 결합될 수도 있다.
[0093] 다양한 양상들 및 실시예들이 본원에 개시되었지만, 다른 양상들 및 실시예들이 당업자들에게 명백할 것이다. 본원에 개시된 다양한 양상들 및 실시예들은 예시를 목적으로 하며 제한되는 것으로 의도되지 않으며, 하기 청구항들에 부여되는 등가물들의 전체 범위와 함께, 실제 범위는 하기의 청구항들에 의해 표시된다. 본원에서 사용되는 용어는 단지 특정 실시예들만을 설명하기 위한 것이며 제한되는 것으로 의도되지 않음이 또한 이해될 것이다.

Claims (20)

  1. 방법으로서,
    슬라이딩 시간 윈도우(sliding time window) 동안 디바이스의 IMU(inertial measurement unit)로부터 데이터를 수신하는 단계;
    상기 슬라이딩 시간 윈도우 동안 상기 디바이스의 카메라로부터 이미지들을 수신하는 단계;
    상기 IMU로부터의 데이터에 기초하여 상기 디바이스의 모션(motion)의 IMU 추정을 결정하는 단계;
    상기 이미지들에서의 특징 추적에 기초하여 상기 디바이스의 모션의 카메라 추정을 결정하는 단계;
    상기 디바이스의 모션의 IMU 추정 및 상기 디바이스의 모션의 카메라 추정이 임계량보다 큰 차이를 갖는 것에 기초하여, 상기 슬라이딩 시간 윈도우 동안의 상기 디바이스의 포지션 또는 속도 중 하나 또는 그 초과를 결정하는 단계; 및
    상기 IMU로부터의 데이터 및 상기 디바이스의 포지션 또는 속도 중 하나 또는 그 초과에 의해서 지원될 때 상기 슬라이딩 시간 윈도우 동안의 상기 디바이스의 모션의 전체 추정을 결정하는 단계를 포함하는, 방법.
  2. 제 1항에 있어서,
    상기 슬라이딩 시간 윈도우의 시간 기간들을 매칭시키기 위해서 상기 슬라이딩 시간 윈도우 동안의 상기 카메라로부터의 이미지들을 상기 IMU로부터의 데이터와 연관시키는 단계를 더 포함하는, 방법.
  3. 제 2항에 있어서,
    상기 카메라로부터의 이미지들 간의 차이가 임계량보다 큰 것에 기초하여, 상기 슬라이딩 시간 윈도우 동안의 카메라로부터의 이미지들을 상기 슬라이딩 시간 윈도우 동안의 상기 IMU로부터의 대응하는 데이터와 연관시키는 단계를 더 포함하는, 방법.
  4. 제 1항에 있어서,
    상기 디바이스의 모션의 카메라 추정이 거의 정지 상태인 상기 디바이스를 나타낸다고 결정하는 단계; 및
    응답으로, 상기 디바이스의 수직축 및 수평축에 대해 상기 디바이스의 포지션 또는 속도 중 하나 또는 그 초과를 결정하는 단계를 더 포함하는, 방법.
  5. 제 1항에 있어서,
    상기 슬라이딩 시간 윈도우 동안의 상기 디바이스의 포지션 또는 속도 중 하나 또는 그 초과를 결정하는 단계는 상기 디바이스의 위치-감지 센서들로부터의 하나 또는 그 초과의 출력들에 기초하여 상기 슬라이딩 시간 윈도우 동안의 상기 디바이스의 지리적 위치를 결정하는 단계를 포함하는, 방법.
  6. 제 1항에 있어서,
    연속 이미지들 사이에서 상기 카메라로부터의 이미지들에서의 하나 또는 그 초과의 특징들의 이동을 결정하는 단계;
    상기 하나 또는 그 초과의 특징들을 이동 오브젝트와 연관시키는 단계; 및
    상기 특징 추적을 위해서 상기 이동 오브젝트와 연관된 상기 하나 또는 그 초과의 특징들 이외의 특징들을 사용하는 단계를 더 포함하는, 방법.
  7. 제 1항에 있어서,
    연속 이미지들 사이에서 상기 카메라로부터의 이미지들에서의 하나 또는 그 초과의 특징들의 이동을 결정하는 단계;
    상기 하나 또는 그 초과의 특징들을 정지 오브젝트와 연관시키는 단계; 및
    상기 특징 추적을 위해서 상기 정지 오브젝트와 연관된 상기 하나 또는 그 초과의 특징들을 사용하는 단계를 더 포함하는, 방법.
  8. 제 1항에 있어서,
    상기 카메라로부터의 이미지들에 기초하여 상기 디바이스의 비디오 피드(feed)를 디스플레이에 제공하는 단계; 및
    상기 디바이스의 모션의 전체 추정의 하향식 투시 라인 표현(top-down perspective representation)을 디스플레이에 제공하는 단계를 더 포함하는, 방법.
  9. 제 1항에 있어서,
    상기 디바이스의 기준 프레임에서의 제 1 좌표계에 기초하여 상기 디바이스의 시작 위치를 결정하는 단계; 및
    데이터베이스에 저장되고 대응하는 지리적 위치들을 가지는 특징들을 갖는 이미지들에서의 하나 또는 그 초과의 특징들의 인지에 기초하여, 하나 또는 그 초과의 인지되는 특징들의 개별 지리적 위치들에 기초하여 제 2 좌표계에 있도록 상기 디바이스의 모션의 전체 추정을 수정하는 단계를 더 포함하는, 방법.
  10. 제 1항에 있어서,
    상기 디바이스의 IMU로부터의 데이터로부터 중력 벡터들을 결정하는 단계;
    상기 디바이스의 깊이 카메라로부터 정보를 수신하는 단계;
    상기 깊이 카메라로부터의 정보의 특징들이 상기 중력 벡터들에 수직한다는 것에 기초하여, 바닥(floor)을 나타내는 상기 깊이 카메라로부터의 정보의 특징들을 결정하는 단계; 및
    상기 바닥까지의 거리에 기초하여 상기 디바이스의 높이의 추정을 결정하는 단계를 더 포함하는, 방법.
  11. 제 1항에 있어서,
    상기 디바이스의 모션의 전체 추정에 기초하여 상기 슬라이딩 시간 윈도우 동안의 상기 디바이스의 카메라의 포즈(pose)를 결정하는 단계를 더 포함하는, 방법.
  12. 제 1항에 있어서,
    상기 슬라이딩 시간 윈도우가 새로운 시간 기간들을 포함하기 위해 변경될 때 시간에 걸쳐 상기 디바이스에 대한 모션의 전체 추정을 결정하는 단계를 더 포함하는, 방법.
  13. 제 1항에 있어서,
    상기 디바이스는 복수의 센서들을 포함하고,
    상기 슬라이딩 시간 윈도우 동안의 상기 디바이스의 모션의 전체 추정을 결정하는 단계는 상기 복수의 센서들로부터의 출력들에 또한 기초하여 상기 디바이스의 모션의 전체 추정을 결정하는 단계를 포함하는, 방법.
  14. 제 13항에 있어서,
    상기 복수의 센서들 중 정해진 센서로부터의 출력이 이용가능하지 않다는 것에 기초하여, 상기 복수의 센서들 중 이용가능한 센서들로부터의 정해진 출력에 기초하여 상기 디바이스의 모션의 전체 추정을 결정하는 단계를 더 포함하는, 방법.
  15. 명령들을 저장하도록 구성되는 컴퓨터 판독가능 메모리로서,
    상기 명령들은 디바이스에 의해 실행될 때 상기 디바이스로 하여금 기능들을 수행하게 하고, 상기 기능들은,
    슬라이딩 시간 윈도우 동안 상기 디바이스의 IMU(inertial measurement unit)로부터 데이터를 수신하는 기능;
    상기 슬라이딩 시간 윈도우 동안 상기 디바이스의 카메라로부터 이미지들을 수신하는 기능;
    상기 IMU로부터의 데이터에 기초하여 상기 디바이스의 모션의 IMU 추정을 결정하는 기능;
    상기 이미지들에서의 특징 추적에 기초하여 상기 디바이스의 모션의 카메라 추정을 결정하는 기능;
    상기 디바이스의 모션의 IMU 추정 및 상기 디바이스의 모션의 카메라 추정이 임계량보다 큰 차이를 갖는 것에 기초하여, 상기 슬라이딩 시간 윈도우 동안의 상기 디바이스의 포지션 또는 속도 중 하나 또는 그 초과를 결정하는 기능; 및
    상기 IMU로부터의 데이터 및 상기 디바이스의 포지션 또는 속도 중 하나 또는 그 초과에 의해서 지원될 때 상기 슬라이딩 시간 윈도우 동안의 상기 디바이스의 모션의 전체 추정을 결정하는 기능을 포함하는, 컴퓨터 판독가능 메모리.
  16. 제 15항에 있어서,
    상기 기능들은,
    상기 디바이스의 모션의 카메라 추정이 거의 정지 상태인 상기 디바이스를 나타낸다고 결정하는 기능; 및
    응답으로, 상기 디바이스의 수직축 및 수평축에 대해 상기 디바이스의 포지션 또는 속도 중 하나 또는 그 초과를 결정하는 기능을 더 포함하는, 컴퓨터 판독가능 메모리.
  17. 제 15항에 있어서,
    상기 기능들은,
    상기 디바이스의 기준 프레임에서의 제 1 좌표계에 기초하여 상기 디바이스의 시작 위치를 결정하는 기능; 및
    데이터베이스에 저장되고 대응하는 지리적 위치들을 가지는 특징들을 갖는 이미지들에서의 하나 또는 그 초과의 특징들의 인지에 기초하여, 하나 또는 그 초과의 인지되는 특징들의 개별 지리적 위치들에 기초하여 제 2 좌표계에 있도록 상기 디바이스의 모션의 전체 추정을 수정하는 기능을 더 포함하는, 컴퓨터 판독가능 메모리.
  18. 디바이스로서,
    하나 또는 그 초과의 프로세서들; 및
    명령들을 저장하도록 구성되는 데이터 저장소를 포함하고,
    상기 명령들은 상기 하나 또는 그 초과의 프로세서들에 의해 실행될 때 상기 디바이스로 하여금 기능들을 수행하게 하고, 상기 기능들은,
    슬라이딩 시간 윈도우 동안 상기 디바이스의 IMU(inertial measurement unit)로부터 데이터를 수신하는 기능;
    상기 슬라이딩 시간 윈도우 동안 상기 디바이스의 카메라로부터 이미지들을 수신하는 기능;
    상기 IMU로부터의 데이터에 기초하여 상기 디바이스의 모션의 IMU 추정을 결정하는 기능;
    상기 이미지들에서의 특징 추적에 기초하여 상기 디바이스의 모션의 카메라 추정을 결정하는 기능;
    상기 디바이스의 모션의 IMU 추정 및 상기 디바이스의 모션의 카메라 추정이 임계량보다 큰 차이를 갖는 것에 기초하여, 상기 슬라이딩 시간 윈도우 동안의 상기 디바이스의 포지션 또는 속도 중 하나 또는 그 초과를 결정하는 기능; 및
    상기 IMU로부터의 데이터 및 상기 디바이스의 포지션 또는 속도 중 하나 또는 그 초과에 의해서 지원될 때 상기 슬라이딩 시간 윈도우 동안의 상기 디바이스의 모션의 전체 추정을 결정하는 기능을 포함하는, 디바이스.
  19. 제 18항에 있어서,
    상기 기능들은 상기 디바이스의 모션의 전체 추정에 기초하여 상기 슬라이딩 시간 윈도우 동안의 상기 디바이스의 카메라의 포즈를 결정하는 기능을 더 포함하는, 디바이스.
  20. 제 18항에 있어서,
    복수의 센서들을 더 포함하고, 그리고
    상기 슬라이딩 시간 윈도우 동안의 상기 디바이스의 모션의 전체 추정을 결정하는 기능은 상기 복수의 센서들로부터의 출력들에 또한 기초하여 상기 디바이스의 모션의 전체 추정을 결정하는 기능을 포함하고, 그리고
    상기 기능들은 상기 복수의 센서들 중 정해진 센서로부터의 출력이 이용가능하지 않다는 것에 기초하여, 상기 복수의 센서들 중 이용가능한 센서들로부터의 정해진 출력들에 기초하여 상기 디바이스의 모션의 전체 추정을 결정하는 기능을 더 포함하는, 디바이스.
KR1020167020628A 2013-12-30 2014-12-29 디바이스의 모션의 추정을 결정하기 위한 방법들 및 시스템들 KR20160122709A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/143,043 2013-12-30
US14/143,043 US9303999B2 (en) 2013-12-30 2013-12-30 Methods and systems for determining estimation of motion of a device
PCT/US2014/072467 WO2015103092A1 (en) 2013-12-30 2014-12-29 Methods and systems for determining elstimation of motion of a device

Publications (1)

Publication Number Publication Date
KR20160122709A true KR20160122709A (ko) 2016-10-24

Family

ID=53481325

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167020628A KR20160122709A (ko) 2013-12-30 2014-12-29 디바이스의 모션의 추정을 결정하기 위한 방법들 및 시스템들

Country Status (5)

Country Link
US (1) US9303999B2 (ko)
EP (1) EP3090407B1 (ko)
KR (1) KR20160122709A (ko)
CN (1) CN105940429B (ko)
WO (1) WO2015103092A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190001086A (ko) * 2017-06-26 2019-01-04 서울대학교산학협력단 관성 및 단일 광학 센서를 이용한 슬라이딩 윈도우 기반 비-구조 위치 인식 방법, 이를 수행하기 위한 기록 매체 및 장치

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9766074B2 (en) 2008-03-28 2017-09-19 Regents Of The University Of Minnesota Vision-aided inertial navigation
AU2014306813A1 (en) * 2013-08-12 2016-03-31 Flyby Media, Inc. Visual-based inertial navigation
US9524580B2 (en) * 2014-01-06 2016-12-20 Oculus Vr, Llc Calibration of virtual reality systems
US9277361B2 (en) 2014-02-20 2016-03-01 Google Inc. Methods and systems for cross-validating sensor data acquired using sensors of a mobile device
US9437000B2 (en) * 2014-02-20 2016-09-06 Google Inc. Odometry feature matching
USD781318S1 (en) 2014-04-22 2017-03-14 Google Inc. Display screen with graphical user interface or portion thereof
US9934222B2 (en) 2014-04-22 2018-04-03 Google Llc Providing a thumbnail image that follows a main image
US9972121B2 (en) * 2014-04-22 2018-05-15 Google Llc Selecting time-distributed panoramic images for display
USD780777S1 (en) 2014-04-22 2017-03-07 Google Inc. Display screen with graphical user interface or portion thereof
USD781317S1 (en) 2014-04-22 2017-03-14 Google Inc. Display screen with graphical user interface or portion thereof
US10012504B2 (en) 2014-06-19 2018-07-03 Regents Of The University Of Minnesota Efficient vision-aided inertial navigation using a rolling-shutter camera with inaccurate timestamps
CN104361303A (zh) * 2014-10-22 2015-02-18 小米科技有限责任公司 终端异常的处理方法及装置、电子设备
US20180340788A1 (en) * 2015-10-19 2018-11-29 Nokia Technologies Oy A navigation apparatus and associated methods
US10012509B2 (en) * 2015-11-12 2018-07-03 Blackberry Limited Utilizing camera to assist with indoor pedestrian navigation
EP3478209A1 (en) 2016-06-30 2019-05-08 Koninklijke Philips N.V. Intertial device tracking system and method of operation thereof
US11466990B2 (en) 2016-07-22 2022-10-11 Regents Of The University Of Minnesota Square-root multi-state constraint Kalman filter for vision-aided inertial navigation system
US10745242B2 (en) 2016-08-30 2020-08-18 Inventio Ag Method for analysis and measurement system for measuring an elevator shaft of an elevator system
WO2018053786A1 (en) 2016-09-23 2018-03-29 Qualcomm Incorporated Adaptive motion filtering in an unmanned autonomous vehicle
US10452133B2 (en) 2016-12-12 2019-10-22 Microsoft Technology Licensing, Llc Interacting with an environment using a parent device and at least one companion device
CN110325821B (zh) * 2017-02-14 2021-12-07 天宝公司 利用时间同步的大地测量
US11580021B2 (en) * 2017-06-02 2023-02-14 Audi Ag Method and device for situation-dependent storage of data of a system
CN107341831B (zh) * 2017-07-06 2020-10-27 青岛海通胜行智能科技有限公司 一种imu辅助的视觉特征鲁棒跟踪方法及装置
FR3069317B1 (fr) * 2017-07-21 2020-10-16 Sysnav Procede d'estimation du mouvement d'un objet evoluant dans un environnement et un champ magnetique
GB2567012B (en) * 2017-10-02 2021-05-12 Advanced Risc Mach Ltd Motion Sensing
TWI640931B (zh) * 2017-11-23 2018-11-11 財團法人資訊工業策進會 影像目標追蹤方法及裝置
GB2579760B (en) * 2018-03-29 2023-03-22 Displaylink Uk Ltd Position error measurement in an extended reality mobile display device
US11940277B2 (en) 2018-05-29 2024-03-26 Regents Of The University Of Minnesota Vision-aided inertial navigation system for ground vehicle localization
US11334174B2 (en) 2019-07-18 2022-05-17 Eyal Shlomot Universal pointing and interacting device
EP4008101A1 (en) 2019-08-01 2022-06-08 Stoneridge Electronics AB Camera image and sensor fusion for mirror replacement system
CN110708465B (zh) * 2019-10-21 2020-12-25 厦门美图之家科技有限公司 视频抖动校正方法、装置、可读存储介质及电子设备
CN110942474B (zh) * 2019-11-27 2023-06-13 炬星科技(深圳)有限公司 机器人目标跟踪方法、设备及存储介质
CN114415223B (zh) * 2021-12-25 2023-02-03 星豆慧联(武汉)信息技术有限公司 一种优化设备运行轨迹的方法及系统
CN114322946B (zh) * 2021-12-30 2024-01-09 杭州环木信息科技有限责任公司 一种具有高保真度的从光学数据到惯性数据的转化方法

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6658354B2 (en) 2002-03-15 2003-12-02 American Gnc Corporation Interruption free navigator
KR100930043B1 (ko) 2002-11-23 2009-12-08 삼성전자주식회사 스크롤링 텍스트나 그래픽 데이터를 검출할 수 있는움직임 추정장치 및 방법
JP4532856B2 (ja) 2003-07-08 2010-08-25 キヤノン株式会社 位置姿勢計測方法及び装置
KR100560966B1 (ko) * 2004-10-12 2006-03-15 삼성광주전자 주식회사 로봇 청소기의 자이로 센서 보정방법
KR100944934B1 (ko) 2007-10-26 2010-03-02 아주대학교산학협력단 사용자의 행동인식 및 위치추적 시스템
US9766074B2 (en) * 2008-03-28 2017-09-19 Regents Of The University Of Minnesota Vision-aided inertial navigation
EP2199983A1 (en) * 2008-12-22 2010-06-23 Nederlandse Centrale Organisatie Voor Toegepast Natuurwetenschappelijk Onderzoek TNO A method of estimating a motion of a multiple camera system, a multiple camera system and a computer program product
US10207719B2 (en) 2010-07-19 2019-02-19 Nxp Usa, Inc. Use of multiple internal sensors for measurements validation
US8711206B2 (en) * 2011-01-31 2014-04-29 Microsoft Corporation Mobile camera localization using depth maps
US9619035B2 (en) * 2011-03-04 2017-04-11 Microsoft Technology Licensing, Llc Gesture detection and recognition
CN104221031B (zh) * 2011-11-18 2019-06-11 苹果公司 将影像特征与参考特征相匹配之方法及其所用集成电路
KR101241171B1 (ko) 2011-11-22 2013-03-11 현대자동차주식회사 영상센서를 이용한 gps 위치정보 보정방법
US9251587B2 (en) * 2013-04-05 2016-02-02 Caterpillar Inc. Motion estimation utilizing range detection-enhanced visual odometry
US20140341465A1 (en) * 2013-05-16 2014-11-20 The Regents Of The University Of California Real-time pose estimation system using inertial and feature measurements
AU2014306813A1 (en) * 2013-08-12 2016-03-31 Flyby Media, Inc. Visual-based inertial navigation
KR20130141404A (ko) 2013-09-09 2013-12-26 (주)바쉔 이동하는 사용자를 위한 실시간 감시 시스템
US9277361B2 (en) 2014-02-20 2016-03-01 Google Inc. Methods and systems for cross-validating sensor data acquired using sensors of a mobile device

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190001086A (ko) * 2017-06-26 2019-01-04 서울대학교산학협력단 관성 및 단일 광학 센서를 이용한 슬라이딩 윈도우 기반 비-구조 위치 인식 방법, 이를 수행하기 위한 기록 매체 및 장치

Also Published As

Publication number Publication date
WO2015103092A1 (en) 2015-07-09
CN105940429A (zh) 2016-09-14
US9303999B2 (en) 2016-04-05
EP3090407B1 (en) 2019-10-30
US20150185018A1 (en) 2015-07-02
EP3090407A4 (en) 2017-08-09
CN105940429B (zh) 2018-06-22
EP3090407A1 (en) 2016-11-09

Similar Documents

Publication Publication Date Title
US9303999B2 (en) Methods and systems for determining estimation of motion of a device
US10242454B2 (en) System for depth data filtering based on amplitude energy values
US9990547B2 (en) Odometry feature matching
US9596443B2 (en) Methods and systems for providing sensor data and image data to an application processor in a digital image format
US9631956B2 (en) Methods and systems for calibrating sensors of a computing device
US20150193971A1 (en) Methods and Systems for Generating a Map including Sparse and Dense Mapping Information
US9277361B2 (en) Methods and systems for cross-validating sensor data acquired using sensors of a mobile device
US20150092048A1 (en) Off-Target Tracking Using Feature Aiding in the Context of Inertial Navigation
US9485366B2 (en) Methods and systems for communicating sensor data on a mobile device
AU2015275198B2 (en) Methods and systems for calibrating sensors using recognized objects
US9752892B2 (en) Methods and systems for acquiring sensor data on a device using multiple acquisition modes
US9445015B2 (en) Methods and systems for adjusting sensor viewpoint to a virtual viewpoint

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E601 Decision to refuse application