KR102131477B1 - 컴퓨터 비전 애플리케이션 초기화를 용이하게 하는 방법들 - Google Patents

컴퓨터 비전 애플리케이션 초기화를 용이하게 하는 방법들 Download PDF

Info

Publication number
KR102131477B1
KR102131477B1 KR1020157034212A KR20157034212A KR102131477B1 KR 102131477 B1 KR102131477 B1 KR 102131477B1 KR 1020157034212 A KR1020157034212 A KR 1020157034212A KR 20157034212 A KR20157034212 A KR 20157034212A KR 102131477 B1 KR102131477 B1 KR 102131477B1
Authority
KR
South Korea
Prior art keywords
camera
indication
movement
image
trajectory
Prior art date
Application number
KR1020157034212A
Other languages
English (en)
Other versions
KR20160003233A (ko
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 KR20160003233A publication Critical patent/KR20160003233A/ko
Application granted granted Critical
Publication of KR102131477B1 publication Critical patent/KR102131477B1/ko

Links

Images

Classifications

    • H04N5/23203
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C25/00Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass
    • G01C25/005Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass initial alignment, calibration or starting-up of inertial devices
    • 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/69Control of means for changing angle of the field of view, e.g. optical zoom objectives or electronic zooming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • 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/66Remote control of cameras or camera parts, e.g. by remote control devices
    • H04N5/23296
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Manufacturing & Machinery (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • User Interface Of Digital Computer (AREA)
  • Studio Devices (AREA)
  • Image Analysis (AREA)
  • Position Input By Displaying (AREA)
  • Television Signal Processing For Recording (AREA)

Abstract

개시된 실시형태들은 카메라 및 디스플레이를 포함하는 사용자 디바이스 (UD) 들 상의 컴퓨터 비전 (CV) 애플리케이션들의 초기화를 위한 시스템들, 방법들 및 장치들에 관한 것이다. 일부 실시형태들에서, 컴퓨터 비전 (CV) 애플리케이션의 초기화를 위한 최적의 카메라 궤적이 초기 카메라 포즈 및 추정된 피봇 거리에 기초하여 결정될 수도 있다. 예를 들어, 초기 카메라 포즈는 카메라에 의해 캡처된 제 1 이미지에 기초하여 추정될 수도 있다. 또한, 디스플레이는 카메라에 대한 소망된 이동 방향의 표시로 실시간으로 업데이트될 수도 있다. 일부 실시형태들에서, 소망된 이동 방향의 표시는 현재의 카메라 포즈 및 최적의 궤적에 부분적으로 기초할 수도 있고, 현재의 카메라 포즈는 카메라에 의해 캡처된 현재의 이미지에 기초하여 추정될 수도 있다.

Description

컴퓨터 비전 애플리케이션 초기화를 용이하게 하는 방법들{METHODS FOR FACILITATING COMPUTER VISION APPLICATION INITIALIZATION}
이 출원은, 2013년 5월 2일 출원된 "Methods for Facilitating Computer Vision Application Initialization" 라는 제목의 미국 가출원 제 61/818,894 호, 및 2013년 9월 30일 출원된 "Methods for Facilitating Computer Vision Application Initialization" 라는 제목의 미국 가출원 제 61/884,845 호의 이익 및 우선권을 주장하는, 2014년 5월 2일 출원된 "Methods for Facilitating Computer Vision Application Initialization" 라는 제목의 미국 출원 제 14/268,784 호의 이익 및 우선권을 주장한다. 상기 식별된 미국 특허 출원들은 참조에 의해 그들 전체가 본원에 통합된다.
본 명세서에서 개시된 주제는 일반적으로 컴퓨터 비전에 관한 것이고, 특히, 컴퓨터 비전 애플리케이션들을 초기화하는 방법들에 관한 것이다.
SLAM (Simultaneous localization and mapping) 은 환경 또는 장면으로부터 타겟 (target) 을 구축하기 위해 증강 현실 시스템들 및 로봇 내비게이션에서 사용된다. VSLAM (Visual SLAM) 은 환경의 타겟 또는 모델을 구축하기 위해 입력으로서 카메라 또는 시각적 센서 데이터 또는 이미지들을 이용한다. VSLAM 이 증강 현실 (Augmented Reality; AR) 시스템과 관련하여 사용되었을 때, 가상 오브젝트들 (virtual objects) 은 실세계 (real world) 의 사용자의 뷰 (view) 내로 삽입되고 사용자 디바이스 상에 디스플레이될 수 있다.
단일 카메라를 이용한 VSLAM 을 활용한 추적 시스템은 단일 카메라에 의해 캡처된 2 개의 분리된 기준 이미지들 (reference images) 로부터 3D 타겟을 초기화할 수도 있다. 2 개의 기준 이미지들에 기초한 3D 타겟들에 대한 VSLAM 초기화를 위한 전통적인 기법들은 사용자들이 2 개의 기준 이미지들 사이의 직관적이지 않은 카메라 모션들의 특정 시퀀스를 수행하는 동시에 양 이미지들로부터의 장면들 사이의 적당한 오버랩 (overlap) 을 유지하는 것을 필요로 할 수도 있다. 모션들의 시퀀스는 환경에서 실제 평면 (real plane) 을 발견하고 이 평면으로부터 3D 타겟을 초기화하기 위해 3D 재구축 방법들에 의해 사용된다.
정확하고 고품질의 SLAM 맵들의 형성은 강건한 (robust) 초기화 프로세스에 의존하는 한편, 최종 사용자들을 위한 SLAM 초기화 절차들의 사용가능성은 종종 무시되어 왔다. 따라서, 시스템들, 방법들 및 인터페이스들이 VSLAM 초기화에 대한 사용자 경험을 향상시킬 필요성이 존재한다.
일부 양태들에 따르면, 카메라 및 디스플레이를 포함하는 사용자 디바이스 (user device; UD) 상에서의 방법이 개시된다. 일부 실시형태들에서, 이 방법은: 초기 카메라 포즈 (pose) 및 추정된 피봇 (pivot) 거리에 기초하여 컴퓨터 비전 (Computer Vision; CV) 애플리케이션의 초기화 (initialization) 를 위한 최적의 카메라 궤적 (trajectory) 을 결정하는 단계로서, 초기 카메라 포즈는 카메라에 의해 캡처된 제 1 이미지에 기초하여 추정되는, 상기 최적의 카메라 궤적을 결정하는 단계; 및 카메라에 대한 소망된 이동 방향의 표시로 실시간으로 디스플레이를 업데이트하는 단계로서, 소망된 이동 방향의 표시는 현재의 카메라 포즈 및 최적의 궤적에 부분적으로 기초하고, 현재의 카메라 포즈는 카메라에 의해 캡처된 현재의 이미지에 기초하여 추정되는, 상기 카메라에 대한 소망된 이동 방향의 표시로 실시간으로 상기 디스플레이를 업데이트하는 단계를 포함한다.
다른 양태에서, 사용자 디바이스 (UD) 는: 이미지들의 시퀀스를 캡처 (capture) 하기 위한 이미지 센서; 디스플레이; 및 이미지 센서 및 디스플레이에 커플링된 프로세서를 포함할 수도 있다. 일부 실시형태들에서, 프로세서는: 초기 이미지 센서 포즈 및 추정된 피봇 거리에 기초하여 컴퓨터 비전 (CV) 애플리케이션의 초기화를 위한 최적의 이미지 센서 궤적을 결정하는 것으로서, 초기 이미지 센서 포즈는 이미지 센서에 의해 캡처된 제 1 이미지에 기초하여 추정되는, 상기 최적의 이미지 센서 궤적을 결정하는 것; 및, 이미지 센서에 대한 소망된 이동 방향의 표시로 실시간으로 디스플레이를 업데이트하는 것으로서, 소망된 이동 방향의 표시는 현재의 이미지 센서 포즈 및 최적의 궤적에 부분적으로 기초하고, 현재의 이미지 센서 포즈는 이미지 센서에 의해 캡처된 현재의 이미지에 기초하여 추정되는, 상기 이미지 센서에 대한 소망된 이동 방향의 표시로 실시간으로 디스플레이를 업데이트하는 것을 하도록 구성될 수도 있다.
추가적인 양태에서, 장치는: 이미지들의 시퀀스를 캡처하기 위한 이미지 캡처 수단; 디스플레이 수단; 이미지 캡처 수단의 초기 포즈 및 추정된 피봇 거리에 기초하여 컴퓨터 비전 (CV) 애플리케이션의 초기화를 위한 이미지 캡처 수단의 최적의 궤적을 결정하는 수단으로서, 이미지 캡처 수단의 초기 포즈는 이미지 캡처 수단에 의해 캡처된 제 1 이미지에 기초하여 추정되는, 상기 이미지 캡처 수단의 최적의 궤적을 결정하는 수단; 및 이미지 캡처 수단에 대한 소망된 이동 방향의 표시로 실시간으로 디스플레이 수단을 업데이트하는 수단으로서, 소망된 이동 방향의 표시는 이미지 캡처 수단의 현재의 포즈 및 최적의 궤적에 부분적으로 기초하고, 이미지 캡처 수단의 현재의 포즈는 이미지 캡처 수단에 의해 캡처된 현재의 이미지에 기초하여 추정되는, 상기 디스플레이 수단을 업데이트하는 수단을 포함한다.
또한, 개시된 실시형태들은 또한 명령들을 포함하는 컴퓨터 판독가능 매체에 관한 것이고, 상기 명령들은, 프로세서에 의해 실행될 때, 카메라 및 디스플레이를 포함하는 사용자 디바이스 (UD) 상에서의 방법을 수행하고, 상기 방법은: 초기 카메라 포즈 및 추정된 피봇 거리에 기초하여 컴퓨터 비전 (CV) 애플리케이션의 초기화를 위한 최적의 카메라 궤적을 결정하는 단계로서, 초기 카메라 포즈는 카메라에 의해 캡처된 제 1 이미지에 기초하여 추정되는, 상기 최적의 카메라 궤적을 결정하는 단계; 및, 카메라에 대한 소망된 이동 방향의 표시로 실시간으로 디스플레이를 업데이트하는 단계로서, 소망된 이동 방향의 표시는 현재의 카메라 포즈 및 최적의 궤적에 부분적으로 기초하고, 현재의 카메라 포즈는 카메라에 의해 캡처된 현재의 이미지에 기초하여 추정되는, 상기 카메라에 대한 소망된 이동 방향의 표시로 실시간으로 디스플레이를 업데이트하는 단계를 포함한다.
개시된 실시형태들은 또한, 컴퓨터 판독가능 매체들 또는 컴퓨터 판독가능 메모리를 이용하여 프로세서들에 의해 형성, 저장, 액세스, 또는 수정되는 소프트웨어, 펌웨어, 및 프로그램 명령들에 관한 것이다. 기술된 방법들은 프로세서들 및 다양한 사용자 디바이스들 상에서 수행될 수도 있다.
이들 및 다른 실시형태들은 다음의 도면들과 관련하여 이하 더 설명된다. 다른 양태들은 예시의 방식으로 다양한 양태들이 나타내어지고 설명된 이하의 상세한 설명으로부터 당해 기술분야에서 통상의 지식을 가진 자 (이하, '통상의 기술자' 라 함) 에게 자명하게 될 것이다. 도면들 및 상세한 설명들은 성질상 예시적인 것으로 고려되어야 하고 제한적인 것으로서 고려되어서는 아니된다.
본 발명의 실시형태들은 도면들을 참조하여 오직 예시적인 방식으로 설명될 것이다.
도 1 은 예시적인 사용자 디바이스의 블록도를 나타낸다.
도 2a 및 도 2b 는 SLAM/VSLAM 초기화를 용이하게 하기 위한 카메라의 예시적인 모션들을 나타낸다.
도 3a 내지 도 3c 는 개시된 실시형태들과 일치하는 방식으로 SLAM 초기화 모션 시퀀스의 표시를 제공하기 위해 2D 스크린 정렬된 UI 엘리먼트들을 이용하는 예시적인 GUI 의 모습들을 나타낸다.
도 4a 및 도 4b 는 개시된 실시형태들과 일치하는 방식으로 SLAM 초기화 모션 시퀀스의 표시를 제공하기 위해 3D 스크린 정렬된 UI 엘리먼트들을 이용하는 예시적인 GUI 의 모습들을 나타낸다.
도 5a 내지 도 5c 는 개시된 실시형태들과 일치하는 방식으로 SLAM 초기화 모션 시퀀스의 표시를 제공하기 위해 3D 스크린 정렬된 UI 엘리먼트들을 이용하는 예시적인 GUI 의 모습들을 나타낸다.
도 6a 및 도 6b 는 개시된 실시형태들과 일치하는 방식으로 SLAM 초기화 모션 시퀀스의 표시를 제공하기 위해 3D 스크린 정렬된 UI 엘리먼트들을 이용하는 예시적인 GUI 의 모습들을 나타낸다.
도 7 은 개시된 실시형태들과 일치하는 방식으로 모션 시퀀스의 표시를 제공하기 위해 3D 세계 정렬된 UI 엘리먼트들을 이용하는 예시적인 GUI 의 일 실시형태를 나타낸다.
도 8a 및 도 8b 는 개시된 실시형태들과 일치하는 방식으로 정렬된 UI 엘리먼트들의 2.5-D 표현을 이용하는 GUI 의 예시적인 구현을 나타낸다.
도 9 는 개시된 실시형태들과 일치하는 방식으로, 초기화를 위한 피처 풍부한 로케이션들을 선택하고 및/또는 초기화를 위한 빈곤한 로케이션들의 이용을 방지하기 위해 2.5-D 표현을 이용하는 GUI 의 예시적인 구현을 나타낸다.
도 10a 및 도 10b 는 개시된 실시형태들과 일치하는 방식으로, SLAM/VSLAM 초기화를 수행하는 예시적인 방법에 대한 플로우차트를 나타낸다.
도 11 은 개시된 실시형태들과 일치하는 방식으로, SLAM/VSLAM 초기화를 수행하는 예시적인 방법 (1100) 에 대한 플로우차트를 나타낸다.
첨부된 도면들과 함께 이하에서 전개되는 상세한 설명은 본 개시의 다양한 양태들의 설명으로서 의도되고, 본 발명이 실시될 수도 있는 유일한 양태들만을 나타내도록 의도되는 것은 아니다. 이 개시에서 기술된 각각의 양태는 단지 본 개시의 예 또는 예시로서 제공되는 것이고, 반드시 다른 양태들에 비해 선호되거나 유리한 것으로서 해석될 필요는 없다. 상세한 설명은 본 개시의 완전한 이해를 제공할 목적으로 특정 상세들을 포함한다. 하지만, 본 개시는 이들 특정 상세들 없이 실시될 수도 있다는 것이 통상의 기술자에게 명백할 것이다. 일부 경우들에서, 잘 알려진 구조들 및 디바이스들은 본 개시의 개념들을 모호하게 하는 것을 회피하기 위해 블록도 형태로 도시된다. 약어 및 다른 설명적인 전문 용어는 단지 편의성 및 명료성을 위해 사용될 수도 있고, 본 개시의 범위를 제한하려는 의도는 아니다.
본 명세서에서 사용된 바와 같이, 사용자 디바이스는, 추적 초기화를 수행하고 AR 및 다른 컴퓨터 비전 (CV) 애플리케이션들을 실행할 수 있는 예시적인 사용자 디바이스 (User Device; UD) (100) 및/또는 다른 사용자 장비의 형태를 취할 수도 있다. 일부 실시형태들에서, UD (100) 는 셀룰러 폰, 모바일 폰 또는 다른 무선 통신 디바이스, 퍼스널 통신 시스템 (PCS) 디바이스, 퍼스널 내비게이션 디바이스 (PND), 퍼스널 정보 관리자 (PIM), 개인 휴대 정보 단말기 (PDA), 태블릿 컴퓨터, 핸드헬드 컴퓨팅 디바이스, 랩톱 또는 무선 통신 및/또는 내비게이션 신호들을 수신할 수 있는 임의의 다른 적합한 모바일 디바이스와 같은, 모바일 스테이션 또는 모바일 디바이스의 형태를 취할 수도 있다. 일부 실시형태들에서, UD (100) 는 착용가능 헤드셋과 짝지어진 디스플레이 디바이스 및/또는 카메라를 포함할 수도 있는 착용가능 컴퓨팅 디바이스의 형태를 취할 수도 있다. 예를 들어, 헤드셋은, 라이브 (live) 및/또는 실세계 이미지들을 디스플레이하기 위해 이용될 수도 있는 헤드 마운티드 디스플레이 (head mounted display; HMD) 를 포함할 수도 있다. 일부 실시형태들에서, 라이브 이미지는 하나 이상의 가상 오브젝트들과 중첩될 수도 있다.
"사용자 디바이스" 라는 용어는, 위성 신호 수신, 보조 데이터 수신, 및/또는 위치-관련 프로세싱이 디바이스에서 또는 PND 에서 일어나든지에 상관 없이, 단거리 무선, 적외선, 유선 연결, 또는, 다른 연결 등에 의해 퍼스널 내비게이션 디바이스 (PND) 와 통신하는 디바이스들을 지칭하기 위해 사용된다. 또한, "사용자 디바이스" 는, 인터넷, Wi-Fi, 또는 다른 네트워크 등을 통해 서버와 통신할 수 있는, 무선 통신 디바이스들, 컴퓨터들, 랩톱들 등을 포함하는, 모든 디바이스들을 포함하도록 의도된다. 상기의 것들의 임의의 동작가능한 조합이 또한 "사용자 디바이스" 로 고려된다. 본 명세서에서 개시된 실시형태들은, 독립형 사용자 디바이스에서, 예를 들어, 다른 디바이스와의 통신을 필요로 하지 않는 디바이스들에서 사용될 수도 있다.
"사용자 디바이스" 라는 용어는 또한, 네트워크에 연결하도록 또는 그 외에, 다른 디바이스와 무선으로 또는 유선 접속을 통해 통신하도록 구성되지 않을 수도 있는 게이밍 또는 다른 디바이스들을 포함하도록 의도된다. 예를 들어, "사용자 디바이스" 는 통신 엘리먼트들 및/또는 네트워킹 기능을 생략할 수도 있다. 예를 들어, 본 명세서에서 기술된 실시형태들은 다른 디바이스와 유선 또는 무선 네트워킹을 위해 접속하도록 구성되지 않는 독립형 디바이스에서 구현될 수도 있다.
본 명세서에서 사용된 바와 같은 컴퓨터 비전 애플리케이션이라는 용어는 이미지들의 획득, 프로세싱, 분석, 및 이해에 관련된 애플리케이션들의 클래스를 지칭한다. CV 애플리케이션들은, 비제한적으로, 맵핑 (mapping), 3D 모델링을 포함하는 모델링, 내비게이션, 증강 현실 애플리케이션들, 및 다양한 다른 애플리케이션들을 포함하고, 여기서, 이미지 센서로부터 획득된 이미지들은 맵들, 모델들을 구축하기 위해서 및/또는 캡처된 이미지들로부터 환경에 관한 구조적 정보를 도출/표현하기 위해서 프로세싱된다. 많은 CV 애플리케이션들에서, 캡처된 이미지들에 관련된 기하학적 정보는 초기화 단계에서 맵 또는 모델을 구축하기 위해 사용될 수도 있다. 따라서, 모델의 품질은 초기화 동안의 캡처된 이미지들의 포지션들 및/또는 카메라 이동의 궤적에 의존할 수도 있다. 일부 경우들에서, CV 애플리케이션들은 초기화 동안 사용자들에 의해 추종될 특정 이동들 또는 모션 시퀀스들을 선호할 수도 있다.
또한, SLAM 이라는 용어는, 모델링되고 있는 환경의 맵과 같은 환경의 맵이 형성되는 동시에 그 맵에 대한 사용자 디바이스의 포즈를 추적하는 기법들의 클래스를 지칭하기 위해 사용된다. 사용자 디바이스의 포즈는 기준의 이미지 또는 프레임에 대한 사용자 디바이스의 포지션 (position) 및 배향 (orientation) 을 지칭한다. SLAM 기법들은, 사용자 디바이스 상의 카메라와 같은 단일 (단안) 카메라에 의해 캡처된 이미지들이 환경의 맵을 형성하는 동시에 그 맵에 대한 카메라의 포즈를 추적하기 위해 사용될 수도 있는 시각적 SLAM (VSLAM) 을 포함한다. VSLAM 은 따라서, 주위 환경의 3-D 구조를 또한 결정하는 동시에 카메라의 6DOF 포즈를 추적하는 것을 수반할 수도 있다. 예를 들어, 일부 실시형태들에서, VSLAM 기법들은, 하나 이상의 캡처된 이미지 프레임들에서 두드러진 피처 패치들 (salient feature patches) 을 검출하고, 그 캡처된 이미지 프레임들을 키프레임들 (keyframes) 또는 기준 프레임들 (reference frames) 로서 저장할 수도 있다. 카메라의 포즈는 그러면, 예를 들어, 현재 캡처된 이미지 프레임을 하나 이상의 키프레임들과 비교함으로써 결정될 수도 있다.
SLAM/VSLAM 또는 다른 CV 애플리케이션들을 이용하기 이전에, 초기화 프로세스가 통상적으로 수행된다. 예를 들어, SLAM 맵은 오브젝트 추적 및 더 확장적인 맵 구축 이전에 초기화될 수도 있다. 이 초기화를 수행하기 위한 수개의 방식들이 존재하지만, 그 방법들은 타겟-기반 (target-based) 및 타겟-없는 (target-less) 초기화 기법들로 분류될 수도 있다. 타겟-기반 기법들은 장면 내에 알려진 오브젝트의 존재를 가정하는 반면, 타겟-없는 접근법들은 임의의 장면들로 작업할 수도 있다. 비록 SLAM/VSLAM 과 같은 특정 예시적인 애플리케이션들이 본 명세서에서 논의되지만, 본 명세서에서 개시된 실시형태들은 일반적으로 CV 애플리케이션들, 절차들 및/또는 함수들에 대한 초기화에 관한 것이다. 예를 들어, 초기화는, 강건하고 투명한 추적에 종종 의존하는, AR 애플리케이션들 (예컨대, 게이밍 애플리케이션들) 에 대해 수행될 수도 있다.
통상적으로, 타겟-없는 초기화는, 카메라 모션들의 시퀀스가 초기화 프로세스 수렴을 만들도록 수행하는 것에 기초한다. 예를 들어, 타겟 없음에 대해, 상이한 뷰포인트들로부터 동일한 장면을 관찰하고 이에 의해 피처 포인트들의 공통 셋트를 관찰하는 2 개의 뷰들 사이에 적절한 베이스라인 (baseline) 을 형성하는 궤적에서 카메라가 이동할 때 초기화는 용이하게 된다. 통상적으로, 타겟 없는 접근법들에서의 카메라 모션 시퀀스는 포인트들의 공통 셋트를 관찰하는 2 개의 뷰들 사이에 적절한 오버랩을 형성하도록, 상이한 뷰포인트들로부터의 장면 관찰을 용이하게 한다. 하지만, 카메라 모션 시퀀스는 초보 사용자에게는 자연스럽지 않고 직관적이지 않기 때문에, 카메라는 장면 오브젝트들의 임의의 서브셋트를 계속적으로 관찰함이 없이 회전되거나 이동될 수도 있어, 뷰들 사이에 공동으로 관찰된 포인트들의 작은 베이스라인으로 이끌거나 충분한 베이스라인을 갖는 관찰된 포인트들의 최적의 수보다 더 적게 이끈다. 베이스라인은 2 개의 뷰들 사이의 삼각측량을 가능하게 하기 위해 컴퓨터 비전 (CV) 및 다중 뷰 지오메트리 (Multiple View Geometry; MVG) 알고리즘에서 시차 (parallax) 의 형성에 관련된다. MVG 는, 환경의 이미지들 또는 뷰들로부터 환경의 3D 구조를 결정하기 위해, 에피폴라, 투영 및 아핀 기하학을 포함하는, 기하학적 원리들의 사용을 지칭한다.
또한, 전통적인 VSLAM 초기화를 위해 요구되는 직관에 반대되는 카메라 모션 시퀀스에도 불구하고, 종래의 접근법들에서는 사용자-피드백이 제공되지 않는다. 따라서, 사용자들은, 모션 시퀀스에 대한 필요성 및 카메라 모션 시퀀스를 수행하기 위한 시도들에 의해 양자에 관해 혼란스럽게 된다. 종래의 접근법들에서, 사용자가 임의의 정보를 수신하는 범위까지, 그 정보는 그때까지 소급되었고 3D 장면의 단순한 외심적 뷰 및/또는 반복적인 재구성으로 제한되었다. 병렬적 추적 및 맵핑 (Parallel Tracking and Mapping; PTAM) 과 같은 일부 기법들은 검출된 피처 포인트들의 자취들을 디스플레이할 수도 있지만, 이러한 피드백은 보통의 디바이스 사용자들이 초기화 카메라 모션 시퀀스를 수행하기에 직관적이지 않고 유용하지 않다.
따라서, AR 애플리케이션과 매끄럽게 통합될 수도 있는 개시된 실시형태들은, 사용자들 및 추적기 (tracker) 양자 모두에 대해 적합한 초기화를 용이하게 하기 위해 최적의 카메라 궤적 및/또는 카메라 모션 시퀀스의 결정을 용이하게 한다. 추가로, 개시된 실시형태들은 또한, 모션 정정을 위한 피드백을 포함하는 카메라 모션 실행에 관한 피드백을 제공함으로써, 현재의 카메라 궤적에 대한 품질 측정치/스코어를 제공하고, 카메라 모션 시퀀스의 실행을 통해 사용자를 상호작용적으로 (interactively) 안내할 수도 있다. 강건하고 사용자 친화적인 초기화를 용이하게 함으로써, 개시된 실시형태들은 접근성을 증가시키고 사용자 시간 및 노력을 감소시키며, 보다 최적의 AR 경험을 허용한다.
도 1 은 예시적인 UD (100) 의 블록도를 나타낸다. 도 1 에서 도시된 바와 같이, UD (100) 는 카메라 (110), 관성 측정 유닛 (IMU) (130), 프로세서 (150), 메모리 (160) 및/또는 트랜시버 (170) 를 포함할 수도 있고, 이들은 연결들 (120) 을 통해 동작가능하게 커플링될 수도 있다. 연결들 (120) 은 버스들, 라인들, 파이버들, 링크들 등, 또는 이들의 몇몇 조합을 포함할 수도 있다.
트랜시버 (170) 는, 예를 들어, 하나 이상의 유형들의 무선 통신 네트워크들을 통해 하나 이상의 신호들을 송신하도록 가능하게 된 송신기, 및 하나 이상의 유형들의 무선 통신 네트워크들을 통해 송신된 하나 이상의 신호들을 수신하기 위한 수신기를 포함할 수도 있다. 트랜시버 (110) 는, 비제한적으로, IEEE 802.11x 패밀리 표준들에 기초할 수도 있는 Wi-Fi 네트워크들 또는 무선 로컬 영역 네트워크 (WLAN) 들; IEEE 802.15x 패밀리 표준들에 기초할 수도 있는, 블루투스, 근접장 통신 (NFC) 등과 같은 무선 개인 영역 네트워크 (WPAN) 들; 및/또는 LTE, WiMAX 등과 같은 무선 광역 네트워크 (WWAN) 들과 같은 다양한 기술들에 기초한 무선 네트워크들과의 통신을 용이하게 할 수도 있다.
WWAN 은, 코드 분할 다중 액세스 (CDMA) 네트워크, 시간 분할 다중 액세스 (TDMA) 네트워크, 주파수 분할 다중 액세스 (FDMA) 네트워크, 직교 주파수 분할 다중 액세스 (OFDMA) 네트워크, 단일-캐리어 주파수 분할 다중 액세스 (SC-FDMA) 네트워크, 롱 텀 에볼루션 (LTE), WiMax 등일 수도 있다. 또한, UD (100) 는 또한 유선 네트워크들을 통해 통신하기 위한 하나 이상의 포트들을 포함할 수도 있다. 일부 실시형태들에서, 사용자 디바이스 (100) 상의 트랜시버 (170) 및/또는 하나 이상의 다른 포트들은 생략될 수도 있다. CDMA 네트워크는 cdma2000, 광대역-CDMA (W-CDMA) 등과 같은 하나 이상의 무선 액세스 기술 (RAT) 들을 구현할 수도 있다. cdma2000 은 IS-95, IS-2000, 및 IS-856 표준들을 포함한다. TDMA 네트워크는 이동 통신용 글로벌 시스템 (GSM), 디지털 어드밴스드 모바일 폰 시스템 (D-AMPS), 또는 몇몇 다른 RAT 를 구현할 수도 있다. GSM, W-CDMA, 및 LTE 는 "제 3 세대 파트너쉽 프로젝트" (3GPP) 라고 명명된 컨소시엄으로부터의 문서들에서 기술된다. cdma2000 은 "제 3 세대 파트너쉽 프로젝트 2" (3GPP2) 라고 명명된 컨소시엄으로부터의 문서들에서 기술된다. 3GPP 및 3GPP2 문서들은 공중이 이용가능하다.
UD (100) 는 또한, 위성 포지셔닝 시스템 (SPS) 의 일부일 수도 있는 하나 이상의 지구 궤도 스페이스 비히클 (SV) 들로부터 신호들을 수신할 수도 있다. SV 들은, 예를 들어, 미국의 글로벌 포지셔닝 시스템 (GPS), 유럽의 갈릴레오 시스템, 러시아의 글로나스 시스템 또는 중국의 콤파스 또는 베이도우 시스템, 및/또는 지역 위성 시스템 및/또는 SBAS (satellite based augmentation system) 과 같은 글로벌 내비게이션 위성 시스템 (GNSS) 의 콘스텔레이션에 있을 수도 있다.
일부 실시형태들에서, UD (100) 는 CCD 또는 CMOS 센서들 및/또는 카메라들 (110) 과 같은 하나 이상의 이미지 센서들을 포함할 수도 있고, 이들은 이하 "카메라들 (110)" 로서 지칭된다. 카메라들 (110) 은 광학적 이미지를 전자적 또는 디지털 이미지로 변환할 수도 있고, 캡처된 이미지들을 프로세서 (150) 에 전송할 수도 있다. 일반적으로, 카메라들 (110) 은 컬러 또는 흑백 카메라들일 수도 있고, 이는 컬러 정보를 제공한다. 본 명세서에서 사용된 "컬러 정보" 라는 용어는 컬러 및/또는 흑백 정보를 지칭한다. 일반적으로, 본 명세서에서 사용된 바와 같이, 컬러 이미지 또는 컬러 정보는 1 내지 N 개의 채널들을 포함하는 것으로 보일 수도 있고, 여기서, N 은 이미지를 저장하기 위해 사용되는 컬러 공간에 의존하는 몇몇 정수이다. 예를 들어, RGB 이미지는 적색, 청색, 및 녹색 정보에 대해 각각 하나의 채널로 3 개의 채널들을 포함한다. 일부 실시형태들에서, 카메라 (110) 는 착용가능 카메라일 수도 있고, 이는 UD (100) 에서의 다른 기능적 유닛들로부터 분리되어 하우징되면서 그 다른 기능적 유닛들에 동작가능하게 커플링될 수도 있다.
일부 실시형태들에서, 카메라들 (110) 은 전방 및/또는 후방 카메라들을 포함할 수도 있고, CMOS 및 다른 시각적 센서들을 또한 통합할 수도 있다. 하나의 실시형태에서, 전방 카메라는 디바이스의 보통의 사용자 동작 동안 사용자를 향할 수도 있는 한편, 후방 카메라는 디바이스의 보통의 동작 동안 사용자로부터 멀어지는 방향을 향할 수도 있다. 일부 실시형태들에서, 카메라들 (110) 은 스틸 (still) 및 비디오 이미지들 양방을 캡처하는 것이 가능할 수도 있다. 예를 들어, 카메라 (110) 는 30 의 초당 프레임들 (fps) 의 프레임 레이트로 비디오 이미지들을 캡처할 수도 있다. 하나의 실시형태에서, 카메라들 (110) 에 의해 캡처된 이미지들은 미가공의 비압축 포맷으로 있을 수도 있고, 프로세싱되고 및/또는 메모리 (160) 에 저장되기 전에 압축될 수도 있다. 일부 실시형태들에서, 이미지 압축은 무손실 또는 손실 압축 기법들을 이용하여 프로세서들 (150) 에 의해 수행될 수도 있다.
일부 실시형태들에서, UE (100) 는 또한, 카메라 (110) 에 의해 캡처된 라이브 이미지들, AR 이미지들, 그래픽 사용자 인터페이스 (GUI) 들, 프로그램 출력 등을 디스플레이하기 위해 이용될 수도 있는, 디스플레이 또는 스크린 (170) 을 포함할 수도 있다. 일부 실시형태들에서, 디스플레이 (170) 는, 액정 표시 (LCD) 디스플레이 또는 그들의 변형형태들, 유기 LED (OLED) 디스플레이 또는 그들의 변형형태들과 같은 발광 다이오드 (LED) 디스플레이, 또는 헤드업 디스플레이를 이용하여 구현될 수도 있다. 일부 실시형태들에서, 디스플레이 (170) 는 HMD 와 같은 착용가능 디스플레이일 수도 있고, 이는 UD (100) 에서의 다른 기능적 유닛들과는 분리되어 하우징되면서도 그 다른 기능적 유닛들에 동작가능하게 커플링될 수도 있다.
UD (100) 에 포함될 모든 모듈들이 전부 도 1 에 도시된 것은 아니다. 예시적인 사용자 디바이스 (100) 는 또한, 도시된 기능적 블록들의 하나 이상을 부가, 결합, 또는 생략하는 등에 의해, 본 개시와 일치하는 방식으로 다양한 방식들로 변형될 수도 있다. 예를 들어, 일부 구성들에서, 사용자 디바이스 (100) 는 송신기 (170) 를 포함하지 않을 수도 있다. 또한, 어떤 예시적인 구현들에서, 사용자 디바이스 (100) 는 주변 광 센서, 초음파 센서들 등과 같은 다양한 다른 센서들 (미도시) 을 포함할 수도 있다. 일부 실시형태들에서, UD (100) 는 외부 디스플레이 상에 이미지들의 표시를 허용하기 위한 유선 또는 무선 포트들을 포함할 수도 있다. 일부 실시형태들에서, UD (100) 는, 3-축 가속도계(들), 3-축 자이로스코프(들), 및/또는 자기계(들)을 포함할 수도 있는 관성 측정 유닛 (IMU) 을 포함할 수도 있다. IMU (130) 는 속도, 방향, 및/또는 다른 위치 관련 정보를 프로세서 (150) 에 제공할 수도 있다. 일부 실시형태들에서, IMU (130) 는 카메라(들) (110) 에 의한 각각의 이미지 프레임의 캡처와 동기하여 측정된 정보를 출력할 수도 있다. 일부 실시형태들에서, IMU (130) 의 출력은 카메라 (110) 및/또는 UD (100) 의 포즈를 결정하기 위해 프로세서 (150) 에 의해 부분적으로 이용될 수도 있다. 일부 실시형태들에서, 사용자 디바이스 (100) 의 부분들은 하나 이상의 칩셋들, 및/또는 기타의 형태를 취할 수도 있다.
프로세서들 (150) 은 하드웨어, 펌웨어, 및 소프트웨어의 조합을 이용하여 구현될 수도 있다. 프로세서들 (150) 은 텍스트 검출 및 추적에 관련된 컴퓨팅 절차 또는 프로세스의 적어도 부분을 수행하도록 구성가능한 하나 이상의 회로를 나타낼 수도 있고, 메모리 (160) 로부터 명령들 및/또는 데이터를 취출 (retrieve) 할 수도 있다. 프로세서들 (150) 은, 하나 이상의 애플리케이션 특정 집적 회로 (ASIC) 들, 디지털 신호 프로세서 (DSP) 들, 디지털 신호 프로세싱 디바이스 (DSPD) 들, 프로그래머블 로직 디바이스 (PLD) 들, 필드 프로그래머블 게이트 어레이 (FPGA) 들, 제어기들, 마이크로-제어기들, 마이크로프로세서들, 내장형 프로세서 코어들, 전자 디바이스들, 본 명세서에서 기술된 기능들을 수행하도록 설계된 다른 전자 유닛들, 또는 이들의 조합 내에서 구현될 수도 있다. 일부 실시형태들에서, 프로세서들 (150) 은, CV 애플리케이션 초기화에 관련된 기능을 제공할 수도 있는 CV 애플리케이션 초기화 모듈 (155) 을 포함할 수도 있다.
메모리 (160) 는 프로세서들 (150) 내에서 및/또는 프로세서들 (150) 외부에서 구현될 수도 있다. 본 명세서에서 사용된 바와 같이, "메모리" 라는 용어는 장기, 단기, 휘발성, 비휘발성, 또는 기타 메모리 중 임의의 유형을 지칭하고, 임의의 특정 유형의 메모리 또는 메모리들의 수, 또는 메모리가 저장되는 물리적 매체들의 유형에 제한되지 않는다. 일부 실시형태들에서, 메모리 (160) 는, CV 애플리케이션 초기화, SLAM/VSLAM 방법들, 및 프로세서 (150) 에 의해 수행되는 다른 태스크들을 포함하는, CV/MVG 알고리즘의 실행, 이미지 프로세싱을 용이하게 하기 위한 코드 및/또는 데이터를 유지할 수도 있다. 예를 들어, 메모리 (160) 는 데이터, 캡처된 스틸 이미지들, 비디오 프레임들, 프로그램 결과들, 및 다양한 센서들에 의해 제공된 데이터를 유지할 수도 있다. 일반적으로, 메모리 (160) 는 임의의 데이터 저장 메커니즘을 나타낼 수도 있다. 메모리 (160) 는, 예를 들어, 주 메모리 및/또는 보조 메모리를 포함할 수도 있다. 주 메모리는, 예를 들어, 랜덤 액세스 메모리, 판독 전용 메모리 등을 포함할 수도 있다. 도 1 에서는 프로세서들 (150) 로부터 분리된 것으로서 도시되지만, 주 메모리의 전부 또는 일부는 프로세서들 (150) 내에 제공되거나 그렇지 않으면 같은 장소에 배치되고 및/또는 그 프로세서들 (150) 에 커플링될 수도 있다.
보조 메모리는, 예를 들어, 주 메모리와 동일 또는 유사한 유형의 메모리 및/또는 예를 들어 플래시/USB 메모리 디바이스들, 메모리 카드 드라이브들, 디스크 드라이브들, 광학 디스크 드라이브들, 테이프 드라이브들, 솔리드 스테이트 메모리 드라이브들 등과 같은, 하나 이상의 데이터 저장 디바이스들 또는 시스템들을 포함할 수도 있다. 어떤 구현형태들에서, 보조 메모리는, 사용자 디바이스 (100) 에 커플링된 착탈가능 매체 드라이브 (미도시) 에서 비-일시성 컴퓨터-판독가능 매체를 동작가능하게 수용하거나 그 외에 그 비-일시성 컴퓨터-판독가능 매체에 커플링되도록 구성가능할 수도 있다. 일부 실시형태들에서, 비-일시성 컴퓨터-판독가능 매체는 메모리 (160) 및/또는 프로세서 (150) 의 일부를 형성할 수도 있다.
사용자 디바이스 (100) 는 또한 카메라 (110) 에 의해 캡처된 이미지들을 프로세싱하기 위한 소프트웨어를 포함할 수도 있다. 예를 들어, 프로세서 (150) 는, CV/MVG 프로그램들을 실행하는 것, 이미지들에서 피처들을 검출하고 이미지 등록을 수행하기 위한 프로그램들을 실행하는 것, 및 카메라 (110) 에 의해 캡처된 하나 이상의 이미지들을 이용하여 AR 프로그램들을 실행하는 것이 가능할 수도 있다. 많은 증강 현실 (AR) 애플리케이션들에서, 예를 들어, 하나 이상의 가상 오브젝트들이 라이브 카메라 뷰 위에 겹쳐 놓일 수도 있다. 가상 오브젝트들의 정확한 등록은, 가상 오브젝트를 렌더링할 때, 라이브 비디오 영상에서 가상 오브젝트들의 정확한 배치를 보장할 수 있다. 등록, 이미지 등록 또는 이미지 정렬은 상이한 데이터 셋트들을 단일 좌표 시스템 내로 변환 및/또는 통합하는 프로세스를 지칭한다.
예를 들어, AR 애플리케이션들을 실행할 때, 프로세서 (150) 는 가상 오브젝트를 라이브 카메라 뷰 내로 배치할 수도 있고, 가상 오브젝트는 카메라의 포즈에 대응하도록 캡처된 이미지에서 회전 및/또는 변위될 수도 있다. 카메라의 포즈는 기준의 프레임 또는 이미지에 대한 카메라의 포지션 및 방향을 지칭한다. 일부 실시형태들에서, 이미지에서의 하나 이상의 피처들은 이미지에 대한 사용자 디바이스 및/또는 카메라의 포즈를 결정하기 위해 사용될 수도 있다. 일부 실시형태들에서, 이미지에 대한 카메라 (110) 의 포즈는 IMU (130) 로부터의 입력에 부분적으로 기초하여 결정 또는 정정될 수도 있다. 일부 실시형태들에서, 렌즈의 초점 길이, 카메라 초점 거리 등과 같은 카메라 (110) 의 알려진 고유한 파라미터들 및 특성들은 카메라 포즈 결정을 보조하고 및/또는 정제하기 위해 IMU 및/또는 다른 센서들로부터의 입력과 함께 사용될 수도 있다.
단일 카메라를 사용하는 단안 SLAM 시스템들에서, 포인트들 또는 라인들과 같은 피처들은 알려진 카메라 포즈로 2 개의 프레임들 사이에서 삼각측량될 수도 있다. 카메라 포즈는, 초기 기준 타겟을 추적함으로써, 및/또는, 2 개의 프레임들 사이의 에피폴라 지오메트리를 이용하여 상대적인 모션을 추정함으로써 획득될 수 있다. 2 개의 구분되는 카메라 포지션들로부터 보이는 3D 포인트들과 그들의 2D 이미지들 상으로의 투영들 사이의 기하학적 관계들에 관한 에피폴라 지오메트리는 이미지 포인트들 사이의 제약들을 결정하기 위해 사용될 수 있다.
2 개의 프레임들 사이의 상대적인 모션을 추정하기 위해, 포인트 대응들 또는 유사한 피처들의 셋트가 사용되고, 2 개의 프레임들 사이의 적당한 오버랩은 대응들의 신뢰가능한 확립을 용이하게 한다. 또한, 2 개의 프레임들에서의 대응하는 포인트들 또는 피처들 사이의 정화한 삼각측량은 2 개의 카메라 센터들 및 3D 포인트들 사이의 삼각측량 각도들을 적절하게 크게 함으로써 용이하게 된다. 피처 포인트 대응들을 획득하는 것을 용이하게 하기 위해, SLAM 기반 기법들을 이용 및/또는 적용하는 많은 CV 애플리케이션들은 사용자들에게 분명한 초기화 단계를 제시한다. 일부 실시형태들에서, CV 애플리케이션 초기화는, 적어도 부분적으로, CV 애플리케이션 초기화 모듈 (155) 에 의해 수행될 수도 있다.
예를 들어, 초기 키프레임은 수동으로 선택될 수도 있는 한편, 시스템은 KLT (Kanade-Lucas-Tomasi) 알고리즘과 같은 피처 추적 알고리즘, 그들의 변형형태들, 또는 임의의 다른 적합한 피처 대응 기법을 이용하여 현재의 비디오 프레임에서 대응성들을 추적할 수도 있다. 대응성들은, 예를 들어, 제 1 적합한 캡처된 비디오 프레임과 현재의 비디오 프레임들 사이에서 결정될 수도 있다. 동시에, 시스템은 에피폴라 지오메트리를 추정하고 장면에서의 3D 포인트들을 삼각측량할 수도 있다. 성공적인 경우에, 시스템은 3D 포인트들의 이 셋트로 초기화되고, 추적 및 맵핑은 이 초기 맵으로 진행한다. 다른 관련된 접근법들은 상대적인 모션 추정 품질의 몇몇 측정치를 최대화한다. 일부 실시형태들에서, CV 애플리케이션 초기화 모듈 (155) 은 하드웨어, 소프트웨어, 및/또는 펌웨어의 몇몇 조합에 의해 구현될 수도 있다.
도 2a 및 도 2b 는, SLAM/VSLAM 초기화를 포함할 수도 있는 CV 애플리케이션 초기화를 용이하게 하기 위해 UD (100) 상에서의 카메라 (110) 의 예시적인 모션들을 나타낸다.
도 2a 에서 도시된 바와 같이, SLAM 초기화 (200) 는, UD (100) 상의 카메라 (110) (도 2a 에서는 미도시) 가 피봇이라고 지칭되는, 타겟 또는 오브젝트 주위로 회전할 때 용이하게 될 수도 있다. 본 명세서에서 사용된 바와 같은 피봇 모션 시퀀스 (220) 는 몇몇 피봇 거리 (230) 에서 오브젝트 축 (210) 주위로의 대략적으로 원형의 이동을 지칭한다. 피봇 이동 시퀀스 (220) 는, 예를 들어, 센터에 배치된 오브젝트를 보면서 카메라를 원형으로 이동시킴으로써 실현될 수도 있다. 상기 예에서 피봇 거리 (230) 는 원의 반경이다.
피봇 모션 시퀀스 (220) 동안, 카메라 (110) 에 의해 캡처된 이미지들은 디스플레이 (170) 상에 디스플레이될 수도 있다. 또한, 피봇 모션 시퀀스 동안, 모든 피처 포인트들은 뷰 내에 남아 있을 수도 있고, 추적될 수 있으며, 큰 베이스라인은 통상적으로 피봇 모션 시퀀스의 종단에 의해 도달된다.
도 2b 에서 도시된 바와 같이, SLAM 초기화 (250) 는 또한, 카메라 (110) 가 측방향 병진 모션 시퀀스 (260) 로 이동될 때 용이하게 되고, 이는 또한 추적을 용이하게 한다. 측방향 병진 모션 시퀀스 동안 카메라 (110) 에 의해 캡처된 이미지들은 디스플레이 (170) 상에 디스플레이될 수도 있다. 또한, 측방향 병진 모션 시퀀스 (260) 동안, 초기 피처 포인트들의 많은 것이, 특히 베이스라인이 너무 클 때, 측방향 병진 모션 시퀀스의 종단에 의해 뷰 내에 여전히 있을 것이다.
도 2a 및 도 2b 에서 도시된 바와 같이, 피봇 모션 시퀀스 (220) 및 병진 모션 시퀀스 (260) 는 각각 양자 모두 SLAM 초기화에 유용한 한편, 피봇 모션 시퀀스는 설명하기가 상대적으로 보다 복잡하고, 수행하기 위해 더 큰 기교를 수반할 수도 있다. 다른 한편, 측방향 병진 모션 시퀀스는 사용자가 수행하기에 보다 단순한 한편, 추적기에게 적당한 정보를 제공한다.
통상적으로, 초보 사용자들은 상기 기술된 궤적들 중 하나 이상을 따르는데 어려움을 가질 수도 있으며, 장면 오브젝트들의 임의의 서브셋트를 지속적으로 관찰함이 없이 카메라 (110) 를 이동시킬 수도 있다. 부정확한 또는 열악하게 실행된 모션 시퀀스는 SLAM 시스템을 초기화할 때 실패들로 이끌 수도 있다. 따라서, 기술된 실시형태들은 사용자들 및 추적기들 양방에 대해 적합한 초기화를 용이하게 하기 위해 카메라 모션 시퀀스의 결정을 가능하게 할 수도 있다. 일부 실시형태들에서, 현재의 카메라 궤적에 대한 품질 측정/스코어가 또한 제공될 수도 있다. 일부 실시형태들에서, 사용자는 추가적으로, 초기화를 위해 바람직한 궤적을 따르도록 상호작용적으로 안내될 수도 있다.
일부 실시형태들에서, 초기화 프로세스 동안, 디바이스의 현재의 포즈/궤적을 결정하기 위해서 및/또는 현재의 및/또는 원하는 궤적에 대한 피드백을 제공하기 위해서, CV 애플리케이션 초기화 모듈 (155) 은, SLAM 시스템이 초기화되기 전에 6DOF 로 현재의 비디오 프레임과 초기 시작 프레임 사이에 카메라 (110) 의 상대적인 모션 (예컨대, 3D 병진 및 회전) 의 거친 추정을 제공하는 추적 시스템으로부터의 입력을 수신할 수도 있다. 예를 들어, 하나의 실시형태에서, 제 1 기준 이미지 (예컨대, 카메라 (110) 에 의해 캡처된 초기화 이미지와 같은 제 1 이미지) 로부터의 순간적인 또는 급속한 카메라 추적은, 적어도 부분적으로, 초기 추정된 심도 (depth) 를 이용하여 추출된 관심 대상의 포인트들의 셋트의 계산 및 제 1 기준 이미지의 프로세싱에 의해 이용될 수도 있다. 예를 들어, 3D 타겟에 대해, 3D 타겟에 대한 데이터셋트는 추정된 심도에 기초하여 제 1 단일 기준 이미지로부터의 모든 관심 포인트들에 대한 로케이션 및 심도로 완전히 정보제공될 수도 있다. 하나의 실시형태에서, 제 1 키프레임에서 검출된 모든 포인트들은 카메라 센터로부터 통일 거리를 가지도록 설정될 수도 있다. 심도에서의 임의의 에러들은 3D 타겟에 대한 카메라 포즈 변화들로서 정정될 수도 있다. 예를 들어, 추적 시스템은, 카메라 (110) 의 관찰된 모션이 주어지면 업데이트될 수도 있는 장면 (예컨대, 3D 맵) 의 부분들 (예컨대, 관심 포인트들) 을 자동적으로 선택할 수도 있다. 다른 실시형태에서, 상대적인 모션의 추정은 IMU (130) 에 의해 제공된 추가적인 입력에 부분적으로 기초할 수도 있다. 따라서, 추적 시스템은 제 1 기준 이미지로부터 앞으로 카메라 (110) 의 계속적인 추적을 제공할 수도 있다. 추적 시스템 및 다른 양태들은, 예를 들어, 그 전체가 참조에 의해 본원에 통합되는, 2013 IEEE International Symposium on Mixed and Augmented Reality (ISMAR) 에서 A. Mulloni, M. Ramachandran, G. Reitmayr, D. Wagner, R. Grasset, 및 S. Diaz 에 의한 "User friendly SLAM initialization," 153-162, 2013년 10월, 에서 기술된다.
카메라 (110) 의 지속적인 추적은, 부분적으로, 카메라의 현재의 포즈를 계산하고 및/또는 카메라 (110) 에 의해 추종되는 궤적을 결정하기 위해 이용될 수도 있다. 예를 들어, 일부 실시형태들에서, CV 애플리케이션 초기화 모듈 (155) 은, 적어도 부분적으로, 초기 카메라 포즈, 추정된 현재의 카메라 궤적, 및 현재의 카메라 포즈에 기초하여, 카메라 (110) 에 의해 도달될 바람직한 다음 포지션을 결정할 수도 있다. 또한, 일부 실시형태들에서, CV 애플리케이션 초기화 모듈 (155) 은 사용자에 의해 추종되는 현재의 카메라 궤적에 대한 품질 측정치/표시자 및/또는 품질 스코어를 제공할 수도 있다. 또한, 일부 실시형태들에서, CV 애플리케이션 초기화 모듈 (155) 은, 현재의 궤적을 정정하도록 사용자들을 유도하기 위해, 원하는 궤적을 따르도록, 그리고, 추종되는 궤적의 품질에 대한 상호작용적 피드백을 제공하도록 디스플레이 (170) 를 이용하여 상호작용적 시각화를 제공할 수도 있다.
일부 실시형태들에서, SLAM 초기화를 수행할 수도 있는 CV 애플리케이션 초기화 모듈 (155) 은, 일부 경우들에서 통합된 애플리케이션의 부분을 형성할 수도 있는 2 개의 컴포넌트들을 포함할 수도 있다. 하나의 실시형태에서, 2 개의 키프레임들 사이에 충분한 베이스라인이 형성되자마자 SLAM 맵을 초기화하는 추적 시스템은 하나의 컴포넌트를 형성할 수도 있다. 추적 시스템에 대해 상세를 제공하는 영역 (예컨대, 피처 풍부 영역) 에서 충분한 베이스라인을 제공하기 위한 카메라 모션 시퀀스들의 퍼포먼스 (performance) 를 상호작용적으로 용이하게 하는 사용자 인터페이스는 다른 컴포넌트들 형성할 수도 있다.
일부 실시형태들에서, CV 애플리케이션 초기화 모듈 (155) 은, 그것의 초기 포지션, 그것의 현재 포지션이 주어지면, UD (100) 에 의해 도달될 바람직한 다음 포지션을 결정할 수도 있다. 일부 실시형태들에서, CV 애플리케이션 초기화 모듈 (155) 은 사용자에 의해 추종되는 현재의 궤적에 대한 품질 스코어를 더 결정할 수도 있다. 일부 실시형태들에서, CV 애플리케이션 초기화 모듈 (155) 은 또한, 현재의 궤적을 정정하고 및/또는 원하는 궤적을 따르도록 사용자들을 유도하기 위해 상호작용적인 시각화를 제공할 수도 있다.
그것의 초기 포지션에 대한 카메라 (110) 의 6-자유도 (6DOF) 상대적인 모션은 다음과 같은 구조를 갖는 4×4 매트릭스 C 에 의해 기술될 수도 있다.
Figure 112015117137998-pct00001
(1)
여기서, R 은 3×3 회전 매트릭스이고,
Figure 112015117137998-pct00002
은 병진을 기술하는 3 개의 벡터이며, 첨자 "T" 는 t 의 전치를 나타낸다.
디바이스의 전면에서 피봇 거리 d > 0 을 갖는 피봇 주위로의 회전에 있어서, 최적의 궤적에 대한 카메라 (110) 의 임의의 포즈는 다음과 같은 제약을 만족한다.
Figure 112015117137998-pct00003
(2)
상기 공식에 기초하여,
Figure 112015117137998-pct00004
(3)
인지를 검증함으로써 포즈 C 가 원하는 피봇 주위로의 회전인지 여부가 결정될 수도 있다. 일부 실시형태들에서,
Figure 112015117137998-pct00005
의 값은 그것이 몇몇 미리결정된 제약들 내에 또는 몇몇 선택된 값의 범위 내에 속하는지를 결정하기 위해 체크될 수도 있다.
일반적으로, 피봇 거리 d 는 다양한 기준들에 기초하여 선택될 수도 있다. 예를 들어, 피봇 거리 dd > 0 (예컨대, d = 1) 이도록 하는 임의의 값으로서 선택될 수도 있다. 일부 실시형태들에서, 피봇 거리 d 는 카메라 (110) 및/또는 UD (100) 로부터의 관찰된 피처 포인트들의 평균 거리에 기초하여 선택될 수도 있다. 일부 실시형태들에서, 피봇 거리 d 는 상기 정해진 임계값 초과의 임의적으로 큰 값으로서 선택될 수도 있다. 피봇 거리 d 의 큰 값들이 사용될 때, 궤적은 측방향 병진에 근사한다. 이에 따라, 측방향 병진은 피봇 거리 d 의 적절하게 큰 값을 선택함으로써 모델링될 수도 있다.
상기 공식이 주어지면, 시간 i 에서 디바이스 모션 C i 의 로그 (log) 를 나타내는 6-차원 벡터는
Figure 112015117137998-pct00006
(4)
로서 주어지고, 여기서, log(C i ) 는 변환 매트릭스 C i 에 의해 표현되는 SE(3) 의 로그이고, 궤적의 바람직한 다음 포지션은 전방 모션을 보장하기 위해 α > 0 이고 동일한 원하는 궤적을 따르는/지속하는 증분적 모션 (
Figure 112015117137998-pct00007
)
Figure 112015117137998-pct00008
(5)
로서 획득될 수도 있다. SE(3) 라는 용어는 6 자유도 (6Dof) 를 갖는 6-파라미터 특별 유클리디언 그룹 (3) 을 지칭하고, 여기서, 상기 언급된 바와 같이, 3 개의 파라미터들 t x t y t z 은 3D 병진 벡터에 대응하고 3 개의 파라미터들 r x r y r z 는 회전 벡터에 대응한다. SE(3) 그룹은 대응하는 리 대수 (Lie algebra) se(3) 를 가지고, 그것의 베이스들은 6 개의 4×4 매트릭스들이고, 각각의 매트릭스는 각 축을 따른 극소 회전들 또는 극소 병진들 중 어느 일방에 대응한다. 상기 식 (4) 에 의해 표시되는 바와 같은 로그 맵들은 리 그룹들과 그들의 대응하는 리 대수 사이에 엘리먼트들을 변환한다. 로그 맵에 관한 상세한 내용들은, 그것의 전체가 참조에 의해 본원에 통합되는, “A tutorial on SE(3) transformation parameterizations and on-manifold optimization,” Jose Luis Blanco, Technical report #012010, May 9, 2013, ETS Ingenierıa Informatica, Universidad de Malaga, Campus de Teatinos s/n - 29071 Malaga, Spain 으로부터 획득될 수도 있다.
다음의 현재의 궤적은 카메라 (110)/UD (100) 를 추가로 피봇 주위로 이동시킬 것이고, 양자를 뷰 내의 장면에 유지하고 초기 포지션으로 각도를 연장한다. 따라서, 식 (5) 는 카메라 (110)/UD (100) 의 이동에 대한 최적의 및/또는 바람직한 방향을 결정하기 위해 사용될 수도 있다.
일부 실시형태들에서, 비례 팩터 α 는 또한, 소망된 궤적에 대해 실제 사용자 궤적을 비교함으로써 최근의 사용자-수행된 모션
Figure 112015117137998-pct00009
에 대한 품질 측정치 (quality measure) 를 계산하기 위해 사용될 수도 있다. 예를 들어,
Figure 112015117137998-pct00010
는 실제 디바이스 모션으로부터 추정되고 거기까지 확립된 궤적에 대해 비교될 수도 있다.
하나의 실시형태에서, 동일한 방향에서의 모션에 대해, 품질 측정치는
Figure 112015117137998-pct00011
의 크기 (더 클수록 더 좋음) 에 기초하여 결정될 수도 있고, 여기서,
Figure 112015117137998-pct00012
Figure 112015117137998-pct00013
Figure 112015117137998-pct00014
의 내적을 나타낸다. 또 다른 실시형태에서, 품질 측정치는
Figure 112015117137998-pct00015
에 의해 주어진 벡터들
Figure 112015117137998-pct00016
Figure 112015117137998-pct00017
사이의 정규화된 크로스 상관 (NCC) 의 정도에 기초할 수도 있다. 하나의 구현형태에서,
Figure 112015117137998-pct00018
는 벡터들
Figure 112015117137998-pct00019
Figure 112015117137998-pct00020
의 표준 편차에 의해 나누어진
Figure 112015117137998-pct00021
의 내적으로서 획득될 수도 있다. 예를 들어,
Figure 112015117137998-pct00022
이 1 에 더 가까운 경우 모션은 보다 높은 품질의 것으로 고려되거나 더 양호한 품질 측정치를 할당받을 수도 있다 (즉, 1 에 더 가까운 NCC 값은 모션의 더 양호한 품질을 의미한다).
일부 실시형태들에서, 피봇 거리 d 에 기초한 소망된 궤적에서의 사용자 이동을 위한 명령들, 시간 i 에서의 카메라 모션의 로그
Figure 112015117137998-pct00023
, 및 궤적 상의 바람직한 다음 포지션
Figure 112015117137998-pct00024
은 디스플레이 (170) 및 UD (100) 를 통해 상호작용적으로 제시될 수도 있다. 또한, 일부 실시형태들에서, 명령들은, UD (100)/카메라 (110) 의 예상된 또는 소망된 이동에 관한 연속적인 피드백을 제공할 수도 있다. 일부 실시형태들에서, GUI 는 UD (100)/카메라 (110) 의 현재 이동 및/또는 초기화 프로세스의 시작으로부터 UD (100)/카메라 (110) 의 이동을 나타내는 시각화를 제공할 수도 있다. 일부 실시형태들에서, 상호작용적 피드백은 시간적 및 공간적 양태들 (예컨대, 시작, 종료, 현재 진행 상태) 에 관한 정보를 제공할 수도 있다. 이하 기술되는 실시형태들에서, 소망된 궤적에서의 사용자 이동을 위한 명령들은 d,
Figure 112015117137998-pct00025
,
Figure 112015117137998-pct00026
에 기초할 수도 있고, UD (100) 상의 인터페이스들을 이용하여 사용자에게 상호작용적으로 제시될 수도 있다.
시각적 안내는, 사용자-명령들 및 모션이 단일의 통일된 좌표 프레임에서 표시될 수도 있기 때문에 보다 직관적일 수 있다. 다른 한편, 스크린 디스플레이들의 사용은, UD (100)/카메라 (110)/디스플레이 (170) 가 스크린에 디스플레이된 이미지를 동시에 보면서 이동될 수도 있기 때문에, 더 큰 사용자-기교 및 통합조정을 수반할 수도 있다. 따라서, 일부 실시형태들에서, 피드백을 제공하기 위해 (예컨대, 진동-촉각적 액츄에이터들을 이용한) 가청의 또는 촉각적 등의 다양한 다른 양상들이 사용될 수도 있다. 예를 들어, 음성 명령들 및/또는 가청 사운드들이 피드백을 제공하기 위해 사용될 수도 있다. 일부 실시형태들에서, UD (100) 는, 사용자가 최적의 궤적으로부터 몇몇 임계치만큼 벗어날 때 진동할 수도 있다. 예를 들어, 오디오 볼륨, 주파수, 및/또는 진동의 정도는 최적의 궤적으로부터 UD (100)/카메라 (110) 의 일탈의 정도에 기초하여 변화될 수도 있다. 일부 실시형태들에서, 가청 및/또는 촉각적 피드백은 디스플레이 (170) 상의 시각적 표시들에 추가하여 제공될 수도 있다. 일부 실시형태들에서, 제공된 피드백은 또한, 예를 들어 텍스트의 또는 그림의 형태로 수행된 모션 시퀀스의 품질의 표시를 포함할 수도 있다.
일부 실시형태들에서, GUI 는 사용자들이 측방향 병진 및/또는 피봇 모션 시퀀스를 상호작용적으로 수행하는 것을 돕기 위해 이용될 수도 있다. 일부 실시형태들에서, 다양한 GUI 구현은, 비제한적으로, 이하 추가적으로 설명되는, 스크린-정렬된 2D 안내, 스크린-정렬된 3D 안내, 세계 정렬된 3D 안내 등과 같은 안내를 제공하기 위해 이용될 수도 있다.
일부 실시형태들에서, 스크린-정렬된 2D 안내는, 모션 시퀀스를 설명하고 사용자를 상호작용적으로 안내하면서, 모션 시퀀스의 표시를 제공하기 위해 2D 스크린-정렬된 UI 엘리먼트들을 이용할 수도 있다. 예를 들어, 하나의 실시형태에서, 측방향 병진 모션 시퀀스를 수행할 때, 레벨 표시기 또는 인공 수평기가 회전의 정도를 표시하기 위해 사용될 수도 있고, 적절한 병진 모션의 수행을 용이하게 할 수도 있다. 사용자가 모션에 너무 많은 회전을 도입할 때, 레벨 표시기는 그것을 사용자에게 시그널링한다.
도 3a 내지 도 3c 는 SLAM 초기화 모션 시퀀스의 표시를 제공하기 위해 2D 스크린 정렬된 UI 엘리먼트들을 이용하는 예시적인 GUI 의 모습들을 도시한다. 도 3a 에서 도시된 바와 같이, 하나의 실시형태에서, 2D 스크린-정렬된 커서 (317) 는 UD (100) 상의 디스플레이 (170) 상에 나타날 수도 있다. 일부 실시형태들에서, 디스플레이 (170) 는 카메라 (110) 에 의해 캡처된 이미지들을 동시에 나타낼 수도 있고, 커서들 (317, 327 및 337) 은 그 디스플레이된 이미지 위에 중첩될 수도 있다. 도 3 내지 도 7 에서 일부 엘리먼트들은 스케일에 맞게 그려지지 않았고, 명확함을 위해 과장되었을 수도 있음에 유의한다.
도 3a 에서, UD (100) 의 초기 포지션 (310) 에서, 커서 (317) 는 결정된 소망된 궤적에 기초하여, 실행될 측방향 병진 모션의 방향에서의 레벨 및 포인트일 수도 있다 (예컨대, 커서의 수평 축은 스크린 (170) 의 에지에 대해 정렬될 수도 있다). 일부 실시형태들에서, 포지션/궤적의 추가적인 표시는, 원 내에 중앙에 위치된 것으로 보이는 과녁중앙 표시자 (315) 에 의해 제공될 수도 있다. 도 3b 에서, 포지션 (320) 에서, 측방향 병진 모션이 몇몇 공차 기준들 내에서 정확하게 실행된 경우, 커서 (327) 는 측방향 병진 모션의 방향에서 포인팅하는 것을 계속할 수도 있고, 과녁중앙 표시자 (325) 는 중앙에 위치될 수도 있다. 다른 한편, 도 3c 에서 도시된 바와 같이, 예를 들어, 포지션 (330) 에서 사용자에 의한 디바이스의 회전 때문에, 모션이 부정확하게 실행된 경우에는, 커서 (337) 는 사용자의 이전의 부정확한 회전 모션을 상쇄하기 위한 방향에서 포인팅하도록 배향될 수도 있고, 과녁중앙 표시자 (335) 는 중앙에서 벗어나 이동할 수도 있다.
다양한 다른 2D 스크린 정렬된 UI 엘리먼트들이 커서/과녁중앙 대신에 또는 그것에 추가하여 사용될 수도 있다. 예를 들어, 점선, 인공 수평기 등이 사용될 수도 있다. 일부 실시형태들에서, UI 엘리먼트들은 스크린의 구석 또는 다른 눈에 띄지 않는 로케이션에서 디스플레이될 수도 있다. 일부 실시형태들에서, 사용자는, UI 엘리먼트의 유형, 스크린 상의 그것의 로케이션, 컬러, 및 깜빡임, 청각적/촉각적 효과들 등과 같은 효과들을 구성하는 것이 가능할 수도 있다. 일부 실시형태들에서, 명령들은 가청 음성/멀티미디어 명령들을 이용하여 제공될 수도 있다. 예를 들어, 사용자는 우측 (또는 좌측) 으로 이동하라는 음성 명령들이 주어질 수도 있거나, 궤적이 소망된 궤적으로부터 벗어나고 있음을 경고받을 수도 있고, 및/또는, 현재의 궤적을 정정하기 위한 명령들을 제공할 수도 있다. 일부 실시형태들에서, 음성 명령들은 디스플레이 (170) 상에 그래픽적 또는 도안적 경고와 함께 제공될 수도 있다. 일부 실시형태들에서, 초기화 절차를 호출하는 초기화 또는 AR 애플리케이션은 초기화 동안 UI 엘리먼트들에 대한 디폴트 설정들을 가질 수도 있다.
도 4a 및 도 4b 는 SLAM 초기화 모션 시퀀스의 표시를 제공하기 위해 3D 스크린 정렬된 UI 엘리먼트들을 이용하는 예시적인 GUI 의 모습들을 도시한다. 일부 실시형태들에서, 3D 엘리먼트들은 베이스라인 형성을 용이하게 하는 방식으로 추가로 사용자 이동할 수도 있다. 베이스라인은 2 개의 뷰들 사이에 삼각측량을 가능하게 하기 위해 CV/MVG 알고리즘들에서 시차를 형성한다. 시차의 결과로서, 하나의 뷰 내의 장면의 몇몇 부분들이 다른 뷰에서 차단된다. 따라서, 시차는 파라미터들 d,
Figure 112015117137998-pct00027
,
Figure 112015117137998-pct00028
에 기초하여 SLAM 궤적을 초기화하기 위해 필요한 병진 또는 피봇 이동을 추가로 하기 위해 채용될 수 있다.
하나의 실시형태에서, SLAM 초기화의 목적을 위한 바람직한 모션은 이동하는 카메라에 의해 보여지는 바와 같이 장면 차단 (occlusion) 을 형성하는 방식으로 UD (100) 를 이동하도록 사용자에게 그래픽적으로 통신하는 것에 의해 획득될 수도 있다. 예를 들어, 하나의 실시형태에서, 사용자는 가리고 있는 오브젝트 뒤를 보거나, 가상 키홀을 통해 보거나, 또는, 측방향 병진 이동을 장려할 다른 시차 효과를 이용하도록 지시될 수도 있다.
도 4a 에서 도시된 바와 같이, 점선 화살표 (447), 및 키홀 (450) 에서의 가려진 오브젝트 (445) 는 3D 스크린-정렬된 안내를 위해 예시적인 GUI 에서 사용자에게 보일 수도 있다. 도 4a 에서 도시된 바와 같이, 키홀 (450) 은 스크린 (170) 의 에지에 가깝다. 화살표 (447) 는 이동의 방향을 나타낼 수도 있고, 사용자는 UD (100) 로 측방향 병진 모션 시퀀스를 실행할 수도 있어, 도 4b 에서 도시된 바와 같이, 이전에 가려졌던 오브젝트 (445) 는 이제 키홀 (455) 에서 오브젝트 (460) 로서 완전히 보일 수 있고, 이는 이제 스크린 (170) 의 보다 중앙에 위치한다.
다른 실시형태에서, 디스플레이 (170) 상의 이미지는 제 1 프레임으로부터 획득된 근사적인 포즈를 이용하여 상이한 심도들에서의 2 개의 오브젝트들로 증강될 수도 있다. 양 증강된 오브젝트들은 제 1 뷰에서 카메라에 가시적으로 만들어질 수도 있고, 3D 장면 정렬된 GUI 엘리먼트들은, 제 1 증강된 오브젝트가 뷰 내에 유지되는 한편 제 2 증강된 오브젝트는 이동의 결과로서 제 1 증강된 오브젝트 뒤로 점점 숨게 되도록 UD (100) 에 대한 이동의 방향을 나타내기 위해 이용될 수도 있다.
추가적인 실시형태에서, 디스플레이 (170) 상의 이미지는 제 1 프레임으로부터 획득된 근사적인 포즈를 이용하여 상이한 심도들에서의 2 개의 오브젝트들로 증강될 수도 있다. 제 2 증강된 오브젝트는 제 1 오브젝트 뒤에 숨을 수도 있다, 즉, 제 1 증강된 오브젝트는 초기 애플리케이션이 시작할 때 초기 카메라 뷰에서 제 2 증강된 오브젝트를 가린다. 3D 장면 정렬된 GUI 엘리먼트들은, 뷰 내에 제 1 증강을 유지하면서, 제 2 증강된 오브젝트가 점점 가시적으로 되게 하도록 UD (100) 에 대한 이동의 방향을 나타내기 위해 사용될 수도 있다.
일부 실시형태들에서, 증강된 오브젝트들의 스케일은 초기화 추적기에 의해 리포트된 평균 또는 중간 베이스라인 각도에 따라 동적으로 증가 및/또는 감소될 수도 있다. 따라서, 차단해제 또는 차단의 정도는 장면 포인트들에 대한 베이스라인 각도의 크기에 비례할 수도 있다. 증강된 오브젝트들의 동적 스케일링으로부터 발생하는 차단/차단해제는, 증강된 오브젝트들이 심도 바로 가까이에서 초기에 렌더링되지만 장면 포인트들은 더 먼 경우에, 증강된 오브젝트들이 사용자로부터 멀어지게 이동하도록 하는 효과를 형성한다. 따라서, 진정한 장면 심도에 대한 모션 시퀀스가 장려된다.
또 다른 실시형태에서, 장려책들 또는 피드백이 베이스라인 각도의 양에 기초하여 애플리케이션 내에 제공될 수도 있다. 예를 들어, 각도에 의존하여, 증강된 오브젝트들의 활기가 증가될 수 있다. 증강된 오브젝트들의 상호작용성은 실행된 모션 시퀀스의 방향에 의존할 수도 있다. 예를 들어, 피봇 모션 시퀀스는, 사용자가 증강된 오브젝트의 면을 보도록 피봇 모션 시퀀스를 수행할 가능성이 높도록 하는 방식으로 증강된 오브젝트를 디스플레이함으로써 장려될 수도 있다.
도 5a 내지 도 5c 는 SLAM 초기화 모션 시퀀스의 표시를 제공하도록 3D 스크린 정렬된 UI 엘리먼트들을 이용하는 예시적인 GUI 의 모습들을 나타낸다. 도 5a 에서 도시된 바와 같이, 점선 화살표 (565) 는 디스플레이 (170) 를 이용하여 3D 스크린-정렬된 안내를 위해 다른 GUI 에서의 사용자에 대해 보여질 수도 있다. 화살표들 (565, 575) (도 5b) 및 화살표 (585) (도 5c) 는 정확한 모션 시퀀스의 "음영" 또는 "파선" 트레이스를 나타내는 이동의 방향을 나타낼 수도 있다. 하나의 실시형태에서, 점선 화살표들 (565, 575 및 585) 과 같은 3D 그래픽들은 모션 시퀀스의 실행을 위한 방향을 나타낼 수도 있다. 도 5b 에서, 모션이 일부 공차 파라미터 내에서 정확하게 실행된 포지션 (520) 에서, UD (100) 의 모션을 나타내는 화살표 (577) 및 모션 시퀀스의 추가적인 실행을 위한 정확한 방향을 나타내는 화살표 (575) 는 거의 평행하다. 도 5c 에서, 모션이 부정확하게 실행된 포지션 (530) 에서, UD (100) 의 모션의 정확한 방향을 나타내는 점선 화살표 (585) 와 UD (100) 의 모션을 나타내는 화살표 (587) 는 발산한다. 일부 실시형태들에서, 화살표들 (577 및/또는 587) 은 사용자에 의한 모션 시퀀스 실행의 품질을 나타내기 위해 품질 측정치에 기초하여 컬러 코딩될 수도 있다.
도 6a 및 도 6b 는 SLAM 초기화 모션 시퀀스의 표시를 제공하기 위해 3D 스크린 정렬된 UI 엘리먼트들을 이용하는 예시적인 GUI 의 모습들을 나타낸다. 도 6a 에서 도시된 바와 같이, (도 6a 및 도 6b 에서 삼각형들로 도시된) 새떼들 (689-1) 은 소망된/최적의 궤적을 따라서 이동하는 것으로 도시되고; 사용자가 궤적으로부터 벗어나는 경우에, 새떼들 (689-2) 의 모션은 소망된/최적의 궤적을 따르도록 사용자를 안내하도록 수정될 수도 있다.
도 7 은 모션 시퀀스의 표시를 제공하기 위해 3D 세계 정렬된 UI 엘리먼트들을 이용하는 예시적인 GUI 의 일 실시형태를 나타낸다. 일부 실시형태들에서, 환경 내에 내장된 3D 엘리먼트들은 소망된 모션 시퀀스의 실행을 향하는 방향으로의 힌트들과 함께 보여질 수도 있다. 예를 들어, 하나의 구현에서, 도 3d 에서 도시된 바와 같이, 3D 하우스는 "정문을 보도록" 하는 제안 (792) 및/또는 다른 UI 엘리먼트와 함께 UD (100) 상의 디스플레이 (170) 상에 보여질 수도 있다. 일부 실시형태들에서, 보여지는 집의 투시, 제안 (792), UI 엘리먼트들 (793 및 795) 은 집을 시야에 유지하면서 정면 현관문을 보도록 UD (100) 를 피봇하도록 사용자를 유도하는 피봇 모션 시퀀스를 나타낼 수도 있다.
다른 실시형태에서, 사용자로부터 멀리 바라보는 3D 캐릭터가 테이블의 다른 측에 디스플레이될 수도 있어, 눈들에서 캐릭터를 보기 위해 테이블 주위로의 피봇 모션 시퀀스가 유발된다. 또 다른 실시형태에서, 애플리케이션의 상호작용적 메뉴가 사용될 수도 있고, 예를 들어, 테이블 주위로의 피봇 모션 시퀀스가 정확한 메뉴 아이템의 사용자-선택을 허용하기 이전에 사용될 수도 있다. 추가적인 실시형태에서, 예를 들어 사용자에게 미리설계된 궤적 상에 위치된 상이한 가상 아이템들을 수집하도록 요구함으로써 모션을 제안하는 미니-게임이 제시될 수도 있다. 일부 실시형태들에서, 미니-게임은 초기화 루틴을 호출하는 AR 애플리케이션에 대응하는 것들과 함께 제시될 수도 있다.
도 8a 및 도 8b 는 정렬된 UI 엘리먼트들의 2.5-D 표현을 이용하는 GUI 의 예시적인 구현을 나타낸다. 2.5-D 라는 용어는 이미지 시퀀스에서 3-D 의 외관을 시뮬레이션하는 그래픽적 투영들 및/또는 다른 기법들을 지칭하기 위해 사용된다. 2.5-D 표현은 합당한 양의 정보가 보여지는 것을 허용하면서 최종 사용자 단순성을 용이하게 할 수도 있다. 또한, 도 8a 에서 도시된 바와 같이, 2.5D GUI 는 수평방향 또는 측방향 병진 모션 시퀀스 및 피봇 모션 시퀀스의 시각화를 허용할 수도 있다.
도 8a 및 도 8b 에서, GUI 뷰 (805) 에서, 인터페이스는 밝은 오브젝트 (804) 에 의해 표현된 디바이스의 초기 포지션 및 어두운 오브젝트 (807) 로서 나타난 디바이스의 현재 포지션을 나타낸다. 디바이스를 나타내는 오브젝트의 컬러는 모션 시퀀스의 실행에 의존하여 어두운 것에서 밝은 것으로 (또는 제 1 컬러에서 제 2 컬러로) 그리고 그 역으로 변화할 수도 있다. 애니메이션으로 된 화살표 (809) 는 사용자가 디바이스를 이동시켜야 하는 방향을 나타낸다.
도 8a 에서, GUI 뷰들 (810, 815 및 817) 은 모션 시퀀스가 정확하게 실행된 이미지들의 시퀀스를 나타내는 한편, 도 8b 에서, GUI 들 (850, 855 및 857) 은 모션 시퀀스가 부정확하게 실행된 이미지들의 시퀀스를 나타낸다. 도 8a 에서 도시된 바와 같이, GUI 뷰 (810) 에서, UD (100) 의 초기 포지션 (804) 은 밝은 오브젝트에 의해 나타내어지고, UD (100) 의 현재 포지션 (820) 은 어두운 오브젝트에 의해 나타내어진다. GUI 뷰들 (805, 810, 815 및 817) 을 비교함으로써 알 수 있는 바와 같이, UD (100)/카메라 (110) 는 애니메이션으로 된 화살표 (809) 에 의해 표시된 방향으로 그것의 초기 포지션 (807) 으로부터 포지션들 (820, 825 및 827) 로 이동되었다. 시각화에서의 오브젝트의 배향은 디바이스의 이동들에 상호작용적으로 매칭한다. 따라서, 모션 시퀀스가 정확하게 실행된 GUI 뷰들 (810, 815 및 817) 에서, 포지션들 (820, 825 및 827) 에서의 녹색 오브젝트는 수직이다.
도 8b 에서, 모션 시퀀스가 부정확하게 실행된 GUI 뷰 (850) 에서 나타난 바와 같이, 포지션 (860) 에서, 회전이 공차 레벨 내에 있을 수도 있기 때문에 어두운 오브젝트는 제 1 방향으로 기울어진 것으로 나타난다. GUI 뷰 (855) 에서, UD (100) 의 회전은 허용된 공차를 초과하고, 따라서, 포지션 (865) 에서, 오브젝트의 컬러는 변경되었고 기울기는 증가하였다. 마지막으로, GUI 뷰 (857) 에서, 메시지 (870) 는 모션 시퀀스의 부정확한 실행으로 인한 초기화의 실패를 나타낸다. 도 8a 및 도 8b 에서 도시된, 정렬된 UI 엘리먼트들의 2.5-D 표현을 이용하는 GUI 설계는 회전 모션들의 경우에 완전한 3 DOF 의 경고들을 통신하고 사용자의 모션 정정에 상호작용적으로 반응한다.
도 9 는 초기화를 위해 피처 풍부한 로케이션들을 선택하기 위해서 및/또는 초기화를 위한 빈곤한 로케이션들의 사용을 방지하기 위해서 2.5-D 표현을 이용하는 GUI 의 예시적인 구현을 나타낸다. 도 9 에서 도시된 바와 같이, GUI (970) 에서, UD (100) 상의 카메라가 초기화를 위한 빈곤한 로케이션에서 포인팅될 때, 증강된 원통형 오브젝트 (980) 가 (예컨대, 적색으로) 컬러를 변경할 수도 있다. GUI (975) 에서, UD (100) 상의 카메라 (110) 는 초기화를 위한 양호한 로케이션에 포인팅되고, 증강된 원통형 오브젝트 (980) 는 다른 컬러로 (예컨대, 녹색으로) 바뀔 수도 있다. 바 (982) 의 컬러는 언제 초기화가 완료되고 AR 애플리케이션이 실행될 수 있는지를 나타낸다. 도 4b 에서, 증강된 원통형 오브젝트는 GUI 들의 기능을 나타내도록 나타내어진다. 일반적으로, 엔드-애플리케이션에서 사용된 3D 캐릭터 또는 오브젝트와 같은 임의의 3D 오브젝트가 사용될 수도 있다.
일부 실시형태들에서, 상기 설명된 초기화 기법들은, 단안 카메라로부터의 이미지 시퀀스들을 이용하여, 장면 상의 임의의 이전의 지식 없이 즉각적인 또는 빠른 실시간 6DOF 추적을 제공할 수 있는 추적 시스템과 함께 이용될 수도 있다. 상기 초기화 기법들과 함께 사용될 수 있는 예시적인 추적 시스템에 대한 추가적인 상세한 내용들이 이하 제공된다. 일반적으로, 초기화 루틴은, SLAM/VSLAM 과 함께 또는, 사용자 카메라 이동들이 기저 프로세스에 의해 사용되는 AR 시스템들 또는 다른 컴퓨터-비전 시스템들, 기능들, 및/또는 애플리케이션들을 포함하는 다른 시스템들과 함께 이용될 수도 있다.
추적 시스템은 초기 키프레임으로부터 2D 포인트들을 추적하고, 초기 키프레임에 대한, 각각의 연속적인 프레임에 대한 3D 포인트 로케이션들 및 상대적인 카메라 포즈를 공동으로 최적화함으로써 (미니-번들 조정으로 지칭됨) 작업할 수도 있다. 추적 시스템은 따라서, SLAM/VSLAM 시스템이 성공적으로 그것의 맵을 초기화할 때까지 애플리케이션 기동으로부터 포즈 추적을 위해 잘 적합화될 수도 있다. 번들 조정들은, 모든 포인트들의 대응하는 이미지 투영들을 수반하는 최적성 기준에 따라, (i) 상이한 시점들로부터 다수의 3D 포인트들을 묘사하는 이미지들의 셋트에서 장면 지오메트리를 기술하는 3D 좌표들 및 (ii) 이미지들을 획득하기 위해 채용되는 카메라(들)의 상대적인 모션의 파라미터들의 동시적인 정제를 지칭한다. 번들 조정에서, 관찰되는 그리고 예측되는 이미지 포인트들의 이미지 로케이션들 사이의 재투영 에러는 최소화될 수도 있다.
추적 시스템에서, 제 1 키프레임에서 검출된 모든 포인트들은 카메라 센터로부터 통일성의 거리를 가지도록 설정될 수도 있다. 카메라가 이동함에 따라, 모든 포인트들의 심도 및 상대적인 포즈는 지속적으로 업데이트될 수도 있다. 포인트들은, 제 1 카메라 센터로부터 기원하고 제 1 키프레임에서의 각각의 관찰들을 통과하는 선들을 따라 전방 및 후방으로 이동한다. 따라서, 오직 포인트 당 단일의 파라미터만이 추정될 수도 있고, 이는 본 방법이 예를 들어 모바일 폰 또는 UD (100) 상에서 실시간으로 실행되기에 충분히 효율적이도록 만든다. 각각의 카메라 프레임에 대해, 모든 피처들의 삼각측량 각도가 계산될 수도 있다. 피처가 소정의 각도 임계치를 통과할 때, 그것은 강건한 것으로서 마킹될 수도 있다. 일단 충분한 피처들이 강건하면, 본 방법은 현재의 카메라 프레임을 키프레임으로 자동적으로 승격시키고, 2 개의 키프레임들을 이용하여 맵을 초기화할 수도 있다.
도 10a 및 도 10b 는 SLAM/VSLAM 초기화를 수행하는 예시적인 방법에 대한 플로우차트 (1000) 를 나타낸다. 일부 실시형태들에서, 방법 (1000) 은 카메라 (110) 및 스크린 (170) 을 포함하는 사용자 디바이스 (UD) (100) 상에서 실행될 수도 있다. 일부 실시형태들에서, 방법 (1000) 의 부분들은 프로세서 (150) 및/또는 CV 애플리케이션 초기화 모듈 (155) 에 의해 수행될 수도 있다. 초기화를 시작하면, 단계 (1010) 에서, 실시간 상호작용적 그래픽 사용자 인터페이스 (GUI) 가 UD 스크린 (170) 상에 디스플레이될 수도 있다. 다음으로, 단계 (1015) 에서, 카메라 (110) 에 의해 캡처된 이미지가 획득될 수도 있다.
단계 (1020) 에서, SLAM 초기화를 위한 카메라 캡처된 이미지의 적합성은 예를 들어 UD (100) 상의 프로세서(들) (150) 에 의해 실시간으로 결정될 수도 있다. 예를 들어, 캡처된 이미지가 피처 풍부한 경우에는, 그 이미지는 적합한 것으로서 결정될 수도 있다. 캡처된 이미지가 피처들이 결핍된 경우에는, 이미지는 부적합한 것으로서 거부될 수도 있다.
단계 (1025) 에서, 이미지가 적합한 경우에 (단계 (1025) 에서 "예"), 단계 (1035) 에서, 디스플레이는 적합성의 표시를 제공하기 위해 실시간으로 상호작용적으로 업데이트될 수도 있다. 예를 들어, 도 9 에서 도시된 원통 또는 다른 가상적인 오브젝트 (980) 의 컬러는 (예컨대, 녹색으로) 변경될 수도 있다. 단계 (1025) 에서, 이미지가 부적합한 경우에 (단계 (1025) 에서 "아니오"), 단계 (1030) 에서, 디스플레이는, 이미지가 부적합하다는 표시를 제공하기 위해 실시간으로 상호작용적으로 업데이트될 수도 있고, 또 다른 반복이 단계 (1015) 에서 시작될 수도 있다. 예를 들어, 도 9 에서 도시된 원통 또는 다른 가상적인 오브젝트 (980) 의 컬러는 (예컨대, 적색으로) 변경될 수도 있고, 또 다른 반복이 단계 (1015) 에서 시작될 수도 있다. 따라서, 도 10a 에서의 방법은 SLAM 초기화를 위한 이미지의 적합성을 확립하기 위해 이용될 수도 있다. 일부 실시형태들에서, 도 10a 에서의 방법은 SLAM 초기화를 위한 애플리케이션 내로 엄격하게 통합될 수도 있다.
이미지가 초기화를 위해 적합한 것으로 결정되는 경우에 (단계 (1025) 에서 "예"), 단계 (1040) 에서, 제 1 캡처된 이미지가 획득될 수도 있고, 단계 (1045) 에서, 피봇 거리 d 에 대한 값이 업데이트될 수도 있다. 일부 실시형태들에서, 초기 카메라 포지션이 또한 추정 또는 가정될 수도 있다. 예를 들어, 초기 카메라 포지션은 세계 좌표 프레임의 적절한 선택에 기초하여 선택될 수도 있다. 일 예로서, 초기 카메라 포지션은 (공간 좌표 시스템에 대응할 수도 있는) 항등성 포즈로 설정될 수 있고, 및/또는, 가속도계 판독들에 기초하여 선택될 수도 있다 (즉, 공간 프레임의 Z 축은 측정된 수직 방향과 일치할 수도 있다). 일반적으로, 초기 카메라 포즈는 방법 (1000) 에서의 후속 단계들에 대한 영향 없이 다양한 방식들로 가정 및/또는 추정될 수도 있다.
또한, 값 dd > 0 (예컨대, d = 1) 이도록 임의의 값에 기초하여 업데이트될 수도 있다. 일부 실시형태들에서, d 는 카메라 (110) 및/또는 UD (100) 로부터의 관찰된 피처 포인트들의 평균 거리에 기초하여 업데이트될 수도 있다. 일부 실시형태들에서, d 는 몇몇 정해진 임계치 초과의 임의적으로 큰 값으로서 업데이트될 수도 있다. d 의 큰 값들이 사용될 때, 궤적은 측방향 병진에 근사한다. 일부 실시형태들에서, d 의 값은, 사용자 설정들 또는 초기화가 수행되고 있는 CV 또는 AR 애플리케이션에서의 설정들에 기초하여 선택될 수도 있다. 예를 들어, 사용자가 초기화를 위한 병진 모션 시퀀스를 선택한 경우에는, 병진 임계치를 초과하는 큰 값의 d 가 이용될 수도 있다.
단계 (1050) 에서, 다음 카메라-캡처된 이미지 i 가 획득될 수도 있다. 다음으로, 단계 (1055) 에서, 다음의/현재의 이미지 i 에 대해,
Figure 112015117137998-pct00029
로서
Figure 112015117137998-pct00030
가 결정될 수도 있다.
단계 (1060) 에서, 값
Figure 112015117137998-pct00031
이 결정될 수도 있고,
Figure 112015117137998-pct00032
가 몇몇 임계치 미만인지를 검증함으로써 포즈 C 가 소망된 피봇 주위로의 회전을 구성하는지 여부가 결정될 수도 있다. 일부 실시형태들에서, 그것이 몇몇 미리결정된 제약들 내에 또는 몇몇 선택된 값의 범위 내에 속하는지 여부를 결정하기 위해
Figure 112015117137998-pct00033
의 값이 체크될 수도 있다. 값
Figure 112015117137998-pct00034
이 미리결정된 제약들 내에 속하지 않는 경우에는, 에러 표시 또는 적절한 정정하는 액션이 사용자에게 디스플레이될 수도 있다. 일부 실시형태들에서, 에러 표시 또는 정정 액션은 현재 궤적에 대한 품질 표시/측정치의 일부로서 제공될 수도 있다.
또한, 단계 (1060) 에서,
Figure 112015117137998-pct00035
가 테스트될 수도 있고, 여기서, 앞에서와 같이,
Figure 112015117137998-pct00036
는 현재의 이미지 i 에 대해 결정된 포즈에 기초하여 계산될 수도 있는 실제 궤적에 기초하고,
Figure 112015117137998-pct00037
는 바로 이전 프레임에 기초하여 계산될 수도 있는 미리 결정된 최적의 궤적에 기초한다.
일부 실시형태들에서, 단계 (1065) 에서, 품질 측정치는 현재의 궤적에 대해 결정된다. 예를 들어, 현재 프레임에 기초하여 계산된 카메라 포즈는 그러면 이전 프레임에서 행해진 최적의 궤적에 대한 카메라 포즈 예측에 대해 비교된다. 일부 실시형태들에서, 품질 측정치는 테스트
Figure 112015117137998-pct00038
및/또는 테스트
Figure 112015117137998-pct00039
에 기초할 수도 있다. 또한, 일부 실시형태들에서, 단계 (560) 에서,
Figure 112015117137998-pct00040
은 현재의 포즈에 기초하여 결정될 수도 있다.
단계 (1070) 에서, GUI 는 (i) 현재 캡처된 이미지 i 로부터 추정된 현재의 카메라 포즈,
Figure 112015117137998-pct00041
에 기초할 수도 있는 소망된/계산된 최적의 궤적에 기초하여 CV/MVG 애플리케이션/SLAM 초기화를 위한 UD 에 대한 소망된 이동 방향; 및/또는 (ii) 테스트
Figure 112015117137998-pct00042
및/또는 테스트
Figure 112015117137998-pct00043
에 기초할 수도 있는 현재의 카메라 궤적에 대한 품질의 표시의 표시를 제공하기 위해 실시간으로 상호작용적으로 업데이트될 수도 있다. 현재의 카메라 포즈는 현재 캡처된 카메라 이미지에 부분적으로 기초하여 추적기에 의해 결정될 수도 있다. 도 3 내지 도 8 에서 나타낸 기법들의 하나 이상은 SLAM 초기화를 위한 UD 에 대한 소망된 이동 방향의 표시를 제공하기 위해 이용될 수도 있다. 일부 실시형태들에서, 스크린 상에서 증강된 오브젝트들은 현재의 궤적 품질의 표시를 제공하도록 컬러 코딩될 수도 있다.
단계 (1075) 에서, CV/MVG/SLAM 초기화가 완료된 경우에 (단계 (1075) 에서 "예"), 단계 (1080) 에서, CV/MVG/SLAM 프로세스는 시작될 수도 있다. 예를 들어, 충분히 큰 베이스라인이 획득된 경우에, CV/MVG/SLAM 프로세스가 단계 (1080) 에서 시작할 수도 있다. 그렇지 않은 경우에, 다음 반복이 단계 (1050) 에서 시작된다.
플로우차트 (1000) 는 SLAM/VSLAM 초기화를 위한 절차들을 예시하지만, 본 방법은 다른 다양한 다른 맵핑 또는 컴퓨터-비전 기능들, 절차들, 및/또는 애플리케이션들과 함께 이용될 수도 있다. 따라서, SLAM 초기화는 단지 하나의 가능성 있는 실시형태이고, SLAM 이외의 실시형태들이 구현될 수도 있다. 유사하게, 도 3 내지 도 8 은 예시적인 애플리케이션으로서 SLAM/VSLAM 초기화를 이용하여 상기 설명되었을 수도 있지만, 도 3 내지 도 8 의 관련 설명에서 논의된 프로세스들 및 실시형태들은 다른 다양한 다른 맵핑 및/또는 컴퓨터-비전 기능들, 절차들, 및/또는 애플리케이션들과 함께 이용될 수도 있다.
도 11 은 개시된 실시형태들과 일치하는 방식으로 SLAM/VSLAM 초기화를 수행하기 위한 예시적인 방법 (1100) 에 대한 플로우차트를 나타낸다. 일부 실시형태들에서, 방법 (1100) 은 카메라 (110) 및 디스플레이 (170) 를 이용하여 UD (100) 상에서 수행될 수도 있다.
단계 (1110) 에서, 컴퓨터 비전 (CV) 애플리케이션의 초기화를 위한 최적의 카메라 궤적이 결정될 수도 있다. 일부 실시형태들에서, 최적의 궤적은 초기 카메라 포즈 및 추정된 피봇 거리에 기초하여 결정될 수도 있고, 여기서, 초기 카메라 포즈는 카메라 (110) 에 의해 캡처된 제 1 이미지에 기초하여 추정될 수도 있다. 일부 실시형태들에서, 피봇 거리는: 임의의 양의 값; 제 1 이미지에서의 관찰된 피처 포인트들의 평균 거리; 또는 일부 경우들에서 병진 임계치일 수도 있는 임계치 초과의 값 중 적어도 하나로서 결정될 수도 있다.
일부 실시형태들에서, 최적의 카메라 궤적을 결정하기 이전에, 초기화를 위한 카메라 캡처된 이미지의 적합성은, 카메라 캡처된 이미지에서의 피처 포인트들의 수에 부분적으로 기초하여 결정될 수도 있고, 카메라 캡처된 이미지가 초기화를 위해 적합한 것으로 결정되는 경우에, 그 카메라 캡처된 이미지는 제 1 이미지로서 선택될 수도 있다. 일부 실시형태들에서, 제 1 이미지의 선택 시, 초기화를 위한 제 1 이미지의 적합성의 표시는 제 1 가상 오브젝트로 카메라 캡처된 이미지의 디스플레이를 증강시킴으로써 제공될 수도 있다. 일부 실시형태들에서, 초기화를 위한 카메라 캡처된 이미지의 부적합성의 표시는, 제 2 가상 오브젝트로 카메라 캡처된 이미지의 디스플레이를 증강시킴으로써 및/또는 제 1 가상 오브젝트와 연관된 디스플레이된 가상적 특성들을 변경함으로써 제공될 수도 있다. 적합성 또는 부적합성의 표시는 디스플레이 (170) 상에 디스플레이된 상호작용적 그래픽 사용자 인터페이스 (GUI) 를 통해 제공될 수도 있다.
다음으로, 단계 (1120) 에서, 디스플레이 (170) 는 카메라 (110)/UD (100) 에 대한 소망된 이동 방향의 표시로 실시간으로 업데이트될 수도 있고, 소망된 이동의 방향의 표시는 현재의 카메라 포즈 및 최적의 궤적에 부분적으로 기초할 수도 있으며, 여기서, 현재의 카메라 포즈는 카메라 (110) 에 의해 캡처된 현재의 이미지에 기초하여 추정된다. 일부 실시형태들에서, 카메라에 대한 소망된 이동 방향은, 카메라의 현재의 궤적의 카메라의 최적의 궤적과의 비교에 부분적으로 기초하여 획득될 수도 있고, 카메라의 현재의 궤적은 이전 카메라 포즈들의 시퀀스로부터 결정된다. 일부 실시형태들에서, 디스플레이는 카메라에 대한 업데이트된 소망된 이동 방향들의 표시들의 시퀀스로 실시간으로 추가로 업데이트될 수도 있다. 예를 들어, 시퀀스에서의 각각의 소망된 이동 방향은 추가적인 카메라의 이동과 연관된 대응하는 카메라 포즈에 부분적으로 기초하여 업데이트될 수도 있다.
일부 실시형태들에서, 이동 방향의 표시는: 이동 방향의 표시를 제공하기 위한 2D 스크린 정렬된 UI 엘리먼트들을 포함하는 스크린-정렬된 2-차원 (2D) 유도 방식; 또는, 이동 방향의 표시를 제공하기 위한 3D 스크린 정렬된 UI 엘리먼트들을 포함하는 스크린-정렬된 3-차원 (3D) 유도 방식; 또는, 이동 방향의 표시를 제공하기 위해 실세계 오브젝트들에 대해 정렬된 3D UI 엘리먼트들을 포함하는 세계 정렬된 3D 유도 방식 또는 이동 방향의 표시를 제공하기 위해 실세계 오브젝트들에 대해 정렬된, 2.5-차원에서 디스플레이된 UI 엘리먼트들을 포함하는 세계 정렬된 2.5-차원 (2.5-D) 유도 방식 중 적어도 하나를 이용하여 제공될 수도 있다.
일부 실시형태들에서, 소망된 이동 방향의 표시는 측방향 병진 및 피봇 초기화 모션 시퀀스들 양방에 대해 제공될 수도 있다. 일부 실시형태들에서, 소망된 이동 방향의 표시는 과거 이동의 표시 및 선호되는 미래 이동 방향의 표시를 포함할 수도 있다. 일부 실시형태들에서, 소망된 이동 방향의 표시는 또한 카메라의 회전 이동을 나타낼 수도 있다. 일부 실시형태들에서, 소망된 이동 방향의 표시는 소망된 궤적 및 현재의 궤적에 대한 정정 양방을 나타낼 수도 있다. 또한, 일부 구현형태들에서, 소망된 이동 방향의 표시와 함께 사용자에게 청각의 및/또는 촉각의 피드백 중 적어도 하나가 제공될 수도 있다.
일부 실시형태들에서, 카메라의 현재 궤적의 품질의 측정이 또한 제공될 수도 있다. 예를 들어, 카메라의 현재의 궤적은 현재의 카메라 포즈 및 이전의 카메라 포즈들의 시퀀스에 부분적으로 기초하여 결정될 수도 있고, 품질의 측정치는 최적의 궤적과 현재의 궤적의 비교에 기초할 수도 있다.
본 명세서에서 개시된 방법들은 애플리케이션에 따라 다양한 수단에 의해 구현될 수도 있다. 예를 들어, 펌웨어 및/또는 소프트웨어 구현을 위해, 그 방법들은 본 명세서에서 설명된 기능들을 수행하는 모듈들 (예를 들면, 절차들, 함수들 등) 로 구현될 수도 있다. 명령들을 유형적으로 포함하는 임의의 머신-판독가능 매체가 본 명세서에서 기술된 방법들을 구현함에 있어서 사용될 수도 있다. 예를 들어, 소프트웨어 코드는 메모리에 저장되고 프로세서 유닛에 의해 실행될 수도 있다. 일부 실시형태들에서, 기능들은 컴퓨터-판독가능 매체 상에 하나 이상의 명령들 또는 코드로서 저장될 수도 있다. 예들은, 데이터 구조로 인코딩된 컴퓨터-판독가능 매체들 및 컴퓨터 프로그램으로 인코딩된 컴퓨터-판독가능 매체들을 포함한다. 컴퓨터-판독가능 매체들은 물리적인 컴퓨터 저장 매체들을 포함한다.
저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 이용가능한 매체일 수도 있다. 비한정적 예로서, 이러한 컴퓨터-판독가능 매체는 RAM, ROM, EEPROM, CD-ROM 또는 다른 광학 디스크 스토리지, 자기 디스크 스토리지 또는 다른 자기 저장 디바이스들, 또는 명령들 또는 데이터 구조들의 형태로 원하는 프로그램 코드를 저장하는데 사용될 수 있고 컴퓨터에 의해 액세스될 수 있는 임의의 다른 매체를 포함할 수 있고; 본 명세서에서 사용된 바와 같이, 디스크 (disk) 및 디스크 (disc) 는 콤팩트 디스크 (CD), 레이저 디스크, 광 디스크, 디지털 다기능 디스크 (DVD), 플로피 디스크 및 블루-레이 디스크를 포함하며, 여기서, 디스크 (disk) 들은 통상적으로 데이터를 자기적으로 재생하지만, 디스크 (disc) 들은 레이저들을 이용하여 광학적으로 데이터를 재생한다. 상기의 조합들 또한 컴퓨터-판독가능 매체의 범위 내에 포함되어야 한다.
컴퓨터 판독가능 매체 상의 저장에 더하여, 명령들 및/또는 데이터는 통신 장치에 포함된 송신 매체 상의 신호들로서 제공될 수도 있다. 예를 들면, 통신 장치는 명령들 및 데이터를 나타내는 신호들을 갖는 송수신기를 포함할 수도 있다. 명령들 및 데이터는 하나 이상의 프로세서들로 하여금 청구항들에 개요가 기술된 기능들을 구현하게 하도록 구성된다. 즉, 통신 장치는 개시된 기능들을 수행하기 위한 정보를 나타내는 신호들을 갖는 송신 매체들을 포함한다. 첫째로, 통신 장치에 포함된 송신 매체들은 개시된 기능들을 수행하기 위한 정보의 제 1 부분을 포함할 수도 있는 한편, 둘째로 통신 장치에 포함된 송신 매체들은 개시된 기능들을 수행하기 위한 정보의 제 2 부분을 포함할 수도 있다.
개시된 양태들의 이전 설명은 통상의 기술자로 하여금 본 개시를 실시 및 이용하는 것을 가능하게 하기 위하여 제공되었다. 이들 양태들에 대한 다양한 변형들이 통상의 기술자에게 자명할 것이고, 본 명세서에서 정의된 일반 원리들은 본 개시의 사상 및 범위로부터 벗어남이 없이 다른 양태들에 적용될 수도 있다.

Claims (30)

  1. 카메라 및 디스플레이를 포함하는 사용자 디바이스 (UD) 상에서의 방법으로서,
    초기 카메라 포즈 및 상기 카메라와 피봇 포지션 사이의 추정된 피봇 거리에 부분적으로 기초하여 컴퓨터 비전 (CV) 애플리케이션의 타겟 없는 초기화를 위한 상기 카메라의 궤적을 결정하는 단계로서, 상기 초기 카메라 포즈는 상기 카메라에 의해 캡처된 타겟 없는 제 1 이미지에 기초하여 추정되는, 상기 카메라의 궤적을 결정하는 단계; 및
    상기 카메라에 대한 소망된 이동 방향의 표시로 실시간으로 상기 디스플레이를 업데이트하는 단계로서, 상기 소망된 이동 방향의 표시는 현재의 카메라 포즈 및 상기 카메라의 결정된 궤적에 부분적으로 기초하고, 상기 현재의 카메라 포즈는 상기 카메라에 의해 캡처된 현재의 이미지에 기초하여 추정되는, 상기 디스플레이를 업데이트하는 단계를 포함하는, 사용자 디바이스 상에서의 방법.
  2. 제 1 항에 있어서,
    상기 카메라에 대한 소망된 이동 방향은 상기 카메라의 결정된 궤적과 상기 카메라의 현재의 궤적의 비교에 부분적으로 기초하여 획득되고, 상기 카메라의 상기 현재의 궤적은 이전의 카메라 포즈들의 시퀀스로부터 결정되는, 사용자 디바이스 상에서의 방법.
  3. 제 1 항에 있어서,
    상기 카메라에 대한 소망된 이동 방향들의 하나 이상의 추가적인 표시들로 상기 카메라의 이동 시 실시간으로 상기 디스플레이를 업데이트하는 단계를 더 포함하고, 소망된 이동 방향들의 각각의 추가적인 표시는 상기 카메라의 상기 이동과 연관된 대응하는 추가적인 카메라 포즈에 부분적으로 기초하는, 사용자 디바이스 상에서의 방법.
  4. 제 1 항에 있어서,
    상기 피봇 거리는,
    임의의 양의 값;
    상기 제 1 이미지에서의 관찰된 피처 포인트들의 서브셋트의 평균 거리;
    임계치를 초과하는 값
    중 적어도 하나로서 결정되는, 사용자 디바이스 상에서의 방법.
  5. 제 1 항에 있어서,
    상기 카메라의 현재의 궤적의 품질의 측정치를 계산하는 단계로서, 상기 카메라의 현재의 궤적은 상기 현재의 카메라 포즈 및 이전의 카메라 포즈들의 시퀀스에 부분적으로 기초하여 결정되고, 상기 품질의 측정치는 상기 카메라의 결정된 궤적과 상기 카메라의 현재의 궤적의 비교에 기초하는, 상기 카메라의 현재의 궤적의 품질의 측정치를 계산하는 단계; 및
    상기 카메라의 현재의 궤적의 품질의 측정치의 표시를 디스플레이하는 단계를 더 포함하는, 사용자 디바이스 상에서의 방법.
  6. 제 1 항에 있어서,
    상기 카메라의 궤적을 결정하는 단계는,
    하나 이상의 카메라 캡처된 이미지들로부터, 상기 하나 이상의 카메라 캡처된 이미지들에서의 다수의 피처 포인트들에 부분적으로 기초하여 상기 제 1 이미지를 선택하는 단계를 포함하는, 사용자 디바이스 상에서의 방법.
  7. 제 6 항에 있어서,
    상기 제 1 이미지의 선택 시, 제 1 가상 오브젝트를 디스플레이함으로써 초기화를 위한 상기 제 1 이미지의 적합성의 표시를 제공하는 단계; 또는
    제 2 가상 오브젝트를 디스플레이함으로써 상기 하나 이상의 캡처된 이미지들의 초기화를 위한 부적합성의 표시를 제공하는 단계를 더 포함하는, 사용자 디바이스 상에서의 방법.
  8. 제 1 항에 있어서,
    상기 소망된 이동 방향의 표시는,
    상기 소망된 이동 방향의 표시를 제공하기 위한 2D 스크린 정렬된 UI 엘리먼트들을 포함하는 스크린-정렬된 2-차원 (2D) 유도 방식; 또는
    상기 소망된 이동 방향의 표시를 제공하기 위한 3D 스크린 정렬된 UI 엘리먼트들을 포함하는 스크린-정렬된 3-차원 (3D) 유도 방식; 또는
    상기 소망된 이동 방향의 표시를 제공하기 위해 실세계 오브젝트들을 향해 정렬된 3D UI 엘리먼트들을 포함하는 세계 정렬된 3D 유도 방식; 또는
    상기 소망된 이동 방향의 표시를 제공하기 위해 실세계 오브젝트들을 향해 정렬된, 2.5-차원에서 디스플레이된 UI 엘리먼트들을 포함하는 세계 정렬된 2.5-차원 (2.5-D) 유도 방식
    중 적어도 하나를 이용하여 제공되는, 사용자 디바이스 상에서의 방법.
  9. 제 1 항에 있어서,
    상기 소망된 이동 방향의 표시는 상기 카메라의 측방향 병진 모션 시퀀스 및 상기 카메라의 피봇 초기화 모션 시퀀스 양방에 대해 제공되는, 사용자 디바이스 상에서의 방법.
  10. 제 1 항에 있어서,
    상기 소망된 이동 방향의 표시는 과거 이동의 표시 및 선호되는 미래 이동 방향의 표시를 포함하는, 사용자 디바이스 상에서의 방법.
  11. 제 1 항에 있어서,
    상기 소망된 이동 방향의 표시는 또한 상기 카메라의 회전 이동을 나타내는, 사용자 디바이스 상에서의 방법.
  12. 제 1 항에 있어서,
    상기 소망된 이동 방향의 표시와 함께 사용자에게 청각의 피드백 또는 촉각의 피드백 중 적어도 하나를 제공하는 단계를 더 포함하는, 사용자 디바이스 상에서의 방법.
  13. 사용자 디바이스 (UD) 로서,
    이미지들의 시퀀스를 캡처하기 위한 이미지 센서;
    디스플레이; 및
    상기 이미지 센서 및 상기 디스플레이에 커플링된 프로세서를 포함하고,
    상기 프로세서는,
    초기 이미지 센서 포즈 및 상기 이미지 센서와 피봇 포지션 사이의 추정된 피봇 거리에 기초하여 컴퓨터 비전 (CV) 애플리케이션의 타겟 없는 초기화를 위한 상기 이미지 센서의 궤적을 결정하는 것으로서, 상기 초기 이미지 센서 포즈는 상기 이미지 센서에 의해 캡처된 타겟 없는 제 1 이미지에 기초하여 추정되는, 상기 이미지 센서의 궤적을 결정하는 것, 및
    상기 이미지 센서에 대한 소망된 이동 방향의 표시로 실시간으로 상기 디스플레이를 업데이트하는 것으로서, 상기 소망된 이동 방향의 표시는 현재의 이미지 센서 포즈 및 상기 이미지 센서의 결정된 궤적에 부분적으로 기초하고, 상기 현재의 이미지 센서 포즈는 상기 이미지 센서에 의해 캡처된 현재의 이미지에 기초하여 추정되는, 상기 디스플레이를 업데이트하는 것
    을 하도록 구성되는, 사용자 디바이스.
  14. 제 13 항에 있어서,
    상기 이미지 센서에 대한 소망된 이동 방향을 획득하기 위해, 상기 프로세서는,
    상기 이미지 센서의 결정된 궤적과 상기 이미지 센서의 현재의 궤적을 비교하도록 구성되고,
    상기 이미지 센서의 상기 현재의 궤적은 이전의 이미지 센서 포즈들의 시퀀스로부터 결정되는, 사용자 디바이스.
  15. 제 13 항에 있어서,
    상기 프로세서는,
    상기 이미지 센서에 대한 소망된 이동 방향들의 하나 이상의 추가적인 표시들로 상기 이미지 센서의 이동 시 실시간으로 상기 디스플레이를 업데이트하도록 더 구성되고, 소망된 이동 방향들의 각각의 추가적인 표시는 상기 이미지 센서의 상기 이동과 연관된 대응하는 추가적인 이미지 센서 포즈에 부분적으로 기초하는, 사용자 디바이스.
  16. 제 13 항에 있어서,
    상기 프로세서는,
    임의의 양의 값;
    상기 제 1 이미지에서의 관찰된 타겟 피처 포인트들의 평균 거리;
    임계치를 초과하는 값
    중 적어도 하나로서 상기 피봇 거리를 결정하도록 구성되는, 사용자 디바이스.
  17. 제 13 항에 있어서,
    상기 프로세서는,
    상기 이미지 센서의 현재의 궤적의 품질의 측정치를 계산하는 것으로서, 상기 이미지 센서의 현재의 궤적은 상기 현재의 이미지 센서 포즈 및 이전의 이미지 센서 포즈들의 시퀀스에 부분적으로 기초하여 결정되고, 상기 품질의 측정치는 상기 이미지 센서의 결정된 궤적과 상기 이미지 센서의 현재의 궤적의 비교에 기초하는, 상기 현재의 궤적의 품질의 측정치를 계산하는 것; 및
    상기 이미지 센서의 현재의 궤적의 품질의 측정치의 표시를 디스플레이하는 것을 하도록 더 구성되는, 사용자 디바이스.
  18. 제 13 항에 있어서,
    상기 이미지 센서의 궤적을 결정하기 위해, 상기 프로세서는,
    하나 이상의 이미지 센서 캡처된 이미지들로부터, 상기 하나 이상의 이미지 센서 캡처된 이미지들에서의 다수의 피처 포인트들에 부분적으로 기초하여 상기 제 1 이미지를 선택하도록 구성되는, 사용자 디바이스.
  19. 제 18 항에 있어서,
    상기 프로세서는,
    상기 제 1 이미지의 선택 시, 제 1 가상 오브젝트를 디스플레이함으로써 초기화를 위한 상기 제 1 이미지의 적합성의 표시를 제공하거나; 또는
    제 2 가상 오브젝트를 디스플레이함으로써 초기화를 위한 상기 하나 이상의 캡처된 이미지들의 부적합성의 표시를 제공하도록 더 구성되는, 사용자 디바이스.
  20. 제 13 항에 있어서,
    상기 소망된 이동 방향의 표시는,
    상기 소망된 이동 방향의 표시를 제공하기 위한 2D 스크린 정렬된 UI 엘리먼트들을 포함하는 스크린-정렬된 2-차원 (2D) 유도 방식; 또는
    상기 소망된 이동 방향의 표시를 제공하기 위한 3D 스크린 정렬된 UI 엘리먼트들을 포함하는 스크린-정렬된 3-차원 (3D) 유도 방식; 또는
    상기 소망된 이동 방향의 표시를 제공하기 위해 실세계 오브젝트들을 향해 정렬된 3D UI 엘리먼트들을 포함하는 세계 정렬된 3D 유도 방식; 또는
    상기 소망된 이동 방향의 표시를 제공하기 위해 실세계 오브젝트들을 향해 정렬된, 2.5-차원에서 디스플레이된 UI 엘리먼트들을 포함하는 세계 정렬된 2.5-차원 (2.5-D) 유도 방식
    중 적어도 하나를 이용하여 제공되는, 사용자 디바이스.
  21. 제 13 항에 있어서,
    상기 소망된 이동 방향의 표시는 상기 이미지 센서의 측방향 병진 모션 시퀀스 및 상기 이미지 센서의 피봇 초기화 모션 시퀀스 양방에 대해 제공되는, 사용자 디바이스.
  22. 제 13 항에 있어서,
    상기 소망된 이동 방향의 표시는 상기 이미지 센서의 과거 이동의 표시 및 상기 이미지 센서의 선호되는 미래 이동 방향의 표시를 포함하는, 사용자 디바이스.
  23. 제 13 항에 있어서,
    상기 소망된 이동 방향의 표시는 또한 상기 이미지 센서의 회전 이동을 나타내는, 사용자 디바이스.
  24. 제 13 항에 있어서,
    상기 프로세서는,
    상기 소망된 이동 방향의 표시와 함께 사용자에 대한 청각의 피드백 또는 촉각의 피드백 중 적어도 하나의 제공을 야기하도록 더 구성되는, 사용자 디바이스.
  25. 장치로서,
    이미지들의 시퀀스를 캡처하기 위한 이미지 캡처 수단;
    디스플레이 수단;
    상기 이미지 캡처 수단의 초기 포즈 및 상기 이미지 캡처 수단과 피봇 포지션 사이의 추정된 피봇 거리에 기초하여 컴퓨터 비전 (CV) 애플리케이션의 타겟 없는 초기화를 위한 상기 이미지 캡처 수단의 궤적을 결정하는 수단으로서, 상기 이미지 캡처 수단의 초기 포즈는 상기 이미지 캡처 수단에 의해 캡처된 타겟 없는 제 1 이미지에 기초하여 추정되는, 상기 이미지 캡처 수단의 궤적을 결정하는 수단; 및
    상기 이미지 캡처 수단에 대한 소망된 이동 방향의 표시로 실시간으로 상기 디스플레이 수단을 업데이트하는 수단으로서, 상기 소망된 이동 방향의 표시는 상기 이미지 캡처 수단의 현재의 포즈 및 상기 이미지 캡처 수단의 결정된 궤적에 부분적으로 기초하고, 상기 이미지 캡처 수단의 상기 현재의 포즈는 상기 이미지 캡처 수단에 의해 캡처된 현재의 이미지에 기초하여 추정되는, 상기 디스플레이 수단을 업데이트하는 수단을 포함하는, 장치.
  26. 제 25 항에 있어서,
    상기 디스플레이 수단을 업데이트하는 수단은 상기 이미지 캡처 수단에 대한 소망된 이동 방향을 획득하는 수단을 포함하고,
    상기 이미지 캡처 수단에 대한 소망된 이동 방향을 획득하는 수단은 상기 이미지 캡처 수단의 결정된 궤적과 상기 이미지 캡처 수단의 현재의 궤적을 비교하는 수단을 포함하며, 상기 이미지 캡처 수단의 상기 현재의 궤적은 이전의 이미지 캡처 수단 포즈들의 시퀀스로부터 결정되는, 장치.
  27. 제 25 항에 있어서,
    상기 소망된 이동 방향의 표시는,
    상기 소망된 이동 방향의 표시를 제공하기 위한 2D 스크린 정렬된 UI 엘리먼트들을 포함하는 스크린-정렬된 2-차원 (2D) 유도 방식; 또는
    상기 소망된 이동 방향의 표시를 제공하기 위한 3D 스크린 정렬된 UI 엘리먼트들을 포함하는 스크린-정렬된 3-차원 (3D) 유도 방식; 또는
    상기 소망된 이동 방향의 표시를 제공하기 위해 실세계 오브젝트들을 향해 정렬된 3D UI 엘리먼트들을 포함하는 세계 정렬된 3D 유도 방식; 또는
    상기 소망된 이동 방향의 표시를 제공하기 위해 실세계 오브젝트들을 향해 정렬된, 2.5-차원에서 디스플레이된 UI 엘리먼트들을 포함하는 세계 정렬된 2.5-차원 (2.5-D) 유도 방식
    중 적어도 하나를 이용하여 제공되는, 장치.
  28. 명령들을 포함하는 컴퓨터 판독가능 매체로서,
    상기 명령들은, 프로세서에 의해 실행될 때, 카메라 및 디스플레이를 포함하는 사용자 디바이스 (UD) 상에서의 방법을 수행하고,
    상기 방법은,
    초기 카메라 포즈 및 상기 카메라와 피봇 포지션 사이의 추정된 피봇 거리에 기초하여 컴퓨터 비전 (CV) 애플리케이션의 타겟 없는 초기화를 위한 카메라의 궤적을 결정하는 단계로서, 상기 초기 카메라 포즈는 상기 카메라에 의해 캡처된 타겟 없는 제 1 이미지에 기초하여 추정되는, 상기 카메라의 궤적을 결정하는 단계; 및
    상기 카메라에 대한 소망된 이동 방향의 표시로 실시간으로 상기 디스플레이를 업데이트하는 단계로서, 상기 소망된 이동 방향의 표시는 현재의 카메라 포즈 및 상기 카메라의 결정된 궤적에 부분적으로 기초하고, 상기 현재의 카메라 포즈는 상기 카메라에 의해 캡처된 현재의 이미지에 기초하여 추정되는, 상기 디스플레이를 업데이트하는 단계를 포함하는, 컴퓨터 판독가능 매체.
  29. 제 28 항에 있어서,
    상기 카메라에 대한 소망된 이동 방향은 상기 카메라의 결정된 궤적과 상기 카메라의 현재의 궤적의 비교에 부분적으로 기초하여 획득되고, 상기 카메라의 상기 현재의 궤적은 이전의 카메라 포즈들의 시퀀스로부터 결정되는, 컴퓨터 판독가능 매체.
  30. 제 28 항에 있어서,
    상기 소망된 이동 방향의 표시는,
    상기 소망된 이동 방향의 표시를 제공하기 위한 2D 스크린 정렬된 UI 엘리먼트들을 포함하는 스크린-정렬된 2-차원 (2D) 유도 방식; 또는
    상기 소망된 이동 방향의 표시를 제공하기 위한 3D 스크린 정렬된 UI 엘리먼트들을 포함하는 스크린-정렬된 3-차원 (3D) 유도 방식; 또는
    상기 소망된 이동 방향의 표시를 제공하기 위해 실세계 오브젝트들을 향해 정렬된 3D UI 엘리먼트들을 포함하는 세계 정렬된 3D 유도 방식; 또는
    상기 소망된 이동 방향의 표시를 제공하기 위해 실세계 오브젝트들을 향해 정렬된, 2.5-차원에서 디스플레이된 UI 엘리먼트들을 포함하는 세계 정렬된 2.5-차원 (2.5-D) 유도 방식
    중 적어도 하나를 이용하여 제공되는, 컴퓨터 판독가능 매체.
KR1020157034212A 2013-05-02 2014-05-02 컴퓨터 비전 애플리케이션 초기화를 용이하게 하는 방법들 KR102131477B1 (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201361818894P 2013-05-02 2013-05-02
US61/818,894 2013-05-02
US201361884845P 2013-09-30 2013-09-30
US61/884,845 2013-09-30
US14/268,784 US9667873B2 (en) 2013-05-02 2014-05-02 Methods for facilitating computer vision application initialization
US14/268,784 2014-05-02
PCT/US2014/036659 WO2014179745A1 (en) 2013-05-02 2014-05-02 Methods for facilitating computer vision application initialization

Publications (2)

Publication Number Publication Date
KR20160003233A KR20160003233A (ko) 2016-01-08
KR102131477B1 true KR102131477B1 (ko) 2020-07-07

Family

ID=51841264

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157034212A KR102131477B1 (ko) 2013-05-02 2014-05-02 컴퓨터 비전 애플리케이션 초기화를 용이하게 하는 방법들

Country Status (6)

Country Link
US (1) US9667873B2 (ko)
EP (1) EP2992507B1 (ko)
JP (1) JP6359644B2 (ko)
KR (1) KR102131477B1 (ko)
CN (1) CN105408937B (ko)
WO (1) WO2014179745A1 (ko)

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101773116B1 (ko) * 2013-07-26 2017-08-31 삼성전자주식회사 영상 촬영 장치 및 이의 촬영 방법
US9965895B1 (en) * 2014-03-20 2018-05-08 A9.Com, Inc. Augmented reality Camera Lucida
US9953243B2 (en) * 2014-04-25 2018-04-24 Google Llc Electronic device localization based on imagery
US9430038B2 (en) * 2014-05-01 2016-08-30 Microsoft Technology Licensing, Llc World-locked display quality feedback
US10198865B2 (en) 2014-07-10 2019-02-05 Seiko Epson Corporation HMD calibration with direct geometric modeling
US9508195B2 (en) * 2014-09-03 2016-11-29 Microsoft Technology Licensing, Llc Management of content in a 3D holographic environment
JP6193195B2 (ja) * 2014-09-17 2017-09-06 株式会社東芝 移動支援装置、方法及びプログラム
US11016302B2 (en) * 2015-03-17 2021-05-25 Raytrx, Llc Wearable image manipulation and control system with high resolution micro-displays and dynamic opacity augmentation in augmented reality glasses
US10950051B2 (en) * 2015-03-27 2021-03-16 Rockwell Automation Technologies, Inc. Systems and methods for presenting an augmented reality
US10475239B1 (en) * 2015-04-14 2019-11-12 ETAK Systems, LLC Systems and methods for obtaining accurate 3D modeling data with a multiple camera apparatus
US10192133B2 (en) 2015-06-22 2019-01-29 Seiko Epson Corporation Marker, method of detecting position and pose of marker, and computer program
US10192361B2 (en) 2015-07-06 2019-01-29 Seiko Epson Corporation Head-mounted display device and computer program
TW201710646A (zh) * 2015-09-02 2017-03-16 湯姆生特許公司 描繪大視場內容一部份時,決定導航資訊之方法和裝置,以及大視場內容描繪器
US10347048B2 (en) * 2015-12-02 2019-07-09 Seiko Epson Corporation Controlling a display of a head-mounted display device
JP6461024B2 (ja) * 2016-02-05 2019-01-30 富士フイルム株式会社 画像位置合せ装置、方法およびプログラム
JP6823403B2 (ja) * 2016-02-15 2021-02-03 キヤノン株式会社 情報処理装置、情報処理装置の制御方法、情報処理方法およびプログラム
JP6701930B2 (ja) * 2016-04-28 2020-05-27 富士通株式会社 オーサリング装置、オーサリング方法およびオーサリングプログラム
EP3448538A1 (en) * 2016-04-29 2019-03-06 Hewlett-Packard Development Company, L.P. Guidance information relating to a target image
EP3453169A4 (en) * 2016-05-07 2019-09-18 Smart Third-i Ltd SYSTEMS AND METHODS WITH EDGE CAMERA ARRANGEMENTS IN HANDHELD DEVICES
CN105976391B (zh) * 2016-05-27 2018-12-14 西北工业大学 基于orb-slam的多摄像机标定方法
US10217225B2 (en) * 2016-06-01 2019-02-26 International Business Machines Corporation Distributed processing for producing three-dimensional reconstructions
CN108781261B (zh) * 2016-06-09 2020-10-16 谷歌有限责任公司 通过视觉障碍拍摄照片
US10488195B2 (en) 2016-10-25 2019-11-26 Microsoft Technology Licensing, Llc Curated photogrammetry
WO2018170490A1 (en) * 2017-03-17 2018-09-20 Magic Leap, Inc. Technique for recording augmented reality data
CN108961385B (zh) * 2017-05-22 2023-05-02 中国人民解放军信息工程大学 一种slam构图方法及装置
JP6946087B2 (ja) * 2017-07-14 2021-10-06 キヤノン株式会社 情報処理装置及びその制御方法、並びに、プログラム
US10841486B2 (en) * 2017-07-20 2020-11-17 Eclo, Inc. Augmented reality for three-dimensional model reconstruction
CN111094893A (zh) 2017-07-28 2020-05-01 高通股份有限公司 机器人式运载工具的图像传感器初始化
KR102512247B1 (ko) * 2017-10-20 2023-03-22 소니그룹주식회사 정보 처리 장치, 정보 처리 방법 및 프로그램, 그리고 교환 렌즈
JP2021500690A (ja) * 2017-10-23 2021-01-07 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 自己展開型拡張現実ベースのサービス命令ライブラリ
EP3496387A1 (en) * 2017-12-05 2019-06-12 Koninklijke Philips N.V. Apparatus and method of image capture
GB201804195D0 (en) * 2018-03-15 2018-05-02 Blue Vision Labs Uk Ltd Visual vehicle tracking through noise and occlusions using crowd-sourced maps
CN110264509B (zh) * 2018-04-27 2022-10-14 腾讯科技(深圳)有限公司 确定图像捕捉设备的位姿的方法、装置及其存储介质
US10964056B1 (en) 2018-05-18 2021-03-30 Apple Inc. Dense-based object tracking using multiple reference images
CN108804161B (zh) * 2018-06-21 2022-03-04 北京字节跳动网络技术有限公司 应用的初始化方法、装置、终端和存储介质
US11189054B2 (en) * 2018-09-28 2021-11-30 Apple Inc. Localization and mapping using images from multiple devices
CN109658507A (zh) * 2018-11-27 2019-04-19 联想(北京)有限公司 信息处理方法及装置、电子设备
CN109579844B (zh) * 2018-12-04 2023-11-21 电子科技大学 定位方法及系统
US20200342610A1 (en) * 2019-04-24 2020-10-29 XRSpace CO., LTD. Method of Pose Change Notification and Related Interactive Image Processing System
CN110348418B (zh) * 2019-07-17 2022-03-11 上海商汤智能科技有限公司 目标跟踪方法及装置、智能移动设备和存储介质
US11373374B2 (en) 2019-11-07 2022-06-28 Volvo Car Corporation Aligning the augmented reality or virtual reality world with the real world using natural position understanding
CN111156997B (zh) * 2020-03-02 2021-11-30 南京航空航天大学 一种基于相机内参在线标定的视觉/惯性组合导航方法
CN111539982B (zh) * 2020-04-17 2023-09-15 北京维盛泰科科技有限公司 一种移动平台中基于非线性优化的视觉惯导初始化方法
CN114245000A (zh) * 2020-09-09 2022-03-25 北京小米移动软件有限公司 拍摄方法和装置、电子设备、存储介质
US20220414988A1 (en) * 2021-06-28 2022-12-29 Microsoft Technology Licensing, Llc Guidance system for the creation of spatial anchors for all users, including those who are blind or low vision
WO2023132269A1 (ja) * 2022-01-06 2023-07-13 ソニーグループ株式会社 情報処理装置、および情報処理方法、並びにプログラム
CN114257671B (zh) * 2022-02-28 2022-07-19 荣耀终端有限公司 一种图像显示方法及电子设备
CN116026368B (zh) * 2023-03-29 2023-07-04 上海仙工智能科技有限公司 移动机器人的参数联合标定方法及系统、设备、存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008002980A (ja) * 2006-06-23 2008-01-10 Canon Inc 情報処理方法および装置
JP2011199750A (ja) * 2010-03-23 2011-10-06 Olympus Corp 撮像端末、外部端末、撮像システム、及び撮像方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4757142B2 (ja) * 2006-08-10 2011-08-24 キヤノン株式会社 撮影環境校正方法及び情報処理装置
US8760401B2 (en) * 2008-04-21 2014-06-24 Ron Kimmel System and method for user object selection in geographic relation to a video display
CN101441769A (zh) * 2008-12-11 2009-05-27 上海交通大学 单目摄像机实时视觉定位方法
DE102009049849B4 (de) * 2009-10-19 2020-09-24 Apple Inc. Verfahren zur Bestimmung der Pose einer Kamera, Verfahren zur Erkennung eines Objekts einer realen Umgebung und Verfahren zur Erstellung eines Datenmodells
US20130234926A1 (en) * 2012-03-07 2013-09-12 Qualcomm Incorporated Visually guiding motion to be performed by a user
JP2013225245A (ja) 2012-04-23 2013-10-31 Sony Corp 画像処理装置、画像処理方法及びプログラム
CN102706342A (zh) * 2012-05-31 2012-10-03 重庆邮电大学 一种智能移动机器人的定位与环境建模方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008002980A (ja) * 2006-06-23 2008-01-10 Canon Inc 情報処理方法および装置
JP2011199750A (ja) * 2010-03-23 2011-10-06 Olympus Corp 撮像端末、外部端末、撮像システム、及び撮像方法

Also Published As

Publication number Publication date
CN105408937B (zh) 2018-02-13
US20140327792A1 (en) 2014-11-06
EP2992507B1 (en) 2018-07-25
WO2014179745A1 (en) 2014-11-06
CN105408937A (zh) 2016-03-16
US9667873B2 (en) 2017-05-30
KR20160003233A (ko) 2016-01-08
EP2992507A1 (en) 2016-03-09
JP2016527583A (ja) 2016-09-08
JP6359644B2 (ja) 2018-07-18

Similar Documents

Publication Publication Date Title
KR102131477B1 (ko) 컴퓨터 비전 애플리케이션 초기화를 용이하게 하는 방법들
US20220366598A1 (en) Calibration system and method to align a 3d virtual scene and a 3d real world for a stereoscopic head-mounted display
US11481982B2 (en) In situ creation of planar natural feature targets
KR102217204B1 (ko) 모바일 디바이스들을 위한 옴니스테레오 캡처
JP6258953B2 (ja) 単眼視覚slamのための高速初期化
EP3350653B1 (en) General spherical capture methods
US9674507B2 (en) Monocular visual SLAM with general and panorama camera movements
JP6125100B2 (ja) 点特徴と線特徴とを使用する堅牢な追跡
US9390344B2 (en) Sensor-based camera motion detection for unconstrained slam
US10444845B2 (en) Display of separate computer vision based pose and inertial sensor based pose
US20150262412A1 (en) Augmented reality lighting with dynamic geometry
WO2014200625A1 (en) Systems and methods for feature-based tracking
KR102197615B1 (ko) 증강 현실 서비스를 제공하는 방법 및 증강 현실 서비스를 제공하기 위한 서버
US11450014B2 (en) Systems and methods for continuous image alignment of separate cameras
US9870514B2 (en) Hypotheses line mapping and verification for 3D maps
US20230122185A1 (en) Determining relative position and orientation of cameras using hardware

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