KR20230098172A - 확장 현실 시스템들을 위한 추천들 - Google Patents

확장 현실 시스템들을 위한 추천들 Download PDF

Info

Publication number
KR20230098172A
KR20230098172A KR1020237014046A KR20237014046A KR20230098172A KR 20230098172 A KR20230098172 A KR 20230098172A KR 1020237014046 A KR1020237014046 A KR 1020237014046A KR 20237014046 A KR20237014046 A KR 20237014046A KR 20230098172 A KR20230098172 A KR 20230098172A
Authority
KR
South Korea
Prior art keywords
user
application
augmented reality
environment
processor
Prior art date
Application number
KR1020237014046A
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 KR20230098172A publication Critical patent/KR20230098172A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/0093Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
    • GPHYSICS
    • G02OPTICS
    • G02BOPTICAL ELEMENTS, SYSTEMS OR APPARATUS
    • G02B27/00Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
    • G02B27/01Head-up displays
    • G02B27/017Head mounted
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Optics & Photonics (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Processing Or Creating Images (AREA)

Abstract

확장 현실 시스템들에 대한 추천들을 제공하기 위한 기법들 및 시스템들이 제공된다. 일부 예들에서, 시스템은 확장 현실 시스템의 실세계 환경과 연관된 하나 이상의 환경 특징들을 결정한다. 시스템은 확장 현실 시스템의 사용자와 연관된 하나 이상의 사용자 특징들을 결정한다. 또한, 시스템은 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들에 기초하여, 확장 현실 시스템에 의해 지원되는 적어도 하나의 애플리케이션과 연관된 통지를 출력한다.

Description

확장 현실 시스템들을 위한 추천들
본 개시내용은 일반적으로 확장 현실 시스템들을 위한 적응형 추천들을 제공하는 것에 관한 것이다. 일부 예들에서, 본 개시내용의 양상들은 확장 현실 시스템이 로케이팅되는 실세계(real-world) 환경의 특성들에 기초하여 그리고/또는 확장 현실 시스템의 사용자의 특성들에 기초하여 확장 현실 애플리케이션들과 연관된 추천들을 제공하는 것에 관한 것이다.
확장 현실 기술들은 가상 컨텐츠를 사용자들에게 제시하는 데 사용될 수 있고, 그리고/또는 물리적 세계로부터의 실제 환경들과 가상 환경들을 결합하여 사용자들에게 확장 현실 경험들을 제공할 수 있다. 확장 현실이라는 용어는 가상 현실, 증강 현실, 혼합 현실 등을 포함할 수 있다. 확장 현실 시스템들은, 사용자가 확장 현실 디바이스(예컨대, HMD(head-mounted display), 확장 현실 안경, 또는 다른 디바이스)를 통해 볼 수 있는 실세계 환경의 이미지들 상에 가상 컨텐츠를 오버레이함으로써 사용자들이 확장 현실 환경들을 경험할 수 있게 할 수 있다.
사용자의 실세계 환경의 많은 특징들은 확장 현실 애플리케이션에 대한 사용자들의 경험에 영향을 미칠 수 있다. 결과적으로, 사용자는 어떤 확장 현실 애플리케이션들이 사용자들의 현재 환경과 호환성 있는지를 알지 못할 수 있다. 또한, 사용자는 최적의 확장 현실 경험을 위해 환경을 가장 잘 구성하는 방법을 확신하지 못할 수 있다. 따라서, 실세계 환경들에 기초한 확장 현실 애플리케이션들과 연관된 추천들을 적응시키기 위한 개선된 시스템들이 필요하다.
확장 현실 시스템들에 대한 추천들을 제공하기 위한 시스템들 및 기법들이 본원에 설명된다. 적어도 하나의 예에 따르면, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치들이 제공된다. 예시적인 장치는 메모리 및 하나 이상의 프로세서들(예컨대, 회로로 구성됨)을 포함할 수 있다. 하나 이상의 프로세서들은, 장치의 실세계 환경과 연관된 하나 이상의 환경 특징들을 결정하도록; 장치의 사용자와 연관된 하나 이상의 사용자 특징들을 결정하도록; 그리고 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들에 기초하여, 장치에 의해 지원되는 적어도 하나의 애플리케이션과 연관된 통지를 출력하도록 구성된다. 일 예에서, 장치는 확장 현실 시스템일 수 있다.
다른 예에서, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 방법들이 제공된다. 예시적인 방법은 확장 현실 시스템의 실세계 환경과 연관된 하나 이상의 환경 특징들을 결정하는 단계를 포함할 수 있다. 또한, 방법은 확장 현실 시스템의 사용자와 연관된 하나 이상의 사용자 특징들을 결정하는 단계를 포함할 수 있다. 방법은 추가로, 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들에 기초하여, 확장 현실 시스템에 의해 지원되는 적어도 하나의 애플리케이션과 연관된 통지를 출력하는 단계를 포함할 수 있다.
다른 예에서, 확장 현실 시스템들 내에서 가상 컨텐츠를 조정하기 위한 비일시적 컴퓨터 판독 가능한 매체들이 제공된다. 예시적인 비일시적 컴퓨터 판독 가능한 매체는 명령들을 저장할 수 있으며, 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 확장 현실 시스템의 실세계 환경과 연관된 하나 이상의 환경 특징들을 결정하게 하고; 확장 현실 시스템의 사용자와 연관된 하나 이상의 사용자 특징들을 결정하게 하고; 그리고 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들에 기초하여, 확장 현실 시스템에 의해 지원되는 적어도 하나의 애플리케이션과 연관된 통지를 출력하게 한다.
다른 예에서, 예시적인 장치는, 확장 현실 시스템의 실세계 환경과 연관된 하나 이상의 환경 특징들을 결정하기 위한 수단; 확장 현실 시스템의 사용자와 연관된 하나 이상의 사용자 특징들을 결정하기 휘한 수단; 및 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들에 기초하여, 확장 현실 시스템에 의해 지원되는 적어도 하나의 애플리케이션과 연관된 통지를 출력하기 위한 수단을 포함할 수 있다.
일부 양상들에서, 적어도 하나의 애플리케이션과 연관된 통지는 적어도 하나의 애플리케이션에 대한 추천을 포함하며, 적어도 하나의 애플리케이션에 대한 추천은 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들에 기초하여 결정된다. 일부 양상들에서, 적어도 하나의 애플리케이션과 연관된 통지는 적어도 하나의 애플리케이션과 연관된 적어도 하나의 수정에 대한 추천을 포함한다. 일부 양상들은 추가로, 사용자가 적어도 하나의 애플리케이션과 상호 작용하고 있음을 검출하는 것, 및 사용자가 적어도 하나의 애플리케이션과 상호 작용하고 있음을 검출하는 것에 기초하여 적어도 하나의 애플리케이션과 연관된 적어도 하나의 수정을 결정하는 것을 포함할 수 있다. 일 예에서, 적어도 하나의 수정은 실세계 환경과 연관될 수 있다. 다른 예에서, 적어도 하나의 수정은 적어도 하나의 애플리케이션의 하나 이상의 세팅들과 연관될 수 있다. 일부 양상들은 추가로, 복수의 사용자들과 연관된 환경 특징들 및 복수의 사용자들과 연관된 사용자 특징들 중 적어도 하나에 기초하여 적어도 하나의 수정을 결정하는 단계를 포함할 수 있다.
일부 양상들에서, 하나 이상의 환경 특징들은 하나 이상의 환경 특징들을 표시하는 이전에 저장된 데이터에 적어도 부분적으로 기초하여 결정될 수 있다. 추가적으로 또는 대안적으로, 하나 이상의 환경 특징들은 실세계 환경의 스캔에 적어도 부분적으로 기초하여 결정될 수 있다. 일부 양상들은 실세계 환경의 스캔을 야기하는 것을 포함할 수 있으며, 실세계 환경의 스캔은 확장 현실 시스템의 이미지 센서에 의해 수행된다.
일부 양상들에서, 하나 이상의 환경 특징들은 확장 현실 시스템의 적어도 하나의 이미지 센서에 의해 캡처된 실세계 환경과 연관된 이미지 데이터에 적어도 부분적으로 기초하여 결정될 수 있다. 일 예에서, 하나 이상의 환경 특징들을 결정하는 것은 이미지 데이터에 적어도 부분적으로 기초하여 실세계 환경 내의 하나 이상의 물리적 오브젝트(object)들의 레이아웃을 결정하는 것을 포함할 수 있다. 다른 예에서, 하나 이상의 환경 특징들은 이미지 데이터에 적어도 부분적으로 기초하여 실세계 환경 내의 하나 이상의 사람들의 활동을 결정하는 것을 포함할 수 있다.
일부 양상들에서, 하나 이상의 환경 특징들은 확장 현실 시스템의 오디오 센서에 의해 캡처된 실세계 환경과 연관된 오디오 데이터에 적어도 부분적으로 기초하여 결정될 수 있다. 일 예에서, 하나 이상의 환경 특징들을 결정하는 것은 오디오 데이터에 적어도 부분적으로 기초하여 실세계 환경 내의 하나 이상의 사람들의 활동을 결정하는 것을 포함할 수 있다. 다른 예들에서, 하나 이상의 환경 특징들을 결정하는 것은 실세계 환경 내의 하나 이상의 네트워크-가능 디바이스들과의 네트워크 통신에 기초하여 하나 이상의 네트워크-가능 디바이스들을 검출하는 것을 포함할 수 있다.
일부 양상들에서, 하나 이상의 사용자 특징들은 확장 현실 시스템의 하나 이상의 생물학적 센서들을 사용하여 획득된 사용자 데이터에 적어도 부분적으로 기초하여 결정될 수 있으며, 여기서 사용자 데이터는 사용자의 생리학적 상태 또는 감정적 상태와 연관된다. 일부 예들에서, 하나 이상의 사용자 특징들은 사용자의 연령, 사용자의 성별, 사용자의 지리적 로케이션, 사용자의 키, 및 사용자의 체중 중 적어도 하나를 표시하는 사용자 입력에 적어도 부분적으로 기초하여 결정될 수 있다. 다른 예들에서, 하나 이상의 사용자 특징들은 사용자의 애플리케이션 선호도들을 결정하기 위해 사용자의 애플리케이션 사용 패턴들을 모니터링하는 것에 적어도 부분적으로 기초하여 결정될 수 있다.
일부 양상들에서, 확장 현실 시스템에 의해 지원되는 적어도 하나의 애플리케이션을 결정하는 것은, 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들 중 적어도 하나와 적어도 하나의 애플리케이션 사이의 호환성 레벨을 표시하는 매치 스코어(match score)를 결정하는 것; 매치 스코어가 임계 매치 스코어를 초과한다고 결정하는 것; 및 매치 스코어가 임계 매치 스코어를 초과하는 것에 기초하여 적어도 하나의 애플리케이션을 결정하는 것을 포함할 수 있다. 일부 예들에서, 매치 스코어는, 적어도 하나의 애플리케이션과 연관된 하나 이상의 애플리케이션 특징들을 결정하는 것; 및 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들 중 적어도 하나와 하나 이상의 애플리케이션 특징들을 비교하는 것에 적어도 부분적으로 기초하여 결정될 수 있다. 일 예에서, 하나 이상의 애플리케이션 특징들은 서버로부터 적어도 하나의 애플리케이션과 연관된 애플리케이션 프로파일에 액세스하는 것에 적어도 부분적으로 기초하여 결정될 수 있으며, 여기서 애플리케이션 프로파일은 복수의 확장 현실 시스템들에 의해 결정된 애플리케이션 특징들에 기초하여 생성된다.
일부 양상들에서, 확장 현실 시스템에 의해 지원되는 복수의 애플리케이션들은 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들을 사용하여 결정될 수 있다. 일부 경우들에서, 복수의 애플리케이션들에 대한 추천이 사용자에게 제공될 수 있다. 일 예에서, 적어도 하나 이상의 환경 특징들과 복수의 애플리케이션들 사이의 호환성 레벨들을 표시하는 복수의 매치 스코어들이 결정될 수 있다. 다른 예에서, 적어도 하나 이상의 사용자 특징들과 복수의 애플리케이션들 사이의 호환성 레벨들을 표시하는 복수의 매치 스코어들이 결정될 수 있다. 일부 경우들에서, 확장 현실 시스템의 디스플레이 상에 복수의 애플리케이션들과 관련한 복수의 매치 스코어들이 디스플레이될 수 있다. 일 예에서, 확장 현실 시스템의 디스플레이는 복수의 매치 스코어들 중 가장 높은 매치 스코어를 갖는 복수의 애플리케이션들의 애플리케이션의 표시를 디스플레이할 수 있다.
적어도 하나의 다른 예에 따르면, 사용자 디바이스 상에서 동작 가능한 예시적인 방법이 제공된다. 방법은, 확장 현실 시스템의 사용자 디바이스가 로케이팅되는 실세계 환경과 연관된 하나 이상의 환경 특징들을 검출하도록 배열되는 하나 이상의 검출기들로부터 신호들을 수신하는 단계; 확장 현실 시스템에 의해 지원되는 애플리케이션들과 사용자 사이의 상호 작용들과 연관된 하나 이상의 사용자 특징들에 관한 데이터를 사용자 데이터 저장소로부터 리트리브(retrieve)하는 단계; 하나 이상의 검출기들로부터의 신호들 및 사용자 저장소로부터의 데이터를 사용하여, 실세계 환경에서 사용자 디바이스에 의해 사용하기에 적합한 확장 현실 시스템에 의해 지원되는 적어도 하나의 애플리케이션을 결정하는 단계; 및 사용자 디바이스 상에서 적어도 하나의 애플리케이션의 개시(launch)를 용이하게 하는 단계를 포함한다.
다른 예에서, 예시적인 장치는 메모리 및 하나 이상의 프로세서들(예컨대, 회로로 구성됨)을 포함할 수 있다. 하나 이상의 프로세서들은, 확장 현실 시스템의 사용자 디바이스가 로케이팅되는 실세계 환경과 연관된 하나 이상의 환경 특징들을 검출하도록 배열되는 하나 이상의 검출기들로부터 신호들을 수신하도록; 확장 현실 시스템에 의해 지원되는 애플리케이션들과 사용자 사이의 상호 작용들과 연관된 하나 이상의 사용자 특징들에 관한 데이터를 사용자 데이터 저장소로부터 리트리브하도록; 하나 이상의 검출기들로부터의 신호들 및 사용자 저장소로부터의 데이터를 사용하여, 실세계 환경에서 사용자 디바이스에 의해 사용하기에 적합한 확장 현실 시스템에 의해 지원되는 적어도 하나의 애플리케이션을 결정하도록; 그리고 사용자 디바이스 상에서 적어도 하나의 애플리케이션의 개시를 용이하게 하도록 구성된다.
다른 예에서, 예시적인 비일시적 컴퓨터 판독 가능한 매체는 명령들을 저장할 수 있으며, 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 확장 현실 시스템의 사용자 디바이스가 로케이팅되는 실세계 환경과 연관된 하나 이상의 환경 특징들을 검출하도록 배열되는 하나 이상의 검출기들로부터 신호들을 수신하게 하고; 확장 현실 시스템에 의해 지원되는 애플리케이션들과 사용자 사이의 상호 작용들과 연관된 하나 이상의 사용자 특징들에 관한 데이터를 사용자 데이터 저장소로부터 리트리브하게 하고; 하나 이상의 검출기들로부터의 신호들 및 사용자 저장소로부터의 데이터를 사용하여, 실세계 환경에서 사용자 디바이스에 의해 사용하기에 적합한 확장 현실 시스템에 의해 지원되는 적어도 하나의 애플리케이션을 결정하게 하고; 그리고 사용자 디바이스 상에서 적어도 하나의 애플리케이션의 개시를 용이하게 한다.
또 다른 예에서, 예시적인 장치는, 확장 현실 시스템의 사용자 디바이스가 로케이팅되는 실세계 환경과 연관된 하나 이상의 환경 특징들을 검출하도록 배열되는 하나 이상의 검출기들로부터 신호들을 수신하기 위한 수단; 확장 현실 시스템에 의해 지원되는 애플리케이션들과 사용자 사이의 상호 작용들과 연관된 하나 이상의 사용자 특징들에 관한 데이터를 사용자 데이터 저장소로부터 리트리브하기 위한 수단; 하나 이상의 검출기들로부터의 신호들 및 사용자 저장소로부터의 데이터를 사용하여, 실세계 환경에서 사용자 디바이스에 의해 사용하기에 적합한 확장 현실 시스템에 의해 지원되는 적어도 하나의 애플리케이션을 결정하기 위한 수단; 및 사용자 디바이스 상에서 적어도 하나의 애플리케이션의 개시를 용이하게 하기 위한 수단을 포함할 수 있다.
일부 양상들에서, 애플리케이션의 개시를 용이하게 하는 것은 사용 디바이스 상에서 애플리케이션을 자동으로 개시하는 것을 포함한다.
일부 양상들에서, 애플리케이션의 개시를 용이하게 하는 것은 디바이스의 사용자에게 애플리케이션의 표시를 제공하기 위해 디스플레이를 제어하는 것을 포함한다.
일부 양상들에서, 장치는 카메라, 모바일 디바이스(예컨대, 모바일 전화 또는 소위 "스마트폰" 또는 다른 모바일 디바이스), 웨어러블 디바이스, 확장 현실 디바이스(예컨대, 가상 현실(VR) 디바이스, 증강 현실(AR) 디바이스, 또는 혼합 현실(MR) 디바이스), 개인용 컴퓨터, 랩탑 컴퓨터, 서버 컴퓨터, 또는 다른 디바이스를 포함한다. 일부 양상들에서, 장치는 하나 이상의 이미지들을 캡처하기 위한 카메라 또는 다수의 카메라들을 포함한다. 일부 양상들에서, 장치는 추가로, 하나 이상의 이미지들, 통지들, 및/또는 다른 디스플레이 가능한 데이터를 디스플레이하기 위한 디스플레이를 포함한다. 일부 양상들에서, 위에서 설명된 장치들은 하나 이상의 센서들을 포함할 수 있다.
이 개요는 청구되는 청구 대상의 핵심 또는 필수적인 특징들을 식별하는 것으로 의도되는 것도 아니고, 청구되는 청구 대상의 범위를 결정하는 데 별개로 사용되는 것으로 의도되는 것도 아니다. 청구 대상은 본 특허의 전체 명세서, 임의의 또는 모든 도면들, 및 각각의 청구항의 적절한 부분들을 참조하여 이해되어야 한다.
전술한 바는, 다른 특징들 및 예들과 함께, 다음의 명세서, 청구항들, 및 첨부 도면들을 참조하면 더 명백해질 것이다.
본 출원의 예시적인 예들은 다음의 도면들을 참조하여 아래에서 상세하게 설명된다:
도 1은 일부 예들에 따른, 확장 현실 시스템의 예시적인 아키텍처를 예시하는 블록 다이어그램이다.
도 2는 일부 예들에 따른, 확장 현실 환경들과 연관된 적응형 추천들을 제공하기 위한 시스템의 예를 예시하는 블록 다이어그램이다.
도 3은 일부 예들에 따른, 확장 현실 시스템이 로케이팅되는 실세계 환경의 예시이다.
도 4a 및 도 4b는 일부 예들에 따른, 확장 현실 환경들과 관련하여 제공되는 적응형 추천들의 예시들이다.
도 5는 일부 예들에 따른, 확장 현실 환경들과 연관된 적응형 추천들을 제공하기 위한 프로세스의 예를 예시하는 흐름 다이어그램이다.
도 6은 일부 예들에 따른, 확장 현실 환경들과 연관된 적응형 추천들을 제공하기 위한 프로세스의 다른 예를 예시하는 흐름 다이어그램이다.
도 7은 본원에 설명된 특정 양상들을 구현하기 위한 시스템의 예를 예시하는 다이어그램이다.
본 개시내용의 특정 양상들 및 예들이 아래에서 제공된다. 이 양상들 및 예들 중 일부는 독립적으로 적용될 수 있고, 이들 중 일부는 당업자들에게 명백할 바와 같이 조합하여 적용될 수 있다. 다음의 설명에서, 설명을 목적으로, 특정 세부사항들이 본 출원의 청구 대상의 완전한 이해를 제공하기 위해 기재된다. 그러나, 다양한 예들은 이 특정 세부사항들 없이도 실시될 수 있다는 것이 명백할 것이다. 도면들 및 설명은 제한적인 것으로 의도되는 것은 아니다.
다음의 설명은 오직 예시적인 예들을 제공할 뿐이고, 본 개시내용의 범위, 적용 가능성, 또는 구성을 제한하는 것으로 의도되는 것은 아니다. 오히려, 다음의 설명은 예시적인 예들을 구현하기 위한 가능한 설명을 당업자들에게 제공할 것이다. 첨부된 청구항들에 기재된 바와 같은 본 출원의 사상 및 범위로부터 벗어나지 않으면서 엘리먼트들의 기능 및 어레인지먼트(arrangement)에 다양한 변경들이 이루어질 수 있다는 것을 이해해야 한다.
확장 현실(XR) 디바이스들 또는 시스템들은 가상 현실(VR) 환경들, 증강 현실(AR) 환경들, 혼합 현실(MR) 환경들, 및/또는 다른 XR 환경들을 포함하여 상이한 타입들의 XR 환경들과의 상호 작용들을 용이하게 할 수 있다. XR 디바이스 또는 시스템은 XR 환경과 상호 작용하기 위해 사용자에 의해 사용될 수 있다. XR 디바이스들 또는 시스템들의 예들은, 다른 것들 중에서도, HMD(head-mounted display)들, XR 안경들을 포함한다. XR 디바이스 또는 시스템은 가상 컨텐츠가 실세계 환경의 이미지들 상에 오버레이되게 할 수 있으며, 이는 사용자가 XR 디바이스 또는 시스템을 통해 볼 수 있다. 일부 XR 디바이스들 또는 시스템들은 첨부된 오디오 컨텐츠를 제공할 수 있다. 실세계 환경은 물리적 오브젝트들, 사람들, 또는 다른 실세계 오브젝트들을 포함할 수 있다. XR 디바이스 또는 시스템은 사용자의 부분들(예컨대, 사용자의 손 및/또는 손끝들)을 추적하여 사용자가 가상 컨텐츠의 항목들과 상호 작용하게 할 수 있다.
XR 시스템이 로케이팅되는 실세계 환경의 다양한 특징들은 XR 기반 애플리케이션을 이용하는 사용자의 경험에 영향을 미칠 수 있다. 예컨대, 다수의 플레이어들을 위해 설계된 XR 기반 게이밍 애플리케이션은 최적의 게임 플레이를 위해 큰 개방 공간을 요구할 수 있다. 그러나, 다른 XR 기반 게이밍 애플리케이션들(이를테면, 싱글 플레이어 게임들 또는 가구 및 다른 물리적 오브젝트들을 이용하는 게임들)은 더 작은 및/또는 혼잡한 환경들에 더 적합할 수 있다. 다른 예에서, 일부 XR 기반 애플리케이션들(예컨대, 공공 거리에서 사용하도록 설계된 네비게이션 애플리케이션들)은 높은 레벨들의 주변 노이즈와 호환성이 있을 수 있는 반면, 다른 XR 기반 애플리케이션들(예컨대, 원격 회의 애플리케이션들)은 조용한 환경들에서 최상으로 경험될 수 있다.
일부 경우들에서, 사용자들은 어떤 XR 기반 애플리케이션들이 자신들의 현재 실세계 환경에 가장 적합한지를 인식하지 못할 수 있다. 예컨대, 새로운 애플리케이션들을 경험하기를 희망하는 사용자는 어떤 새로운 애플리케이션들이 자신들의 환경과 호환성 있는지를 인식하지 못할 수 있고, 익숙하지 않은 환경에 있는 사용자는 알려진 애플리케이션을 최적화하기 위해 익숙하지 않은 환경을 최상으로 구성하는 방법을 확신하지 못할 수 있다. 추가로, 사용자들은 애플리케이션의 사용을 향상시키거나 또는 용이하게 하기 위해 환경 및/또는 애플리케이션에 가해질 수 있는 가능한 수정들을 인식하지 못할 수 있다. 따라서, 실세계 환경들에 기초한 XR 기반 애플리케이션에 대한 추천들을 적응시키기 위한 개선된 시스템들이 필요하다.
본 개시내용은 XR 애플리케이션들에 대한 환경 기반 추천들을 제공하기 위한 시스템들, 장치들, 방법들, 및 컴퓨터 판독 가능한 매체들(집합적으로 "시스템들 및 기법들"로 지칭됨)을 설명한다. 시스템들 및 기법들은 XR 시스템이 로케이팅되는 현재 실세계 환경에 기초하여 XR 애플리케이션들과 연관된 추천들을 적응시키기 위한 XR 시스템의 능력을 제공한다. 일부 경우들에서, 추천들은 사용자의 환경에 가장 적합한 하나 이상의 애플리케이션들에 대한 제안들을 포함할 수 있다. 추가적으로 또는 대안적으로, 추천들은 사용자의 환경 및/또는 애플리케이션과의 사용자 상호 작용들을 향상시키거나 또는 용이하게 할 특정 애플리케이션에 대한 제안되는 수정들을 포함할 수 있다. XR 시스템은 사용자의 실세계 환경을 모니터링 및/또는 분석하는 것에 기초하여 적절한 추천들을 결정할 수 있다. 일부 경우들에서, XR 시스템은 또한 사용자의 이력상의 애플리케이션 사용 및/또는 현재 감정적 또는 생리학적 상태와 같은 사용자의 특성들에 기초하여 추천을 생성할 수 있다.
XR 시스템은 사용자의 실세계 환경의 다양한 특징들을 모니터링 및/또는 분석할 수 있다. 일부 예들에서, XR 시스템은 주변 노이즈, 조명, 온도, 냄새, XR 시스템의 로케이션 또는 XR 시스템에 대한 로케이션, 현재 날짜, 현재 시간, 및/또는 다른 특성들과 같은 주변 환경 특성들을 결정할 수 있다. 추가적인 예들에서, XR 시스템은 환경의 물리적 레이아웃을 결정할 수 있다. 물리적 레이아웃은 사용자의 집에 있는 방들의 타입들, 사용자의 집에 있는 방들 사이의 구분들, 및/또는 방들 내에 있는 가구 및 다른 물리적 오브젝트들을 포함할 수 있다. XR 시스템은 환경의 청사진을 사용하여 그리고/또는 환경을 액티브하게 스캔함으로써 물리적 레이아웃을 결정할 수 있다. 일부 경우들에서, XR 시스템은 장면 이해를 위한 하나 이상의 기법들을 구현할 수 있으며, 이는 환경 내에서의 배경 활동을 결정 및/또는 추론하는 것을 포함할 수 있다. 장면 이해의 예시적인 예에서, XR 시스템은 현재 사용자의 집에서 누군가가 요리를 하고 있다고 결정하거나 또는 아기가 다른 방에서 자고 있다고 결정할 수 있다. 일부 경우들에서, XR 시스템은 사용자의 환경의 관련 특징들을 설명 및/또는 표현하는 환경 프로파일을 생성할 수 있다. XR 시스템은 특정 로케이션과 연관된 프로파일 내에 이전에 결정된 환경 특징들을 저장할 수 있을 뿐만 아니라, 사용자가 특정 로케이션에서 XR 시스템과 상호 작용할 때마다 하나 이상의 환경 특징들을 업데이트할 수 있다.
XR 시스템은 사용자와 연관된 다양한 특성들을 결정할 수 있다. 일부 경우들에서, XR 시스템은 사용자의 애플리케이션 선호도들을 결정할 수 있다. 예컨대, XR 시스템은 사용자가 상이한 애플리케이션들과 상호 작용하는 데 소비하는 시간량, 사용자가 일반적으로 선택하는 애플리케이션 타입들, 상이한 타입들의 애플리케이션들과 연관된 사용자의 기술 레벨, 사용자가 일반적으로 특정 애플리케이션들을 선택하는 환경들의 타입들, 이들의 임의의 조합, 및/또는 다른 정보를 추적할 수 있다. 추가적으로 또는 대안적으로, XR 시스템은 사용자에 의해 사용되는 XR 디바이스들(예컨대, 입력 디바이스들, 컨트롤러들, HMD들 등)의 타입 및/또는 수를 결정할 수 있다. 추가로, XR 시스템은 다양한 애플리케이션들에 대해 사용자가 어떤 디바이스들을 선호하는지(예컨대, 이력상으로 사용했는지)를 결정할 수 있다. 일부 예들에서, XR 시스템은 사용자의 연령, 성별, 로케이션, 사이즈(예컨대, 키 및/또는 체중), 이들의 임의의 조합, 및/또는 다른 정보와 같은 사용자에 대한 인구 통계학적 정보를 결정할 수 있다. 일부 예들에서, XR 시스템은 하나 이상의 생체 인식 센서들, 컴퓨터 비전 시스템들, 및/또는 다른 기법들을 사용하여 이러한 인구 통계학적 정보를 결정할 수 있다. 추가적으로 또는 대안적으로, XR 시스템은 사용자로부터 제공된 입력에 기초하여 인구 통계학적 정보를 결정할 수 있다. 일부 경우들에서, XR 시스템은 사용자가 특정 애플리케이션들과 상호 작용하지 못하게 할 수 있는 제한들을 결정할 수 있다. 예시적인 예에서, XR 시스템은 사용자가 제한된 이동성을 갖는다고 결정하거나 또는 사용자의 애플리케이션 사용이 부모 제어들에 의해 제한된다고 결정할 수 있다. 일부 예들에서, XR 시스템은 사용자가 달리기, 점프하기, 웅크리기, 및/또는 다른 물리적 액션들을 수반하는 애플리케이션들을 즐기거나 또는 적절하게 상호 작용하는 것을 가능하게 하는 특정 운동 능력들을 갖는다고 결정할 수 있다. 추가로, 일부 예들에서, XR 시스템은 사용자의 현재 생리학적 및/또는 감정적 상태를 (예컨대, 생체 인식 센서들, 컴퓨터 비전, 및/또는 다른 기법들을 사용하여) 결정할 수 있다. 예컨대, XR 시스템은 사용자가 피곤한지, 흥분했는지, 편안한지, 화가 났는지 등을 검출할 수 있다. 일부 예들에서, XR 시스템은 이전에 특정 애플리케이션들을 사용할 때, 사용자의 생리학적 및/또는 감정적 상태들을 표시하는 이력상의 데이터를 레코딩할 수 있다. 일부 경우들에서, XR 시스템은 XR 기반 애플리케이션들과 관련된 사용자의 특성들을 설명 및/또는 표현하는 사용자 프로파일을 생성할 수 있다.
사용자에게 추천할 애플리케이션들을 식별하기 위해, XR 시스템은 사용자가 사용할 것으로 알려진 애플리케이션들 및/또는 XR 시스템이 실행할 수 있는 애플리케이션들에 대한 정보를 결정 및 컴파일링할 수 있다. 예컨대, XR 시스템은 특정 애플리케이션들을 향상시키거나 또는 용이하게 하는 특정 온도들, 조명, 주변 노이즈, 방 사이즈들, 방 레이아웃들 등과 같은 애플리케이션에 대한 환경 요건들을 결정할 수 있다. 일부 예들에서, XR 시스템은 하나 이상의 사용자들이 특정 애플리케이션들에 대해 이력상으로 선호한 환경 특성들 및/또는 환경들의 타입들을 결정할 수 있다. 또한, XR 시스템은 특정 애플리케이션들을 이력상으로 즐겼거나 또는 사용한 사용자들의 특성들을 결정할 수 있다. 예컨대, XR 시스템은 다수의 사용자들에 의해 제공되는 애플리케이션들의 등급(rating)들을 레코딩할 수 있다. 다른 예에서, XR 시스템은 애플리케이션에 요구되는 장비(이를테면, 특정 XR 입력 디바이스들, 네트워크 연결들의 타입들 등)를 결정할 수 있다. 일부 경우들에서, XR 시스템은 애플리케이션들의 그러한 특성들을 설명 및/또는 표현하는 애플리케이션 프로파일들을 생성할 수 있다.
XR 시스템은 환경 프로파일, 사용자 프로파일, 및/또는 하나 이상의 애플리케이션 프로파일들을 이용하여 사용자를 위한 애플리케이션 추천들을 생성할 수 있다. 예컨대, XR 시스템은 사용자 프로파일 및/또는 환경 프로파일의 하나 이상의 특성들과 매칭하는 특성들을 포함하는 애플리케이션 프로파일들을 이용하여 애플리케이션들을 추천할 수 있다. 이러한 방식으로, XR 시스템은 사용자의 개인적 애플리케이션 선호도들, 사용자의 개인적 특성들, 및/또는 사용자의 현재 환경에 적합한 애플리케이션들을 추천할 수 있다. 일부 경우들에서, XR 시스템은 애플리케이션의 애플리케이션 프로파일과 사용자 프로파일 및/또는 환경 프로파일 사이의 유사성 및/또는 호환성 레벨을 정량화하는 매치 스코어를 생성함으로써 사용자에게 애플리케이션을 추천할지 여부를 결정할 수 있다. XR 시스템은 매치 스코어를 생성할 때 프로파일 내의 특성들에 다양한 가중치들을 할당할 수 있다.
일부 경우들에서, XR 시스템은 사용자에게 추천된 애플리케이션들의 목록을 제공할 수 있다. XR 시스템은 매치 스코어가 임계 스코어 초과이게 하거나 또는 임계 스코어를 초과하게 할 것으로 결정되는 각각의 애플리케이션을 추천할 수 있고 그리고/또는 XR 시스템은 사전 결정된 수의 가장 매칭하는 애플리케이션들을 제공할 수 있다. 추가로, XR 시스템은 사용자가 이미 소유하거나 또는 새로운 애플리케이션들을 다운로드 및/또는 추천한 애플리케이션들을 추천할 수 있다. 예시적인 예에서, XR 시스템은 사용자가 현재 상대적으로 작은 방에 있다고 결정할 수 있고, 따라서 상당한 이동을 요구하지 않는 애플리케이션들을 추천할 수 있다. 다른 예시적인 예에서, XR 시스템은 사용자가 현재 상대적으로 노이즈가 있는 환경에 있음을 검출하는 것에 기초하여 스피치 또는 오디오 컨텐츠(예컨대, 다른 사용자들과의 대화들)를 수반하지 않는 애플리케이션들을 추천할 수 있다.
추가로, 일부 경우들에서, XR 시스템은 애플리케이션과의 사용자 상호 작용들을 향상시키거나 또는 용이하게 하는 사용자 환경에 대한 하나 이상의 수정들을 추천할 수 있다. 예컨대, 사용자가 애플리케이션을 사용하기로 선택하였음을 검출하는 것에 대한 응답으로, XR 시스템은 사용자가 애플리케이션을 적절하게 또는 가장 효과적으로 이용하기 위해 하나 이상의 환경 특징들(예컨대, 조명, 가구 배치, 집 안의 사용자의 현재 방 등)이 변경되어야 한다고 결정할 수 있다. 예시적인 예에서, XR 시스템은 사용자가 큰 개방 공간을 요구하는 애플리케이션을 사용하기로 선택했다고 결정하는 것에 기초하여 사용자가 가구를 상이한 방으로 이동시키는 것을 추천할 수 있다. 더욱이, XR 시스템은 선택된 애플리케이션의 세팅들에 대해 하나 이상의 수정들을 추천할 수 있다. 예컨대, XR 시스템은 높은 레벨의 주변 광을 검출하는 것에 기초하여 XR 디바이스의 디스플레이 밝기를 증가시키는 것을 추천할 수 있다.
다양한 도면들과 관련하여 컨텍스트 인식 XR 시스템들에 관한 추가적인 세부사항들이 본원에 제공된다. 도 1은 본 개시내용의 일부 양상들에 따른, 예시적인 확장 현실 시스템(100)을 예시하는 블록 다이어그램이다. 확장 현실 시스템(100)은 XR 어플리케이션들을 구동(또는 실행)하고 XR 동작들을 구현할 수 있다. 일부 예들에서, 확장 현실 시스템(100)은, XR 경험의 부분으로서 추적 및 로컬라이제이션(localization), 물리적 세계(예컨대, 장면)의 맵핑, 디스플레이(예컨대, 스크린, 가시 평면/영역, 및/또는 다른 디스플레이) 상으로의 가상 컨텐츠의 포지셔닝 및 렌더링을 수행할 수 있다. 예컨대, 확장 현실 시스템(100)은 물리적 세계에서 장면의 맵(예컨대, 3D 맵)을 생성하고, 장면에 대한(예컨대, 장면의 3D 맵에 대한) 확장 현실 시스템(100)의 포즈(예컨대, 로케이션 및 포지션)를 추적하고, 장면의 맵 상의 특정 로케이션(들)에 가상 컨텐츠를 포지셔닝 및/또는 앵커링하고, 디스플레이 상에 가상 컨텐츠를 렌더링할 수 있다. 확장 현실 시스템(100)은 가상 컨텐츠가 포지셔닝 및/또는 앵커링되는 장면의 맵 상의 특정 로케이션에 대응하는 장면 내의 로케이션에 가상 컨텐츠가 있는 것으로 나타내도록 디스플레이 상에 가상 컨텐츠를 렌더링할 수 있다. 일부 예들에서, 디스플레이는 유리, 스크린, 렌즈, 및/또는 사용자가 실세계 환경을 보게 하고 또한 XR 컨텐츠가 그 상에 디스플레이되게 하는 다른 디스플레이 메커니즘을 포함할 수 있다.
도 1에 도시된 바와 같이, 확장 현실 시스템(100)은 하나 이상의 이미지 센서들(102), 가속도계(104), 자이로스코프(106), 저장소(108), 컴퓨트 컴포넌트들(110), XR 엔진(120), 추천 엔진(122), 이미지 프로세싱 엔진(124), 및 렌더링 엔진(126)을 포함할 수 있다. 도 1에 도시된 컴포넌트들(102-126)은 예시 및 설명을 목적으로 제공된 비제한적 예들이고, 다른 예들은 도 1에 도시된 것들보다 많거나, 적거나, 또는 이와 상이한 컴포넌트들을 포함할 수 있다는 점에 유의해야 한다. 예컨대, 일부 경우들에서, 확장 현실 시스템(100)은 하나 이상의 다른 센서들(예컨대, 하나 이상의 IMU(inertial measurement unit)들, 레이더들, LIDAR(light detection and ranging) 센서들, 오디오 센서들 등), 하나 이상의 디스플레이 디바이스들, 하나 이상의 다른 프로세싱 엔진들, 하나 이상의 다른 하드웨어 컴포넌트들, 및/또는 도 1에 도시되지 않은 하나 이상의 다른 소프트웨어 및/또는 하드웨어 컴포넌트들을 포함할 수 있다. 확장 현실 시스템(100)에 의해 구현될 수 있는 예시적인 아키텍처 및 예시적인 하드웨어 컴포넌트들이 도 7에 관련하여 아래에서 추가로 설명된다.
단순화 및 설명을 목적으로, 하나 이상의 이미지 센서들(102)은 본원에서 이미지 센서(102)로서 (예컨대, 단수 형태로) 참조될 것이다. 그러나, 당업자는 확장 현실 시스템(100)이 단일 이미지 센서 또는 다수의 이미지 센서들을 포함할 수 있음을 인식할 것이다. 또한, 단수 또는 복수 형태로의 확장 현실 시스템(100)의 컴포넌트들(예컨대, 102-126) 중 임의의 컴포넌트에 대한 언급들은 확장 현실 시스템(100)에 의해 구현된 그러한 컴포넌트들의 수를 하나 이상으로 제한하는 것으로서 해석되지 않아야 한다. 예컨대, 단수 형태로의 가속도계(104)에 대한 언급들은 확장 현실 시스템(100)에 의해 구현된 가속도계들의 수를 하나로 제한하는 것으로서 해석되지 않아야 한다. 당업자는, 도 1에 도시된 컴포넌트들(102-126) 중 임의의 컴포넌트에 대해, 확장 현실 시스템(100)이 그러한 컴포넌트(들) 중 오직 하나의 컴포넌트만을 또는 그러한 컴포넌트(들) 중 하나 초과의 컴포넌트들을 포함할 수 있음을 인식할 것이다.
확장 현실 시스템(100)은 입력 디바이스를 포함하거나 또는 입력 디바이스와 (유선 또는 무선으로) 통신할 수 있다. 입력 디바이스는 터치스크린, 펜 또는 다른 포인터 디바이스, 키보드, 마우스, 버튼 또는 키, 음성 커맨드들을 수신하기 위한 마이크로폰, 제스처 커맨드들을 수신하기 위한 제스처 입력 디바이스, 이들의 임의의 조합, 및/또는 다른 입력 디바이스와 같은 임의의 적합한 입력 디바이스를 포함할 수 있다. 일부 경우들에서, 이미지 센서(102)는, 제스처 커맨드들을 해석하기 위해 프로세싱될 수 있는 이미지들을 캡처할 수 있다.
확장 현실 시스템(100)은 단일의 컴퓨팅 디바이스 또는 다수의 컴퓨팅 디바이스들의 부분이거나 또는 단일의 컴퓨팅 디바이스 또는 다수의 컴퓨팅 디바이스들에 의해 구현될 수 있다. 일부 예들에서, 확장 현실 시스템(100)은 확장 현실 HMD(head-mounted display) 디바이스, 확장 현실 안경(예컨대, 증강 현실 또는 AR 안경), 카메라 시스템(예컨대, 디지털 카메라, IP 카메라, 비디오 카메라, 보안 카메라 등), 전화 시스템(예컨대, 스마트폰, 셀룰러 전화, 컨퍼런싱 시스템 등), 데스크탑 컴퓨터, 랩탑 또는 노트북 컴퓨터, 태블릿 컴퓨터, 셋탑 박스, 스마트 텔레비전, 디스플레이 디바이스, 게이밍 콘솔, 비디오 스트리밍 디바이스, IoT(Internet-of-Things) 디바이스, 및/또는 임의의 다른 적합한 전자 디바이스(들)와 같은 전자 디바이스(또는 디바이스들)의 부분일 수 있다.
일부 구현들에서, 하나 이상의 이미지 센서들(102), 가속도계(104), 자이로스코프(106), 저장소(108), 컴퓨트 컴포넌트들(110), XR 엔진(120), 추천 엔진(122), 이미지 프로세싱 엔진(124), 및 렌더링 엔진(126)은 동일한 컴퓨팅 디바이스의 부분일 수 있다. 예컨대, 일부 경우들에서, 하나 이상의 이미지 센서들(102), 가속도계(104), 자이로스코프(106), 저장소(108), 컴퓨트 컴포넌트들(110), XR 엔진(120), 추천 엔진(122), 이미지 프로세싱 엔진(124), 및 렌더링 엔진(126)은 HMD, 확장 현실 안경, 스마트폰, 랩탑, 태블릿 컴퓨터, 게이밍 시스템, 및/또는 임의의 다른 컴퓨팅 디바이스에 통합될 수 있다. 그러나, 일부 구현들에서, 하나 이상의 이미지 센서들(102), 가속도계(104), 자이로스코프(106), 저장소(108), 컴퓨트 컴포넌트들(110), XR 엔진(120), 추천 엔진(122), 이미지 프로세싱 엔진(124), 및 렌더링 엔진(126)은 둘 이상의 별개의 컴퓨팅 디바이스들의 부분일 수 있다. 예컨대, 일부 경우들에서, 컴포넌트들(102-126) 중 일부는 하나의 컴퓨팅 디바이스의 부분이거나 또는 하나의 컴퓨팅 디바이스에 의해 구현될 수 있고, 나머지 컴포넌트들은 하나 이상의 다른 컴퓨팅 디바이스들의 부분이거나 또는 하나 이상의 다른 컴퓨팅 디바이스들에 의해 구현될 수 있다.
저장소(108)는 데이터를 저장하기 위한 임의의 저장 디바이스(들)일 수 있다. 더욱이, 저장소(108)는 확장 현실 시스템(100)의 컴포넌트들 중 임의의 컴포넌트로부터의 데이터를 저장할 수 있다. 예컨대, 저장소(108)는 이미지 센서(102)로부터의 데이터(예컨대, 이미지 또는 비디오 데이터), 가속도계(104)로부터의 데이터(예컨대, 측정들), 자이로스코프(106)로부터의 데이터(예컨대, 측정들), 컴퓨트 컴포넌트들(110)로부터의 데이터(예컨대, 프로세싱 파라미터들, 선호도들, 가상 컨텐츠, 렌더링 컨텐츠, 장면 맵들, 추적 및 로컬라이제이션 데이터, 오브젝트 검출 데이터, 프라이버시 데이터, XR 어플리케이션 데이터, 얼굴 인식 데이터, 폐색 데이터 등), XR 엔진(120)으로부터의 데이터, 추천 엔진(122)으로부터의 데이터, 이미지 프로세싱 엔진(124)으로부터의 데이터, 및/또는 렌더링 엔진(126)으로부터의 데이터(예컨대, 출력 프레임들)를 저장할 수 있다. 일부 예들에서, 저장소(108)는 컴퓨트 컴포넌트들(110)에 의한 프로세싱을 위한 프레임들을 저장하기 위한 버퍼를 포함할 수 있다.
하나 이상의 컴퓨트 컴포넌트들(110)은 CPU(central processing unit)(112), GPU(graphics processing unit)(114), DSP(digital signal processor)(116), 및/또는 ISP(image signal processor)(118)를 포함할 수 있다. 컴퓨트 컴포넌트들(110)은 이미지 향상, 컴퓨터 비전, 그래픽스 렌더링, 확장 현실(예컨대, 추적, 로컬라이제이션, 포즈 추정, 맵핑, 컨텐츠 앵커링, 컨텐츠 렌더링 등), 이미지/비디오 프로세싱, 센서 프로세싱, 인식(예컨대, 텍스트 인식, 얼굴 인식, 오브젝트 인식, 특징 인식, 추적 또는 패턴 인식, 장면 인식, 폐색 검출 등), 기계 학습, 필터링, 및 본원에 설명된 다양한 동작들 중 임의의 동작과 같은 다양한 동작들을 수행할 수 있다. 이 예에서, 컴퓨트 컴포넌트들(110)은 XR 엔진(120), 추천 엔진(122), 이미지 프로세싱 엔진(124), 및 렌더링 엔진(126)을 구현한다. 다른 예들에서, 컴퓨트 컴포넌트들(110)은 또한, 하나 이상의 다른 프로세싱 엔진들을 구현할 수 있다.
이미지 센서(102)는 임의의 이미지 및/또는 비디오 센서들 또는 캡처링 디바이스들을 포함할 수 있다. 일부 예들에서, 이미지 센서(102)는 듀얼 카메라 어셈블리와 같은 다중 카메라 어셈블리의 부분일 수 있다. 이미지 센서(102)는 이미지 및/또는 비디오 컨텐츠(예컨대, 원시 이미지 및/또는 비디오 데이터)를 캡처할 수 있으며, 이는 그런 다음, 본원에 설명된 바와 같이 컴퓨트 컴포넌트들(110), XR 엔진(120), 추천 엔진(122), 이미지 프로세싱 엔진(124), 및/또는 렌더링 엔진(126)에 의해 프로세싱될 수 있다.
일부 예들에서, 이미지 센서(102)는 이미지 데이터를 캡처할 수 있고, 이미지 데이터에 기초하여 프레임들을 생성할 수 있고 그리고/또는 프로세싱을 위해 이미지 데이터 또는 프레임들을 XR 엔진(120), 추천 엔진(122), 이미지 프로세싱 엔진(124), 및/또는 렌더링 엔진(126)에 제공할 수 있다. 프레임은 비디오 시퀀스 또는 스틸 이미지의 비디오 프레임을 포함할 수 있다. 프레임은 장면을 표현하는 픽셀 어레이를 포함할 수 있다. 예컨대, 프레임은 픽셀당 적색, 녹색, 및 청색 컬러 컴포넌트들을 갖는 적색-녹색-청색(RGB) 프레임; 픽셀당 루마 컴포넌트 및 2개의 크로마(컬러) 컴포넌트들(크로마-적색 및 크로마-청색)을 갖는 루마, 크로마-적색, 크로마-청색(YCbCr) 프레임; 또는 임의의 다른 적합한 타입의 컬러 또는 단색 픽처일 수 있다.
일부 경우들에서, 이미지 센서(102)(및/또는 확장 현실 시스템(100)의 다른 이미지 센서 또는 카메라)는 또한 깊이 정보를 캡처하도록 구성될 수 있다. 예컨대, 일부 구현들에서, 이미지 센서(102)(및/또는 다른 카메라)는 RGB-깊이(RGB-D) 카메라를 포함할 수 있다. 일부 경우들에서, 확장 현실 시스템(100)은, 이미지 센서(102)(및/또는 다른 카메라)로부터 분리되며 깊이 정보를 캡처할 수 있는 하나 이상의 깊이 센서들(도시되지 않음)을 포함할 수 있다. 예컨대, 그러한 깊이 센서는 이미지 센서(102)와는 독립적으로 깊이 정보를 획득할 수 있다. 일부 예들에서, 깊이 센서는 이미지 센서(102)와 동일한 일반적인 로케이션에서 물리적으로 설치될 수 있지만, 이미지 센서(102)와는 상이한 주파수 또는 프레임 레이트로 동작할 수 있다. 일부 예들에서, 깊이 센서는 광의 하나 이상의 협대역들을 포함할 수 있는 구조화된 또는 텍스처링된 광 패턴을 장면에서의 하나 이상의 오브젝트들 상으로 프로젝션할 수 있는 광 소스의 형태를 취할 수 있다. 그런 다음, 깊이 정보는 오브젝트의 표면 형상에 의해 야기되는 프로젝션된 패턴의 기하학적 왜곡들을 활용함으로써 획득될 수 있다. 일 예에서, 깊이 정보는, 카메라(예컨대, RGB 카메라)에 등록된 적외선 구조화된 광 프로젝터와 적외선 카메라의 조합과 같은 스테레오 센서들로부터 획득될 수 있다.
위에서 언급된 바와 같이, 일부 경우들에서, 확장 현실 시스템(100)은 또한 이미지 센서(102) 이외의 하나 이상의 센서들(도시되지 않음)을 포함할 수 있다. 예컨대, 하나 이상의 센서들은 하나 이상의 가속도계들(예컨대, 가속도계 (104)), 하나 이상의 자이로스코프들(예컨대, 자이로스코프(106)), 및/또는 다른 센서들을 포함할 수 있다. 하나 이상의 센서들은 속도, 배향, 및/또는 다른 포지션 관련 정보를 컴퓨트 컴포넌트들(110)에 제공할 수 있다. 예컨대, 가속도계(104)는 확장 현실 시스템(100)에 의한 가속도를 검출할 수 있고, 검출된 가속도에 기초하여 가속도 측정들을 생성할 수 있다. 일부 경우들에서, 가속도계(104)는, 확장 현실 시스템(100)의 포지션 또는 포즈를 결정하기 위해 사용될 수 있는 하나 이상의 병진 벡터들(예컨대, 위/아래, 좌/우, 전방/후방)을 제공할 수 있다. 자이로스코프(106)는 확장 현실 시스템(100)의 배향 및 각속도를 검출 및 측정할 수 있다. 예컨대, 자이로스코프(106)는 확장 현실 시스템(100)의 피치, 롤, 및 요를 측정하는 데 사용될 수 있다. 일부 경우들에서, 자이로스코프(106)는 하나 이상의 회전 벡터들(예컨대, 피치, 요, 롤)을 제공할 수 있다. 일부 예들에서, 이미지 센서(102) 및/또는 XR 엔진(120)은 가속도계(104)(예컨대, 하나 이상의 병진 벡터들) 및/또는 자이로스코프(106)(예컨대, 하나 이상의 회전 벡터들)에 의해 획득된 측정들을 사용하여 확장 현실 시스템(100)의 포즈를 계산할 수 있다. 이전에 언급된 바와 같이, 다른 예들에서, 확장 현실 시스템(100)은 또한 IMU(inertial measurement unit), 자력계, 기계 비전 센서, 스마트 장면 센서, 스피치 인식 센서, 충돌 센서, 충격 센서, 포지션 센서, 기울기 센서 등과 같은 다른 센서들을 포함할 수 있다.
일부 경우들에서, 하나 이상의 센서들은 적어도 하나의 IMU를 포함할 수 있다. IMU는, 하나 이상의 가속도계들, 하나 이상의 자이로스코프들, 및/또는 하나 이상의 자력계들의 조합을 사용하여, 확장 현실 시스템(100)의 특정한 힘, 각도 레이트, 및/또는 배향을 측정하는 전자 디바이스이다. 일부 예들에서, 하나 이상의 센서들은, 이미지 센서(102)(및/또는 확장 현실 시스템(100)의 다른 카메라)에 의해 캡처된 이미지의 캡처와 연관된 측정된 정보 및/또는 확장 현실 시스템(100)의 하나 이상의 깊이 센서들을 사용하여 획득된 깊이 정보를 출력할 수 있다.
하나 이상의 센서들(예컨대, 가속도계(104), 자이로스코프(106), 하나 이상의 IMU들, 및/또는 다른 센서들)의 출력은, 확장 현실 시스템(100)의 포즈(또한 헤드 포즈로 지칭됨) 및/또는 이미지 센서(102)(또는 확장 현실 시스템(100)의 다른 카메라)의 포즈를 결정하기 위해 확장 현실 엔진(120)에 의해 사용될 수 있다. 일부 경우들에서, 확장 현실 시스템(100)의 포즈 및 이미지 센서(102)(또는 다른 카메라)의 포즈는 동일할 수 있다. 이미지 센서(102)의 포즈는 기준 프레임에 대한 이미지 센서(102)의 포지션 및 배향을 지칭한다 일부 구현들에서, 이미지 센서(102)(또는 다른 카메라)의 포즈는, 3개의 병진 컴포넌트들(예컨대, 이는 이미지 평면과 같은 기준 프레임에 대해 X(수평), Y(수직), 및 Z(깊이) 좌표들에 의해 주어질 수 있음) 및 3개의 각도 컴포넌트들(예컨대, 동일한 기준 프레임에 대한 롤, 피치, 및 요)을 지칭하는 6DOF(6-Degrees Of Freedom)에 대해 결정될 수 있다.
일부 경우들에서, 디바이스 추적기(도시되지 않음)는 하나 이상의 센서들로부터의 측정들 및 이미지 센서(102)로부터의 이미지 데이터를 사용하여 확장 현실 시스템(100)의 포즈(예컨대, 6DOF 포즈)를 추적할 수 있다. 예컨대, 디바이스 추적기는, 물리적 세계(예컨대, 장면) 및 물리적 세계의 맵에 대한 확장 현실 시스템(100)의 포지션 및 모션을 결정하기 위해 캡처된 이미지 데이터로부터의 (예컨대, 시각적 추적 솔루션을 사용한) 시각적 데이터를 관성 측정 데이터와 융합할 수 있다. 아래에서 설명된 바와 같이, 일부 예들에서, 확장 현실 시스템(100)의 포즈를 추적할 때, 디바이스 추적기는 장면(예컨대, 실세계)의 3D(three-dimensional) 맵을 생성하고 그리고/또는 장면의 3D 맵에 대한 업데이트들을 생성할 수 있다. 3D 맵 업데이트들은, 예컨대 그리고 제한 없이, 장면 및/또는 장면의 3D 맵과 연관된 새로운 또는 업데이트된 특징들 및/또는 특징 또는 랜드마크 포인트들, 장면 및/또는 장면의 3D 맵 내의 확장 현실 시스템(100)의 포지션을 식별 또는 업데이트하는 로컬라이제이션 업데이트들 등을 포함할 수 있다. 3D 맵은 실세계/물리적 세계에서 장면의 디지털 표현을 제공할 수 있다. 일부 예들에서, 3D 맵은 로케이션 기반 오브젝트들 및/또는 컨텐츠를 실세계 좌표들 및/또는 오브젝트들에 앵커링할 수 있다. 확장 현실 시스템(100)은 맵핑된 장면(예컨대, 3D 맵에 의해 표현되고 그리고/또는 3D 맵과 연관된 물리적 세계에서의 장면)을 사용하여 물리적 세계와 가상 세계를 병합하고 그리고/또는 가상 컨텐츠 또는 오브젝트들을 물리적 환경과 병합할 수 있다.
일부 양상들에서, 이미지 센서(102) 및/또는 확장 현실 시스템(100)의 전체로서의 포즈는, 이미지 센서(102)(및/또는 확장 현실 시스템(100)의 다른 카메라)에 의해 캡처된 이미지들에 기초하여 시각적 추적 솔루션을 사용하여 컴퓨트 컴포넌트들(110)에 의해 결정 및/또는 추적될 수 있다. 예컨대, 일부 예들에서, 컴퓨트 컴포넌트들(110)은 컴퓨터 비전 기반 추적, 모델 기반 추적, 및/또는 SLAM(simultaneous localization and mapping) 기법들을 사용하여 추적을 수행할 수 있다. 예컨대, 컴퓨트 컴포넌트들(110)은 SLAM을 수행할 수 있거나 또는 SLAM 엔진(도시되지 않음)과 통신(유선 또는 무선) 할 수 있다. SLAM은 환경의 맵(예컨대, 확장 현실 시스템(100)에 의해 모델링되는 환경의 맵)이 그 맵에 대해 카메라(예컨대, 이미지 센서(102)) 및/또는 확장 현실 시스템(100)의 포즈를 동시에 추적하면서 생성되는 기법들의 클래스를 지칭한다. 맵은 SLAM 맵으로 지칭될 수 있고, 3D일 수 있다. SLAM 기법들은 이미지 센서(102)(및/또는 확장 현실 시스템(100)의 다른 카메라)에 의해 캡처된 컬러 또는 그레이스케일 이미지 데이터를 사용하여 수행될 수 있고, 이미지 센서(102) 및/또는 확장 현실 시스템(100)의 6DOF 포즈 측정들의 추정치들을 생성하는 데 사용될 수 있다. 6DOF 추적을 수행하도록 구성되는 그러한 SLAM 기법은 6DOF SLAM으로 지칭될 수 있다. 일부 경우들에서, 하나 이상의 센서들(예컨대, 가속도계(104), 자이로스코프(106), 하나 이상의 IMU들, 및/또는 다른 센서들)의 출력은 추정된 포즈를 추정, 정정, 및/또는 그렇지 않으면 조정하는 데 사용될 수 있다.
일부 경우들에서, 6DOF SLAM(예컨대, 6DOF 추적)은 이미지 센서(102)(및/또는 다른 카메라)로부터의 특정 입력 이미지들로부터 관측된 특징들을 SLAM 맵에 연관시킬 수 있다. 예컨대, 6DOF SLAM은 입력 이미지로부터의 특징점 연관들을 사용하여 입력 이미지에 대한 이미지 센서(102) 및/또는 확장 현실 시스템(100)의 포즈(포지션 및 배향)를 결정할 수 있다. 또한, 6DOF 맵핑은 SLAM 맵을 업데이트하기 위해 수행될 수 있다. 일부 경우들에서, 6DOF SLAM을 사용하여 유지되는 SLAM 맵은 둘 이상의 이미지들로부터 삼각측량된 3D 특징점들을 포함할 수 있다. 예컨대, 키 프레임들은, 관측된 장면을 표현하기 위해 입력 이미지들 또는 비디오 스트림으로부터 선택될 수 있다. 모든 각각의 키 프레임에 대해, 이미지와 연관된 개개의 6DOF 카메라 포즈가 결정될 수 있다. 이미지 센서(102) 및/또는 확장 현실 시스템(100)의 포즈는 3D SLAM 맵으로부터의 특징들을 이미지 또는 비디오 프레임에 프로젝션하는 것 및 검증된 2D-3D 대응들로부터 카메라 포즈를 업데이트하는 것에 의해 결정될 수 있다.
일 예시적인 예에서, 컴퓨트 컴포넌트들(110)은 모든 각각의 입력 이미지로부터 또는 각각의 키 프레임으로부터 특징점들을 추출할 수 있다. 본원에서 사용되는 바와 같은 특징점(또한 등록점으로 지칭됨)은 다른 것들 중에서도, 손의 부분, 테이블의 에지와 같이 이미지의 독특한 또는 식별 가능한 부분이다. 캡처된 이미지로부터 추출된 특징들은 3차원 공간을 따라 개별 특징점들(예컨대, X, Y, 및 Z축 상의 좌표들)을 표현할 수 있고, 모든 각각의 특징점은 연관된 특징 로케이션을 가질 수 있다. 키 프레임들에서의 특징점들은 이전에 캡처된 입력 이미지들 또는 키 프레임들의 특징 포인트들과 매칭(동일 또는 대응)하거나 또는 매칭하지 못한다. 특징 검출은 특징점들을 검출하는 데 사용될 수 있다. 특징 검출은 특징이 특정 픽셀에 존재하는지 여부를 결정하기 위해 이미지의 하나 이상의 픽셀들을 검사하는 데 사용되는 이미지 프로세싱 동작을 포함할 수 있다. 특징 검출은 전체 캡처된 이미지 또는 이미지의 특정 부분들을 프로세싱하는 데 사용될 수 있다. 각각의 이미지 또는 키 프레임에 대해, 일단 특징들이 검출되었으면, 특징 주위의 로컬 이미지 패치가 추출될 수 있다. 특징들은 SIFT(Scale Invariant Feature Transform)(이는 특징들을 로컬라이징하고 그들의 설명들을 생성함), SURF(Speed Up Robust Features), GLOH(Gradient Location-Orientation histogram), NCC(Normalized Cross Correlation), 또는 다른 적합한 기법과 같은 임의의 적합한 기법을 사용하여 추출될 수 있다.
일부 경우들에서, 확장 현실 시스템(100)은 또한, 사용자로 하여금, 가상 환경에서의 가상 컨텐츠와 상호 작용하게 하고 그리고/또는 가상 컨텐츠를 제어하게 하도록 사용자의 손 및/또는 손가락들을 추적할 수 있다. 예컨대, 확장 현실 시스템(100)은, 가상 환경과의 사용자 상호 작용들을 식별 또는 해석하기 위해 사용자의 손 및/또는 손가락 끝들의 포즈 및/또는 이동을 추적할 수 있다. 사용자 상호 작용들은, 예컨대 그리고 제한 없이, 가상 컨텐츠의 항목을 이동시키는 것, 가상 컨텐츠의 항목 및/또는 가상 사설 공간의 로케이션을 리사이징하는 것, 가상 사용자 인터페이스(예컨대, 모바일 폰의 가상 표현, 가상 키보드, 및/또는 다른 가상 인터페이스)에서 입력 인터페이스 엘리먼트를 선택하는 것, 가상 사용자 인터페이스를 통해 입력을 제공하는 것 등을 포함할 수 있다.
XR 엔진(120), 추천 엔진(122), 이미지 프로세싱 엔진(124), 및 렌더링 엔진(126)(및 임의의 이미지 프로세싱 엔진들)에 대한 동작들은 컴퓨트 컴포넌트들(110) 중 임의의 것에 의해 구현될 수 있다. 일 예시적인 예에서, 렌더링 엔진(126)의 동작들은 GPU(114)에 의해 구현될 수 있고, XR 엔진(120), 추천 엔진(122), 및 이미지 프로세싱 엔진(124)의 동작들은 CPU (112), DSP(116), 및/또는 ISP(118)에 의해 구현될 수 있다. 일부 경우들에서, 컴퓨트 컴포넌트들(110)은 본원에 설명된 다양한 동작들 중 임의의 것을 수행하기 위해 다른 전자 회로들 또는 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합을 포함할 수 있다.
일부 예들에서, XR 엔진(120)은, 하나 이상의 IMU들, 레이더들 등과 같은 확장 현실 시스템(100) 상의 이미지 센서(102), 가속도계(104), 자이로스코프(106), 및/또는 하나 이상의 센서들로부터의 데이터에 기초하여 XR 경험을 생성하기 위해 XR 동작들을 수행할 수 있다. 일부 예들에서, XR 엔진(120)은 추적, 로컬라이제이션, 포즈 추정, 맵핑, 컨텐츠 앵커링 동작들, 및/또는 임의의 다른 XR 동작들/기능들을 수행할 수 있다. XR 경험은 가상 세션 동안 사용자에게 XR 컨텐츠(예컨대, 가상 현실 컨텐츠, 증강 현실 컨텐츠, 혼합 현실 컨텐츠 등)를 제시하기 위한 확장 현실 시스템(100)의 사용을 포함할 수 있다. 일부 예들에서, XR 컨텐츠 및 경험은, 다른 것들 중에서, 예컨대, XR 게이밍 경험, XR 교실 경험, XR 쇼핑 경험, XR 엔터테인먼트 경험, XR 활동(예컨대, 동작, 트러블 슈팅(troubleshooting) 활동 등)과 같은 특정 XR 경험을 제공하는 XR 어플리케이션(예컨대, XR 엔진(120)에 의해 실행되거나 또는 구현됨)을 통해 확장 현실 시스템(100)에 의해 제공될 수 있다. XR 경험 동안, 사용자는 확장 현실 시스템(100)을 사용하여 가상 컨텐츠를 볼 수 있고 그리고/또는 가상 컨텐츠와 상호 작용할 수 있다. 일부 경우들에서, 사용자는 가상 컨텐츠를 볼 수 있고 그리고/또는 가상 컨텐츠와 상호 작용할 수 있는 한편, 또한 사용자 주위의 물리적 환경을 볼 수 있고 그리고/또는 물리적 환경과 상호 작용할 수 있어, 사용자로 하여금, 물리적 환경과 그 물리적 환경과 혼합되거나 또는 통합된 가상 컨텐츠 사이에 몰입형 경험을 갖게 할 수 있다.
추천 엔진(122)은 확장 현실 시스템(100)과 관련하여 적응형 추천들을 제공하기 위해 다양한 동작들을 수행할 수 있다. 본원에서 사용되는 바와 같은 확장 현실 시스템과 연관된 적응형 추천은, 사용자가 XR 기반 애플리케이션에 참여하는 동안 사용자와 XR 기반 애플리케이션 사이의 상호 작용들 및/또는 사용자와 실세계 환경 사이의 상호 작용들을 개선 및/또는 최적화하도록 구성되는 임의의 추천을 포함할 수 있다. 일부 경우들에서, 적응형 추천은 추천 엔진(122)이 현재 실세계 환경 내에서 사용자가 사용하기에 적합하다고 결정하는 하나 이상의 XR 기반 애플리케이션들에 대한 추천을 포함할 수 있다. 예컨대, 추천 엔진(122)은 사용자의 애플리케이션 선호도들, 사용자의 현재 감정적 및/또는 생리학적 상태, 및/또는 실세계 환경의 특징들과 같은 컨텍스트 팩터들과 호환성 있는 것으로 결정되는 하나 이상의 XR 기반 애플리케이션들의 표시를 제공할 수 있다. 일부 예들에서, 적응형 추천은 XR 기반 애플리케이션 및/또는 실세계 환경의 하나 이상의 양상들을 수정하기 위한 추천을 포함할 수 있다. 예컨대, 사용자가 확장 현실 시스템(100)에 의해 개시될 애플리케이션을 선택한 이후, 추천 엔진(122)은 애플리케이션의 세팅들 및/또는 사용자의 XR 경험을 개선하도록 구성되는 환경의 특징들에 대한 하나 이상의 조정들을 결정할 수 있다.
도 2는 추천 시스템(200)의 예를 예시하는 블록 다이어그램이다. 일부 경우들에서, 추천 시스템(200)은 도 1의 확장 현실 시스템(100)을 포함하고 그리고/또는 그의 부분일 수 있다. 예컨대, 추천 시스템(200)은 추천 엔진(122)의 전부 또는 그 일부에 대응할 수 있다. 도 2에 도시된 바와 같이, 추천 시스템(200)은 환경 특징 엔진(202), 사용자 특징 엔진(204), 애플리케이션 특징 엔진(206), 추천 엔진(208), 및 수정 엔진(209)을 포함하는 하나 이상의 엔진들을 포함할 수 있다. 추천 시스템(200)의 엔진들은 추천(222)을 결정하도록 구성될 수 있다. 추천(222)은 확장 현실 시스템(100)의 사용자의 XR 경험을 개선하도록 구성되는 임의의 수 또는 타입의 적응형 추천들을 포함할 수 있다.
일부 경우들에서, 추천 시스템(200)은 실세계 환경과 연관된 하나 이상의 환경 특징들(예컨대, 환경 특징들(210))에 적어도 부분적으로 기초하여 추천(222)을 결정할 수 있다. 일부 경우들에서, 환경 특징은 사용자와 XR 기반 애플리케이션 사이의 상호 작용들에 잠재적으로 영향을 미치고 그리고/또는 이를 변경하는 실세계 환경의 임의의 엘리먼트 또는 양상을 포함할 수 있다. 예컨대, 물리적 오브젝트(예컨대, 벽, 가구, 층계들 등)에 대응하는 환경 특징은 사용자가 이동을 수반하는 XR 기반 애플리케이션과 상호 작용하는 동안 충분히 이동하지 못하게 할 수 있다. 일부 예들에서, 환경 특징들(210)은 실세계 환경 내의 물리적 오브젝트들의 레이아웃을 포함할 수 있다. 예컨대, 환경 특징들(210)은 추천 시스템(200)이 로케이팅되는 방 및/또는 건물의 평면도를 포함할 수 있다. 평면도는 방들, 벽들, 문들, 창문들, 가구들 등과 같은 특징들의 로케이션들, 사이즈들, 및/또는 타입들을 표시하는 정보를 포함할 수 있다. 일부 예들에서, 환경 특징들(210)은 실세계 환경의 주변 및/또는 지리적 특성들을 포함할 수 있다. 예컨대, 환경 특징들(210)은 다른 특징들 중에서도, 환경의 온도, 환경 내의 냄새, 환경 내의 조명 레벨, 환경의 타입(예컨대, 환경이 공공 공간인지, 건물 내부인지 등), 및 환경의 날씨 또는 기후를 포함할 수 있다. 추가적인 예들에서, 환경 특징들(210)은 실세계 환경 내의 배경 활동을 포함할 수 있다. 예컨대, 환경 특징들(210)은 다른 배경 활동 중에서도, 환경 내의 말하는 사람들, 앉은 사람들, 이동하는 사람들 등, 환경 내의 애완 동물들, 환경 내의 사운드들(예컨대, 텔레비전, 교통 등으로부터의 사운드들)을 포함할 수 있다. 추가적인 예들에서, 환경 특징들(210)은 실세계 환경 내의 네트워크(예컨대, 확장 현실 시스템(100)이 연결된 네트워크)에 연결된 컴퓨팅 디바이스들을 포함할 수 있다. 예컨대, 환경 특징들(210)은 랩탑들, 데스크탑들, 태블릿들, 모바일 폰들, 인터넷-가능 텔레비전들, 게이밍 시스템들, IoT(Internet of things) 디바이스들(예컨대, 온도 조절 장치들과 같은 인터넷-가능 기기들), 및/또는 네트워크에 연결된 임의의 추가 타입의 디바이스를 포함할 수 있다.
환경 특징 엔진(202)은 다양한 기법들 및/또는 디바이스들을 사용하여 환경 특징들(210)을 결정할 수 있다. 일부 예들에서, 환경 특징 엔진(202)은 환경 내의 물리적 레이아웃 및/또는 물리적 오브젝트들을 식별하기 위해 실세계 환경을 스캔할 수 있다. 예컨대, 환경 특징 엔진(202)은 하나 이상의 카메라들 또는 이미지 센서들(예컨대, 확장 현실 시스템(100)의 이미지 센서(102))에 의해 캡처된 이미지 또는 비디오 데이터를 분석함으로써 환경을 스캔할 수 있다. 환경 특징 엔진(202)은 하나 이상의 이미지 프로세싱 기법들 및/또는 컴퓨터 비전 기법들을 구현함으로써 이미지 또는 비디오 데이터 내의 하나 이상의 환경 특징들을 검출할 수 있다. 이미지 프로세싱 기법들은 오브젝트 검출 알고리즘들, 오브젝트 인식 알고리즘들, 얼굴 인식 알고리즘들, 이들의 임의의 조합, 및/또는 다른 이미지 프로세싱 기법들을 포함할 수 있다. 일부 예들에서, 환경 특징 엔진(202)은 이전에 생성되거나 또는 저장된 환경 데이터에 기초하여 하나 이상의 환경 특징들을 결정할 수 있다. 예컨대, 환경 특징 엔진(202)은 환경과 연관된 청사진 또는 유사한 정보에 액세스함으로써 환경의 물리적 레이아웃에 대한 정보를 결정할 수 있다. 다른 예에서, 환경 특징 엔진(202)은 환경의 이전 스캔에 액세스할 수 있다. 이전의 스캔은 환경 특징 엔진(202)에 의해 또는 상이한 시스템 또는 디바이스에 의해 수행될 수 있다. 일부 예들에서, 환경 특징 엔진(202)은 LIDAR 센서들, 오디오 센서들, 온도계들, 이들의 임의의 조합, 및/또는 다른 센서들 또는 디바이스들과 같은 센서들을 사용하여 환경의 주변 및/또는 물리적 조건들을 결정할 수 있다. 추가적인 예들에서, 환경 특징 엔진(202)은 네트워크 연결 및/또는 포지셔닝 시스템(예컨대, GPS(Global Positioning System))을 사용하여 확장 현실 시스템(100)이 로케이팅되는 실세계 환경의 로케이션을 결정할 수 있다. 환경 특징 엔진(202)은 임의의 적합한 기법 및/또는 디바이스를 사용하여 임의의 추가 또는 대체 타입의 환경 특징을 검출할 수 있다.
일부 경우들에서, 환경 특징 엔진(202)은 환경 특징들(210)에 기초하여 환경 내에서 발생하는 특정 시나리오들 및/또는 이벤트들을 결정할 수 있다. 그러한 결정들은 "장면 이해"로 지칭될 수 있다. 예컨대, 환경 특징 엔진(202)은 다수의 환경 팩터들을 분석함으로써 환경 내의 특정 시나리오를 추론 및/또는 추정할 수 있다. 예시적인 예에서, 환경 특징 엔진(202)은 다음의 팩터들에 기초하여 추천 시스템(200)이 로케이팅되는 방에 인접하게 로케이팅되는 주방 내에서 사람이 요리하고 있다고 결정할 수 있다: (1) 인접한 주방을 표시하는 환경의 레이아웃, (2) 사용되고 있는 요리 디바이스들(예컨대, 팬들, 믹서들, 블렌더들, 오븐 타이머들 등)에 대응하는 인접한 주방 내에서의 사운드들, (3) 인접한 주방 내의 사람들의 검출, 및 (4) 인접한 주방의 온도 증가.
도 2에 도시된 바와 같이, 환경 특징 엔진(202)은 환경 특징들(210)에 적어도 부분적으로 기초하여 환경 프로파일(216)을 결정할 수 있다. 환경 프로파일(216)은 실세계 환경의 정량적 및/또는 정성적 개요, 평가, 및/또는 설명을 표현할 수 있다. 환경 프로파일(216)은 개별 환경 팩터들(예컨대, 환경의 온도, 환경과 연관된 방(들)의 타입 등), 및/또는 환경 내에서 발생하는 특정 이벤트들을 포함할 수 있다. 일부 경우들에서, 환경 특징 엔진(202)은 확장 현실 시스템(100)이 턴온되거나 또는 그렇지 않으면 활성화되는 것에 기초하여 환경 프로파일(216)을 생성 및/또는 업데이트할 수 있다. 예컨대, 환경 특징 엔진(202)은 확장 현실 시스템(100)이 턴온될 때마다 새로운 환경 프로파일(216)을 생성할 수 있다. 다른 예들에서, 환경 특징 엔진(202)은 기존 환경 프로파일(216)을 업데이트할 수 있다. 예컨대, 환경 특징 엔진(202)은 특정 실세계 환경과 연관된 물리적 레이아웃, 지리적 로케이션, 인터넷-가능 디바이스들 등에 대한 정보를 저장할 수 있다. 확장 현실 시스템(100)이 특정 실세계 환경에서 턴온되었음을 검출하는 것에 대한 응답으로, 환경 특징 엔진(202)은 하나 이상의 새로운 환경 특징들을 식별하고, 새로운 환경 특징들을 환경 프로파일에 통합할 수 있다. 예시적인 예에서, 환경 특징 엔진(202)은 가구가 방에 추가되었거나 또는 방으로부터 제거되었다고 결정하거나 또는 사람이 방을 나갔거나 또는 방에 들어왔다고 결정할 수 있다. 추가로, 환경 특징 엔진(202)은 다수의 환경들과 관련하여 환경 프로파일들을 저장할 수 있다. 예시적인 예에서, 환경 프로파일 엔진(202)은 사용자의 거실과 관련된 하나의 프로파일, 사용자의 사무실과 관련된 다른 프로파일, 및 확장 현실 시스템(100)이 이전에 사용된 건물과 관련된 추가적인 프로파일을 저장할 수 있다.
일부 예들에서, 환경 특징 엔진(202)은 사용자로부터 제공된 입력에 적어도 부분적으로 기초하여 환경 프로파일(216)을 생성할 수 있다. 예컨대, 환경 특징 엔진(202)은 사용자가 다양한 환경 특징들을 입력할 수 있는 인터페이스(예컨대, 그래픽 사용자 인터페이스)를 제공할 수 있다. 예시적인 예에서, 환경 특징 엔진(202)은 사용자가 환경 내의 방들의 라벨들을 입력하도록 프롬프트(prompt)할 수 있다(예컨대, 사용자는 거실, 주방, 침실 등을 식별할 수 있음). 추가적으로 또는 대안적으로, 환경 특징 엔진(202)은 사용자가 환경을 스캔하도록 지시할 수 있다(예컨대, 확장 현실 시스템(100)이 환경의 이미지들을 캡처하는 동안 환경 내에서 이동). 일부 경우들에서, 환경 특징 엔진(202)은 그러한 사용자 입력을 초기 환경 프로파일로서 사용할 수 있고 후속적으로 검출된 환경 특징들에 기초하여 초기 환경 프로파일을 업데이트할 수 있다.
일부 예들에서, 추천 시스템(200)은 사용자의 하나 이상의 특징들(예컨대, 사용자 특징들(212))에 적어도 부분적으로 기초하여 추천(222)을 결정할 수 있다. 사용자 특징들(212)은 사용자가 XR 기반 애플리케이션들과 어떻게 상호 작용하는지(또는 상호 작용할 수 있는지)와 연관된 임의의 타입 또는 형태의 정보를 포함할 수 있다. 예컨대, 사용자 특징들(212)은 현재 실세계 환경 내에서 애플리케이션을 즐기거나 또는 적절하게 상호 작용하기 위한 사용자의 능력을 표시 및/또는 예측하는 특징들을 포함할 수 있다. 일부 경우들에서, 사용자 특징들(212)은 사용자와 연관된 인구 통계학적 정보를 포함할 수 있다. 인구 통계 정보는 다른 정보 중에서도, 사용자의 연령, 성별, 국적, 민족을 포함할 수 있다. 일부 예들에서, 사용자 특징들(212)은 사용자의 사이즈(예컨대, 사용자의 키 및/또는 체중)를 포함할 수 있다. 또한, 사용자 특징들(212)은 사용자의 신체적 능력들(예컨대, 사용자가 가구 이동, 가구 수정, 걷기, 달리기 등을 할 수 있는지 여부)을 포함할 수 있다. 추가적인 예들에서, 사용자 특징들(212)은 사용자의 공간적 허가들을 포함할 수 있다. 예시적인 예에서, 사용자 특징들(212)은 사용자가 거실 및 사용자 자신의 침실에서 XR 기반 애플리케이션들을 사용하는 것이 허용되고 주방 및 다른 침실들에서 XR 기반 애플리케이션들을 사용하는 것이 허용되지 않는 것을 포함할 수 있다. 다른 예시적인 예에서, 사용자 특징들(212)은 사용자가 하나의 공공 공원에서 XR 기반 애플리케이션들을 사용하는 것이 허용되고 다른 공공 공원에서 XR 기반 애플리케이션들을 사용하는 것이 허용되지 않는다는 것을 포함할 수 있다. 추가로, 사용자 특징들(212)은 사용자에 부과된 애플리케이션 제한들을 포함할 수 있다. 예시적인 예에서, 사용자 특징들(212)은 자녀 보호 기능으로 인해 사용자가 사용하는 것이 허가되지 않는 특정 애플리케이션들 및/또는 특정 타입들의 애플리케이션들(예컨대, "10대" 등급 초과의 애플리케이션들)을 포함할 수 있다.
일부 예들에서, 사용자 특징들(212)은 사용자의 이력상의(예컨대, 이전) 애플리케이션 사용에 대한 정보를 포함할 수 있다. 예컨대, 사용자 특징들(212)은 사용자가 이전에 사용한 애플리케이션들의 타입들(예컨대, 게이밍 애플리케이션들, 운동 애플리케이션들, 원격 회의 애플리케이션들, 네비게이션 애플리케이션들 등)을 포함할 수 있다. 일 예에서, 사용자 특징들(212)은 사용자가 선호하는(예컨대, 가장 자주 사용되는) 타입들의 애플리케이션들을 포함할 수 있다. 또한, 사용자 특징들(212)은 사용자가 이전에 사용한 특정 애플리케이션들을 식별할 수 있다. 일부 경우들에서, 사용자 특징들(212)은 하나 이상의 애플리케이션들과 연관된 사용자의 기술 레벨을 포함할 수 있다. 예시적인 예에서, 사용자가 게이밍 애플리케이션을 플레이하는 경우, 사용자 특징들(212)은 사용자가 플레이하는 난이도, 사용자가 달성한 게임 성과들 등을 포함할 수 있다. 일부 경우들에서, 사용자 특징들(212)은 특정 애플리케이션들(또는 특정 타입들의 애플리케이션들)과 연관된 사용자 특정 컨텍스트 정보를 포함할 수 있다. 예컨대, 컨텍스트 정보는 사용자가 통상적으로 특정 애플리케이션을 사용하는 하루 중의 시간 및/또는 요일을 포함할 수 있다. 다른 예에서, 컨텍스트 정보는 특정 애플리케이션들을 위해 사용자에 의해 우선적으로 사용되는 XR 디바이스들(예컨대, 입력 디바이스들)의 타입들을 포함할 수 있다. 또 다른 예에서, 컨텍스트 정보는 사용자가 통상적으로 특정 애플리케이션을 사용하는 집 안의 방을 포함할 수 있다. 추가로, 컨텍스트 정보는 특정 애플리케이션과 연관된 사용자의 행동들, 생리학적 상태들, 및/또는 감정적 상태들을 포함할 수 있다. 예컨대, 사용자 특징들(212)은 특정 애플리케이션과 연관된 사용자의 통상적 기분 및/또는 마음 상태(예컨대, 피곤함, 깨어 있음, 스트레스를 받음, 편안함, 행복함, 화남 등)를 포함할 수 있다. 또한, 사용자 특징(212)은 사용자의 현재 행동들, 생리학적 상태들, 및/또는 감정적 상태들을 포함할 수 있다.
사용자 특징 엔진(204)은 다양한 기법들 및/또는 디바이스들을 사용하여 사용자 특징들(212)을 결정할 수 있다. 일부 예들에서, 사용자 특징 엔진(204)은 특정 애플리케이션들(또는 특정 타입들의 애플리케이션들)을 사용하는 사용자와 연관된 환경 영역(예컨대, 개별 방들)을 식별하기 위해 실세계 환경을 스캔할 수 있다. 예컨대, 사용자 특징 엔진(204)은 하나 이상의 카메라들 또는 이미지 센서들(예컨대, 확장 현실 시스템(100)의 이미지 센서(102))에 의해 캡처된 이미지 또는 비디오 데이터를 분석함으로써 환경을 스캔할 수 있다. 사용자 특징 엔진(204)은 하나 이상의 이미지 프로세싱 기법들 및/또는 컴퓨터 비전 기법들을 구현함으로써 이미지 또는 비디오 데이터 내의 하나 이상의 사용자 특성들을 검출할 수 있다. 일부 예들에서, 사용자 특징 엔진(204)은 애플리케이션 플랫폼(예컨대, 애플리케이션 배포 플랫폼, 클라우드 기반 애플리케이션 플랫폼, 게이밍 플랫폼 등) 상에서 사용자와 연관된 계정에 액세스함으로써 사용자 특징들(212)을 결정할 수 있다. 예컨대, 사용자 특징 엔진(204)은 계정으로부터, 사용자의 애플리케이션 선호도들 및/또는 이력상의 애플리케이션 사용에 대한 정보를 추출할 수 있다. 일부 예들에서, 사용자 특징 엔진(204)은 생체 인식 센서들을 사용하여 사용자 특징들(212)을 결정할 수 있다. 예컨대, 사용자 특징 엔진(204)은 음성 검출 센서 및/또는 컴퓨터 비전 센서를 이용하여 다른 정보 중에서도, 사용자의 성별, 연령, 및 신체적 능력들과 같은 정보를 결정할 수 있다. 다른 예에서, 사용자 특징 엔진(204)은 생리학적 센서들(예컨대, GSR(Galvanic skin response) 센서, EEG(electroencephalogram) 디바이스, ECG(electrocardiogram) 디바이스, PPG(photoplethysmography) 센서, 음성 검출 센서, 컴퓨터 비전 센서 등)을 사용하여 사용자의 감정적 및/또는 생리적 상태들을 결정할 수 있다. 사용자 특징 엔진(204)은 임의의 적합한 기법 및/또는 디바이스를 사용하여 임의의 추가 또는 대체 타입의 사용자 특징을 검출할 수 있다.
도 2에 도시된 바와 같이, 사용자 특징 엔진(204)은 사용자 특징들(212)에 적어도 부분적으로 기초하여 사용자 프로파일(218)을 결정할 수 있다. 사용자 프로파일(218)은 사용자의 애플리케이션 선호도들 및/또는 다양한 애플리케이션들의 컨텍스트 사용과 연관된 사용자 특징들의 정량적 및/또는 정성적 개요, 평가, 및/또는 설명을 표현할 수 있다. 예컨대, 사용자 프로파일(218)은 특정 애플리케이션들을 사용자의 이력상의 애플리케이션 사용에 대응하는 특정 환경 특징들과 연관시킬 수 있다. 일부 경우들에서, 사용자 프로파일(218)은 또한 사용자의 현재 상태를 표현할 수 있다. 예컨대, 확장 현실 시스템(100)이 활성화되었다는 검출에 대한 응답으로, 사용자 특징 엔진(204)은 사용자의 업데이트된 생리학적, 감정적, 및/또는 생물학적 상태들을 결정할 수 있다. 이러한 업데이트된 상태들은 사용자 프로파일(218)에 통합될 수 있다.
일부 예들에서, 사용자 특징 엔진(204)은 사용자로부터 제공된 입력에 적어도 부분적으로 기초하여 사용자 프로파일(218)을 생성할 수 있다. 예컨대, 사용자 특징 엔진(204)은 사용자가 다른 정보 중에서도, 인구 통계학적 정보, 신체적 능력들, 자녀 보호 기능, 및 애플리케이션 선호도들과 같은 정보를 입력할 수 있는 인터페이스를 제공할 수 있다. 비제한적 예에서, 사용자 특징 엔진(204)은 확장 현실 시스템(100)을 통해 액세스되는 계정을 셋업하는 동안 사용자가 그러한 정보를 입력하도록 프롬프트할 수 있다. 일부 경우들에서, 사용자 특징 엔진(204)은 그러한 사용자 입력을 초기 사용자 프로파일로서 사용할 수 있고 후속적으로 검출된 사용자 특징들에 기초하여 초기 사용자 프로파일을 업데이트할 수 있다.
일부 경우들에서, 추천 시스템(200)은 확장 현실 시스템(100)에 의해 지원되는 XR 기반 애플리케이션들과 연관된 하나 이상의 애플리케이션 특징들(예컨대, 애플리케이션 특징들(214))에 적어도 부분적으로 기초하여 추천(222)을 결정할 수 있다. 확장 현실 시스템(100)은 다른 것들 중에서도, 게이밍 애플리케이션들, 운동 애플리케이션들, 원격 회의 애플리케이션들, 및 네비게이션 애플리케이션들을 포함하는 다양한 타입들의 XR 기반 애플리케이션들을 지원할 수 있다. 일부 경우들에서, 애플리케이션 특징은 XR 기반 애플리케이션으로 사용자의 경험을 용이하게 하고 그리고/또는 최적화하는 실세계 환경의 임의의 특성을 포함할 수 있다. 따라서, 일부 예들에서, 애플리케이션 특징들(214)은 애플리케이션 특징 엔진(206)이 특정 XR 기반 애플리케이션에 유익하고 그리고/또는 관련될 것으로 결정하는 환경 특징들을 포함할 수 있다. 예컨대, 환경 특징들은 애플리케이션이 경험될 방의 선호되는 및/또는 제안되는 사이즈를 포함할 수 있다. 예시적인 예에서, 많은 양의 물리적 이동을 수반하는 애플리케이션(예컨대, 빠르게 진행되는 게이밍 애플리케이션)은 큰 환경에서 이점을 얻을 수 있는 반면, 다른 애플리케이션들(예컨대, 원격 회의 애플리케이션들, 움직이지 않는(stationary) 게이밍 애플리케이션들 등)은 다양한 사이즈들의 환경들에 적합할 수 있다. 일부 예들에서, 환경 특징들은 환경의 선호되는 및/또는 제안되는 물리적 레이아웃을 포함할 수 있다. 예컨대, 애플리케이션 특징들(214)은 환경 내의 선호되는 및/또는 제안되는 클러터(clutter)(예컨대, 가구 및/또는 다른 물체들)의 양, 환경 내의 방들의 선호되는 및/또는 제안되는 수 등을 포함할 수 있다. 추가적인 예들에서, 환경 특징들은 선호되는 및/또는 제안되는 타입의 환경(예컨대, 공공 건물, 개인실, 실외 환경, 실내 환경 등)을 포함할 수 있다. 다른 예에서, 환경 특징들은 환경의 주변 특징들(예컨대, 선호되는 및/또는 제안되는 조명 레벨, 사운드 레벨, 온도 등)을 포함할 수 있다.
일부 경우들에서, 애플리케이션 특징은 XR 기반 애플리케이션을 즐기는 사용자 및/또는 XR 기반 애플리케이션과 적절하게 상호 작용할 수 있는 사용자와 연관된 사용자의 임의의 특성을 포함할 수 있다. 따라서, 일부 예들에서, 애플리케이션 특징들(214)은 애플리케이션 특징 엔진(206)이 특정 XR 기반 애플리케이션에 유익하고 그리고/또는 관련될 것으로 결정하는 사용자 특징들을 포함할 수 있다. 예컨대, 사용자 특징들은 애플리케이션이 단일 사용자 또는 다수의 사용자들에게 가장 적합한지 여부(및/또는 다수의 사용자들이 로컬이어야 하는지 아니면 원격이어야 하는지)를 포함할 수 있다. 다른 예에서, 사용자 특징들은 특정 애플리케이션과 상호 작용할 때 유용하고 그리고/또는 요구되는 사용자들의 사이즈 및/또는 사용자들의 신체적 능력들(예컨대, 걷기, 달리기, 점프하기, 듣기, 보기 등)을 포함할 수 있다.
일부 예들에서, 애플리케이션 특징들(214)은 특정 XR 기반 애플리케이션에 대해 요구되고 그리고/또는 제안되는 하드웨어 및/또는 소프트웨어를 포함할 수 있다. 예컨대, 애플리케이션 특징들(214)은 다른 소프트웨어 또는 하드웨어 특성들 중에서도, 요구되는 그리고/또는 제안되는 XR 디바이스들(예컨대, 컨트롤러들, HMD(head-mounted display)들, 입력 디바이스들, 안경 등), 요구되는 그리고/또는 제안되는 XR 디바이스 전력 레벨들, 요구되는 그리고/또는 제안되는 네트워크 연결 레이턴시들을 포함할 수 있다.
일부 경우들에서, 특정 XR 기반 애플리케이션에 대한 애플리케이션 특징들은 특정 애플리케이션과 유사한 추가 애플리케이션들을 포함할 수 있다. 예컨대, 애플리케이션 특징들(214)은 기능들, 테마들, 사용자 경험들 등이 특정 애플리케이션과의 적어도 임계량의 유사성을 갖는 하나 이상의 애플리케이션들을 포함할 수 있다. 예시적인 예에서, 1인칭 슈터(shooter) 애플리케이션과 연관된 애플리케이션 특징은 다른 1인칭 슈터 애플리케이션일 수 있다. 추가적인 예들에서, 애플리케이션 특징들(214)은 특정 애플리케이션을 또한 즐겼던 사용자들이 즐긴(예컨대, 높은 평가 또는 리뷰를 함) 하나 이상의 애플리케이션들을 포함할 수 있다. 예시적인 예에서, 다수의 사용자들(예컨대, 임계 수의 사용자들)이 특정 애플리케이션 및 추가 애플리케이션 모두를 즐기는 경우(예컨대, 사용자들이 임계 등급 초과로 두 애플리케이션들 모두를 평가함), 애플리케이션 특징 엔진(206)은 추가 애플리케이션이 특정 애플리케이션과 연관된 애플리케이션 특징이라고 결정할 수 있다.
애플리케이션 특징 엔진(206)은 다양한 기법들 및/또는 디바이스들을 사용하여 애플리케이션 특징들(214)을 결정할 수 있다. 일부 경우들에서, 애플리케이션 특징 엔진(206)은 특정 애플리케이션을 사용한 복수의 사용자들과 연관된 정보에 기초하여 특정 애플리케이션에 대한 애플리케이션 특징들을 결정할 수 있다. 예컨대, 애플리케이션 특징 엔진(206)은 애플리케이션 프로파일들을 생성하도록 구성되는 클라우드 기반 서비스의 부분으로서 구현될 수 있다. 예시적인 예에서, 클라우드 기반 서비스는 복수의 XR 시스템들과 원격으로 통신하는 데이터베이스들 및/또는 서버들의 클러스터를 포함할 수 있다. 이 예에서, 클라우드 기반 서비스는 복수의 XR 시스템들에 의해 생성된 사용자 프로파일들 및/또는 환경 프로파일들을 수집할 수 있다. 예컨대, 복수의 XR 시스템들은 사용자 프로파일들 및/또는 환경 프로파일들을 생성하고 프로파일들을 클라우드 기반 서비스에 전송하도록 구성될 수 있다. 추가적으로 또는 대안적으로, 애플리케이션 특징 엔진(206)은 애플리케이션 특징들을 "크라우드소싱"할 수 있다. 예컨대, 애플리케이션 특징 엔진(206)은 유사한 사용자들(예컨대, 유사한 사용자 프로파일들을 갖는 사용자들)이 유사하게 리뷰한 애플리케이션들을 결정하기 위해 다수의 애플리케이션들의 사용자 리뷰들을 분석할 수 있다.
도 2에 도시된 바와 같이, 애플리케이션 특징 엔진(206)은 애플리케이션 특징들(214)에 적어도 부분적으로 기초하여 하나 이상의 애플리케이션 프로파일들(220)을 결정할 수 있다. 일부 경우들에서, 애플리케이션 프로파일(220) 내의 하나의 애플리케이션 프로파일은 단일 애플리케이션에 대응할 수 있다. 예컨대, 애플리케이션 특징 엔진(206)은 상이한 애플리케이션에 각각 대응하는 다수의 애플리케이션 프로파일들을 생성할 수 있다. 일부 경우들에서, 애플리케이션 특징 엔진(206)은 특정 애플리케이션을 사용한 복수의 사용자들과 연관된 사용자 프로파일들 및/또는 환경 프로파일들을 프로세싱함으로써 특정 애플리케이션에 대한 애플리케이션 프로파일을 생성할 수 있다. 애플리케이션 특징 엔진(206)은 다양한 타입들의 데이터 프로세싱 기법들을 이용하여 프로파일들을 프로세싱할 수 있다. 예컨대, 애플리케이션 특징 엔진(206)은 하나 이상의 데이터 마이닝 기법들, 분류 기법들, 클러스터링 기법들, 예측 기법들, 패턴 추적 기법들, 이들의 임의의 조합, 및/또는 다른 데이터 프로세싱 기법들을 구현할 수 있다. 추가적으로 또는 대안적으로, 애플리케이션 특징 엔진(206)은 NN(neural network), 이를테면, CNN(convolutional neural network), TDNN(time delay neural network), DFFNN(deep feed forward neural network), RNN(recurrent neural network), AE(auto encoder), VAE(variation AE), DAE(denoising AE), SAE(sparse AE), MC(markov chain), 퍼셉트론(perceptron), 또는 이들의 일부 조합을 포함하는 하나 이상의 기계 학습 알고리즘들을 구현할 수 있다. 기계 학습 알고리즘은 지도(supervised) 학습 알고리즘, 비지도(unsupervised) 학습 알고리즘, 반지도(semi-supervised) 학습 알고리즘, GAN(generative adversarial network) 기반 학습 알고리즘, 이들의 임의의 조합, 또는 다른 학습 기법들일 수 있다.
도 2에 도시된 바와 같이, 추천 엔진(208)은 환경 프로파일(216), 사용자 프로파일(218), 및 하나 이상의 애플리케이션 프로파일들(220)에 적어도 부분적으로 기초하여 추천(222)을 결정할 수 있다. 일부 경우들에서, 추천(222)은, 추천 엔진(208)이 확장 현실 시스템(100)이 로케이팅되는 실세계 환경 내에서 확장 현실 시스템(100)의 사용자에 의한 사용에 적합한 것으로 결정하는 하나 이상의 애플리케이션들을 포함할 수 있다. 일 예에서, 적합한 애플리케이션들은 애플리케이션 프로파일들(220)에 대응하는 애플리케이션들의 서브세트를 포함할 수 있다. 적합한 애플리케이션들을 결정하기 위해, 추천 엔진(208)은 환경 프로파일(216) 및/또는 사용자 프로파일(218)을 애플리케이션 프로파일들(220)과 비교할 수 있다. 예시적인 예에서, 추천 엔진(208)은 환경 프로파일(216) 및/또는 사용자 프로파일(218) 및 애플리케이션 프로파일들(220)의 전부 또는 그의 일부 사이의 매치 스코어들을 결정함으로써 프로파일들을 비교할 수 있다. 본원에서 사용되는 바와 같이, 애플리케이션 프로파일과 연관된 매치 스코어는 대응하는 애플리케이션과 사용자 및/또는 사용자의 현재 실세계 환경 사이의 호환성의 정량적 평가를 표현할 수 있다. 임계 값 초과의 호환성 스코어는 현재 실세계 환경 및 사용자의 현재 상태가 주어지면 사용자가 애플리케이션을 즐길 가능성이 있고 그리고/또는 애플리케이션과 적절하게 상호 작용할 수 있음을 표시할 수 있다. 일부 경우들에서, 매치 스코어는 사전 결정된 범위 내의 수치 스코어를 포함할 수 있다. 예시적인 예에서, 범위는 0-1의 범위, 1-10의 범위, 또는 0%-100%의 범위를 포함할 수 있으며, 여기서 더 높은 스코어는 더 높은 양의 호환성과 연관된다. 일부 예들에서, 추천 엔진(208)은 임계 매치 스코어를 초과하거나 또는 임계 매치 스코어 초과인, 매치 스코어들에 대응하는 애플리케이션들로서 적합한 애플리케이션을 결정할 수 있다. 예컨대, 매치 스코어들이 0%-100% 범위 내에서 결정되는 경우, 추천 엔진(208)은 60%를 충족하거나 또는 초과하는 매치 스코어들에 대응하는 애플리케이션들로서 적합한 애플리케이션들을 결정할 수 있다. 추가적으로 또는 대안적으로, 추천 엔진(208)은 특정 수 및/또는 비율의 가장 높은 매치 스코어들에 대응하는 애플리케이션들로서 적합한 애플리케이션들을 결정할 수 있다. 예시적인 예에서, 애플리케이션 프로파일들(220)이 50개의 애플리케이션 프로파일들을 포함하는 경우, 추천 엔진(208)은 가장 높은 5개의 매치 스코어들에 대응하는 애플리케이션들을 식별할 수 있다.
일부 경우들에서, 추천 엔진(208)은 애플리케이션 프로파일과 환경 프로파일(216) 사이의 제1 매치 스코어 및 애플리케이션 프로파일과 사용자 프로파일(218) 사이의 제2 매치 스코어에 기초하여 애플리케이션 프로파일들(220) 중 하나와 연관된 전체 매치 스코어를 결정할 수 있다. 예컨대, 추천 엔진(208)은 별개의 매치 스코어들을 결정한 다음, 매치 스코어들을 조합할 수 있다. 일부 경우들에서, 추천 엔진(208)은 매치 스코어들의 단순 평균을 계산함으로써 전체 매치 스코어를 결정할 수 있다. 그러한 매치 스코어는 환경 프로파일(216) 및 사용자 프로파일(218)을 동일하게 반영하고 그리고/또는 환경 프로파일(216) 및 사용자 프로파일(218)에 의해 영향을 받을 수 있다. 일부 경우들에서, 추천 엔진(208)은 2개의 매치 스코어들에 가중치를 부여함으로써 전체 매치 스코어를 결정할 수 있다. 일 예에서, 2개의 매치 스코어들에 가중치를 부여하는 것은 각각의 매치 스코어에 수치적 가중치를 할당하는 것(예컨대, 사용자 프로파일(218)과 연관된 매치 스코어에 0.7의 가중치를 할당하고 환경 프로파일(216)과 연관된 매치 스코어에 0.3의 가중치를 할당하는 것)을 포함할 수 있다.
추가적으로 또는 대안적으로, 매치 스코어들에 가중치를 부여하는 것은 매치 스코어들을 결정할 때 프로파일들로부터 특징들의 전부 또는 일부를 무시하는 것을 포함할 수 있다. 일 예에서, 추천 엔진(208)은 환경 프로파일(216)에 기초하여 매치 스코어를 결정할 수 있다. 예컨대, 추천 엔진(208)은 (사용자 프로파일(218)을 무시하면서) 환경 프로파일(216)의 특징들을 하나 이상의 애플리케이션 프로파일들의 특징들과 비교할 수 있다. 다른 예에서, 추천 엔진(208)은 사용자 프로파일(218)에 기초하여 매치 스코어를 결정할 수 있다. 예컨대, 추천 엔진(208)은 (환경 프로파일(216)을 무시하면서) 사용자 프로파일(218)의 특징들을 하나 이상의 애플리케이션 프로파일들의 특징들과 비교할 수 있다.
추가적인 예들에서, 추천 엔진(208)은 하나 이상의 애플리케이션 프로파일들의 특정 특징들을 환경 프로파일(216) 및/또는 사용자 프로파일(218)의 특징들과 선택적으로 비교할 수 있다. 위에서 설명된 바와 같이, 애플리케이션 프로파일은 사용자 특성들과 연관된 특징들 및 환경 특성들과 연관된 특징들을 포함할 수 있다. 일 예에서, 추천 엔진(208)은 사용자 프로파일(218)의 특징들을 환경 특성들과 연관된 하나 이상의 애플리케이션 프로파일들의 특징들과 비교함으로써 매치 스코어를 결정할 수 있다. 예시적인 예에서, 그러한 선택적 비교는, (예컨대, 애플리케이션의 사용에 관련된 높은 레벨의 활동으로 인해) 큰 환경을 위해 설계된 애플리케이션이 매우 활성인 애플리케이션들을 즐기지 않는 사용자(사용자가 큰 방에 로케이팅되는 경우에도)에게 적합하지 않을 가능성이 있다고 결정할 수 있다. 다른 예시적인 예에서, 추천 엔진(208)은 큰 환경을 위해 설계된 애플리케이션이 높은 레벨의 운동 능력을 갖는 사용자에게 적합할 가능성이 있다고 결정할 수 있다. 다른 경우들에서, 추천 엔진(208)은 환경 프로파일(216)의 특징들을 사용자 특성들과 연관된 하나 이상의 애플리케이션 프로파일들의 특징들과 비교함으로써 매치 스코어를 결정할 수 있다. 예시적인 예에서, 그러한 선택적 비교는 키가 큰 사용자들을 위해 설계된 애플리케이션이 작고 그리고/또는 혼잡한 환경 내에 로케이팅된 사용자에게 적합하지 않을 가능성이 있다고 결정할 수 있다. 또 다른 예시적인 예에서, 추천 엔진(208)은 키가 큰 사용자들을 위해 설계된 애플리케이션이 키가 크고 큰 환경에 로케이팅되는 사용자에게 적합할 가능성이 있다고 결정할 수 있다.
추천 엔진(208)은 다양한 팩터들에 기초하여 결정될 매치 스코어의 타입을 선택할 수 있다. 예컨대, 추천 엔진(208)은 특정 타입의 매치 스코어에 대응하는 사용자 입력을 검출할 수 있다. 또 다른 예에서, 추천 엔진(208)은 사용자 프로파일(218) 및/또는 환경 프로파일(216) 내의 정보의 양 및/또는 타입에 기초하여 매치 스코어의 타입을 선택할 수 있다. 예컨대, 추천 엔진(208)은 충분한 양의 정보를 포함하지 않는 프로파일의 부분들을 무시할 수 있다.
실세계 환경 내에서 사용자가 사용하기에 적합한 하나 이상의 애플리케이션들을 결정한 이후, 추천 엔진(208)은 애플리케이션들의 표시를 출력할 수 있다. 애플리케이션들의 표시는 추천(222)에 대응할 수 있다. 일부 경우들에서, 추천(222)은 적합한 애플리케이션들에 대응하는 이름들의 목록을 포함할 수 있다. 예컨대, 이름들의 목록은 확장 현실 시스템(100)의 디스플레이 상에서 또는 디스플레이를 통해 보여질 수 있다. 일부 경우들에서, 추천 엔진(208)은 또한 각각의 애플리케이션에 대응하는 매치 스코어들을 디스플레이할 수 있다.
일부 예들에서, 수정 엔진(209)은 애플리케이션과 연관된 하나 이상의 수정들(예컨대, 수정(224))을 결정할 수 있다. 애플리케이션은 추천 엔진(208)에 의해 추천된 애플리케이션 및/또는 확장 현실 시스템(100)에 의해 개시될 것으로 사용자에 의해 선택된 애플리케이션일 수 있다. 수정(224)은 사용자가 현재 실세계 환경 내에 있는 동안 애플리케이션과 사용자 사이의 상호 작용들을 개선하도록 구성되는 임의의 수 또는 타입의 수정들을 포함할 수 있다. 일 예에서, 수정(224)은 실세계 환경에 대한 수정을 포함할 수 있다. 예컨대, 수정(224)은 사용자가 애플리케이션에 더 적합한 실세계 환경의 상이한 부분으로 이동하는 것을 포함할 수 있다. 예시적인 예에서, 수정(224)은 애플리케이션에 더 적합한 물리적 레이아웃, 주변 노이즈 레벨, 및/또는 주변 광 레벨을 갖는 상이한 방으로 사용자가 이동하는 것을 포함할 수 있다. 다른 예시적인 예에서, 수정(224)은 더 큰 환경(예컨대, 더 큰 "게임 공간")을 형성하기 위해 인접한 방들을 연결시키는 것을 포함할 수 있다. 추가적인 예시적인 예에서, 수정(224)은 다수의 사용자들을 위한 경계들(예컨대, 별개의 "게임 공간들")을 생성하기 위해 인접한 방들을 세그먼트화하는 것(또는 단일 방을 다수의 영역들로 세그먼트화하는 것)을 포함할 수 있다. 또 다른 예에서, 수정(224)은 (예컨대, 더 큰 이동 정도를 가능하게 하기 위해) 환경 내의 하나 이상의 물리적 오브젝트들(예컨대, 가구들)을 이동시키는 것을 포함할 수 있다. 추가적으로 또는 대안적으로, 수정(224)은 가구를 수정하거나 또는 증강하는 것(예컨대, 테이블 접는 것 또는 확장하는 것)을 포함할 수 있다. 추가로, 수정 엔진(209)은 가구를 어떻게 수정하거나 또는 증강하는지를 사용자에게 지시하는 명령들을 생성 및 출력할 수 있다. 예컨대, 수정 엔진(209)은 테이블 리프(table leaf)를 추가하거나 또는 제거하는 것과 관련된 특정 단계들을 사용자에게 제공할 수 있다. 추가적인 예에서, 수정(224)은 환경의 주변 특성들을 조정하는 것을 포함할 수 있다. 예컨대, 수정(224)은 오디오 가상 컨텐츠를 청취하기 위한 사용자의 능력을 증가시키기 위해 주변 노이즈의 볼륨을 낮추는 것 및/또는 시각적 가상 컨텐츠를 보기 위한 사용자의 능력을 증가시키기 위해 주변 광의 레벨을 감소시키는 것을 포함할 수 있다. 다른 예에서, 수정(224)은 애플리케이션 내에서 소품들로서 사용될 물리적 오브젝트들에 대한 추천들을 포함할 수 있다. 예시적인 예에서, 수정(224)은 팀 기반 애플리케이션 내에서 특정 가구를 "기본"으로 사용하라는 추천을 포함할 수 있다.
일부 경우들에서, 수정(224)은 확장 현실 시스템(100) 및/또는 애플리케이션의 하나 이상의 세팅들에 대한 수정을 포함할 수 있다. 예컨대, 수정(224)은 애플리케이션의 난이도 또는 모드를 변경하는 것을 포함할 수 있다. 예컨대, 현재 환경이 멀티 플레이어 게임에 너무 혼잡할 경우, 수정(224)은 싱글 플레이어 모드를 선택하는 것을 포함할 수 있다. 일부 경우들에서, 수정 엔진(209)은 환경 프로파일(216), 사용자 프로파일(218), 및/또는 선택된 애플리케이션에 대응하는 애플리케이션 프로파일을 비교 및/또는 분석함으로써 수정(224)을 결정할 수 있다. 예컨대, 수정 엔진(209)은 현재 게임 프로파일 내의 특징들에 매칭하지 않거나 또는 현재 게임 프로파일 내의 특징들에 대응하지 않는 환경 프로파일(216) 및/또는 사용자 프로파일(218) 내의 특징들을 식별할 수 있다. 그런 다음, 수정 엔진(209)은 프로파일들 내의 특징들이 매칭하는 정도를 증가시키는 변경들을 추천할 수 있다.
일부 예들에서, 수정 엔진(209)은 추천된 애플리케이션과 연관된 전력 비용들에 적어도 부분적으로 기초하여 수정(224)을 결정할 수 있다. 예컨대, 수정 엔진(209)은 사용자의 현재 환경이, 애플리케이션과 적절하게 상호 작용하기 위해 사용자가 확장 현실 시스템(100)의 밝기를 증가시킬 것을 요구할 수 있는 높은 레벨의 주변 광을 갖는다고 결정할 수 있다. 증가된 레벨의 밝기는 확장 현실 시스템(100)의 배터리를 빠르게 고갈시킬 수 있어, 사용자가 짧은 양의 시간(예컨대, 30 분, 1 시간 등) 동안만 애플리케이션을 사용할 수 있게 한다. 사용자가 애플리케이션과 상호 작용할 수 있는 시간량을 증가시키기 위해, 수정 엔진(209)은 사용자가 더 어두운 상이한 환경(예컨대, 상이한 방)으로 이동할 것을 제안할 수 있다. 다른 예에서, 수정 엔진(209)은 사용자가 소유한 다양한 XR 디바이스들의 현재 배터리 상태에 기초하여 수정(224)을 결정할 수 있다. 예컨대, 수정 엔진(209)은 사용자가 애플리케이션을 실행할 수 있는 둘 이상의 XR 디바이스들을 갖는다고 결정할 수 있다. 수정 엔진(209)은 디바이스들의 배터리들의 충전 레벨 및/또는 드레인 레이트에 기초하여, 어떤 디바이스가 가장 긴 애플리케이션 사용 지속기간을 가능하게 할 것인지를 결정할 수 있다. 그런 다음, 수정 엔진(209)은 사용자가 애플리케이션을 실행하기 위해 그 디바이스를 선택하는 것을 추천할 수 있다.
일부 경우들에서, 수정 엔진(209)은 애플리케이션이 확장 현실 시스템(100) 내에서 개시되는 것으로 선택되었음을 검출하는 것에 기초하여 수정(224)을 결정할 수 있다. 예컨대, 수정 엔진(209)은 개시될 애플리케이션의 선택에 대응하는 사용자 입력을 검출하고, 입력에 대한 응답으로 수정(224)을 결정할 수 있다. 추가적으로 또는 대안적으로, 수정 엔진(209)은 (예컨대, 개시될 애플리케이션의 선택에 대응하는 사용자 입력을 검출하기 이전에) 하나 이상의 추천 애플리케이션들과 연관된 수정들을 결정할 수 있다. 일부 경우들에서, 수정 엔진(209)은 확장 현실 시스템(100)의 디스플레이 상에서 또는 디스플레이를 통해 보여질 수 있는 임의의 결정된 수정들의 표시를 출력할 수 있다. 이 경우들에서, 사용자는 수정들을 구현할지 여부를 결정할 수 있다. 일부 경우들에서, 수정 엔진(209)은 자동으로 그리고/또는 자율적으로(예컨대, 스마트 홈 디바이스들 및/또는 IoT 디바이스들을 통해) 환경에 대한 수정들의 전부 또는 그 일부를 구현할 수 있다. 예시적인 예에서, 수정 엔진(209)은 환경에 대한 변경들을 수반하는 가능한 수정들을 사용자에게 표시할 수 있고, 애플리케이션 및/또는 확장 현실 시스템(100)의 세팅들에 대한 변경들을 수반하는 수정들을 자동으로 수행할 수 있다.
일부 예들에서, 수정(224)은 환경 특징들(210) 중 하나 이상에 영향을 미칠 수 있다. 예컨대, 도 2의 파선 화살표로 도시된 바와 같이, 수정(224)은 환경 특징들(210)에 적용될 수 있다. 따라서, 수정(224)을 구현하는 것은 환경 프로파일(216)을 변경할 수 있다. 일부 경우들에서, 수정(224)이 환경 프로파일(216)에 대한 변경들을 초래하는 경우, 추천 시스템(200)은 변경들에 기초하여 하나 이상의 추가 수정들 및/또는 애플리케이션 추천들을 결정할 수 있다. 예컨대, 추천 시스템(200)은 수정이 이전에 추천되지 않은 애플리케이션과 호환성 있는 환경 특징들을 초래한다고 결정할 수 있다. 추가적으로 또는 대안적으로, 추천 시스템(200)은 실세계 환경에 대한 후속 수정이 이전에 추천된 애플리케이션과의 증가된 호환성에 대응할 가능성이 있다고 결정할 수 있다.
도 3은 XR 시스템(예컨대, 도 1의 확장 현실 시스템(100))이 로케이팅되는 예시적인 환경(300)을 예시한다. 이 예에서, 도 2의 추천 시스템(200)은 환경(300)과 연관된 환경 특징들을 결정할 수 있다. 예컨대, 추천 시스템(200)은 벽(302), 테이블(304), 사람(306), 및 창(308)을 검출할 수 있다. 추천 시스템(200)은 다른 것들 중에서도, 환경(300)의 지리적 로케이션, 환경(300) 내의 노이즈 레벨, 환경(300) 내의 조명 레벨, 및 환경의 사이즈를 포함하는 임의의 수 또는 타입의 추가 환경 특징들을 결정할 수 있다. 예시적인 예에서, 추천 시스템(200)은 (예컨대, 테이블(304) 및 사람(306)의 존재로 인해) 환경(300)이 적당한 레벨의 클러터를 갖는다고 결정할 수 있다. 또한, 추천 시스템(200)은 (예컨대, 벽(302) 및 창(308)의 로케이션들로 인해) 환경(300)이 큰 사이즈를 갖는다고 결정할 수 있다. 또한, 추천 시스템(200)은 환경(300)이 (예컨대, 사람(306)의 스피치로 인해) 적당한 레벨의 배경 노이즈를 갖는다고 결정할 수 있다. 추천 시스템(200)은 이러한 환경 특징들(및 임의의 추가 환경 특징들)을 환경(300)과 연관된 환경 프로파일에 통합할 수 있다.
일부 경우들에서, 추천 시스템(200)은 환경(300)과 연관된 환경 프로파일의 적어도 일부를 이전에 결정하고 저장했을 수 있다. 예컨대, 추천 시스템(200)은 환경(300)의 사이즈 및/또는 물리적 레이아웃을 이전에 결정하고 저장했을 수 있다. 이 예에서, 추천 시스템(200)은 새로운 및/또는 업데이트된 환경 특징들을 검출하는 것에 기초하여 환경 프로파일을 업데이트할 수 있다. 예컨대, 추천 시스템(200)은 환경(300) 내의 주변 노이즈 및/또는 주변 광의 현재 레벨을 결정할 수 있다. 추천 시스템(200)은 새로운 및/또는 업데이트된 환경 특징들을 기존 환경 프로파일에 통합할 수 있다.
일부 경우들에서, 추천 시스템(200)은 확장 현실 시스템(200)의 사용자와 연관된 사용자 특징들을 결정할 수 있다. 예컨대, 추천 시스템(200)은 사용자와 연관된 인구 통계학적 정보를 결정할 수 있다. 또한, 추천 시스템(200)은 사용자와 연관된 애플리케이션 선호도들 및/또는 이력상의 애플리케이션 사용을 결정할 수 있다. 예시적인 예에서, 추천 시스템(200)은 사용자가 25-30 세이고, 여성이며, 신체적 장애들이 없고, 주말에 멀티 플레이어 게임들을 즐기고, 편안한 상태에서 동물들과 관련된 게임들을 즐기는 이력을 갖는다고 결정할 수 있다. 추천 시스템(200)은 이러한 사용자 특징들(및 임의의 추가 사용자 특징들)을 사용자와 연관된 사용자 프로파일에 통합할 수 있다.
일부 경우들에서, 추천 시스템(200)은 사용자 프로파일의 적어도 일부를 이전에 결정하고 저장했을 수 있다. 예컨대, 추천 시스템(200)은 사용자와 연관된 인구 통계학적 정보 및 애플리케이션 선호도들을 이전에 저장했을 수 있다. 이 예에서, 추천 시스템(200)은 새로운 및/또는 업데이트된 사용자 특성들을 검출하는 것에 기초하여 사용자 프로파일을 업데이트할 수 있다. 예컨대, 추천 시스템(200)은 사용자의 현재 생리학적 및/또는 감정적 상태를 결정할 수 있다. 추천 시스템(200)은 새로운 및/또는 업데이트된 사용자 특성들을 기존 사용자 프로파일에 통합할 수 있다.
도 4a는 도 3에 도시된 환경(300) 내에서 사용하기에 적합한 하나 이상의 애플리케이션들에 대한 추천을 디스플레이하는 예시적인 사용자 인터페이스(402)를 예시한다. 하나 이상의 애플리케이션들에 대한 추천은 도 2의 추천 시스템(200)에 의해 출력된 추천(222)의 예에 대응할 수 있다. 추천 시스템(200)은 확장 현실 시스템(100)의 사용자의 사용자 프로파일 및/또는 환경(300)과 연관된 환경 프로파일과 하나 이상의 애플리케이션 프로파일들 사이의 비교에 적어도 부분적으로 기초하여 하나 이상의 추천된 애플리케이션들을 결정할 수 있다. 예컨대, 추천 시스템(200)은 복수의 애플리케이션 프로파일들 각각에 대한 매치 스코어를 결정할 수 있다. 이 예에서, 추천 시스템(200)은 확장 현실 시스템(100)의 디스플레이 상에서 또는 디스플레이를 통해 보여질 수 있는 추천된 애플리케이션들의 이름들의 목록을 출력할 수 있다. 도 4a에 도시된 바와 같이, 추천 시스템(200)은 각각의 애플리케이션 이름 옆에 매치 스코어를 디스플레이할 수 있다. 또한, 도 4a에 도시된 바와 같이, 추천된 애플리케이션들은 사용자가 소유한(예컨대, 구매 또는 다운로드한) 애플리케이션들(예컨대, 게임들) 및/또는 새로운 애플리케이션들을 포함할 수 있다. 사용자 인터페이스(402)는 사용자가 확장 현실 시스템(100) 내에서 개시될 추천된 애플리케이션들 중 하나를 선택하는 것을 가능하게 할 수 있다. 또한, 추천 시스템(200)은 사용자가 (예컨대, 사용자 인터페이스(402)를 닫음으로써) 대체 애플리케이션을 선택하는 것을 가능하게 할 수 있다.
도 4b는 도 3에 도시된 환경(300)과 연관된 하나 이상의 수정들에 대한 추천을 디스플레이하는 예시적인 사용자 인터페이스(404)를 예시한다. 하나 이상의 수정들에 대한 추천은 도 2의 추천 시스템(200)에 의해 출력된 수정(224)의 예에 대응할 수 있다. 이 예에서, 추천 시스템(200)은 사용자가 도 4a의 사용자 인터페이스(402) 내에 디스플레이된 애플리케이션(즉, "Mortal Wombat")을 선택하는 것에 기초하여 하나 이상의 수정들을 결정할 수 있다. 또한, 추천 시스템(200)은 확장 현실 시스템(100)의 사용자의 사용자 프로파일 및/또는 환경(300)과 연관된 환경 프로파일과 선택된 애플리케이션과 연관된 애플리케이션 프로파일 사이의 비교에 적어도 부분적으로 기초하여 하나 이상의 수정들을 결정할 수 있다. 예컨대, 추천 시스템(200)은 선택된 애플리케이션과 연관된 매치 스코어를 증가시키도록 구성되는 수정들을 결정할 수 있다.
도 5는 확장 현실 시스템들에 대한 추천들을 제공하기 위한 예시적인 프로세스(500)를 예시하는 흐름 다이어그램이다. 명확함을 위해, 프로세스(500)는 도 2에 도시된 추천 시스템(200)을 참조하여 설명된다. 본원에 요약된 단계들 또는 동작들은 예들이고, 특정 단계들 또는 동작들을 제외, 추가, 또는 수정하는 조합들을 포함하여 이들의 임의의 조합으로 구현될 수 있다.
블록(502)에서, 프로세스(500)는 확장 현실 시스템에 의해 개시될 애플리케이션을 검출하는 것을 포함한다. 예컨대, 추천 시스템(200)은 사용자가 애플리케이션과 상호 작용하고 있음(또는 애플리케이션과 상호 작용하기를 희망함)을 검출할 수 있다. 일 예에서, 추천 시스템(200)은 확장 현실 시스템의 사용자 인터페이스 내에서 애플리케이션의 선택에 대응하는 사용자 입력을 검출할 수 있다. 일부 경우들에서, 애플리케이션은 (예컨대, 환경 프로파일(216) 및/또는 사용자 프로파일(218)과 애플리케이션과 연관된 애플리케이션 프로파일 사이의 비교에 기초하여) 추천 시스템(200)에 의해 추천된 애플리케이션일 수 있다. 예시적인 예에서, 추천 시스템(200)은 도 4a에 도시된 사용자 인터페이스(402) 내에 디스플레이된 애플리케이션의 선택에 대응하는 사용자 입력을 검출할 수 있다. 다른 예들에서, 애플리케이션은 추천 시스템(200)에 의해 추천되지 않은 애플리케이션일 수 있다.
블록(504)에서, 프로세스(500)는 확장 현실 시스템의 실세계 환경과 연관된 하나 이상의 환경 특징들을 결정하는 것을 포함한다. 예컨대, 추천 시스템(200)은 환경 프로파일(216)의 환경 특징들을 검출 및/또는 리트리브할 수 있다. 일부 경우들에서, 추천 시스템(200)은 또한 사용자 프로파일(218) 내에서 사용자 특징들을 검출 및/또는 리트리브할 수 있다. 추가로, 추천 시스템(200)은 애플리케이션과 연관된 애플리케이션 프로파일 내에서 애플리케이션 특징들을 검출 및/또는 리트리브할 수 있다. 일부 예들에서, 추천 시스템(200)은 또한 복수의 추가 사용자들(예컨대, 애플리케이션 또는 유사한 애플리케이션들을 이전에 사용한 사용자들)과 연관된 사용자 프로파일들 및/또는 복수의 사용자들과 연관된 환경 프로파일들을 결정할 수 있다.
블록(506)에서, 프로세스(500)는 하나 이상의 환경 특징들을 사용하여, 애플리케이션과 연관된 수정을 선택적으로 결정하는 것을 포함한다. 예컨대, 추천 시스템(200)은 사용자 및/또는 확장 현실 시스템에 의해 수정이 구현될 수 있는지(또는 구현되어야 하는지) 여부를 결정할 수 있다. 일부 경우들에서, 추천 시스템(200)은 (예컨대, 하나 이상의 사용자 특징들의 관점에서) 실세계 환경 및/또는 애플리케이션의 현재 구성이 적합하거나 또는 이상적이라고 결정할 수 있다. 따라서, 추천 시스템(200)은 애플리케이션과 연관된 수정들이 불필요할 수 있다고 결정할 수 있다. 일 예에서, 추천 시스템(200)이 수정들이 불필요할 수 있다고 결정하는 경우, 추천 시스템(200)은 블록(602)에서 수정이 없는 것으로 결정할 수 있다. 다른 예에서, 추천 시스템(200)은 수정들을 거절하는 사용자 입력을 검출하는 것에 기초하여 블록(602)에서 수정이 없는 것으로 결정할 수 있다. 추천 시스템(200)이 블록(506)에서 수정이 없는 것으로 결정하는 경우, 프로세스(500)는 블록(508)으로 진행한다. 블록(508)에서, 프로세스(500)는 확장 현실 시스템 내에서 애플리케이션을 개시하는 것을 포함한다. 예컨대, 추천 시스템(200)은 애플리케이션을 구동 및/또는 실행하도록 확장 현실 시스템에 지시할 수 있다.
다른 경우들에서, 추천 시스템(200)은 실세계 환경 및/또는 애플리케이션의 현재 구성이 하나 이상의 수정들에 의해 개선될 수 있다고 결정할 수 있다. 이 경우들에서, 추천 시스템(200)은 블록(506)에서 수정을 결정할 수 있다. 일 예에서, 수정은 실세계 환경과 연관될 수 있다. 다른 예에서, 수정은 애플리케이션의 하나 이상의 세팅들과 연관될 수 있다. 일부 예들에서, 추천 시스템(200)은 복수의 사용자들과 연관된 환경 특징들 및/또는 복수의 사용자들과 연관된 사용자 특징들에 적어도 부분적으로 기초하여 수정을 결정할 수 있다. 예컨대, 추천 시스템(200)은 다양한 실세계 환경들 내에서의 애플리케이션과 추가 사용자들 사이의 상호 작용들과 연관된 이력상의 데이터에 기초하여 사용자, 애플리케이션, 및/또는 사용자의 현재 실세계 환경에 적합한 수정을 결정할 수 있다.
추천 시스템(200)이 블록(506)에서 수정을 결정하는 경우, 프로세스(500)는 블록(510)으로 진행한다. 블록(510)에서, 수정은 구현될 수 있다. 수정은 확장 현실 시스템 및/또는 사용자에 의해 구현될 수 있다. 예컨대, 수정이 실세계 환경과 연관되는 경우, 추천 시스템(200)은 (예컨대, 확장 현실 시스템의 디스플레이 내에서) 수정의 표시를 사용자에게 출력할 수 있다. 예시적인 예에서, 추천 시스템(200)은 수정을 어떻게 구현하는지를 사용자에게 지시하는 명령들을 디스플레이할 수 있다. 이러한 방식으로, 사용자는 선택적으로 수정을 구현할 수 있다. 다른 예에서, 수정이 애플리케이션의 세팅들과 연관되는 경우, 추천 시스템(200)은 (예컨대, 확장 현실 디바이스의 디스플레이 내에서) 수정을 수락하거나 또는 거절하는 입력을 제공하도록 사용자에게 요청할 수 있다. 추가적인 예에서, 추천 시스템(200)은 (예컨대, 사용자 입력 또는 참여 없이) 수정을 자율적으로 및/또는 자동으로 구현할 수 있다.
블록(510)으로부터, 프로세스(500)는 블록(506)으로 리턴할 수 있다. 예컨대, 추천 시스템(200)은 추가 또는 대안 수정이 실세계 환경 내에서 사용자와 애플리케이션 사이의 상호 작용들을 개선할 가능성이 있거나 그리고/또는 상호 작용들을 개선하도록 예상되는지를 결정할 수 있다. 일부 경우들에서, 추천 시스템(200)은 이전에 결정된 수정을 구현함으로써 야기된 실세계 환경 및/또는 애플리케이션의 구성에 대한 변경들에 적어도 부분적으로 기초하여 추가 수정을 결정할 수 있다. 예컨대, 추천 시스템(200)은 환경 프로파일(216) 및/또는 사용자 프로파일(218)을 적절하게 업데이트하고, 업데이트된 프로파일들에 기초하여 새로운 수정을 결정할 수 있다. 다른 예들에서, 추천 시스템(200)은 이전에 결정된 수정과 관련이 없고 그리고/또는 이전에 결정된 수정에 의해 영향을 받지 않는 새로운 수정을 결정할 수 있다. 일부 경우들에서, 프로세스(500)는 블록(506)에서 어떠한 수정도 결정되지 않을 때까지 블록들(506 및 510)을 통해 계속 순환할 수 있으며, 이 시점에서 프로세스(500)는 블록(508)으로 진행할 수 있다.
도 6은 확장 현실 시스템들에 대한 추천들을 제공하기 위한 예시적인 프로세스(600)를 예시하는 흐름 다이어그램이다. 명확함을 위해, 프로세스(600)는 도 2에 도시된 추천 시스템(200)을 참조하여 설명된다. 본원에 요약된 단계들 또는 동작들은 예들이고, 특정 단계들 또는 동작들을 제외, 추가, 또는 수정하는 조합들을 포함하여 이들의 임의의 조합으로 구현될 수 있다.
블록(602)에서, 프로세스(600)는 확장 현실 시스템의 실세계 환경과 연관된 하나 이상의 환경 특징들을 결정하는 것을 포함한다. 예컨대, 추천 엔진(200)은 환경 프로파일(216)을 결정할 수 있다. 일부 경우들에서, 추천 시스템(200)은 실세계 환경의 스캔에 기초하여 하나 이상의 환경 특징들을 결정할 수 있다. 일 예에서, 추천 시스템(200)은 실세계 환경의 스캔이 확장 현실 시스템의 이미지 센서에 의해 수행되게 할 수 있다. 다른 예들에서, 추천 시스템(200)은 하나 이상의 환경 특징들을 표시하는 이전에 저장된 데이터에 기초하여 하나 이상의 환경 특징들을 결정할 수 있다. 추가로, 추천 시스템(200)은 실세계 환경과 연관된 이미지 데이터에 기초하여 하나 이상의 환경 특징들을 결정할 수 있다. 이미지 데이터는 확장 현실 시스템의 이미지 센서에 의해 캡처될 수 있다. 일 예에서, 추천 시스템(200)은 이미지 데이터에 적어도 부분적으로 기초하여 실세계 환경 내의 하나 이상의 물리적 오브젝트들의 레이아웃을 결정할 수 있다. 추가적으로 또는 대안적으로, 추천 시스템(200)은 이미지 데이터에 적어도 부분적으로 기초하여 실세계 환경 내의 하나 이상의 사람들의 활동을 결정할 수 있다. 일부 경우들에서, 추천 시스템(200)은 확장 현실 시스템의 오디오 센서에 의해 캡처된 실세계 환경과 연관된 오디오 데이터에 기초하여 하나 이상의 환경 특징들을 결정할 수 있다. 예컨대, 추천 시스템(200)은 오디오 데이터에 적어도 부분적으로 기초하여 실세계 환경 내의 하나 이상의 사람들의 활동을 결정할 수 있다. 추가적인 예들에서, 추천 시스템(200)은 실세계 환경 내의 하나 이상의 네트워크-가능 디바이스들과의 네트워크 통신에 기초하여 하나 이상의 네트워크-가능 디바이스들을 검출하는 것에 적어도 부분적으로 기초하여 하나 이상의 환경 특징들을 결정할 수 있다.
블록(604)에서, 프로세스(600)는 확장 현실 시스템의 사용자와 연관된 하나 이상의 사용자 특징들을 결정하는 것을 포함한다. 예컨대, 추천 엔진(200)은 사용자 프로파일(218)을 결정할 수 있다. 일부 경우들에서, 추천 시스템(200)은 확장 현실 시스템의 하나 이상의 생물학적 센서들을 사용하여 획득된 사용자 데이터에 적어도 부분적으로 기초하여 하나 이상의 사용자 특징들을 결정할 수 있다. 사용자 데이터는 사용자의 생리학적 상태 및/또는 감정적 상태와 연관될 수 있다. 일부 예들에서, 추천 시스템(200)은 사용자의 연령, 사용자의 성별, 사용자의 지리적 로케이션, 사용자의 키, 및 사용자의 체중 중 적어도 하나를 표시하는 사용자 입력에 기초하여 하나 이상의 사용자 특징들을 결정할 수 있다. 추가적인 예들에서, 추천 시스템(200)은 사용자의 애플리케이션 선호도들을 결정하기 위해 사용자의 애플리케이션 사용 패턴들을 모니터링하는 것에 기초하여 사용자 특징들을 결정할 수 있다.
블록(606)에서, 프로세스(600)는 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들에 기초하여, 확장 현실 시스템에 의해 지원되는 적어도 하나의 애플리케이션과 연관된 통지를 출력하는 것을 포함한다. 예컨대, 추천 시스템(200)은 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들에 기초하여, 확장 현실 시스템의 실세계 환경에서 사용자가 사용하기에 적합한 하나 이상의 애플리케이션들을 결정할 수 있다. 일부 예들에서, 적어도 하나의 애플리케이션과 연관된 통지는 적어도 하나의 애플리케이션에 대한 추천을 포함한다. 예컨대, 적어도 하나의 애플리케이션에 대한 추천은 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들에 기초하여 결정될 수 있다. 일부 예들에서, 적어도 하나의 애플리케이션과 연관된 통지는 적어도 하나의 애플리케이션과 연관된 적어도 하나의 수정(예컨대, 사용자가 선택한 애플리케이션을 수정하는 것)에 대한 추천을 포함한다.
일부 경우들에서, 추천 시스템(200)은 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들 중 적어도 하나와 적어도 하나의 애플리케이션 사이의 호환성 레벨을 표시하는 매치 스코어를 결정할 수 있다. 그런 다음, 추천 시스템(200)은 매치 스코어가 임계 매치 스코어를 초과하는지 여부를 결정할 수 있다. 일부 예들에서, 추천 시스템(200)은 매치 스코어가 임계 매치 스코어를 초과한다고 결정하는 것에 기초하여 적어도 하나의 애플리케이션을 결정(예컨대, 적어도 하나의 애플리케이션 또는 적어도 하나의 애플리케이션과 연관된 수정을 추천하기로 결정)할 수 있다. 일부 경우들에서, 추천 시스템(200)은, 적어도 하나의 애플리케이션과 연관된 하나 이상의 애플리케이션 특징들을 결정하는 것, 및 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들 중 적어도 하나와 하나 이상의 애플리케이션 특징들을 비교하는 것에 기초하여 매치 스코어를 결정할 수 있다. 일 예에서, 추천 시스템(200)은 서버로부터 적어도 하나의 애플리케이션과 연관된 애플리케이션 프로파일에 액세스하는 것에 기초하여 하나 이상의 애플리케이션 특징들을 결정할 수 있다. 일부 경우들에서, 애플리케이션 프로파일은 복수의 확장 현실 시스템들에 의해 결정된 애플리케이션 특징들에 기초하여 생성될 수 있다.
일부 예들에서, 추천 시스템(200)은 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들을 사용하여 확장 현실 시스템에 의해 지원되는 복수의 애플리케이션들을 결정할 수 있다. 예컨대, 추천 시스템(200)은 적어도 하나 이상의 환경 특징들과 복수의 애플리케이션들 사이의 호환성 레벨들을 표시하는 복수의 매치 스코어들을 결정할 수 있다. 다른 예에서, 추천 시스템(200)은 적어도 하나 이상의 사용자 특징들과 복수의 애플리케이션들 사이의 호환성 레벨들을 표시하는 복수의 매치 스코어들을 결정할 수 있다.
단계(608)에서, 프로세스(600)는 사용자에게 적어도 하나의 애플리케이션에 대한 추천을 제공하는 것을 포함한다. 예컨대, 추천 시스템(200)은 (예컨대, 확장 현실 시스템의 디스플레이 내에서) 추천(222)을 출력할 수 있다. 일부 경우들에서, 추천 시스템(200)이 확장 현실 시스템에 의해 지원되는 복수의 애플리케이션들을 결정하는 경우, 추천 시스템(200)은 사용자에게 복수의 애플리케이션들에 대한 추천을 제공할 수 있다. 예컨대, 추천 시스템(200)은 확장 현실 시스템의 디스플레이 상에, 복수의 애플리케이션들과 관련하여 복수의 매치 스코어들을 디스플레이할 수 있다. 일 예에서, 추천 시스템(200)은 확장 현실 시스템의 디스플레이 내에, 복수의 매치 스코어들 중 가장 높은 매치 스코어를 갖는 복수의 애플리케이션들의 애플리케이션의 표시를 디스플레이할 수 있다.
일부 경우들에서, 적어도 하나의 애플리케이션에 대한 추천은 적어도 하나의 애플리케이션과 연관된 적어도 하나의 수정에 대한 추천을 포함할 수 있다. 예컨대, 추천(222)은 수정(224)을 포함하고 그리고/또는 수정(224)에 대응할 수 있다. 일 예에서, 추천 시스템(200)은 사용자가 적어도 하나의 애플리케이션과 상호 작용하고 있음을 검출할 수 있다. 그런 다음, 추천 시스템(200)은 사용자가 적어도 하나의 애플리케이션과 상호 작용하고 있음을 검출하는 것에 기초하여 적어도 하나의 수정을 결정할 수 있다. 일 예에서, 적어도 하나의 수정은 실세계 환경과 연관될 수 있다. 다른 예에서, 적어도 하나의 수정은 적어도 하나의 애플리케이션의 하나 이상의 세팅들과 연관될 수 있다. 추가로, 일부 경우들에서, 추천 시스템(200)은 복수의 사용자들과 연관된 환경 특징들에 기초하여 그리고/또는 복수의 사용자들과 연관된 사용자 특징들에 기초하여 적어도 하나의 수정을 결정할 수 있다.
도 7은 본 기술의 특정 양상들을 구현하기 위한 시스템의 예를 예시하는 다이어그램이다. 특히, 도 7은 예컨대, 내부 컴퓨팅 시스템, 원격 컴퓨팅 시스템, 카메라, 또는 시스템의 컴포넌트들이 연결(705)을 사용하여 서로 통신하는 이들의 임의의 컴포넌트를 구성하는 임의의 컴퓨팅 디바이스일 수 있는 컴퓨팅 시스템(700)의 예를 예시한다. 연결(705)은 버스를 사용하는 물리적 연결, 또는 칩셋 아키텍처에서와 같이 프로세서(710)로의 직접적 연결일 수 있다. 또한, 연결(705)은 가상 연결, 네트워킹된 연결, 또는 논리적 연결일 수 있다.
일부 예들에서, 컴퓨팅 시스템(700)은, 본 개시내용에 설명된 기능들이 데이터 센터, 다수의 데이터 센터들, 피어 네트워크 등 내에 분산될 수 있는 분산 시스템이다. 일부 예들에서, 설명된 시스템 컴포넌트들 중 하나 이상은, 컴포넌트가 설명되는 기능들의 전부 또는 그 중 일부를 각각 수행하는 그러한 다수의 컴포넌트들을 표현한다. 일부 경우들에서, 컴포넌트들은 물리적 또는 가상 디바이스들일 수 있다.
예시적인 컴퓨팅 시스템(700)은 적어도 하나의 프로세싱 유닛(CPU 또는 프로세서)(710), 및 ROM(read-only memory)(720) 및 RAM(random access memory)(725)과 같은 시스템 메모리(715)를 포함하는 다양한 시스템 컴포넌트들을 프로세서(710)에 커플링시키는 연결(705)을 포함한다. 컴퓨팅 시스템(700)은, 프로세서(710)와 직접적으로 연결되거나, 그에 매우 근접하거나, 또는 그의 부분으로서 통합되는 고속 메모리의 캐시(712)를 포함할 수 있다.
프로세서(710)는 프로세서(710)를 제어하도록 구성되는 임의의 범용 프로세서 및 하드웨어 서비스 또는 소프트웨어 서비스(이를테면, 저장 디바이스(730)에 저장된 서비스들(732, 734, 및 737))뿐만 아니라 소프트웨어 명령들이 실제 프로세서 설계에 통합되는 특수 목적 프로세서를 포함할 수 있다. 프로세서(710)는 본질적으로, 다수의 코어들 또는 프로세서들, 버스, 메모리 컨트롤러, 캐시 등을 포함하는 완전히 자립식(self-contained) 컴퓨팅 시스템일 수 있다. 멀티-코어 프로세서는 대칭이거나 또는 비대칭일 수 있다.
사용자 상호 작용을 가능하게 하기 위해, 컴퓨팅 시스템(700)은 스피치를 위한 마이크로폰, 제스처 또는 그래픽 입력을 위한 터치 감응형 스크린, 키보드, 마우스, 모션 입력, 스피치 등과 같은 임의의 수의 입력 메커니즘들을 표현할 수 있는 입력 디바이스(745)를 포함한다. 또한, 컴퓨팅 시스템(700)은 다수의 출력 메커니즘들 중 하나 이상일 수 있는 출력 디바이스(735)를 포함할 수 있다. 일부 경우들에서, 멀티모달 시스템들이, 사용자가 컴퓨팅 시스템(700)과 통신하기 위해 다수의 타입들의 입력/출력을 제공하는 것을 가능하게 할 수 있다. 컴퓨팅 시스템(700)은, 사용자 입력 및 시스템 출력을 일반적으로 통제하고 관리할 수 있는 통신 인터페이스(740)를 포함할 수 있다. 통신 인터페이스는, 오디오 잭/플러그, 마이크로폰 잭/플러그, USB(universal serial bus) 포트/플러그, Apple® Lightning® 포트/플러그, 이더넷 포트/플러그, 광섬유 포트/플러그, 독점적 유선 포트/플러그, BLUETOOTH® 무선 신호 전송, BLE(BLUETOOTH® low energy) 무선 신호 전송, IBEACON® 무선 신호 전송, RFID(radio-frequency identification) 무선 신호 전송, NFC(near-field communications) 무선 신호 전송, DSRC(dedicated short range communication) 무선 신호 전송, 802.11 Wi-Fi 무선 신호 전송, WLAN(wireless local area network) 신호 전송, VLC(Visible Light Communication), WiMAX(Worldwide Interoperability for Microwave Access), 적외선(IR) 통신 무선 신호 전송, PSTN(Public Switched Telephone Network) 신호 전송, ISDN(Integrated Services Digital Network) 신호 전송, 3G/4G/5G/LTE 셀룰러 데이터 네트워크 무선 신호 전송, 애드혹 네트워크 신호 전송, 라디오파 신호 전송, 마이크로파 신호 전송, 적외선 신호 전송, 가시광 신호 전송, 자외선 광 신호 전송, 전자기 스펙트럼을 따른 무선 신호 전송, 또는 이들의 일부 조합을 사용하는 것들을 포함하는, 유선 및/또는 무선 트랜시버들을 사용하여 유선 또는 무선 통신들의 수신 및/또는 송신을 수행하거나 또는 용이하게 할 수 있다. 또한, 통신 인터페이스(740)는 하나 이상의 GNSS(Global Navigation Satellite System) 시스템들과 연관된 하나 이상의 위성들로부터의 하나 이상의 신호들의 수신에 기초하여 컴퓨팅 시스템(700)의 로케이션을 결정하는 데 사용되는 하나 이상의 GNSS 수신기들 또는 트랜시버들을 포함할 수 있다. GNSS 시스템들은 미국 기반 GPS(Global Positioning System), 러시아 기반 GLONASS(Global Navigation Satellite System), 중국 기반 BDS(BeiDou Navigation Satellite System), 및 유럽 기반 Galileo GNSS(그러나 이에 제한되지 않음)를 포함한다. 임의의 특정 하드웨어 어레인지먼트에 대해 동작하는 것에 제한이 없고, 따라서 여기서의 기본 특징들은 이들이 개발됨에 따라 개선된 하드웨어 또는 펌웨어 어레인지먼트들로 쉽게 대체될 수 있다.
저장 디바이스(730)는 비휘발성 및/또는 비일시적 및/또는 컴퓨터 판독 가능한 메모리 디바이스일 수 있고, 컴퓨터에 의해 액세스 가능한 데이터를 저장할 수 있는 하드 디스크 또는 다른 타입들의 컴퓨터 판독 가능한 매체들(이를테면, 자기 카세트들, 플래시 메모리 카드들, 솔리드 스테이트 메모리 디바이스들, 디지털 다기능 디스크들, 카트리지들, 플로피 디스크, 플렉시블 디스크, 하드 디스크, 자기 테이프, 자기 스트립/스트라이프, 임의의 다른 자기 저장 매체, 플래시 메모리, 멤리스터 메모리, 임의의 다른 솔리드 스테이트 메모리, CD-ROM(compact disc read only memory) 광학 디스크, 재기록 가능한 CD(compact disc) 광학 디스크, DVD(digital video disk) 광학 디스크, BDD(blu-ray disc) 광학 디스크, 홀로그래픽 광학 디스크, 다른 광학 매체, SD(secure digital) 카드, microSD(micro secure digital) 카드, Memory Stick® 카드, 스마트카드 칩, EMV 칩, SIM(subscriber identity module) 카드, 미니/마이크로/나노/피코 SIM 카드, 다른 IC(integrated circuit) 칩/카드, RAM(random access memory), SRAM(static RAM), DRAM(dynamic RAM), ROM(read-only memory), PROM(programmable read-only memory), EPROM(erasable programmable read-only memory), EEPROM(electrically erasable programmable read-only memory), FLASHEPROM(flash EPROM), 캐시 메모리(L1/L2/L3/L4/L5/L#), RRAM/ReRAM(resistive random-access memory), PCM(phase change memory), STT-RAM(spin transfer torque RAM), 다른 메모리 칩 또는 카트리지, 및/또는 이들의 조합)일 수 있다.
저장 디바이스(730)는, 그러한 소프트웨어를 정의하는 코드가 프로세서(710)에 의해 실행될 때 시스템으로 하여금 기능을 수행하게 하는 소프트웨어 서비스들, 서버들, 서비스들 등을 포함할 수 있다. 일부 예들에서, 특정 기능을 수행하는 하드웨어 서비스는, 기능을 수행하기 위해 프로세서(710), 연결(705), 출력 디바이스(735) 등과 같은 필요한 하드웨어 컴포넌트들과 관련하여 컴퓨터 판독 가능한 매체에 저장된 소프트웨어 컴포넌트를 포함할 수 있다.
본원에서 사용되는 바와 같이, 용어 "컴퓨터 판독 가능한 매체"는 휴대용 또는 비휴대용 저장 디바이스들, 광학 저장 디바이스들, 및 명령(들) 및/또는 데이터를 저장, 포함, 또는 반송할 수 있는 다양한 다른 매체들(그러나 이에 제한되지 않음)을 포함한다. 컴퓨터 판독 가능한 매체는, 데이터가 저장될 수 있고 그리고 무선으로 또는 유선 연결들 상으로 전파하는 일시적 전자 신호들 및/또는 반송파들을 포함하지 않는 비일시적 매체를 포함할 수 있다. 비일시적 매체의 예들은 자기 디스크 또는 테이프, 광학 저장 매체들, 이를테면, CD(compact disk) 또는 DVD(digital versatile disk), 플래시 메모리, 메모리, 또는 메모리 디바이스들(그러나 이에 제한되지 않음)을 포함할 수 있다. 컴퓨터 판독 가능한 매체에는, 프로시저, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들, 데이터 구조들, 또는 프로그램 스테이트먼트(statement)들의 임의의 결합을 표현할 수 있는 코드 및/또는 기계 실행 가능한 명령들이 저장될 수 있다. 코드 세그먼트는, 정보, 데이터, 아규먼트(argument)들, 파라미터들, 또는 메모리 컨텐츠들을 전달 및/또는 수신함으로써 다른 코드 세그먼트 또는 하드웨어 회로에 커플링될 수 있다. 정보, 아규먼트들, 파라미터들, 데이터 등은 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 송신 등을 포함하는 임의의 적합한 수단을 사용하여 전달되거나, 포워딩되거나, 또는 송신될 수 있다.
일부 예들에서, 컴퓨터 판독 가능한 저장 디바이스들, 매체들, 및 메모리들은 비트 스트림 등을 포함하는 무선 신호 또는 케이블을 포함할 수 있다. 그러나, 언급될 때, 비일시적 컴퓨터 판독 가능한 저장 매체들은 에너지, 캐리어 신호들, 전자기파들, 및 신호들 그 자체와 같은 매체들을 명시적으로 배제한다.
본원에 제공된 예들의 완전한 이해를 제공하기 위해 특정 세부사항들이 위의 설명에 제공된다. 그러나, 양상들은 이 특정 세부사항들 없이 실시될 수도 있다는 것이 당업자에 의해 이해될 것이다. 설명의 명료함을 위해, 일부 경우들에서, 본 기술은 디바이스들, 디바이스 컴포넌트들, 소프트웨어에서 구현된 방법에서의 단계들 또는 루틴들, 또는 하드웨어와 소프트웨어의 조합들을 포함하는 개별 기능 블록들을 포함하는 것으로서 제시될 수 있다. 도면들에 도시되고 그리고/또는 본원에 설명된 것들 이외의 추가적인 컴포넌트들이 사용될 수 있다. 예컨대, 회로들, 시스템들, 네트워크들, 프로세스들, 및 다른 컴포넌트들은, 예들을 불필요한 상세로 모호하게 하지 않기 위해 블록 다이어그램 형태의 컴포넌트들로서 도시될 수 있다. 다른 경우들에서, 잘 알려진 회로들, 프로세스들, 알고리즘들, 구조들, 및 기법들은 예들을 모호하게 하는 것을 회피하기 위해 불필요한 세부사항 없이 도시될 수 있다.
개별 예들은, 흐름도, 흐름 다이어그램, 데이터 흐름 다이어그램, 구조 다이어그램, 또는 블록 다이어그램으로서 도시되는 프로세스 또는 방법으로서 위에서 설명될 수 있다. 흐름도가 동작들을 순차적인 프로세스로서 설명할 수 있지만, 동작들 중 다수는 병렬로 또는 동시에 수행될 수 있다. 또한, 동작들의 순서는 재배열될 수 있다. 프로세스는 그의 동작들이 완료될 때 종료되지만, 도면에 포함되지 않은 추가 단계들을 가질 수 있다. 프로세스는 방법, 함수, 프로시저, 서브루틴, 서브프로그램 등에 대응할 수 있다. 프로세스가 함수에 대응할 때, 그 종결은 호출 함수 또는 메인 함수로의 함수의 반환에 대응할 수 있다.
위에서 설명된 예들에 따른 프로세스들 및 방법들은, 컴퓨터 판독 가능한 매체들에 저장되거나 또는 그렇지 않으면 컴퓨터 판독 가능한 매체들로부터 이용 가능한 컴퓨터 실행 가능한 명령들을 사용하여 구현될 수 있다. 그러한 명령들은, 예컨대, 범용 컴퓨터, 특수 목적 컴퓨터, 또는 프로세싱 디바이스가, 특정 기능 또는 기능들의 그룹을 수행하게 하거나 또는 그렇지 않으면 수행하도록 구성하는 명령들 및 데이터를 포함할 수 있다. 사용되는 컴퓨터 자원들의 부분들은 네트워크를 통해 액세스 가능할 수 있다. 컴퓨터 실행 가능한 명령들은, 예컨대, 어셈블리 언어, 펌웨어, 소스 코드 등과 같은 바이너리들, 중간 포맷 명령들일 수 있다. 설명된 예들에 따른 방법들 동안 명령들, 사용되는 정보, 및/또는 생성되는 정보를 저장하는 데 사용될 수 있는 컴퓨터 판독 가능한 매체들의 예들은 자기 또는 광학 디스크들, 플래시 메모리, 비휘발성 메모리가 제공된 USB 디바이스들, 네트워킹된 저장 디바이스들 등을 포함한다.
이 개시내용들에 따른 프로세스들 및 방법들을 구현하는 디바이스들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 디스크립션 언어들, 또는 이들의 임의의 조합을 포함할 수 있고, 다양한 폼 팩터(form factor)들 중 임의의 것을 취할 수 있다. 소프트웨어, 펌웨어, 미들웨어, 또는 마이크로코드로 구현될 때, 필요한 태스크들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들(예컨대, 컴퓨터 프로그램 제품)은 컴퓨터 판독 가능한 또는 기계 판독 가능한 매체에 저장될 수 있다. 프로세서(들)는 필요한 태스크들을 수행할 수 있다. 폼 팩터들의 통상적인 예들은 랩탑들, 스마트 폰들, 모바일 폰들, 태블릿 디바이스들, 또는 다른 소형 폼 팩터 개인용 컴퓨터들, 개인용 디지털 보조기들, 랙마운트 디바이스들, 독립식 디바이스들 등을 포함한다. 또한, 본원에 설명된 기능은 주변기기들 또는 애드-인(add-in) 카드들에서 구현될 수 있다. 또한, 그러한 기능은 추가적인 예에 의해, 단일 디바이스에서 실행되는 상이한 칩들 또는 상이한 프로세스들 중에서 회로 보드 상에서 구현될 수 있다.
명령들, 그러한 명령들을 전달하기 위한 매체들, 이들을 실행하기 위한 컴퓨팅 자원들, 및 그러한 컴퓨팅 자원들을 지원하기 위한 다른 구조들은 본 개시내용에 설명된 기능들을 제공하기 위한 예시적인 수단들이다.
전술한 설명에서, 본 출원의 양상들은 그의 특정 예들을 참조하여 설명되지만, 당업자들은 본 출원이 이에 제한되지 않는다는 것을 인식할 것이다. 따라서, 본 출원의 예시적인 예들이 본원에 상세하게 설명되었지만, 본 발명의 개념들은 달리 다양하게 구현되고 사용될 수 있고, 첨부된 청구항들은 종래 기술에 의해 제한되는 것을 제외하고는 그러한 변동들을 포함하는 것으로 해석되는 것으로 의도되는 것을 이해할 것이다. 위에서 설명된 어플리케이션의 다양한 특징들 및 양상들은 개별적으로 또는 공동으로 사용될 수 있다. 추가로, 본 명세서의 더 넓은 사상 및 범위로부터 벗어나지 않으면서 본원에 설명된 것들을 넘어 임의의 수의 환경들 및 애플리케이션들에서 예들이 이용될 수 있다. 따라서, 본 명세서 및 도면들은 제한적인 의미가 아니라 예시적으로 간주될 것이다. 예시를 목적으로, 방법들은 특정 순서로 설명되었다. 대안적인 예들에서 방법들은 설명된 것과 상이한 순서로 수행될 수 있다는 것을 인식해야 한다.
당업자는 본원에서 사용되는 미만("<") 및 초과(">") 심볼들 또는 용어가 본 설명의 범위로부터 벗어나지 않으면서 각각 이하("≤") 및 이상("≥") 심볼들로 교체될 수 있다는 것을 인식할 것이다.
컴포넌트들이 특정 동작들을 수행하도록 "구성되는" 것으로서 설명되는 경우, 그러한 구성은 예컨대, 전자 회로들 또는 다른 하드웨어를 설계하여 동작을 수행함으로써, 프로그래밍 가능한 전자 회로들(예컨대, 마이크로프로세서들 또는 다른 적합한 전자 회로들)을 프로그래밍하여 동작을 수행함으로써, 또는 이들의 임의의 조합에 의해 달성될 수 있다.
"~에 커플링된"이라는 어구는 직접적으로 또는 간접적으로 중 어느 하나로 다른 컴포넌트에 물리적으로 연결되는 임의의 컴포넌트, 및/또는 직접적으로 또는 간접적으로 중 어느 하나로 또 다른 컴포넌트와 통신하는(예컨대, 유선 또는 무선 연결, 및/또는 다른 적합한 통신 인터페이스를 통해 다른 컴포넌트에 연결되는) 임의의 컴포넌트를 지칭한다.
세트 "중 적어도 하나" 또는 세트 "중 하나 이상"을 인용하는 청구항 언어 또는 다른 언어는 그 세트의 하나의 멤버 또는 그 세트의 다수의 멤버들(임의의 조합)이 청구항을 충족하는 것을 표시한다. 예컨대, "A 및 B 중 적어도 하나" 또는 "A 또는 B 중 적어도 하나"를 인용하는 청구항 언어는 A, B, 또는 A 및 B를 의미한다. 다른 예에서, "A, B, 및 C 중 적어도 하나"를 인용하는 청구항 언어는 A, B, C, 또는 A 및 B, 또는 A 및 C, 또는 B 및 C, 또는 A 및 B 및 C를 의미한다. 그 언어, 세트 "중 적어도 하나" 및/또는 세트 중 "하나 이상"은 세트를 그 세트에 열거된 항목들로 제한하지 않는다. 예컨대, "A 및 B 중 적어도 하나" 또는 "A 또는 B 중 적어도 하나"를 인용하는 청구항 언어는 A, B, 또는 A 및 B를 의미할 수 있으며, A 및 B 의 세트에 열거되지 않은 항목들을 추가적으로 포함할 수 있다.
본원에 개시된 예들과 관련하여 설명된 다양한 예시적인 논리 블록들, 모듈들, 회로들, 및 알고리즘 단계들은 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이 둘의 조합들로서 구현될 수 있다. 하드웨어 및 소프트웨어의 이러한 상호 교환 가능성을 명확하게 예시하기 위해, 다양한 예시적인 컴포넌트들, 블록들, 모듈들, 회로들, 및 단계들은 일반적으로 그들의 기능의 측면에서 위에서 설명되었다. 그러한 기능이 하드웨어로서 구현되는지 또는 소프트웨어로서 구현되는지는 전체 시스템 상에 부과되는 설계 제약들 및 특정 애플리케이션에 의존한다. 당업자들은 설명된 기능을 각각의 특정 애플리케이션에 대해 다양한 방식들로 구현할 수 있지만, 그러한 구현 판정들이 본 출원의 범위로부터 벗어나게 하는 것으로 해석되지 않아야 한다.
또한, 본원에 설명된 기법들은 전자 하드웨어, 컴퓨터 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 그러한 기법들은 범용 컴퓨터들, 무선 통신 디바이스 핸드셋들, 또는 무선 통신 디바이스 핸드셋들 및 다른 디바이스들에서의 애플리케이션을 포함하는 다수의 용도들을 갖는 집적 회로 디바이스들과 같은 다양한 디바이스들 중 임의의 것에서 구현될 수 있다. 모듈들 또는 컴포넌트들로서 설명된 임의의 특징들은 집적된 로직 디바이스에서 함께, 또는 별개지만 상호 동작 가능한 로직 디바이스들로서 개별로 구현될 수 있다. 소프트웨어로 구현될 경우, 기법들은, 실행될 때, 위에서 설명된 방법들 중 하나 이상을 수행하는 명령들을 포함하는 프로그램 코드를 포함하는 컴퓨터 판독 가능한 데이터 저장 매체에 의해 적어도 부분적으로 실현될 수 있다. 컴퓨터 판독 가능한 데이터 저장 매체는 패키징 재료들을 포함할 수 있는 컴퓨터 프로그램 제품의 부분을 형성할 수 있다. 컴퓨터 판독 가능한 매체는 SDRAM(synchronous dynamic random access memory)과 같은 RAM(random access memory), ROM(read-only memory), NVRAM(non-volatile random access memory), EEPROM(electrically erasable programmable read-only memory), 플래시 메모리 (FLASH memory), 자기 또는 광학 데이터 저장 매체들 등과 같은 메모리 또는 데이터 저장 매체들을 포함할 수 있다. 추가적으로 또는 대안적으로, 기법들은 전파된 신호들 또는 파(wave)들과 같이, 명령들 또는 데이터 구조들의 형태로 프로그램 코드를 반송하거나 또는 통신하고, 컴퓨터에 의해 액세스, 판독, 및/또는 실행될 수 있는 컴퓨터 판독 가능한 통신 매체에 의해 적어도 부분적으로 실현될 수 있다.
프로그램 코드는 하나 이상의 DSP(digital signal processor)들, 범용 마이크로프로세서들, ASIC(application specific integrated circuit)들, FPGA(field programmable logic array)들, 또는 다른 등가의 집적 또는 이산 로직 회로와 같은 하나 이상의 프로세서들을 포함할 수 있는 프로세서에 의해 실행될 수 있다. 그러한 프로세서는 본 개시내용에 설명된 기법들 중 임의의 것을 수행하도록 구성될 수 있다. 범용 프로세서는 마이크로프로세서일 수 있지만, 대안적으로, 프로세서는 임의의 종래의 프로세서, 컨트롤러, 마이크로컨트롤러, 또는 상태 머신(state machine)일 수 있다. 또한, 프로세서는 컴퓨팅 디바이스들의 조합, 예컨대, DSP와 마이크로프로세서의 조합, 복수의 마이크로프로세서들, DSP 코어와 결합된 하나 이상의 마이크로프로세서들, 또는 임의의 다른 그러한 구성으로서 구현될 수 있다. 따라서, 본원에서 사용되는 바와 같은 "프로세서"라는 용어는 전술된 구조, 전술된 구조의 임의의 조합, 또는 본원에 설명된 기법들의 구현에 적합한 임의의 다른 구조 또는 장치 중 임의의 것을 지칭할 수 있다. 또한, 일부 양상들에서, 본원에 설명된 기능은 인코딩 및 디코딩을 위해 구성되는 전용 소프트웨어 모듈들 또는 하드웨어 모듈들 내에서 제공되거나, 또는 조합된 비디오 CODEC(encoder-decoder) 내에 통합될 수 있다.
본 개시내용의 예시적인 예들은 다음을 포함한다:
양상 1: 확장 현실 시스템들에 대한 추천들을 제공하기 위한 방법은, 확장 현실 시스템의 실세계 환경과 연관된 하나 이상의 환경 특징들을 결정하는 단계; 확장 현실 시스템의 사용자와 연관된 하나 이상의 사용자 특징들을 결정하는 단계; 및 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들에 기초하여, 확장 현실 시스템에 의해 지원되는 적어도 하나의 애플리케이션과 연관된 통지를 출력하는 단계를 포함한다.
양상 2: 양상 1의 방법에 있어서, 적어도 하나의 애플리케이션과 연관된 통지는 적어도 하나의 애플리케이션에 대한 추천을 포함하며, 적어도 하나의 애플리케이션에 대한 추천은 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들에 기초하여 결정된다. 일부 경우들에서, 적어도 하나의 애플리케이션의 표시를 출력하는 것은 확장 현실 시스템의 디스플레이 상에 적어도 하나의 애플리케이션에 대한 추천을 제공하거나 또는 출력하는 것을 포함한다.
양상 3: 양상 1 또는 양상 2의 방법에 있어서, 적어도 하나의 애플리케이션과 연관된 통지는 적어도 하나의 애플리케이션과 연관된 적어도 하나의 수정에 대한 추천을 포함한다.
양상 4: 양상 3의 방법은 추가로, 사용자가 적어도 하나의 애플리케이션과 상호 작용하고 있음을 검출하는 단계; 및 사용자가 적어도 하나의 애플리케이션과 상호 작용하고 있음을 검출하는 것에 기초하여 적어도 하나의 애플리케이션과 연관된 적어도 하나의 수정을 결정하는 단계를 포함한다.
양상 5: 양상 3 또는 양상 4의 방법에 있어서, 적어도 하나의 수정은 실세계 환경과 연관된다.
양상 6: 양상 3 내지 양상 5 중 어느 한 양상의 방법에 있어서, 적어도 하나의 수정은 적어도 하나의 애플리케이션의 하나 이상의 세팅들과 연관된다.
양상 7: 양상 3 내지 양상 6 중 어느 한 양상의 방법은 추가로, 복수의 사용자들과 연관된 환경 특징들 및 복수의 사용자들과 연관된 사용자 특징들 중 적어도 하나에 기초하여 적어도 하나의 수정을 결정하는 단계를 포함한다.
양상 8: 양상 1 내지 양상 7 중 어느 한 양상의 방법은 추가로, 실세계 환경의 스캔에 기초하여 하나 이상의 환경 특징들을 결정하는 단계를 포함한다.
양상 9: 양상 8의 방법은 추가로, 실세계 환경의 스캔을 야기하는 단계를 포함하며, 실세계 환경의 스캔은 확장 현실 시스템의 이미지 센서에 의해 수행된다.
양상 10: 양상 1 내지 양상 9 중 어느 한 양상의 방법은 추가로, 하나 이상의 환경 특징들을 표시하는 이전에 저장된 데이터에 기초하여 하나 이상의 환경 특징들을 결정하는 단계를 포함한다.
양상 11: 양상 1 내지 양상 10 중 어느 한 양상의 방법은 추가로, 확장 현실 시스템의 적어도 하나의 이미지 센서에 의해 캡처된 실세계 환경과 연관된 이미지 데이터에 적어도 부분적으로 기초하여 하나 이상의 환경 특징들을 결정하는 단계를 포함한다.
양상 12: 양상 11의 방법은 추가로, 이미지 데이터에 적어도 부분적으로 기초하여 실세계 환경 내의 하나 이상의 물리적 오브젝트들의 레이아웃을 결정하는 단계를 포함한다.
양상 13: 양상 11 또는 양상 12의 방법은 추가로, 이미지 데이터에 적어도 부분적으로 기초하여 실세계 환경 내의 하나 이상의 사람들의 활동을 결정하는 단계를 포함한다.
양상 14: 양상 1 내지 양상 13 중 어느 한 양상의 방법은 추가로, 확장 현실 시스템의 오디오 센서에 의해 캡처된 실세계 환경과 연관된 오디오 데이터에 적어도 부분적으로 기초하여 하나 이상의 환경 특징들을 결정하는 단계를 포함한다.
양상 15: 양상 14의 방법은 추가로, 오디오 데이터에 적어도 부분적으로 기초하여 실세계 환경 내의 하나 이상의 사람들의 활동을 결정하는 단계를 포함한다.
양상 16: 양상 1 내지 양상 15 중 어느 한 양상의 방법은 추가로, 실세계 환경 내의 하나 이상의 네트워크-가능 디바이스들과의 네트워크 통신에하나 이상의 네트워크-가능 디바이스들을 검출하는 것에 적어도 부분적으로 기초하여 하나 이상의 환경 특징들을 결정하는 단계를 포함한다.
양상 17: 양상 1 내지 양상 16 중 어느 한 양상의 방법은 추가로, 확장 현실 시스템의 하나 이상의 생물학적 센서들을 사용하여 획득된 사용자 데이터에 적어도 부분적으로 기초하여 하나 이상의 사용자 특징들을 결정하는 단계를 포함하며, 여기서 사용자 데이터는 사용자의 생리학적 상태 또는 감정적 상태와 연관된다.
양상 18: 양상 1 내지 양상 17 중 어느 한 양상의 방법은 추가로, 사용자의 연령, 사용자의 성별, 사용자의 지리적 로케이션, 사용자의 키, 및 사용자의 체중 중 적어도 하나를 표시하는 사용자 입력에 기초하여 하나 이상의 사용자 특징들을 결정하는 단계를 포함한다.
양상 19: 양상 1 내지 양상 18 중 어느 한 양상의 방법은 추가로, 사용자의 애플리케이션 선호도들을 결정하기 위해 사용자의 애플리케이션 사용 패턴들을 모니터링하는 것에 기초하여 하나 이상의 사용자 특징들을 결정하는 단계를 포함한다.
양상 20: 양상 1 내지 양상 19 중 어느 한 양상의 방법은 추가로, 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들 중 적어도 하나와 적어도 하나의 애플리케이션 사이의 호환성 레벨을 표시하는 매치 스코어를 결정하는 단계; 매치 스코어가 임계 매치 스코어를 초과한다고 결정하는 단계; 및 매치 스코어가 임계 매치 스코어를 초과하는 것에 기초하여 적어도 하나의 애플리케이션을 결정하는 단계를 포함한다.
양상 21: 양상 1 내지 양상 20 중 어느 한 양상의 방법은 추가로, 적어도 하나의 애플리케이션과 연관된 하나 이상의 애플리케이션 특징들을 결정하는 것; 및 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들 중 적어도 하나와 하나 이상의 애플리케이션 특징들을 비교하는 것에 기초하여 매치 스코어를 결정하는 단계를 포함한다.
양상 22: 양상 21의 방법은 추가로, 서버로부터 적어도 하나의 애플리케이션과 연관된 애플리케이션 프로파일에 액세스하는 것에 기초하여 하나 이상의 애플리케이션 특징들을 결정하는 단계를 포함하며, 여기서 애플리케이션 프로파일은 복수의 확장 현실 시스템들에 의해 결정된 애플리케이션 특징들에 기초하여 생성된다.
양상 23: 양상 1 내지 양상 22 중 어느 한 양상의 방법은 추가로, 사용자에게 복수의 애플리케이션들에 대한 추천을 제공하는 단계를 포함한다. 일부 경우들에서, 방법은 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들에 기초하여 확장 현실 시스템에 의해 지원되는 복수의 애플리케이션들을 결정하는 단계를 포함한다.
양상 24: 양상 23의 방법은 추가로, 확장 현실 시스템의 디스플레이 상에, 복수의 애플리케이션들과 관련한 복수의 매치 스코어들을 디스플레이하는 단계를 포함하며, 복수의 매치 스코어들은 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들 중 적어도 하나와 복수의 애플리케이션들 사이의 호환성 레벨들을 표시한다.
양상 25: 양상 24의 방법은 추가로, 적어도 하나 이상의 환경 특징들에 기초하여 복수의 매치 스코어들을 결정하는 단계를 포함한다.
양상 26: 양상 24 또는 양상 25의 방법은 추가로, 적어도 하나 이상의 사용자 특징들에 기초하여 복수의 매치 스코어들을 결정하는 단계를 포함한다.
양상 27: 양상 24 내지 양상 26 중 어느 한 양상의 방법은 추가로, 확장 현실 시스템의 디스플레이 내에, 복수의 매치 스코어들 중 가장 높은 매치 스코어를 갖는 복수의 애플리케이션들의 애플리케이션의 표시를 디스플레이하는 단계를 포함한다.
양상 28: 추천들을 제공하기 위한 장치. 장치는 메모리(예컨대, 회로로 구현됨) 및 메모리에 커플링된 프로세서(또는 다수의 프로세서들)를 포함한다. 프로세서(또는 프로세서들)는, 장치의 실세계 환경과 연관된 하나 이상의 환경 특징들을 결정하도록; 장치의 사용자와 연관된 하나 이상의 사용자 특징들을 결정하도록; 그리고 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들에 기초하여, 장치에 의해 지원되는 적어도 하나의 애플리케이션과 연관된 통지를 출력하도록 구성된다.
양상 29: 양상 28의 장치에 있어서, 적어도 하나의 애플리케이션과 연관된 통지는 적어도 하나의 애플리케이션에 대한 추천을 포함하며, 적어도 하나의 애플리케이션에 대한 추천은 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들에 기초하여 결정된다. 일부 경우들에서, 적어도 하나의 애플리케이션의 표시를 출력하는 것은 확장 현실 시스템의 디스플레이 상에 적어도 하나의 애플리케이션에 대한 추천을 제공하거나 또는 출력하는 것을 포함한다.
양상 30: 양상 28 또는 양상 29의 장치에 있어서, 적어도 하나의 애플리케이션과 연관된 통지는 적어도 하나의 애플리케이션과 연관된 적어도 하나의 수정에 대한 추천을 포함한다.
양상 31: 양상 30의 장치에 있어서, 프로세서는 사용자가 적어도 하나의 애플리케이션과 상호 작용하고 있음을 검출하도록; 그리고 사용자가 적어도 하나의 애플리케이션과 상호 작용하고 있음을 검출하는 것에 기초하여 적어도 하나의 애플리케이션과 연관된 적어도 하나의 수정을 결정하도록 구성된다.
양상 32: 양상 30 또는 양상 31의 장치에 있어서, 적어도 하나의 수정은 실세계 환경과 연관된다.
양상 33: 양상 30 내지 양상 32 중 어느 한 양상의 장치에 있어서, 적어도 하나의 수정은 적어도 하나의 애플리케이션의 하나 이상의 세팅들과 연관된다.
양상 34: 양상 30 내지 양상 33 중 어느 한 항의 장치에 있어서, 프로세서는 복수의 사용자들과 연관된 환경 특징들 및 복수의 사용자들과 연관된 사용자 특징들 중 적어도 하나에 기초하여 적어도 하나의 수정을 결정하도록 구성된다.
양상 35: 양상 28 내지 양상 34 중 어느 한 양상의 장치에 있어서, 프로세서는 실세계 환경의 스캔에 기초하여 하나 이상의 환경 특징들을 결정하도록 구성된다.
양상 36: 양상 35의 장치에 있어서, 프로세서는 실세계 환경의 스캔을 야기하도록 구성되며, 실세계 환경의 스캔은 장치의 이미지 센서에 의해 수행된다.
양상 37: 양상 28 내지 양상 36 중 어느 한 양상의 장치에 있어서, 프로세서는 하나 이상의 환경 특징들을 표시하는 이전에 저장된 데이터에 기초하여 하나 이상의 환경 특징들을 결정하도록 구성된다.
양상 38: 양상 28 내지 양상 37 중 어느 한 양상의 장치는 추가로, 실세계 환경과 연관된 이미지 데이터를 캡처하도록 구성되는 이미지 센서를 포함하며, 여기서 프로세서는 이미지 데이터에 적어도 부분적으로 기초하여 하나 이상의 환경 특징들을 결정하도록 구성된다.
양상 39: 양상 38의 장치에 있어서, 프로세서는 이미지 데이터에 적어도 부분적으로 기초하여 실세계 환경 내의 하나 이상의 물리적 오브젝트들의 레이아웃을 결정하도록 구성된다.
양상 40: 양상 38 또는 양상 39 중 어느 한 양상의 장치에 있어서, 프로세서는 이미지 데이터에 적어도 부분적으로 기초하여 실세계 환경 내의 하나 이상의 사람들의 활동을 결정하도록 구성된다.
양상 41: 양상 28 내지 양상 40 중 어느 한 양상의 장치는 추가로, 실세계 환경과 연관된 오디오 데이터를 캡처하도록 구성되는 오디오 센서를 포함하며, 여기서 프로세서는 오디오 데이터에 적어도 부분적으로 기초하여 하나 이상의 환경 특징들을 검출하도록 구성된다.
양상 42: 양상 41의 장치에 있어서, 프로세서는 오디오 데이터에 적어도 부분적으로 기초하여 실세계 환경 내의 하나 이상의 사람들의 활동을 결정하도록 구성된다.
양상 43: 양상 28 내지 양상 42 중 어느 한 양상의 장치에 있어서, 프로세서는 실세계 환경 내의 하나 이상의 네트워크-가능 디바이스들과의 네트워크 통신에 기초하여 하나 이상의 네트워크-가능 디바이스들을 검출하는 것에 적어도 부분적으로 기초하여 하나 이상의 환경 특징들을 결정하도록 구성된다.
양상 44: 양상 28 내지 양상 43 중 어느 한 양상의 장치는 추가로, 사용자의 생리학적 상태 또는 감정적 상태와 연관된 사용자 데이터를 획득하도록 구성되는 하나 이상의 생물학적 센서들을 포함하며, 여기서 프로세서는 사용자 데이터에 적어도 부분적으로 기초하여 하나 이상의 사용자 특징들을 결정하도록 구성된다.
양상 45: 양상 28 내지 양상 44 중 어느 한 양상의 장치에 있어서, 프로세서는 사용자의 연령, 사용자의 성별, 사용자의 지리적 로케이션, 사용자의 키, 및 사용자의 체중 중 적어도 하나를 표시하는 사용자 입력에 기초하여 하나 이상의 사용자 특징들을 결정하도록 구성된다.
양상 46: 양상 28 내지 양상 45 중 어느 한 양상의 장치에 있어서, 프로세서는 사용자의 애플리케이션 선호도들을 결정하기 위해 사용자의 애플리케이션 사용 패턴들을 모니터링함으로써 하나 이상의 사용자 특징들을 결정하도록 구성된다.
양상 47: 양상 28 내지 양상 46 중 어느 한 양상의 장치에 있어서, 프로세서는 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들 중 적어도 하나와 적어도 하나의 애플리케이션 사이의 호환성 레벨을 표시하는 매치 스코어를 결정하도록; 매치 스코어가 임계 매치 스코어를 초과한다고 결정하도록; 그리고 매치 스코어가 임계 매치 스코어를 초과하는 것에 기초하여 적어도 하나의 애플리케이션을 결정하도록 구성된다.
양상 48: 양상 28 내지 양상 47 중 어느 한 양상의 장치에 있어서, 프로세서는 적어도 하나의 애플리케이션과 연관된 하나 이상의 애플리케이션 특징들을 결정하는 것; 및 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들 중 적어도 하나와 하나 이상의 애플리케이션 특징들을 비교하는 것에 기초하여 매치 스코어를 결정하도록 구성된다.
양상 49: 양상 48의 장치에 있어서, 프로세서는 서버로부터 적어도 하나의 애플리케이션과 연관된 애플리케이션 프로파일에 액세스하는 것에 기초하여 하나 이상의 애플리케이션 특징들을 결정하도록 구성되며, 여기서 애플리케이션 프로파일은 복수의 확장 현실 시스템들에 의해 결정된 애플리케이션 특징들에 기초하여 생성된다.
양상 50: 양상 28 내지 양상 47 중 어느 한 양상의 장치에 있어서, 프로세서는 사용자에게 복수의 애플리케이션들에 대한 추천을 제공하도록 구성된다. 일부 경우들에서, 방법은 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들에 기초하여 확장 현실 시스템에 의해 지원되는 복수의 애플리케이션들을 결정하는 단계를 포함한다.
양상 51: 양상 28 내지 양상 50 중 어느 한 양상의 장치에 있어서, 프로세서는 장치의 디스플레이 상에, 복수의 애플리케이션들과 관련한 복수의 매치 스코어들을 디스플레이하도록 구성되며, 복수의 매치 스코어들은 하나 이상의 환경 특징들 및 하나 이상의 사용자 특징들 중 적어도 하나와 복수의 애플리케이션들 사이의 호환성 레벨들을 표시한다.
양상 52: 양상 51의 장치에 있어서, 프로세서는 적어도 하나 이상의 환경 특징들에 기초하여 복수의 매치 스코어들을 결정하도록 구성된다.
양상 53: 양상 51 또는 양상 52의 장치에 있어서, 프로세서는 적어도 하나 이상의 사용자 특징들에 기초하여 복수의 매치 스코어들을 결정하도록 구성된다.
양상 54: 양상 53의 장치에 있어서, 프로세서는 추가로, 장치의 디스플레이 내에, 복수의 매치 스코어들 중 가장 높은 매치 스코어를 갖는 복수의 애플리케이션들의 애플리케이션의 표시를 디스플레이하도록 구성된다.
양상 55: 양상 28 내지 양상 54 중 어느 한 양상의 장치에 있어서, 장치는 확장 현실 시스템이다.
양상 56: 실행될 때, 하나 이상의 프로세서들로 하여금, 양상 1 내지 양상 27의 동작들 중 어느 한 동작을 수행하게 하는 명령들이 저장된 컴퓨터 판독 가능한 저장 매체.
양상 57: 양상 1 내지 양상 27의 동작들 중 어느 한 동작을 수행하기 위한 수단을 포함하는 장치.
양상 58: 사용자 디바이스 상에서 동작 가능한 방법. 방법은, 확장 현실 시스템의 사용자 디바이스가 로케이팅되는 실세계 환경과 연관된 하나 이상의 환경 특징들을 검출하도록 배열되는 하나 이상의 검출기들로부터 신호들을 수신하는 단계; 확장 현실 시스템에 의해 지원되는 애플리케이션들과 사용자 사이의 상호 작용들과 연관된 하나 이상의 사용자 특징들에 관한 데이터를 사용자 데이터 저장소로부터 리트리브하는 단계; 하나 이상의 검출기들로부터의 신호들 및 사용자 저장소로부터의 데이터를 사용하여, 실세계 환경에서 사용자 디바이스에 의해 사용하기에 적합한 확장 현실 시스템에 의해 지원되는 적어도 하나의 애플리케이션을 결정하는 단계; 및 사용자 디바이스 상에서 적어도 하나의 애플리케이션의 개시를 용이하게 하는 단계를 포함한다.
양상 59: 양상 58의 방법에 있어서, 애플리케이션의 개시를 용이하게 하는 단계는 사용 디바이스 상에서 애플리케이션을 자동으로 개시하는 단계를 포함한다.
양상 60: 양상 58의 방법에 있어서, 애플리케이션의 개시를 용이하게 하는 단계는 디바이스의 사용자에게 애플리케이션의 표시를 제공하기 위해 디스플레이를 제어하는 단계를 포함한다.
양상 61: 메모리 및 하나 이상의 프로세서들(예컨대, 회로로 구성됨)을 포함하는 장치는, 확장 현실 시스템의 사용자 디바이스가 로케이팅되는 실세계 환경과 연관된 하나 이상의 환경 특징들을 검출하도록 배열되는 하나 이상의 검출기들로부터 신호들을 수신하도록; 확장 현실 시스템에 의해 지원되는 애플리케이션들과 사용자 사이의 상호 작용들과 연관된 하나 이상의 사용자 특징들에 관한 데이터를 사용자 데이터 저장소로부터 리트리브하도록; 하나 이상의 검출기들로부터의 신호들 및 사용자 저장소로부터의 데이터를 사용하여, 실세계 환경에서 사용자 디바이스에 의해 사용하기에 적합한 확장 현실 시스템에 의해 지원되는 적어도 하나의 애플리케이션을 결정하도록; 그리고 사용자 디바이스 상에서 적어도 하나의 애플리케이션의 개시를 용이하게 하도록 구성된다.
양상 62: 양상 61의 방법에 있어서, 애플리케이션의 개시를 용이하게 하는 단계는 사용 디바이스 상에서 애플리케이션을 자동으로 개시하는 단계를 포함한다.
양상 63: 양상 61의 방법에 있어서, 애플리케이션의 개시를 용이하게 하는 단계는 디바이스의 사용자에게 애플리케이션의 표시를 제공하기 위해 디스플레이를 제어하는 단계를 포함한다.
양상 64: 명령들이 저장된 비일시적 컴퓨터 판독 가능한 매체로서, 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 하나 이상의 프로세서들로 하여금, 확장 현실 시스템의 사용자 디바이스가 로케이팅되는 실세계 환경과 연관된 하나 이상의 환경 특징들을 검출하도록 배열되는 하나 이상의 검출기들로부터 신호들을 수신하게 하고; 확장 현실 시스템에 의해 지원되는 애플리케이션들과 사용자 사이의 상호 작용들과 연관된 하나 이상의 사용자 특징들에 관한 데이터를 사용자 데이터 저장소로부터 리트리브하게 하고; 하나 이상의 검출기들로부터의 신호들 및 사용자 저장소로부터의 데이터를 사용하여, 실세계 환경에서 사용자 디바이스에 의해 사용하기에 적합한 확장 현실 시스템에 의해 지원되는 적어도 하나의 애플리케이션을 결정하게 하고; 그리고 사용자 디바이스 상에서 적어도 하나의 애플리케이션의 개시를 용이하게 한다.
양상 65: 양상 64의 방법에 있어서, 애플리케이션의 개시를 용이하게 하는 단계는 사용 디바이스 상에서 애플리케이션을 자동으로 개시하는 단계를 포함한다.
양상 66: 양상 64의 방법에 있어서, 애플리케이션의 개시를 용이하게 하는 단계는 디바이스의 사용자에게 애플리케이션의 표시를 제공하기 위해 디스플레이를 제어하는 단계를 포함한다.
양상 67: 장치는, 확장 현실 시스템의 사용자 디바이스가 로케이팅되는 실세계 환경과 연관된 하나 이상의 환경 특징들을 검출하도록 배열되는 하나 이상의 검출기들로부터 신호들을 수신하기 위한 수단; 확장 현실 시스템에 의해 지원되는 애플리케이션들과 사용자 사이의 상호 작용들과 연관된 하나 이상의 사용자 특징들에 관한 데이터를 사용자 데이터 저장소로부터 리트리브하기 위한 수단; 하나 이상의 검출기들로부터의 신호들 및 사용자 저장소로부터의 데이터를 사용하여, 실세계 환경에서 사용자 디바이스에 의해 사용하기에 적합한 확장 현실 시스템에 의해 지원되는 적어도 하나의 애플리케이션을 결정하기 위한 수단; 및 사용자 디바이스 상에서 적어도 하나의 애플리케이션의 개시를 용이하게 하기 위한 수단을 포함한다.
양상 68: 양상 67의 방법에 있어서, 애플리케이션의 개시를 용이하게 하는 단계는 사용 디바이스 상에서 애플리케이션을 자동으로 개시하는 단계를 포함한다.
양상 69: 양상 67의 방법에 있어서, 애플리케이션의 개시를 용이하게 하는 단계는 디바이스의 사용자에게 애플리케이션의 표시를 제공하기 위해 디스플레이를 제어하는 단계를 포함한다.

Claims (41)

  1. 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치로서,
    메모리; 및
    프로세서를 포함하며,
    상기 프로세서는,
    상기 장치의 실세계(real-world) 환경과 연관된 하나 이상의 환경 특징들을 결정하도록;
    상기 장치의 사용자와 연관된 하나 이상의 사용자 특징들을 결정하도록; 그리고
    상기 하나 이상의 환경 특징들 및 상기 하나 이상의 사용자 특징들에 기초하여, 상기 장치에 의해 지원되는 적어도 하나의 애플리케이션과 연관된 통지를 출력하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  2. 제1항에 있어서,
    상기 적어도 하나의 애플리케이션과 연관된 통지는 상기 적어도 하나의 애플리케이션에 대한 추천을 포함하며,
    상기 적어도 하나의 애플리케이션에 대한 추천은 상기 하나 이상의 환경 특징들 및 상기 하나 이상의 사용자 특징들에 기초하여 결정되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  3. 제1항에 있어서,
    상기 적어도 하나의 애플리케이션과 연관된 통지는 상기 적어도 하나의 애플리케이션과 연관된 적어도 하나의 수정에 대한 추천을 포함하는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  4. 제3항에 있어서,
    상기 프로세서는 추가로,
    상기 사용자가 상기 적어도 하나의 애플리케이션과 상호 작용하고 있음을 검출하도록; 그리고
    상기 사용자가 상기 적어도 하나의 애플리케이션과 상호 작용하고 있음을 검출하는 것에 기초하여 상기 적어도 하나의 애플리케이션과 연관된 상기 적어도 하나의 수정을 결정하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  5. 제3항에 있어서,
    상기 적어도 하나의 수정은 상기 실세계 환경과 연관되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  6. 제3항에 있어서,
    상기 적어도 하나의 수정은 상기 적어도 하나의 애플리케이션의 하나 이상의 세팅들과 연관되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  7. 제3항에 있어서,
    상기 프로세서는 복수의 사용자들과 연관된 환경 특징들 및 상기 복수의 사용자들과 연관된 사용자 특징들 중 적어도 하나에 기초하여 상기 적어도 하나의 수정을 결정하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  8. 제1항에 있어서,
    상기 프로세서는 상기 실세계 환경의 스캔에 기초하여 상기 하나 이상의 환경 특징들을 결정하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  9. 제8항에 있어서,
    상기 프로세서는 상기 실세계 환경의 스캔을 야기하도록 구성되며,
    상기 실세계 환경의 스캔은 상기 장치의 이미지 센서에 의해 수행되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  10. 제1항에 있어서,
    상기 프로세서는 상기 하나 이상의 환경 특징들을 표시하는 이전에 저장된 데이터에 기초하여 상기 하나 이상의 환경 특징들을 결정하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  11. 제1항에 있어서,
    상기 실세계 환경과 연관된 이미지 데이터를 캡처하도록 구성되는 이미지 센서를 더 포함하며,
    상기 프로세서는 상기 이미지 데이터에 적어도 부분적으로 기초하여 상기 하나 이상의 환경 특징들을 결정하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  12. 제11항에 있어서,
    상기 프로세서는 상기 이미지 데이터에 적어도 부분적으로 기초하여 상기 실세계 환경 내의 하나 이상의 물리적 오브젝트(object)들의 레이아웃을 결정하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  13. 제11항에 있어서,
    상기 프로세서는 상기 이미지 데이터에 적어도 부분적으로 기초하여 상기 실세계 환경 내의 하나 이상의 사람들의 활동을 결정하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  14. 제1항에 있어서,
    상기 실세계 환경과 연관된 오디오 데이터를 캡처하도록 구성되는 오디오 센서를 더 포함하며,
    상기 프로세서는 상기 오디오 데이터에 적어도 부분적으로 기초하여 상기 하나 이상의 환경 특징들을 결정하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  15. 제13항에 있어서,
    상기 프로세서는 오디오 데이터에 적어도 부분적으로 기초하여 상기 실세계 환경 내의 하나 이상의 사람들의 활동을 결정하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  16. 제1항에 있어서,
    상기 프로세서는 상기 실세계 환경 내의 하나 이상의 네트워크-가능 디바이스들과의 네트워크 통신에 기초하여 상기 하나 이상의 네트워크-가능 디바이스들을 검출하는 것에 적어도 부분적으로 기초하여 상기 하나 이상의 환경 특징들을 결정하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  17. 제1항에 있어서,
    상기 사용자의 생리학적 상태 또는 감정적 상태와 연관된 사용자 데이터를 획득하도록 구성되는 하나 이상의 생물학적 센서들을 더 포함하며,
    상기 프로세서는 상기 사용자 데이터에 적어도 부분적으로 기초하여 상기 하나 이상의 사용자 특징들을 결정하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  18. 제1항에 있어서,
    상기 프로세서는 상기 사용자의 연령, 상기 사용자의 성별, 상기 사용자의 지리적 로케이션, 상기 사용자의 키, 및 상기 사용자의 체중 중 적어도 하나를 표시하는 사용자 입력에 기초하여 상기 하나 이상의 사용자 특징들을 결정하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  19. 제1항에 있어서,
    상기 프로세서는 상기 사용자의 애플리케이션 선호도들을 결정하기 위해 상기 사용자의 애플리케이션 사용 패턴들을 모니터링하는 것에 기초하여 상기 하나 이상의 사용자 특징들을 결정하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  20. 제1항에 있어서,
    상기 프로세서는,
    상기 하나 이상의 환경 특징들 및 상기 하나 이상의 사용자 특징들 중 적어도 하나와 상기 적어도 하나의 애플리케이션 사이의 호환성 레벨을 표시하는 매치 스코어(match score)를 결정하도록;
    상기 매치 스코어가 임계 매치 스코어를 초과한다고 결정하도록; 그리고
    상기 매치 스코어가 상기 임계 매치 스코어를 초과하는 것에 기초하여 상기 적어도 하나의 애플리케이션을 결정하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  21. 제20항에 있어서,
    상기 프로세서는,
    상기 적어도 하나의 애플리케이션과 연관된 하나 이상의 애플리케이션 특징들을 결정하는 것; 및
    상기 하나 이상의 환경 특징들 및 상기 하나 이상의 사용자 특징들 중 적어도 하나와 상기 하나 이상의 애플리케이션 특징들을 비교하는 것
    에 기초하여 상기 매치 스코어를 결정하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  22. 제20항에 있어서,
    상기 프로세서는 서버로부터 상기 적어도 하나의 애플리케이션과 연관된 애플리케이션 프로파일에 액세스하는 것에 기초하여 상기 하나 이상의 애플리케이션 특징들을 결정하도록 구성되며,
    상기 애플리케이션 프로파일은 복수의 장치들에 의해 결정된 애플리케이션 특징들에 기초하여 생성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  23. 제1항에 있어서,
    상기 프로세서는 상기 사용자에게 복수의 애플리케이션들에 대한 추천을 제공하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  24. 제23항에 있어서,
    상기 프로세서는, 상기 장치의 디스플레이 상에, 상기 복수의 애플리케이션들과 관련한 복수의 매치 스코어들을 디스플레이하도록 구성되며,
    상기 복수의 매치 스코어들은 상기 하나 이상의 환경 특징들 및 상기 하나 이상의 사용자 특징들 중 적어도 하나와 상기 복수의 애플리케이션들 사이의 호환성 레벨들을 표시하는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  25. 제24항에 있어서,
    상기 프로세서는 적어도 상기 하나 이상의 환경 특징들에 기초하여 상기 복수의 매치 스코어들을 결정하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  26. 제24항에 있어서,
    상기 프로세서는 적어도 상기 하나 이상의 사용자 특징들에 기초하여 상기 복수의 매치 스코어들을 결정하도록 구성되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  27. 제1항에 있어서,
    상기 장치는 확장 현실 시스템인, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 장치.
  28. 확장 현실 시스템들에 대한 추천들을 제공하기 위한 방법으로서,
    확장 현실 시스템의 실세계 환경과 연관된 하나 이상의 환경 특징들을 결정하는 단계;
    상기 확장 현실 시스템의 사용자와 연관된 하나 이상의 사용자 특징들을 결정하는 단계; 및
    상기 하나 이상의 환경 특징들 및 상기 하나 이상의 사용자 특징들에 기초하여, 상기 확장 현실 시스템에 의해 지원되는 적어도 하나의 애플리케이션과 연관된 통지를 출력하는 단계를 포함하는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 방법.
  29. 제28항에 있어서,
    상기 적어도 하나의 애플리케이션과 연관된 통지는 상기 적어도 하나의 애플리케이션에 대한 추천을 포함하며,
    상기 적어도 하나의 애플리케이션에 대한 추천은 상기 하나 이상의 환경 특징들 및 상기 하나 이상의 사용자 특징들에 기초하여 결정되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 방법.
  30. 제28항에 있어서,
    상기 적어도 하나의 애플리케이션과 연관된 통지는 상기 적어도 하나의 애플리케이션과 연관된 적어도 하나의 수정에 대한 추천을 포함하는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 방법.
  31. 제30항에 있어서,
    상기 사용자가 상기 적어도 하나의 애플리케이션과 상호 작용하고 있음을 검출하는 단계; 및
    상기 사용자가 상기 적어도 하나의 애플리케이션과 상호 작용하고 있음을 검출하는 것에 기초하여 상기 적어도 하나의 애플리케이션과 연관된 상기 적어도 하나의 수정을 결정하는 단계를 더 포함하는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 방법.
  32. 제30항에 있어서,
    상기 적어도 하나의 수정은 상기 실세계 환경과 연관되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 방법.
  33. 제30항에 있어서,
    상기 적어도 하나의 수정은 상기 적어도 하나의 애플리케이션의 하나 이상의 세팅들과 연관되는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 방법.
  34. 제30항에 있어서,
    복수의 사용자들과 연관된 환경 특징들 및 상기 복수의 사용자들과 연관된 사용자 특징들 중 적어도 하나에 기초하여 상기 적어도 하나의 수정을 결정하는 단계를 더 포함하는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 방법.
  35. 제28항에 있어서,
    상기 하나 이상의 환경 특징들을 표시하는 이전에 저장된 데이터에 기초하여 상기 하나 이상의 환경 특징들을 결정하는 단계를 더 포함하는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 방법.
  36. 제28항에 있어서,
    상기 확장 현실 시스템의 적어도 하나의 이미지 센서에 의해 캡처된 상기 실세계 환경과 연관된 이미지 데이터에 적어도 부분적으로 기초하여 상기 하나 이상의 환경 특징들을 결정하는 단계를 더 포함하는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 방법.
  37. 제36항에 있어서,
    상기 이미지 데이터에 적어도 부분적으로 기초하여 상기 실세계 환경 내의 하나 이상의 물리적 오브젝트들의 레이아웃을 결정하는 단계를 더 포함하는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 방법.
  38. 제36항에 있어서,
    상기 이미지 데이터에 적어도 부분적으로 기초하여 상기 실세계 환경 내의 하나 이상의 사람들의 활동을 결정하는 단계를 더 포함하는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 방법.
  39. 제28항에 있어서,
    상기 확장 현실 시스템의 오디오 센서에 의해 캡처된 상기 실세계 환경과 연관된 오디오 데이터에 적어도 부분적으로 기초하여 상기 하나 이상의 환경 특징들을 결정하는 단계를 더 포함하는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 방법.
  40. 제39항에 있어서,
    상기 오디오 데이터에 적어도 부분적으로 기초하여 상기 실세계 환경 내의 하나 이상의 사람들의 활동을 결정하는 단계를 더 포함하는, 확장 현실 시스템들에 대한 추천들을 제공하기 위한 방법.
  41. 명령들이 저장된 비일시적 컴퓨터 판독 가능한 저장 매체로서,
    상기 명령들은, 하나 이상의 프로세서들에 의해 실행될 때, 상기 하나 이상의 프로세서들로 하여금,
    확장 현실 시스템의 실세계 환경과 연관된 하나 이상의 환경 특징들을 결정하게 하고;
    상기 확장 현실 시스템의 사용자와 연관된 하나 이상의 사용자 특징들을 결정하게 하고;
    상기 하나 이상의 환경 특징들 및 상기 하나 이상의 사용자 특징들을 사용하여, 상기 확장 현실 시스템에 의해 지원되는 적어도 하나의 애플리케이션을 결정하게 하고; 그리고
    상기 사용자에게 상기 적어도 하나의 애플리케이션에 대한 추천을 제공하게 하는, 비일시적 컴퓨터 판독 가능한 저장 매체.
KR1020237014046A 2020-11-05 2021-10-04 확장 현실 시스템들을 위한 추천들 KR20230098172A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/090,841 US11238664B1 (en) 2020-11-05 2020-11-05 Recommendations for extended reality systems
US17/090,841 2020-11-05
PCT/US2021/053419 WO2022098459A1 (en) 2020-11-05 2021-10-04 Recommendations for extended reality systems

Publications (1)

Publication Number Publication Date
KR20230098172A true KR20230098172A (ko) 2023-07-03

Family

ID=78621992

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237014046A KR20230098172A (ko) 2020-11-05 2021-10-04 확장 현실 시스템들을 위한 추천들

Country Status (7)

Country Link
US (3) US11238664B1 (ko)
EP (1) EP4241224A1 (ko)
JP (1) JP2023548060A (ko)
KR (1) KR20230098172A (ko)
CN (1) CN116348918A (ko)
TW (1) TW202219700A (ko)
WO (1) WO2022098459A1 (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11227445B1 (en) 2020-08-31 2022-01-18 Facebook Technologies, Llc Artificial reality augments and surfaces
US11176755B1 (en) 2020-08-31 2021-11-16 Facebook Technologies, Llc Artificial reality augments and surfaces
US11238664B1 (en) 2020-11-05 2022-02-01 Qualcomm Incorporated Recommendations for extended reality systems
US11113893B1 (en) 2020-11-17 2021-09-07 Facebook Technologies, Llc Artificial reality environment with glints displayed by an extra reality device
US20220156797A1 (en) * 2020-11-17 2022-05-19 At&T Intellectual Property I, L.P. Methods, devices, and systems for providing personalized immersive content in extended reality (xr) environments
US11409405B1 (en) 2020-12-22 2022-08-09 Facebook Technologies, Llc Augment orchestration in an artificial reality environment
US11762952B2 (en) * 2021-06-28 2023-09-19 Meta Platforms Technologies, Llc Artificial reality application lifecycle
US20230059361A1 (en) * 2021-08-21 2023-02-23 At&T Intellectual Property I, L.P. Cross-franchise object substitutions for immersive media
US11798247B2 (en) 2021-10-27 2023-10-24 Meta Platforms Technologies, Llc Virtual object structures and interrelationships
US11748944B2 (en) 2021-10-27 2023-09-05 Meta Platforms Technologies, Llc Virtual object structures and interrelationships
US20230367611A1 (en) * 2022-05-10 2023-11-16 Meta Platforms Technologies, Llc World-Controlled and Application-Controlled Augments in an Artificial-Reality Environment
WO2024090748A1 (en) * 2022-10-25 2024-05-02 Samsung Electronics Co., Ltd. Methods and electronic device for handling virtual-reality (vr) interactive event in vr environment
US11947862B1 (en) 2022-12-30 2024-04-02 Meta Platforms Technologies, Llc Streaming native application content to artificial reality devices

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9529577B2 (en) * 2010-09-10 2016-12-27 International Business Machines Corporation Method of deploying a contextually dependent application
KR101343609B1 (ko) * 2011-08-24 2014-02-07 주식회사 팬택 증강 현실 데이터를 이용할 수 있는 어플리케이션 자동 추천 장치 및 방법
US9132342B2 (en) 2012-10-31 2015-09-15 Sulon Technologies Inc. Dynamic environment and location based augmented reality (AR) systems
KR20140127527A (ko) * 2013-04-25 2014-11-04 삼성전자주식회사 디스플레이장치 및 디스플레이장치를 이용한 추천정보 제공 방법
US9021429B1 (en) * 2013-10-16 2015-04-28 Sybase Inc. Recommending applications to portable electronic devices
US10031738B2 (en) * 2014-09-26 2018-07-24 Samsung Electronics Co., Ltd. Providing application recommendations
US10332184B2 (en) * 2014-12-15 2019-06-25 Samsung Electronics Co., Ltd. Personalized application recommendations
US9769564B2 (en) * 2015-02-11 2017-09-19 Google Inc. Methods, systems, and media for ambient background noise modification based on mood and/or behavior information
US10049500B2 (en) 2015-09-22 2018-08-14 3D Product Imaging Inc. Augmented reality e-commerce for home improvement
US20170178013A1 (en) 2015-12-21 2017-06-22 International Business Machines Corporation Augmented reality recommendations in emergency situations
US10395435B2 (en) * 2016-04-04 2019-08-27 Occipital, Inc. System for multimedia spatial annotation, visualization, and recommendation
US20180159838A1 (en) 2016-12-02 2018-06-07 Bank Of America Corporation Real Estate Property Project Analysis Using Augmented Reality User Devices
US10262265B2 (en) * 2017-05-24 2019-04-16 Google Llc Systems and methods for generating and communicating application recommendations at uninstall time
US20190339840A1 (en) * 2018-05-01 2019-11-07 Samsung Electronics Co., Ltd. Augmented reality device for rendering a list of apps or skills of artificial intelligence system and method of operating the same
US10789622B2 (en) 2018-05-07 2020-09-29 Adobe Inc. Generating and providing augmented reality representations of recommended products based on style compatibility in relation to real-world surroundings
WO2019217966A1 (en) * 2018-05-11 2019-11-14 F.lux Software LLC Coordinated lighting adjustment for groups
KR102041571B1 (ko) * 2018-12-31 2019-11-27 주식회사 데이터몬스터즈 사용자에게 현실 공간에 기반한 게임을 추천하는 방법 및 장치
KR20210025853A (ko) * 2019-08-28 2021-03-10 엘지전자 주식회사 Xr 컨텐츠 제공 방법 및 xr 컨텐츠 제공 디바이스
US11238664B1 (en) 2020-11-05 2022-02-01 Qualcomm Incorporated Recommendations for extended reality systems

Also Published As

Publication number Publication date
EP4241224A1 (en) 2023-09-13
CN116348918A (zh) 2023-06-27
US20220139052A1 (en) 2022-05-05
US20240104869A1 (en) 2024-03-28
US11887262B2 (en) 2024-01-30
TW202219700A (zh) 2022-05-16
JP2023548060A (ja) 2023-11-15
WO2022098459A1 (en) 2022-05-12
US11238664B1 (en) 2022-02-01

Similar Documents

Publication Publication Date Title
US11887262B2 (en) Recommendations for extended reality systems
US11138796B2 (en) Systems and methods for contextually augmented video creation and sharing
US11644890B2 (en) Image capturing in extended reality environments
US11922594B2 (en) Context-aware extended reality systems
US11660022B2 (en) Adaptive skeletal joint smoothing
JP2023532891A (ja) 拡張現実のための仮想プライベート空間
CN118103799A (zh) 与远程设备的用户交互
EP4314999A1 (en) User-defined contextual spaces
US11922587B2 (en) Dynamic augmented reality experience
US20240007585A1 (en) Background replacement using neural radiance field
US20240161418A1 (en) Augmented reality enhanced media
CN118160047A (zh) 用于执行行为检测和行为干预的系统和方法