KR20220013903A - 다중 사용자 증강 현실에서 사용자 상호 작용을 표현하기 위한 시스템 및 방법 - Google Patents

다중 사용자 증강 현실에서 사용자 상호 작용을 표현하기 위한 시스템 및 방법 Download PDF

Info

Publication number
KR20220013903A
KR20220013903A KR1020210083267A KR20210083267A KR20220013903A KR 20220013903 A KR20220013903 A KR 20220013903A KR 1020210083267 A KR1020210083267 A KR 1020210083267A KR 20210083267 A KR20210083267 A KR 20210083267A KR 20220013903 A KR20220013903 A KR 20220013903A
Authority
KR
South Korea
Prior art keywords
user
virtual
content
coordinate system
location
Prior art date
Application number
KR1020210083267A
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 KR20220013903A publication Critical patent/KR20220013903A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • G06F3/014Hand-worn input/output arrangements, e.g. data gloves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/017Gesture based interaction, e.g. based on a set of recognized hand gestures
    • 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/0633Lists, e.g. purchase orders, compilation or processing
    • 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/0641Shopping interfaces
    • G06Q30/0643Graphical representation of items or shoppers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/005General purpose rendering architectures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/20Perspective computation
    • G06T15/205Image-based rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/0093Geometric image transformation in the plane of the image for image warping, i.e. transforming by individually repositioning each pixel
    • G06T3/18
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/024Multi-user, collaborative environment

Abstract

다수의 사용자를 포함하는 공유 AR 경험을 제공하는 증강 현실(AR) 콘텐츠 생성을 위한 시스템 및 방법이 제공된다. 공유 AR 경험은 다수의 동시 사용자 간의 의사 소통 및 협력을 향상시킬 수 있다. 일 실시예에 따르면, AR 콘텐츠는 공유 AR 경험에서 제 1 사용자를 위해 생성된다. AR 콘텐츠는 모델의 렌더링, 공유 AR 경험에서 제 2 사용자의 가상 표현, 공유 AR 경험에서 사용자 상호 작용의 가상 표현 및 공간 오디오 콘텐츠 중 적어도 하나를 포함한다. 공유 AR 경험에 대한 수정도 제공된다. 이러한 수정은 한 사용자의 지시에 따라 시작될 수 있으며 다수의 사용자를 위해 생성된 AR 콘텐츠에 반영된다.

Description

다중 사용자 증강 현실에서 사용자 상호 작용을 표현하기 위한 시스템 및 방법{SYSTEMS AND METHODS FOR REPRESENTING USER INTERACTIONS IN MULTI-USER AUGMENTED REALITY}
본 출원은 증강 현실(augmented reality; AR)에 관한 것이고, 특정 실시예에서 AR 콘텐츠의 생성에 관한 것이다.
AR은 컴퓨터 생성 또는 가상 콘텐츠를 사용하여 현실 세계 경험을 향상시키는 것과 관련이 있다. 경우에 따라, AR은 물리적인 현실 세계 콘텐츠 위에 가상 콘텐츠를 중첩하는 것을 포함한다. 이 중첩은 건설적이거나 파괴적일 수 있다. 건설적인 AR은 현실 세계 경험에 콘텐츠를 추가하는 반면, 파괴적인 AR은 현실 세계 경험의 콘텐츠를 마스킹한다. AR은 가상 현실(virtual reality; VR)과 상이하다. VR은 완전한 가상 경험의 생성과 관련이 있는 반면, AR은 현실 세계 경험의 적어도 일부를 유지하지만 가상 콘텐츠를 사용하여 현실 세계 경험에 대한 인식을 변경한다.
본 개시의 일부 양태는 다수의 사용자를 포함하는 공유 AR 경험을 제공하는 AR 콘텐츠의 생성에 관한 것이다. 이 AR 콘텐츠는 "다중 사용자 AR 콘텐츠"로 지칭될 수 있다. 다수의 사용자는 서로 분리되어 있어 사용자는 서로 물리적으로 보거나 상호 작용할 수 없다. 그러나, 사용자 사이의 물리적 분리에도 불구하고, 공유 AR 경험을 위한 AR 콘텐츠가 각각의 사용자의 환경에 매핑될 수 있다. 공유 AR 경험을 통해 다수의 사용자는 예를 들어 동일한 물품의 모델과 같은 동일한 가상 콘텐츠를 동시에 볼 수 있다.
일부 실시예에서, 공유 AR 경험에서 사용자를 위해 생성된 AR 콘텐츠는 다른 사용자의 가상 표현을 포함한다. 각각의 사용자는 다른 사용자(들)가 공유 AR 경험 내에서 어떻게 위치하는지 및/또는 다른 사용자(들)가 공유 AR 경험 내에서 가상 콘텐츠를 어떻게 보는지를 볼 수 있다. 이는 상이한 사용자 사이의 의사 소통을 개선하기 위한 콘텍스트를 제공하여 공유 AR 경험 내에서 협동 및 협력을 용이하게 하는 데 도움이 될 수 있다.
일부 실시예에서, 공유 AR 경험에서 사용자를 위해 생성된 AR 콘텐츠는 공간 오디오 콘텐츠를 포함한다. 공간 오디오 콘텐츠는 소리의 방향성을 사용자에게 전달할 수 있으며, 이를 통해 사용자는 공유 AR 경험에서 소리의 출처를 인식할 수 있다. 예를 들어, 공유 AR 경험에서 제 1 사용자의 음성이 녹음될 수 있고, 제 2 사용자를 위한 AR 콘텐츠는 AR 경험에서 제 1 사용자의 위치에 대응하는 방향성을 가진 음성의 녹음을 포함할 수 있다. 이는 보다 직관적이고 몰입감 있는 공유 AR 경험을 제공할 수 있다.
일부 실시예에서, 공유 AR 경험에서 사용자를 위해 생성된 AR 콘텐츠는 AR 경험 내에 사용자 상호 작용의 가상 표현을 포함한다. 이러한 사용자 상호 작용의 가상 표현은 공유 AR 경험에서 한 사용자의 상호 작용을 다른 사용자(들)에게 전달할 수 있다. 이러한 상호 작용의 예는 사용자가 AR 경험에서 가상 물품을 향해 제스처를 취하고 심지어 가상 물품을 터치하는 것을 포함한다. AR 경험에 가상 상호 작용을 디스플레이하면 상이한 사용자 사이의 비언어적 의사 소통이 가능할 수 있다.
일부 실시예에서, 공유 AR 경험에 대한 사용자 수정은 상이한 사용자 사이의 협동 및 협력을 개선하는 데 도움이 된다. 공유 AR 경험을 수정하는 것은 적어도 한 명의 사용자의 AR 콘텐츠의 시각을 수정하는 것을 포함할 수 있다. 일 예에서, AR 경험에서 한 사용자의 시각은 사용자가 자신의 환경 내에서 물리적으로 이동할 필요 없이 AR 경험에서 다른 사용자의 시각과 일치하도록 수정된다. 다른 예에서, 공유 AR 경험의 가상 물품이 모든 사용자에 대해 동시에 수정된다.
본 개시의 일 양태에 따르면, 컴퓨터 구현 방법이 제공된다. 방법은 가상 좌표계 내에 정의된 물품의 모델을 획득하는 단계를 포함할 수 있다. 가상 좌표계 내의 제 1 사용자의 위치는 제 1 디바이스에 의해 획득된 제 1 정보에 기초하여 결정될 수 있고, 가상 좌표계 내의 제 2 사용자의 위치는 제 2 디바이스에 의해 획득된 제 2 정보에 기초하여 결정될 수 있다. 방법은 또한 제 2 디바이스로부터 제 2 사용자의 오디오를 획득하는 단계를 포함할 수 있다. 이 오디오는 예를 들어 제 2 사용자의 오디오 녹음일 수 있다. 방법은 AR 콘텐츠를 생성하는 단계를 더 포함할 수 있다. AR 콘텐츠는 가상 좌표계 내의 제 1 사용자의 위치에 기초한 모델의 렌더링; 가상 좌표계 내의 제 1 사용자의 위치에 대한 제 2 사용자의 위치에 기초한 제 2 사용자의 가상 표현; 및/또는 제 2 사용자의 오디오에 기초한 오디오 콘텐츠를 포함할 수 있으며, 오디오 콘텐츠는 가상 좌표계 내의 제 1 사용자의 위치에 대한 제 2 사용자의 위치에 대응하는 방향성을 포함한다. 그런 다음, 방법은 제 1 디바이스에 제시하기 위해 AR 콘텐츠를 출력할 수 있다.
본 개시의 다른 양태에 따르면, 제 1 사용자와 제 1 디바이스에 제시된 가상 콘텐츠 사이의 상호 작용의 위치를 획득하는 단계를 포함하는 컴퓨터 구현 방법이 제공된다. AR 콘텐츠일 수 있는 가상 콘텐츠는 가상 좌표계 내에 정의된 모델의 제 1 렌더링을 포함한다. 상호 작용의 위치는 또한 가상 좌표계 내에 정의될 수 있다. 방법은 AR 콘텐츠를 생성하는 단계를 더 포함할 수 있다. AR 콘텐츠는 가상 좌표계 내의 제 2 사용자의 위치에 기초한 모델의 제 2 렌더링 - 제 2 사용자의 위치는 제 2 디바이스에 의해 획득된 정보에 기초함 - ; 및/또는 상호 작용의 위치에 기초한 상호 작용의 가상 표현을 포함할 수 있다. 그런 다음, 방법은 제 2 디바이스에 제시하기 위해 AR 콘텐츠를 출력하는 단계를 포함할 수 있다.
본 개시의 또 다른 양태에 따르면, 제 1 AR 콘텐츠를 생성하는 단계 및 제 1 사용자와 연관된 디바이스에 제시하기 위해 제 1 AR 콘텐츠를 출력하는 단계를 포함하는 컴퓨터 구현 방법이 제공된다. 제 1 AR 콘텐츠는 가상 좌표계 내에 고정된 모델의 제 1 렌더링을 포함할 수 있으며, 여기서 제 1 렌더링은 가상 좌표계 내의 제 1 사용자의 위치에 기초할 수 있다. 방법은 또한 가상 좌표계 내의 제 2 사용자의 위치로 제 1 사용자를 재배치하라는 명령을 획득하는 단계를 포함할 수 있다. 방법은 제 2 AR 콘텐츠를 생성하는 단계를 더 포함할 수 있으며, 여기서 제 2 AR 콘텐츠는 가상 좌표계 내의 제 2 사용자의 위치에 기초한 모델의 제 2 렌더링을 포함한다. 제 2 AR 콘텐츠는 디바이스에 제시하기 위해 출력될 수 있다.
본 개시의 다른 양태에 따르면, 가상 좌표계 내에 정의된 모델의 제 1 렌더링을 포함하는 제 1 AR 콘텐츠를 생성하는 단계를 포함하는 컴퓨터 구현 방법이 제공된다. 제 1 AR 콘텐츠는 제 1 디바이스에 제시하기 위해 출력될 수 있다. 방법은 또한 가상 좌표계 내에 정의된 수정된 모델을 생성하기 위해 모델을 수정하는 단계를 포함할 수 있다. 모델을 수정하는 단계는 모델의 제 2 렌더링을 제시하는 제 2 디바이스에 의해 획득된 명령에 기초할 수 있다. 방법은 또한 수정된 모델의 렌더링을 포함하는 제 2 AR 콘텐츠를 생성하는 단계 및 제 1 디바이스에 제시하기 위해 제 2 AR 콘텐츠를 출력하는 단계를 포함할 수 있다.
본 개시의 다른 양태에 따르면, 예를 들어, 모델, 측정치, 위치 및 명령어와 같은 정보를 저장하는 메모리 및 본 명세서에 개시된 임의의 방법을 수행하도록 구성된 하나 이상의 프로세서를 포함하는 시스템이 제공된다.
본 개시의 다른 양태에 따르면, 컴퓨터에 의해 실행될 때 컴퓨터가 본 명세서에 개시된 임의의 방법을 수행하게 하는 컴퓨터 실행 가능 명령어를 저장하는 비일시적 컴퓨터 판독 가능 매체가 제공된다.
본 개시의 다른 양태에 따르면, 컴퓨터의 프로세서 상에서 실행될 때 본 명세서에 개시된 임의의 방법을 수행하도록 구성된 컴퓨터 프로그램이 제공된다.
따라서, 다음의 청구 범위에서 상세히 설명되는 바와 같이 방법, 시스템, 컴퓨터 판독 가능 매체 및 컴퓨터 프로그램이 제공된다.
실시예는 첨부 도면을 참조하여 단지 예로서 설명될 것이다.
도 1은 일 실시예에 따른 전자 상거래 플랫폼의 블록도이다.
도 2는 일 실시예에 따른 관리자의 홈 페이지의 예이다.
도 3은 AR 엔진을 포함하는 도 1의 전자 상거래 플랫폼을 도시한다.
도 4는 일 실시예에 따른 공유 AR 경험을 위한 AR 콘텐츠를 디스플레이하는 사용자 디바이스를 도시한다.
도 5는 일 실시예에 따른 공유 AR 경험을 위한 다중 사용자 AR 콘텐츠를 제공하기 위한 시스템을 도시하는 블록도이다.
도 6은 일 실시예에 따른 공유 AR 경험을 위한 AR 콘텐츠를 생성하는 방법을 도시하는 흐름도이다.
도 7은 일 실시예에 따른 시간의 제 1 인스턴스에서, 고객, 판매자 및 믹서의 모델을 포함하는 공유 AR 경험을 위한 가상 좌표계의 사시도이다.
도 8은 시간의 제 1 인스턴스에서 도 7의 공유 AR 경험을 위한 AR 콘텐츠를 디스플레이하는 고객 디바이스를 도시한다.
도 9는 시간의 제 2 인스턴스에서 도 7의 공유 AR 경험을 위한 가상 좌표계의 사시도이다.
도 10은 시간의 제 2 인스턴스에서 도 7의 공유 AR 경험을 위한 AR 콘텐츠를 디스플레이하는 도 8의 고객 디바이스를 도시한다.
도 11은 일 실시예에 따른 가상 사용자 상호 작용을 갖는 공유 AR 경험을 위한 AR 콘텐츠를 생성하는 방법을 도시하는 흐름도이다.
도 12는 도 7의 공유 AR 경험을 위한 가상 콘텐츠를 디스플레이하는 판매자 디바이스를 도시한다.
도 13은 판매자와 도 12의 가상 콘텐츠 사이의 제 1 예시적인 상호 작용 동안 도 7의 공유 AR 경험을 위한 가상 좌표계의 사시도이다.
도 14는 판매자와 도 12의 가상 콘텐츠 사이의 제 1 예시적인 상호 작용 동안 도 7의 공유 AR 경험을 위한 AR 콘텐츠를 디스플레이하는 도 8의 고객 디바이스를 도시한다.
도 15는 판매자와 도 12의 가상 콘텐츠 사이의 제 2 예시적인 상호 작용 동안 도 7의 공유 AR 경험을 위한 가상 좌표계의 사시도이다.
도 16은 판매자와 도 12의 가상 콘텐츠 사이의 제 2 예시적인 상호 작용 동안 도 7의 공유 AR 경험을 위한 AR 콘텐츠를 디스플레이하는 도 8의 고객 디바이스를 도시한다.
도 17은 일 실시예에 따른 공유 AR 경험에서 사용자의 시각을 수정하기 위한 방법을 도시하는 흐름도이다.
도 18은 도 7의 공유 AR 경험을 위한 추가 AR 콘텐츠를 디스플레이하는 도 8의 고객 디바이스를 도시한다.
도 19는 고객이 가상 좌표계에서 판매자의 위치로 재배치된 이후의 도 7의 공유 AR 경험을 위한 가상 좌표계의 사시도이다.
도 20은 고객이 가상 좌표계에서 판매자의 위치에 고정될 때 도 7의 공유 AR 경험을 위한 AR 콘텐츠를 디스플레이하는 도 8의 고객 디바이스를 도시한다.
도 21은 일 실시예에 따른 공유 AR 경험을 수정하는 방법을 도시하는 흐름도이다.
도 22는 도 7의 공유 AR 경험을 위한 가상 좌표계의 다른 사시도이다.
도 23은 도 7의 공유 AR 경험을 위한 추가 AR 콘텐츠를 디스플레이하는 도 8의 고객 디바이스를 도시한다.
도 24는 믹서의 모델이 재배치된 이후의 도 7의 공유 AR 경험을 위한 가상 좌표계의 사시도이다.
도 25는 믹서의 모델이 재배치된 이후의 도 7의 공유 AR 경험을 위한 AR 콘텐츠를 디스플레이하는 도 8의 고객 디바이스를 도시한다.
도 26은 믹서의 모델이 조작된 이후의 도 7의 공유 AR 경험을 위한 가상 좌표계의 사시도이다.
도 27은 믹서의 모델이 조작된 이후의 도 7의 공유 AR 경험을 위한 AR 콘텐츠를 디스플레이하는 도 8의 고객 디바이스를 도시한다.
도 28은 믹서의 모델이 블렌더의 모델로 대체된 이후의 도 7의 공유 AR 경험을 위한 가상 좌표계의 사시도이다.
도 29는 믹서의 모델이 블렌더의 모델로 대체된 이후의 도 7의 공유 AR 경험을 위한 AR 콘텐츠를 디스플레이하는 도 8의 고객 디바이스를 도시한다.
예시를 위해, 특정 예시적인 실시예가 이제 도면과 함께 아래에서 더 상세히 설명될 것이다.
예시적인 전자 상거래 플랫폼
일부 실시예에서, 본 명세서에 개시된 방법은 본 명세서에서 전자 상거래 플랫폼으로 지칭될 상거래 플랫폼 상에서 또는 이와 관련하여 수행될 수 있다. 따라서, 전자 상거래 플랫폼의 예를 설명할 것이다.
도 1은 일 실시예에 따른 전자 상거래 플랫폼(100)을 도시한다. 전자 상거래 플랫폼(100)은 고객에게 판매자 제품 및 서비스를 제공하기 위해 사용될 수 있다. 본 개시는 제품 및 서비스를 구매하기 위해 장치, 시스템 및 프로세스를 사용하는 것을 고려하지만, 간략화를 위해 본 명세서의 설명은 제품을 지칭할 것이다. 본 개시 전반에 걸쳐 제품에 대한 모든 언급은 또한 물리적 제품, 디지털 콘텐츠, 티켓, 구독, 제공될 서비스 등을 포함하는 제품 및/또는 서비스에 대한 언급으로 이해되어야 한다.
본 개시는 '판매자' 및 '고객'이 개인 이상일 수 있음을 완전히 고려하지만, 간략화를 위해 본 명세서의 설명은 일반적으로 판매자 및 고객을 지칭할 수 있다. 본 개시 전반에 걸쳐 판매자 및 고객에 대한 모든 언급은 또한 개인, 회사, 기업, 컴퓨팅 엔티티 등의 그룹에 대한 언급으로 이해되어야 하며, 제품의 영리 또는 비영리 교환을 나타낼 수 있다. 또한, 본 개시는 완전히 '판매자' 및 '고객'을 지칭하고 그 역할을 설명하지만, 전자 상거래 플랫폼(100)은 전자 상거래 환경에서 사용자를 보다 일반적으로 지원하는 것으로 이해되어야 하며, 본 개시 전반에 걸쳐 판매자 및 고객에 대한 모든 언급은 예컨대 사용자가 판매자-사용자(예를 들어, 판매인, 소매업자, 도매업자 또는 제품 제공자), 고객-사용자(예를 들어, 구매자, 구매 대리인 또는 제품 사용자), 잠재 사용자(예를 들어, 열람하고 아직 구매를 약속하지 않은 사용자, 제품 마케팅 및 판매 등에서 잠재적인 사용을 위해 전자 상거래 플랫폼(100)을 평가하는 사용자), 서비스 제공자 사용자(예를 들어, 배송 제공자(112), 금융 제공자 등), 회사 또는 기업 사용자(예를 들어, 제품 구매, 판매 또는 사용을 위한 회사 대표, 기업 사용자, 고객 관계 또는 고객 관리 에이전트 등), 정보 기술 사용자, 컴퓨팅 엔티티 사용자(예를 들어, 제품 구매, 판매 또는 사용을 위한 컴퓨팅 봇) 등인 사용자에 대한 언급으로 이해되어야 한다.
전자 상거래 플랫폼(100)은 판매자에게 자신의 사업을 관리하는 설비 및 온라인 자원을 제공하기 위한 중앙 집중식 시스템을 제공할 수 있다. 본 명세서에 설명된 설비는 플랫폼(100)의 일부 또는 외부에 있을 수 있는 하나 이상의 프로세서 상에서 컴퓨터 소프트웨어, 모듈, 프로그램 코드 및/또는 명령어를 실행하는 기계를 통해 부분적으로 또는 전체적으로 배치될 수 있다. 판매자는 고객과의 상거래를 관리하기 위해 전자 상거래 플랫폼(100)을 사용할 수 있으며, 예컨대, 온라인 스토어(138)를 통해, 채널(110A-B)을 통해, 물리적 장소에 있는 POS 디바이스(152)(예를 들어, 물리적 스토어프론트 또는 키오스크, 단말기, 리더기, 프린터, 3D 프린터 등을 통한 기타 장소)를 통해 고객과의 전자 상거래 경험을 구현함으로써, 전자 상거래 플랫폼(100)을 통해 비즈니스를 관리함으로써, 그리고 전자 상거래 플랫폼(100)의 통신 설비(129)를 통해 고객과 상호 작용함으로써 또는 이들의 임의의 조합에 의해 전자 상거래 플랫폼(100)을 사용할 수 있다. 판매자는 전자 상거래 플랫폼(100)을 고객과의 단독 상거래 수단으로서 사용하거나, 예컨대, 실제 스토어(예를 들어, '오프라인 거래' 소매점), 판매자 오프 플랫폼 웹 사이트(104)(예를 들어, 상거래 인터넷 웹 사이트 또는 다른 인터넷 또는 웹 속성 또는 전자 상거래 플랫폼과는 별도로 판매자에 의해 또는 판매자를 대신하여 지원되는 자산) 등을 통해 다른 판매자 상거래 설비와 함께 사용할 수 있다. 그러나, 이러한 '다른' 판매자 상거래 설비조차도 전자 상거래 플랫폼에 통합될 수 있으며, 예컨대, 판매자의 실제 스토어에 있는 POS 디바이스(152)가 전자 상거래 플랫폼(100)에 연결되는 경우, 판매자 오프 플랫폼 웹 사이트(104)가 판매자 오프 플랫폼 웹 사이트(104)로부터의 콘텐츠를 온라인 스토어(138)로 연결하는 '구매 버튼'을 통해 전자 상거래 플랫폼(100)에 연결되는 경우 등이 해당한다.
온라인 스토어(138)는 복수의 가상 스토어프론트를 포함하는 멀티테넌트 설비를 나타낼 수 있다. 실시예에서, 판매자는, 예컨대, 판매자 디바이스(102)(예를 들어, 컴퓨터, 랩톱 컴퓨터, 모바일 컴퓨팅 디바이스 등)를 통해 온라인 스토어(138)의 하나 이상의 스토어프론트를 관리할 수 있고, 다수의 상이한 채널(110A-B)(예를 들어, 온라인 스토어(138); POS 디바이스(152)를 통한 실제 스토어프론트; 웹 사이트 또는 소셜 네트워크, 소셜 미디어 페이지, 소셜 미디어 메시징 시스템과 같은 소셜 미디어 채널에 통합된 전자 구매 버튼을 통한 전자 시장 등)을 통해 고객에게 제품을 제공할 수 있다. 판매자는 채널(110A-B)을 통해 판매하고, 그런 다음 전자 상거래 플랫폼(100)을 통해 판매를 관리할 수 있으며, 여기서 전자 상거래 플랫폼(100) 내부에 채널(110A)이 제공되거나 전자 상거래 플랫폼 외부로부터 채널(110B)이 제공될 수 있다. 판매자는 자신의 실제 소매점에서, 팝업 스토어에서, 도매를 통해, 전화 등을 통해 판매하고, 그런 다음 전자 상거래 플랫폼(100)을 통해 판매를 관리할 수 있다. 판매자는 POS 디바이스(152)를 사용하는 실제 스토어프론트를 통해 비즈니스를 유지하고, 온라인 스토어(138)를 통해 가상 스토어프론트를 유지하며, 고객 상호 작용 및 분석(132)을 활용하여 판매 확률을 향상시키기 위해 통신 설비(129)를 이용하는 것과 같이, 이들의 전부 또는 임의의 조합을 사용할 수 있다. 본 개시 전반에 걸쳐, 온라인 스토어(138) 및 스토어프론트라는 용어는 전자 상거래 플랫폼(100)을 통해 존재를 제공하는 판매자의 온라인 전자 상거래를 지칭하기 위해 동의어로 사용될 수 있으며, 여기서 온라인 스토어(138)는 (예를 들어, 복수의 판매자에 대해) 전자 상거래 플랫폼(100)에 의해 지원되는 스토어프론트의 멀티테넌트 컬렉션을 지칭할 수 있거나 개별 판매자의 스토어프론트(예를 들어, 판매자의 온라인 스토어)를 지칭할 수 있다.
일부 실시예에서, 고객은 고객 디바이스(150)(예를 들어, 컴퓨터, 랩톱 컴퓨터, 모바일 컴퓨팅 디바이스 등), POS 디바이스(152)(예를 들어, 소매상 디바이스, 키오스크, 자동화된 체크 아웃 시스템 등) 또는 당 업계에 공지된 임의의 다른 상거래 인터페이스 디바이스를 통해 상호 작용할 수 있다. 전자 상거래 플랫폼(100)은 판매자가 온라인 스토어(138)를 통해, 물리적 장소(예를 들어, 판매자의 스토어프론트 또는 다른 곳)에 있는 POS 디바이스(152)를 통해 고객에게 도달하고, 전자 통신 설비(129) 등을 통한 대화를 통해 고객과의 상거래를 촉진할 수 있게 하여, 고객에게 도달하고 고객과 상호 작용할 수 있는 실제 또는 가상 경로에 의해 고객에게 도달하고 판매자 서비스를 촉진하기 위한 시스템을 제공할 수 있다.'
일부 실시예에서, 그리고 본 명세서에 추가로 설명된 바와 같이, 전자 상거래 플랫폼(100)은 프로세서 및 메모리를 포함하는 처리 설비를 통해 구현될 수 있으며, 처리 설비는 실행될 때 전자 상거래 플랫폼(100)이 본 명세서에 설명된 바와 같은 전자 상거래 및 지원 기능을 수행하게 하는 명령어 세트를 저장한다. 처리 설비는 서버, 클라이언트, 네트워크 인프라, 모바일 컴퓨팅 플랫폼, 클라우드 컴퓨팅 플랫폼, 고정 컴퓨팅 플랫폼 또는 기타 컴퓨팅 플랫폼의 일부일 수 있으며, 전자 상거래 플랫폼(100), 판매자 디바이스(102), 결제 게이트웨이(106), 애플리케이션 개발자, 채널(110A-B), 배송 제공자(112), 고객 디바이스(150), POS(Point of Sale) 디바이스(152) 등의 전자 구성 요소 사이에서 전자 연결 및 통신을 제공할 수 있다. 전자 상거래 플랫폼(100)은 소프트웨어 및 소프트웨어가 구독 기반으로 라이센스되고 중앙에서 호스팅되는 전달 모델(예를 들어, 웹 브라우저 또는 기타 애플리케이션을 통해 클라이언트(예를 들어, 씬 클라이언트)를 사용하는 사용자에 의해 액세스되고, POS 디바이스 등을 통해 액세스됨)에서와 같이, 클라우드 컴퓨팅 서비스, SaaS(software as a service), IaaS(infrastructure as a service), PaaS(platform as a service), DaaS(desktop as a Service), MSaaS(managed software as a service), MBaaS(mobile backend as a service), ITMaaS(information technology management as a service) 등으로 구현될 수 있다. 일부 실시예에서, 전자 상거래 플랫폼(100)의 요소는 iOS, Android, 웹 등과 같은 다양한 플랫폼 및 운영 체제에서 동작하도록 구현될 수 있다(예를 들어, 관리자(114)는 주어진 온라인 스토어에 대해 iOS, Android 및 웹을 위해 다수의 인스턴스로 구현되며, 각각은 각각 유사한 기능을 가짐).
일부 실시예에서, 온라인 스토어(138)는 전자 상거래 플랫폼(100)의 서버에 의해 제공되는 웹 페이지를 통해 고객 디바이스(150)에 제공될 수 있다. 서버는 고객 디바이스(150)에 설치된 브라우저 또는 기타 애플리케이션으로부터 웹 페이지에 대한 요청을 수신할 수 있으며, 여기서 브라우저(또는 기타 애플리케이션)는 도메인 이름을 번역함으로써 획득된 IP 주소를 통해 서버에 접속한다. 그 대가로, 서버는 요청된 웹 페이지를 다시 보낸다. 웹 페이지는 HTML(Hypertext Markup Language), 템플릿 언어, JavaScript 또는 이들의 조합 등으로 작성되거나 이를 포함할 수 있다. 예를 들어, HTML은 웹 페이지의 레이아웃, 포맷 및 콘텐츠와 같은 웹 페이지의 정적 정보를 설명하는 컴퓨터 언어이다. 웹 사이트 설계자와 개발자는 템플릿 언어를 사용하여 여러 페이지에서 동일한 정적 콘텐츠와 한 페이지에서 다음 페이지로 변경되는 동적 콘텐츠를 결합하는 웹 페이지를 구축할 수 있다. 템플릿 언어를 사용하면 웹 페이지의 레이아웃을 정의하는 정적 요소를 재사용하는 동시에 온라인 스토어의 데이터로 페이지를 동적으로 채울 수 있다. 정적 요소는 HTML로 작성되고 동적 요소는 템플릿 언어로 작성될 수 있다. 파일의 템플릿 언어 요소는 플레이스 홀더의 역할을 하여, 파일의 코드는 컴파일되어 고객 디바이스(150)에 전송되고 그런 다음 템플릿 언어는 예컨대 테마가 설치될 때 온라인 스토어(138)의 데이터로 대체된다. 템플릿과 테마는 태그, 객체 및 필터를 고려할 수 있다. 그런 다음, 클라이언트 디바이스의 웹 브라우저(또는 기타 애플리케이션)는 그에 따라 페이지를 렌더링한다.
일부 실시예에서, 온라인 스토어(138)는 전자 상거래 플랫폼(100)에 의해 고객에게 제공될 수 있으며, 여기서 고객은 사용 가능한 다양한 제품을 열람하고 구매할 수 있다(예를 들어, 장바구니에 추가하고, 구매 버튼을 통해 즉시 구매하는 것 등). 온라인 스토어(138)는 (판매자로부터 직접 제공되는 것이 아니라) 전자 상거래 플랫폼(100)을 통해 제공되고 있음을 고객이 반드시 알 필요 없이 투명한 방식으로 고객에게 제공될 수 있다. 판매자는 자신의 온라인 스토어(138)를 사용자 정의하기 위해 판매자 구성 가능한 도메인 이름, 사용자 정의 가능한 HTML 테마 등을 사용할 수 있다. 판매자는 테마 시스템을 통해 웹 사이트의 룩앤필(look and feel)을 사용자 정의할 수 있으며, 예컨대, 판매자는 온라인 스토어의 제품 계층 구조 내에 동일한 기본 제품 및 비즈니스 데이터를 표시하면서 테마를 변경하여 온라인 스토어(138)의 룩앤필을 선택하고 변경할 수 있다. 테마는 사용자가 웹 사이트의 설계를 유연하게 사용자 정의할 수 있는 설계 인터페이스인 테마 편집기를 통해 추가로 사용자 정의될 수 있다. 테마는 특정 색상, 폰트 및 미리 구축된 레이아웃 구성과 같은 측면을 변경하는 테마 특정 설정을 사용하여 사용자 정의될 수도 있다. 온라인 스토어는 웹 사이트 콘텐츠에 대한 콘텐츠 관리 시스템을 구현할 수 있다. 판매자는 블로그 게시물 또는 정적 페이지를 작성하고 이를 블로그, 기사 등을 통해 온라인 스토어(138)에 게시할 수 있을 뿐만 아니라 탐색 메뉴를 구성할 수 있다. 판매자는 (예를 들어, 제품에 대한) 이미지, 비디오, 콘텐츠, 데이터 등을 (예를 들어, 데이터(134)로서) 시스템에 의한 저장을 위해 전자 상거래 플랫폼(100)에 업로드할 수 있다. 일부 실시예에서, 전자 상거래 플랫폼(100)은 이미지 크기 조정, 제품과 이미지 연관, 이미지에 텍스트 추가 및 연관, 새로운 제품 변형에 대한 이미지 추가, 이미지 보호 등을 위한 기능을 제공할 수 있다.
본 명세서에 설명된 바와 같이, 전자 상거래 플랫폼(100)은 온라인 스토어(138)를 포함하는 다수의 상이한 채널(110A-B)을 통해, 전화를 통해, 그리고 본 명세서에 설명된 물리적 POS 디바이스(152)를 통해 제품을 위한 거래 설비를 판매자에게 제공할 수 있다. 전자 상거래 플랫폼(100)은 온라인 비지니스를 운영하는 것과 연관된 비즈니스 지원 서비스(116), 관리자(114) 등을 포함할 수 있으며, 예컨대, 온라인 스토어와 연관된 도메인 서비스(118), 고객과의 거래를 용이하게 하기 위한 결제 서비스(120), 구매된 제품에 대한 고객 배송 옵션을 제공하기 위한 배송 서비스(122), 제품 보호 및 책임, 판매자 청구와 연관된 위험 및 보험 서비스(124) 등을 제공할 수 있다. 서비스(116)는 전자 상거래 플랫폼(100)을 통해 또는 결제 처리를 위한 결제 게이트웨이(106), 제품의 배송을 신속히 처리하기 위한 배송 제공자(112) 등을 통해 외부 설비와 관련하여 제공될 수 있다.
일부 실시예에서, 전자 상거래 플랫폼(100)은 판매자에게 실시간 업데이트, 추적, 자동 요금 계산, 대량 주문 준비, 라벨 인쇄 등을 제공하는 것과 같은 통합 배송 서비스(122)를 (예를 들어, 전자 상거래 플랫폼 배송 설비를 통해 또는 타사 배송 업체를 통해) 제공할 수 있다.
도 2는 관리자(114)의 홈 페이지에 대한 비제한적인 실시예를 도시하며, 이는 일상 업무, 스토어의 최근 활동 및 판매자가 비지니스를 구축하기 위해 취할 수 있는 다음 단계에 대한 정보를 보여줄 수 있다. 일부 실시예에서, 판매자는 데스크톱 컴퓨터 또는 모바일 디바이스와 같은 판매자 디바이스(102)를 통해 관리자(114)에 로그인할 수 있고, 온라인 스토어(138)의 최근 활동 보기, 온라인 스토어(138)의 카탈로그 업데이트, 주문 관리, 최근 방문 활동, 총 주문 활동 등과 같이, 온라인 스토어(138)를 관리할 수 있다. 일부 실시예에서, 판매자는 도 2에 도시된 바와 같이 사이드 바를 사용하여 관리자(114)의 상이한 섹션에 액세스할 수 있다. 관리자(114)의 섹션은 주문, 제품, 고객, 사용 가능한 보고서 및 할인을 비롯한 판매자 비즈니스의 핵심 측면에 액세스하고 관리하기 위한 다양한 인터페이스를 포함할 수 있다. 관리자(114)는 또한 온라인 스토어, 스토어에 액세스하기 위해 고객이 이용할 수 있는 모바일 애플리케이션(들)(모바일 앱), POS 디바이스 및/또는 구매 버튼을 비롯한 스토어에 대한 판매 채널을 관리하기 위한 인터페이스를 포함할 수 있다. 관리자(114)는 또한 판매자의 계정에 설치된 애플리케이션(앱)을 관리하기 위한 인터페이스, 판매자의 온라인 스토어(138)에 적용된 설정 및 계정을 포함할 수 있다. 판매자는 검색 바를 사용하여 제품, 페이지 또는 기타 정보를 찾을 수 있다. 판매자가 사용하고 있는 디바이스(102) 또는 소프트웨어 애플리케이션에 따라, 관리자(114)를 통해 상이한 기능에 대해 활성화될 수 있다. 예를 들어, 판매자가 브라우저에서 관리자(114)에 로그인하면, 온라인 스토어(138)의 모든 측면을 관리할 수 있다. 판매자가 자신의 모바일 디바이스에서 (예를 들어, 모바일 애플리케이션을 통해) 로그인하면, 온라인 스토어(138)의 최근 활동 보기, 온라인 스토어(138)의 카탈로그 업데이트, 주문 관리 등과 같이, 온라인 스토어(138)의 전부 또는 일부의 측면을 볼 수 있다.
판매자의 온라인 스토어(138)에 대한 상거래 및 방문자에 대한 더 자세한 정보는 판매자의 전체 비즈니스에 대한 판매 요약, 활성 판매 채널에 대한 특정 판매 및 참여 데이터 등을 디스플레이하는 것과 같이, 획득 보고서 또는 메트릭을 통해 볼 수 있다. 보고서에는 획득 보고서, 행동 보고서, 고객 보고서, 재무 보고서, 마케팅 보고서, 판매 보고서, 맞춤형 보고서 등이 포함될 수 있다. 판매자는 드롭 다운 메뉴를 사용하는 것과 같이, 상이한 기간(예를 들어, 일, 주, 월 등)으로부터 상이한 채널(110A-B)에 대한 판매 데이터를 볼 수 있다. 스토어의 판매 및 참여 데이터에 대한 보다 자세한 보기를 원하는 판매자를 위해 개요 대시 보드가 제공될 수 있다. 홈 멕트릭 섹션의 활동 피드가 제공되어 판매자 계정에 대한 활동 개요를 나타낼 수 있다. 예를 들어, '최근 활동 모두 보기' 대시 보드 버튼을 클릭하면, 판매자는 자신의 계정에 대한 최근 활동의 더 긴 피드를 볼 수 있다. 홈 페이지는 계정 상태, 성장, 최근 고객 활동 등에 기초하여 판매자의 온라인 스토어(138)에 대한 알림을 표시할 수 있다. 결제 캡처, 주문을 이행된 것으로 표시, 완료된 주문 보관 등과 같이, 판매자가 프로세스를 통해 처리하는 것을 돕기 위해 알림이 제공 될 수 있다.
전자 상거래 플랫폼(100)은 판매자, 고객, 판매자 디바이스(102), 고객 디바이스(150), POS 디바이스(152) 등 사이의 통신 상호 작용을 수집하고 분석하기 위한 전자 메시징 통합 설비를 이용하는 것과 같이 전자 통신 및 마케팅을 제공하기 위한 통신 설비(129) 및 관련 판매자 인터페이스를 제공하여 제품의 판매 가능성 증가 등과 같이 통신을 집계하고 분석할 수 있다. 예를 들어, 고객은 제품과 관련된 질문을 가질 수 있고, 이는 고객과 판매자(또는 판매자를 나타내는 자동화된 프로세서 기반 에이전트) 사이에 대화를 생성할 수 있으며, 여기서 통신 설비(129)는 상호 작용을 분석하고 판매 확률을 개선하는 방법에 대한 분석을 판매자에게 제공한다.
전자 상거래 플랫폼(100)은 보안 카드 서버 환경 등을 통해 고객과의 안전한 금융 거래를 위한 금융 설비(120)를 제공할 수 있다. 전자 상거래 플랫폼(100)은 결제 카드 산업 데이터(payment card industry; PCI) 환경(예를 들어, 카드 서버)에서와 같이 신용 카드 정보를 저장하여 재무를 조정하고, 판매자에게 청구서를 보내고, (예를 들어, 자본을 사용하는 경우) 전자 상거래 플랫폼(100) 금융 기관 계정과 판매자의 은행 계좌 사이의 자동 결제(ACH) 이체 수행 등을 할 수 있다. 이러한 시스템은 사베인즈 옥슬리 법(Sarbanes-Oxley Act; SOX)을 준수하고 개발 및 운영에 필요한 높은 수준의 성실함을 가질 수 있다. 금융 설비(120)는 또한, 예컨대, 자본 대출(예를 들어, 대출 자금, 현금 서비스 등) 및 보험 제공을 통해 판매자에게 금융 지원을 제공할 수 있다. 또한, 전자 상거래 플랫폼(100)은 일련의 마케팅 및 파트너 서비스를 제공하고 전자 상거래 플랫폼(100)과 파트너 간의 관계를 제어할 수 있다. 이러한 서비스는 또한 전자 상거래 플랫폼(100)과 새로운 판매자를 연결하고 온보딩할 수 있다. 이러한 서비스는 판매자가 전자 상거래 플랫폼(100)에서 작업하는 것을 더 쉽게 함으로써 판매자 성장을 가능하게 할 수 있다. 이러한 서비스를 통해 판매자는 전자 상거래 플랫폼(100)을 통해 도움 설비를 제공 받을 수 있다.
일부 실시예에서, 온라인 스토어(138)는 다수의 독립적으로 관리되는 스토어프론트를 지원하고 다양한 제품에 대해 매일 대량의 거래 데이터를 처리할 수 있다. 거래 데이터는 고객 연락처 정보, 청구 정보, 배송 정보, 구매한 제품에 대한 정보, 렌더링된 서비스에 대한 정보 및 전자 상거래 플랫폼(100)을 통한 비즈니스와 연관된 임의의 기타 정보를 포함할 수 있다. 일부 실시예에서, 전자 상거래 플랫폼(100)은 이 데이터를 데이터 설비(134)에 저장할 수 있다. 거래 데이터는 분석(132)을 생성하기 위해 처리될 수 있으며, 이는 소비자 동향, 마케팅 및 판매 통찰력, 판매 개선을 위한 추천, 고객 행동 평가, 마케팅 및 판매 모델링, 사기 동향 등을 제공하는 것과 같이 온라인 상거래와 관련된 판매자 또는 타사 상거래 엔티티에게 제공될 수 있고, 대시 보드 인터페이스, 보고서 등을 통해 제공될 수 있다. 전자 상거래 플랫폼(100)은 비즈니스 및 판매자 거래에 대한 정보를 저장할 수 있으며, 데이터 설비(134)는 데이터를 향상, 기여, 정제 및 추출하는 다양한 방법을 가질 수 있으며, 시간이 지남에 따라 수집된 데이터는 전자 상거래 플랫폼(100)의 측면을 개선할 수 있다.
다시 도 1을 참조하면, 일부 실시예에서, 전자 상거래 플랫폼(100)은 복수의 온라인 스토어(138)에 대한 지원 및 서비스를 가능하게 하기 위해 콘텐츠 관리, 작업 자동화 및 데이터 관리를 위한 상거래 관리 엔진(136)(예를 들어, 제품, 재고, 고객, 주문, 협업, 공급 업체, 보고서, 재무, 위험 및 사기 등과 관련됨)으로 구성될 수 있지만, 더 큰 유연성을 가능하게 하는 애플리케이션(142A-B) 및 계속 늘어나는 다양한 판매자 온라인 스토어, POS 디바이스, 제품 및 서비스를 수용하는 데 필요한 맞춤형 프로세스를 통해 확장 가능하고, 여기서 애플리케이션(142A)은 전자 상거래 플랫폼(100) 내부에 제공되거나 애플리케이션(142B)은 전자 상거래 플랫폼(100) 외부로부터 제공될 수 있다. 일부 실시예에서, 애플리케이션(142A)은 플랫폼(100)을 제공하는 동일한 당사자 또는 상이한 당사자에 의해 제공될 수 있다. 일부 실시예에서, 애플리케이션(142B)은 플랫폼(100)을 제공하는 동일한 당사자 또는 상이한 당사자에 의해 제공될 수 있다. 상거래 관리 엔진(136)은 유연성 및 확장성을 위해 고객 식별자, 주문 식별자, 온라인 스토어 식별자 등에 의해 기능 및 데이터의 분할(예를 들어, 샤딩(sharding))을 통해 구성될 수 있다. 상거래 관리 엔진(136)은 상점 특정 비즈니스 로직을 수용할 수 있고, 일부 실시예에서, 관리자(114) 및/또는 온라인 스토어(138)를 통합할 수 있다.
상거래 관리 엔진(136)은 전자 상거래 플랫폼(100)의 기본 또는 "핵심" 기능을 포함하고, 따라서 본 명세서에 설명된 바와 같이, 온라인 스토어(138)를 지원하는 모든 기능을 포함하는 것이 적절하지 않을 수 있다. 예를 들어, 상거래 관리 엔진(136)에 포함하기 위한 기능은 핵심 기능 문턱을 초과할 필요가 있으며, 이를 통해 해당 기능이 상거래 경험의 핵심이고(예를 들어, 채널, 관리자 인터페이스, 판매자 장소, 산업, 제품 유형 등과 같은 대부분의 온라인 스토어 활동에 공통), 온라인 스토어(138)에서 재사용 가능하고(예를 들어, 핵심 기능에서 재사용/수정될 수 있는 기능), 한 번에 단일 온라인 스토어(138)의 콘텍스트로 제한되며(예를 들어, 온라인 스토어 '격리 원칙'을 구현함, 이 경우 코드는 한 번에 다수의 온라인 스토어(138)와 상호 작용할 수 없어야 하며, 온라인 스토어(138)가 서로 다른 온라인 스토어의 데이터에 액세스할 수 없도록 보장함), 거래 워크로드를 제공하는 것 등이 결정될 수 있다. 구현되는 기능의 제어를 유지하면 상거래 관리 엔진(136)이 응답성을 유지할 수 있는데, 많은 필수 기능이 상거래 관리 엔진(136)에 의해 직접 제공되거나, 예컨대, 애플리케이션(142A-B) 및 채널(110A-B)에 대한 애플리케이션 프로그래밍 인터페이스(application programming interface; API) 연결을 통한 확장에 의해 인터페이스(140A-B)를 통해 활성화되기 때문이며, 여기서 인터페이스(140A)는 전자 상거래 플랫폼(100) 내부의 애플리케이션(142A) 및/또는 채널(110A)에 제공되거나 인터페이스(140B)는 전자 상거래 플랫폼(100) 외부의 애플리케이션(142B) 및/또는 채널(110B)에 제공될 수 있다. 일반적으로, 플랫폼(100)은 다른 플랫폼, 시스템, 소프트웨어, 데이터 소스, 코드 등에 대한 연결 및 통신을 용이하게 하는 인터페이스(140A-B)(확장, 커넥터, API 등일 수 있음)를 포함할 수 있다. 이러한 인터페이스(140A-B)는 보다 일반적으로 상거래 관리 엔진(136)의 인터페이스(140A) 또는 플랫폼(100)의 인터페이스(140B)일 수 있다. 상거래 관리 엔진(136)의 기능을 제한하는 데 주의를 기울이지 않으면, 느린 데이터베이스 또는 중요하지 않은 백엔드 장애를 통한 인프라 저하, 데이터 센터 오프라인 상태와 같은 치명적인 인프라 장애, 예상보다 실행 시간이 더 오래 걸리는 새 코드 배포 등을 통해 응답성이 손상될 수 있다. 이러한 상황을 방지하거나 완화하기 위해, 상거래 관리 엔진(136)은 예컨대 성능 저하를 방지하기 위해 타임 아웃, 큐, 배압 등을 사용하는 구성을 통해 응답성을 유지하도록 구성될 수 있다.
온라인 스토어 데이터를 격리하는 것은 온라인 스토어(138)와 판매자 사이의 데이터 프라이버시를 유지하는 데 중요하지만, 예를 들어, 주문 위험 평가 시스템 또는 플랫폼 결제 설비와 함께 교차 스토어 데이터를 수집하고 사용하는 이유가 있을 수 있으며, 이들 모두는 잘 작동하기 위해 다수의 온라인 스토어(138)로부터의 정보가 필요하다. 일부 실시예에서, 격리 원칙을 위반하기보다는, 이들 구성 요소를 상거래 관리 엔진(136)으로부터 전자 상거래 플랫폼(100) 내의 자체 인프라로 이동시키는 것이 바람직할 수 있다.
일부 실시예에서, 전자 상거래 플랫폼(100)은 플랫폼 결제 설비(120)를 제공할 수 있으며, 이는 상거래 관리 엔진(136)으로부터의 데이터를 활용하지만 격리 원칙을 위반하지 않도록 외부에 위치할 수 있는 구성 요소의 또 다른 예이다. 플랫폼 결제 설비(120)는 온라인 스토어(138)와 상호 작용하는 고객이 자신의 결제 정보를 한 번만 입력하도록 상거래 관리 엔진(136)에 의해 안전하게 저장할 수 있다. 고객이 다른 온라인 스토어(138)를 방문할 때, 이전에 가본 적이 없더라도, 플랫폼 결제 설비(120)는 더 빠르고 정확한 체크 아웃을 가능하게 하기 위해 고객의 정보를 리콜할 수 있다. 이는 교차 플랫폼 네트워크 효과를 제공할 수 있으며, 여기서 전자 상거래 플랫폼(100)은 더 많은 판매자가 가입함에 따라 판매자에게 더 유용해지는데, 예컨대, 고객 구매와 관련하여 사용하기 쉽기 때문에 더 자주 체크 아웃하는 고객이 더 많기 때문이다. 이러한 네트워크 효과를 극대화하기 위해, 온라인 스토어의 체크 아웃에서 특정 고객에 대한 결제 정보를 검색할 수 있으므로 정보를 온라인 스토어(138)에서 전역적으로 사용할 수 있다. 각각의 온라인 스토어(138)가 임의의 다른 온라인 스토어(138)에 연결하여 거기에 저장된 결제 정보를 검색하는 것은 어렵고 오류가 발생하기 쉽다. 그 결과, 플랫폼 결제 설비는 상거래 관리 엔진(136) 외부에서 구현될 수 있다.
상거래 관리 엔진(136) 내에 포함되지 않은 이러한 기능에 대해, 애플리케이션(142A-B)은 전자 상거래 플랫폼(100)에 기능을 추가하는 방법을 제공한다. 애플리케이션(142A-B)은 판매자의 온라인 스토어(138)의 데이터에 액세스하고 수정하고, 관리자(114)를 통해 작업을 수행하며, 사용자 인터페이스(예를 들어, 확장/API를 통해 표시됨)를 통해 판매자를 위한 새로운 흐름을 생성할 수 있다. 판매자는 애플리케이션 검색, 추천 및 지원(128)을 통해 애플리케이션(142A-B)을 발견하고 설치할 수 있다. 일부 실시예에서, 핵심 제품, 핵심 확장 포인트, 애플리케이션 및 관리자(114)는 함께 작동하도록 개발될 수 있다. 예를 들어, 애플리케이션 확장 포인트가 관리자(114) 내부에 구축되어 애플리케이션을 통해 핵심 기능이 확장될 수 있으며, 확장을 통해 판매자에게 기능을 전달할 수 있다.
일부 실시예에서, 애플리케이션(142A-B)이 판매자에게 거래 데이터를 표시할 수 있는 경우(예를 들어, 앱: "엔진, 내장된 앱 SDK를 사용하여 모바일 및 웹 관리자에 내 앱 데이터를 표시해") 및/또는 상거래 관리 엔진(136)이 애플리케이션에게 주문형 작업을 수행하도록 요청할 수 있는 경우(엔진: "앱, 이 체크 아웃에 대한 지방세 계산을 제공해")와 같이, 애플리케이션(142A-B)은 인터페이스(140A-B)를 통해 판매자에게 기능을 전달할 수 있다.
애플리케이션(142A-B)은 온라인 스토어(138) 및 채널(110A-B)을 지원하고, 판매자 지원을 제공하며, 다른 서비스와 통합하는 것 등의 작업을 수행할 수 있다. 상거래 관리 엔진(136)이 온라인 스토어(138)에 서비스의 기초를 제공할 수 있는 경우, 애플리케이션(142A-B)은 판매자에게 특정하고 때로는 고유한 요구를 충족시키는 방법을 제공할 수 있다. 상이한 판매자는 상이한 요구를 가질 것이고, 따라서 상이한 애플리케이션(142A-B)으로부터 혜택을 받을 수 있다. 애플리케이션(142A-B)은 판매자에 대해 수행하는 기능의 유형에 따라 애플리케이션이 태그될 수 있게 하는 애플리케이션 분류(카테고리)의 개발을 통해; 검색, 순위 지정 및 추천 모델을 지원하는 애플리케이션 데이터 서비스를 통해; 애플리케이션 스토어, 홈 정보 카드, 애플리케이션 설정 페이지와 같은 애플리케이션 발견 인터페이스 등을 통해; 전자 상거래 플랫폼(100)을 통해 더 잘 발견될 수 있다.
애플리케이션(142A-B)은 인터페이스(140A-B)를 통해, 예컨대, API를 활용하여 상거래 관리 엔진(136)에 연결되어, 상거래 관리 엔진(136)을 통해 그리고 그 내에서 사용 가능한 기능 및 데이터를 (예를 들어, REST, GraphQL 등을 통해) 애플리케이션의 기능에 노출할 수 있다. 예를 들어, 전자 상거래 플랫폼(100)은 API 인터페이스(140A-B)를 애플리케이션 확장, 프로세스 흐름 서비스, 개발자 대면 자원 등을 포함하는 판매자 및 파트너 대면 제품 및 서비스에 제공할 수 있다. 고객이 쇼핑을 위해 모바일 디바이스를 더 자주 사용함에 따라, 모바일 사용과 관련된 애플리케이션(142A-B)은 증가하는 관련 상거래 트래픽을 지원하기 위해 API의 더 광범위한 사용으로부터 혜택을 받을 수 있다. 애플리케이션 및 API(예를 들어, 애플리케이션 개발을 위해 제공됨)의 사용을 통해 제공되는 유연성은 전자 상거래 플랫폼(100)이 상거래 관리 엔진(136)을 지속적으로 변경하지 않고도 판매자(및 내부 API를 통한 내부 개발자)의 새롭고 고유한 요구를 더 잘 수용할 수 있게 하여 판매자가 필요로 할 때 판매자에게 필요한 것을 제공할 수 있다. 예를 들어, 배송 서비스(122)는 배송 또는 운송업체 서비스 API를 통해 상거래 관리 엔진(136)과 통합될 수 있으며, 따라서 전자 상거래 플랫폼(100)이 상거래 관리 엔진(136)에서 실행되는 코드에 직접 영향을 주지 않고 배송 서비스 기능을 제공할 수 있게 한다.
백 오피스 동작(판매자 대면 애플리케이션(142A-B)) 및 온라인 스토어(138)(고객 대면 애플리케이션(142A-B))와 관련된 문제와 같은 많은 판매자 문제는 파트너가 애플리케이션 개발을 통해 판매자 작업 흐름을 개선하고 확장할 수 있도록 함으로써 해결될 수 있다. 비즈니스 수행의 일환으로, 많은 판매자는 백 오피스 작업(예를 들어, 판매, 재고 조사, 할인, 주문 처리 등) 및 온라인 스토어 작업(예를 들어, 온라인 샵과 관련된 애플리케이션, 플래시 판매, 신제품 제공 등)을 위해 매일 모바일 및 웹 관련 애플리케이션을 사용할 것이며, 여기서 애플리케이션(142A-B)은 확장/API(140A-B)를 통해 빠르게 성장하는 시장에서 제품을 쉽게 보고 구매할 수 있도록 돕는다. 일부 실시예에서, 파트너, 애플리케이션 개발자, 내부 애플리케이션 설비 등에 소프트웨어 개발 키트(software development kit; SDK)가 제공될 수 있으며, 이를 통해 애플리케이션 인터페이스를 샌드박스화하는 프레임을 관리자(114) 내에 생성할 수 있다. 일부 실시예에서, 관리자(114)는 프레임 내에서 일어나는 일을 제어할 수도 없고 인식할 수도 없다. SDK는 상거래 관리 엔진(136)의 확장으로서 작용하는 것과 같이 전자 상거래 플랫폼(100)의 룩앤필을 모방하는 인터페이스를 생성하기 위해 사용자 인터페이스 키트와 함께 사용될 수 있다.
API를 활용하는 애플리케이션(142A-B)은 요청시 데이터를 가져올 수 있지만 종종 업데이트가 발생할 때 데이터를 푸시해야 한다. 업데이트 이벤트는 예를 들어 고객 생성, 제품 변경 또는 주문 취소와 같은 구독 모델에서 구현될 수 있다. 업데이트 이벤트는 로컬 데이터베이스 동기화, 외부 통합 파트너에게 통지 등과 같은 상거래 관리 엔진(136)의 변경된 상태와 관련하여 필요한 업데이트를 판매자에게 제공할 수 있다. 업데이트 이벤트는 업데이트를 확인하기 위해 항상 상거래 관리 엔진(136)을 폴링하지 않고 업데이트 이벤트 구독을 통해 이 기능을 가능하게 할 수 있다. 일부 실시예에서, 업데이트 이벤트 구독과 관련된 변경이 발생할 때, 상거래 관리 엔진(136)은 미리 정의된 콜백 URL에 요청을 게시할 수 있다. 이러한 요청의 본문에는 객체의 새로운 상태 및 행동 또는 이벤트에 대한 설명이 포함될 수 있다. 업데이트 이벤트 구독은 관리자 설비(114)에서 수동으로 생성되거나 자동으로 (예를 들어, API(140A-B)를 통해) 생성될 수 있다. 일부 실시예에서, 업데이트 이벤트는 업데이트 이벤트를 트리거한 상태 변경으로부터 비동기식으로 큐잉되고 처리될 수 있으며, 이는 실시간으로 배포되지 않는 업데이트 이벤트 알림을 생성할 수 있다.
일부 실시예에서, 전자 상거래 플랫폼(100)은 애플리케이션 검색, 추천 및 지원(128)을 제공할 수 있다. 애플리케이션 검색, 추천 및 지원(128)은 애플리케이션 개발을 돕는 개발자 제품 및 도구, 애플리케이션 대시 보드(예를 들어, 개발자에게 개발 인터페이스 제공, 관리자에게 애플리케이션 관리 제공, 판매자에게 애플리케이션 맞춤화 제공), 애플리케이션을 설치하고 애플리케이션(142A-B)에 대한 액세스를 제공하는 것과 관련하여 권한을 제공하기 위한 설비(예를 들어, 설치하기 전에 기준을 충족해야 하는 경우와 같은 공용 액세스 경우 또는 판매자가 개인적으로 사용하는 경우), 판매자가 자신의 온라인 스토어(138)에 대한 요구를 충족하는 애플리케이션(142A-B)을 쉽게 검색할 수 있도록 하는 애플리케이션 검색, 판매자에게 온라인 스토어(138)를 통해 사용자 경험을 개선할 수 있는 방법에 대한 제안을 제공하기 위한 애플리케이션 추천, 상거래 관리 엔진(136) 내의 핵심 애플리케이션 기능에 대한 설명 등을 포함할 수 있다. 이러한 지원 설비는 자체 애플리케이션(142A-B)을 개발하는 판매자, 애플리케이션(142A-B)을 개발하는 타사 개발자(예를 들어, 판매자와 계약, 대중에게 제공하기 위해 자체적으로 개발, 전자 상거래 플랫폼(100)과 관련하여 사용하기 위해 계약 등)를 포함하는 임의의 엔티티에 의해 수행되는 애플리케이션 개발에 의해 사용될 수 있으며, 애플리케이션(142A 또는 142B)은 전자 상거래 플랫폼(100)과 관련된 내부 개인 자원에 의해 개발된다. 일부 실시예들에서, 애플리케이션(142A-B)에는 애플리케이션으로의 연결(예를 들어, API를 통해), 애플리케이션 검색, 애플리케이션 추천 등을 위해 애플리케이션 식별자(ID)가 할당될 수 있다.
상거래 관리 엔진(136)은 전자 상거래 플랫폼(100)의 기본 기능을 포함하고 API(140A-B)를 통해 이들 기능을 애플리케이션(142A-B)에 노출할 수 있다. API(140A-B)는 상이한 유형의 애플리케이션이 애플리케이션 개발을 통해 구축될 수 있게 한다. 애플리케이션(142A-B)은 판매자에 대한 매우 다양한 요구를 충족시킬 수 있지만, 고객 대면 애플리케이션, 판매자 대면 애플리케이션, 통합 애플리케이션 등의 세 가지 카테고리로 대략 그룹화될 수 있다. 고객 대면 애플리케이션(142A-B)은 판매자가 제품을 나열하고 구매할 수 있는 장소인 온라인 스토어(138) 또는 채널(110A-B)을 포함할 수 있다(예를 들어, 온라인 스토어, 플래시 판매를 위한 애플리케이션(예를 들어, 판매자 제품 또는 타사 소스의 기회적 판매 기회), 모바일 스토어 애플리케이션, 소셜 미디어 채널, 도매 구매 제공 애플리케이션 등). 판매자 대면 애플리케이션(142A-B)은 판매자가 자신의 온라인 스토어(138)를 관리하고(예를 들어, 웹 또는 웹 사이트 또는 모바일 디바이스와 관련된 애플리케이션을 통해), 비즈니스를 운영하고(예를 들어, POS 디바이스와 관련된 애플리케이션을 통해), 비즈니스를 성장시키는(예를 들어, 배송과 관련된 애플리케이션(예를 들어, 드롭 배송), 자동화 에이전트 사용, 프로세스 흐름 개발 및 개선 사용을 통해) 것 등을 할 수 있게 하는 애플리케이션을 포함할 수 있다. 통합 애플리케이션은 배송 제공자(112) 및 결제 게이트웨이와 같은 비즈니스 운영에 참여하는 유용한 통합을 제공하는 애플리케이션을 포함할 수 있다.
일부 실시예에서, 애플리케이션 개발자는 애플리케이션 프록시를 사용하여 외부 장소로부터 데이터를 가져와 온라인 스토어(138)의 페이지에 디스플레이할 수 있다. 이러한 프록시 페이지의 콘텐츠는 동적일 수 있으며, 업데이트가 가능할 수 있다. 애플리케이션 프록시는 이미지 갤러리, 통계, 맞춤형 형태 및 기타 종류의 동적 콘텐츠를 디스플레이하는 데 유용할 수 있다. 전자 상거래 플랫폼(100)의 핵심 애플리케이션 구조는 상거래 관리 엔진(136)이 더 일반적으로 사용되는 상거래 비즈니스 로직에 집중할 수 있도록 증가하는 판매자 경험이 애플리케이션(142A-B)에 구축될 수 있게 할 수 있다.
전자 상거래 플랫폼(100)은 판매자가 유연하고 투명한 방식으로 고객과 연결될 수 있도록 큐레이팅된 시스템 아키텍처를 통해 온라인 쇼핑 경험을 제공한다. 전형적인 고객 경험은 예시적인 구매 작업 흐름을 통해 더 잘 이해될 수 있으며, 여기서 고객은 채널(110A-B)을 통해 판매자의 제품을 검색하고, 구매하려는 제품을 장바구니에 추가하고, 체크 아웃을 진행하며, 장바구니의 콘텐츠에 대해 지불하여 판매자를 위한 주문을 생성한다. 그런 다음, 판매자는 주문을 검토하고 이행(또는 취소)할 수 있다. 그런 다음, 제품은 고객에게 전달된다. 고객이 만족스럽지 않으면, 판매자에게 제품을 반품할 수 있다.
예시적인 실시예에서, 고객은 채널(110A-B)을 통해 판매자의 제품을 열람할 수 있다. 채널(110A-B)은 고객이 제품을 보고 구매할 수 있는 곳이다. 일부 실시예에서, 채널(110A-B)은 애플리케이션(142A-B)으로서 모델링될 수 있다(가능한 예외는 상거래 관리 엔진(136) 내에 통합된 온라인 스토어(138)). 판매자 구성 요소를 통해 판매자는 판매하려는 제품과 판매 위치를 설명할 수 있다. 제품과 채널 간의 연관성은 제품 게시로 모델링될 수 있으며 제품 목록 API 등을 통해 채널 애플리케이션에 의해 액세스될 수 있다. 제품에는 크기 및 색상과 같은 많은 옵션과 사용 가능한 옵션을 모든 옵션의 특정 조합으로 확장하는 많은 변형이 있을 수 있다(예컨대, 매우 작고 녹색인 변형 또는 크기가 크고 파란색인 변형). 제품에는 적어도 하나의 변형이 있을 수 있다(예를 들어, 옵션이 없는 제품에 대해 "기본 변형"이 생성됨). 열람 및 관리를 용이하게 하기 위해, 제품은 컬렉션, 제공된 제품 식별자(예를 들어, 재고 관리 코드(SKU)) 등으로 그룹화될 수 있다. 제품 컬렉션은 제품을 하나로 수동 분류하거나(예를 들어, 맞춤형 컬렉션) 자동 분류를 위한 규칙 세트 등을 구축함으로써(예를 들어, 스마트 컬렉션) 구축될 수 있다. 제품을 가상 또는 증강 현실 인터페이스 등을 통해 2D 이미지, 3D 이미지, 회전 뷰 이미지로 볼 수 있다.
일부 실시예에서, 고객은 구매하려는 제품을 장바구니에 추가할 수 있다(대안적인 실시예에서, 제품은 본 명세서에 설명된 바와 같이 구매 버튼을 통해 직접 구매될 수 있다). 고객은 쇼핑 장바구니에 제품 변형을 추가할 수 있다. 쇼핑 장바구니 모델은 채널 특징적일 수 있다. 온라인 스토어(138) 장바구니는 여러 장바구니 항별 물품으로 구성될 수 있으며, 각각의 장바구니 항별 물품은 제품 변형에 대한 수량을 추적한다. 판매자는 장바구니 스크립트를 사용하여 장바구니 콘텐츠에 따라 고객에게 특별 프로모션을 제공할 수 있다. 장바구니에 제품을 추가하는 것은 고객이나 판매자의 약속을 의미하지 않으며 장바구니의 예상 수명은 몇 분(며칠이 아님) 정도일 수 있으므로 장바구니는 임시 데이터 저장소에 지속될 수 있다.
그런 다음, 고객은 체크 아웃을 진행한다. 체크 아웃 구성 요소는 웹 체크 아웃을 고객 대면 주문 생성 프로세스로 구현할 수 있다. 체크 아웃 API는 고객을 대신하여 주문을 생성하기 위해 일부 채널 애플리케이션에서 사용되는 컴퓨터 대면 주문 생성 프로세스로 제공될 수 있다(예를 들어, POS 경우). 체크 아웃은 장바구니에서 생성될 수 있으며 이메일 주소, 청구서 및 배송 세부 사항과 같은 고객 정보를 기록할 수 있다. 체크 아웃시 판매자는 가격을 책정한다. 고객이 자신들의 연락처 정보를 입력했지만 결제를 진행하지 않는 경우, 전자 상거래 플랫폼(100)은 고객을 다시 관여시킬 기회를 제공할 수 있다(예를 들어, 포기된 체크 아웃 기능에서). 이러한 이유로, 체크 아웃은 장바구니보다 훨씬 더 긴 수명(몇 시간 또는 며칠)을 가질 수 있으므로 지속된다. 체크 아웃은 고객의 배송 주소에 따라 세금 및 배송비를 계산할 수 있다. 체크 아웃은 세금 계산을 세금 구성 요소에 위임하고 배송비 계산을 배송 구성 요소에 위임할 수 있다. 가격 구성 요소를 통해 판매자는 할인 코드(예를 들어, 체크 아웃 진입시 체크 아웃의 물품에 새로운 가격을 적용하는 '비밀' 문자열)를 생성할 수 있다. 판매자는 고객을 유치하고 마케팅 캠페인의 성과를 평가하기 위해 할인을 사용할 수 있다. 할인 및 기타 맞춤형 가격 시스템은 가격 규칙(예를 들어, 충족될 때 자격 집합을 의미하는 전제 조건 집합)을 통해 동일한 플랫폼 부분 위에 구현될 수 있다. 예를 들어, 전제 조건은 "주문 소계가 $ 100보다 큼" 또는 "배송비가 $ 10 미만"과 같은 항목이 될 수 있으며, 자격은 "전체 주문에 대해 20 % 할인" 또는 "X, Y, Z 제품 $ 10 할인"과 같은 항목일 수 있다.
그런 다음, 고객은 자신의 장바구니의 콘텐츠에 대해 지불하여 판매자를 위한 주문을 생성한다. 채널(110A-B)은 상거래 관리 엔진(136)을 사용하여 돈, 통화 또는 가치 저장소(예를 들어, 달러 또는 암호 화폐)를 고객 및 판매자와 주고받을 수 있다. 다양한 결제 제공자(예를 들어, 온라인 결제 시스템, 모바일 결제 시스템, 디지털 지갑, 신용 카드 게이트웨이 등)와의 통신은 결제 처리 구성 요소 내에 구현될 수 있다. 결제 게이트웨이(106)와의 실제 상호 작용은 카드 서버 환경을 통해 제공될 수 있다. 일부 실시예에서, 결제 게이트웨이(106)는 선도적인 국제 신용 카드 프로세서와의 통합과 같은 국제 결제를 수락할 수 있다. 카드 서버 환경은 카드 서버 애플리케이션, 카드 싱크, 호스팅된 필드 등을 포함할 수 있다. 이러한 환경은 민감한 신용 카드 정보의 보안 게이트키퍼 역할을 할 수 있다. 일부 실시예에서, 대부분의 프로세스는 결제 처리 작업에 의해 조정될 수 있다. 상거래 관리 엔진(136)은 오프 사이트 결제 게이트웨이(106)(예를 들어, 고객이 다른 웹 사이트로 다시 보내지는 경우), 수동(예를 들어, 현금), 온라인 결제 방법(예를 들어, 온라인 결제 시스템, 모바일 결제 시스템, 디지털 지갑, 신용 카드 게이트웨이 등), 기프트 카드 등과 같은 많은 다른 결제 방법을 지원할 수 있다. 체크 아웃 프로세스가 끝나면, 주문이 생성된다. 주문은 판매자가 주문(예를 들어, 주문 항별 물품, 배송 항별 물품 등)에 나열된 제품 및 서비스를 제공하는 데 동의하고 고객이 결제(세금 포함)를 제공하는 데 동의하는 경우 판매자와 고객 사이의 판매 계약이다. 이 프로세스는 판매 구성 요소에서 모델링될 수 있다. 상거래 관리 엔진(136) 체크 아웃에 의존하지 않는 채널(110A-B)은 주문 API를 사용하여 주문을 생성할 수 있다. 주문이 생성되면, 알림 구성 요소를 통해 주문 확인 알림이 고객에게 전송되고 주문 접수 알림이 판매자에게 전송된다. 초과 판매를 방지하기 위해 결제 처리 작업이 시작될 때 재고를 예약할 수 있다(예를 들어, 판매자는 재고 정책의 각 변형으로 이 동작을 제어할 수 있음). 재고 예약은 짧은 기간(몇분)일 수 있으며, 플래시 판매를 지원하기 위해 매우 빠르고 확장 가능해야 할 수 있다(예를 들어, 충동 구매를 겨냥하는 것과 같이 단기간 제공되는 할인 또는 프로모션). 결제가 실패하면 예약이 해제된다. 결제가 성공하고 주문이 생성되면, 예약은 특정 장소에 할당된 장기 재고 약속으로 전환된다. 재고 구성 요소는 변형이 저장되는 위치를 기록할 수 있고, 재고 추적이 활성화된 변형의 수량을 추적할 수 있다. 재고 물품(수량과 장소가 관리되는 물품을 나타내는 판매자 대면 개념)에서 제품 변형(제품 목록의 템플릿을 나타내는 고객 대면 개념)을 분리할 수 있다. 재고 수준 구성 요소는 판매 가능하거나, 주문으로 약속되거나 재고 이송 구성 요소(예를 들어, 공급업체)로부터 들어오는 수량을 추적할 수 있다.
그런 다음, 판매자는 주문을 검토하고 이행(또는 취소)할 수 있다. 검토 구성 요소는 주문을 실제로 이행하기 전에 주문을 이행하기 적합한지 확인하기 위해 판매자가 사용하는 비즈니스 프로세스를 구현할 수 있다. 주문이 사기일 수 있고, 검증(예를 들어, ID 확인)이 필요할 수 있으며, 판매자가 자금을 받을 수 있도록 기다려야 하는 결제 방법 등이 있을 수 있다. 위험 및 추천은 주문 위험 모델에서 지속될 수 있다. 주문 위험은 주문 위험 API 등을 통해 타사가 제출한 사기 검출 도구에서 생성될 수 있다. 주문 이행으로 진행하기 전에, 판매자는 결제 정보(예를 들어, 신용 카드 정보)를 캡처하거나 (예를 들어, 은행 송금, 수표 등을 통해) 수신할 때까지 기다려야 할 수 있으며 주문을 결제된 것으로 표시할 수 있다. 판매자는 이제 배송을 위해 제품을 준비할 수 있다. 일부 실시예에서, 이 비즈니스 프로세스는 이행 구성 요소에 의해 구현될 수 있다. 이행 구성 요소는 재고 장소 및 이행 서비스에 기초하여 주문의 항별 물품을 논리적 이행 작업 단위로 그룹화할 수 있다. 판매자는 판매자가 제품을 골라 상자에 포장하고 배송 라벨을 구매하고 추적 번호를 입력할 때 사용되는 수동 이행 서비스(예를 들어, 판매자 관리 장소에서)를 통해 작업 단위를 검토하고 조정하고 관련 이행 서비스를 트리거할 수 있거나 단순히 물품을 이행된 것으로 표시할 수 있다. 맞춤형 이행 서비스는 이메일을 보낼 수 있다(예를 들어, API 연결을 제공하지 않는 장소). API 이행 서비스는 타사 애플리케이션이 이행 기록을 생성하는 경우 타사를 트리거할 수 있다. 레거시 이행 서비스는 상거래 관리 엔진(136)에서 타사로의 맞춤형 API 호출을 트리거할 수 있다(예를 들어, Amazon에 의한 이행). 기프트 카드 이행 서비스는 기프트 카드를 제공(예를 들어, 번호 생성)하고 활성화할 수 있다. 판매자는 주문 프린터 애플리케이션을 사용하여 포장 전표를 인쇄할 수 있다. 이행 프로세스는 물품이 상자에 포장되어 배송 준비, 배송, 추적, 배달, 고객이 수령한 것으로 확인될 때 실행될 수 있다.
고객이 만족스럽지 않으면, 판매자에게 제품(들)을 반품할 수 있다. 판매자가 물품을 "판매 취소"할 수 있는 비즈니스 프로세스는 반품 구성 요소에 의해 구현될 수 있다. 반품은 다양한 조치로 구성될 수 있으며, 예컨대, 판매된 제품이 실제로 다시 사업장으로 돌아와 다시 판매될 수 있는 경우 재입고, 고객으로부터 수금한 금액이 일부 또는 전부 반환되는 경우 환불, 환불된 금액을 기록하는 회계 조정(예를 들어, 재입고 수수료가 있거나 반품되지 않고 고객의 손에 남아있는 제품이 있는지 여부 포함) 등으로 구성될 수 있다. 반품은 판매 계약(예를 들어, 주문)의 변경을 나타낼 수 있으며, 전자 상거래 플랫폼(100)은 판매자가 법적 의무와 관련하여(예를 들어, 세금과 관련하여) 준수 문제를 인식할 수 있게 한다. 일부 실시예에서, 전자 상거래 플랫폼(100)은 판매자가 판매 모델 구성 요소를 통해 구현되는 것과 같이 시간에 따른 판매 계약의 변경을 추적할 수 있게 할 수 있다(예를 들어, 물품에 발생한 판매 관련 이벤트를 기록하는 첨부 전용 날짜 기반 원장).
전자 상거래 플랫폼에서 증강 현실 구현
증강 현실(AR)은 향상된 고객 경험을 제공하기 위해 상거래에 사용될 수 있다. 전자 상거래 플랫폼(100)은 임의의 다양한 상이한 애플리케이션에 대해 AR을 구현할 수 있으며, 그 예는 본 명세서의 다른 곳에서 설명된다. 도 3은 AR 엔진(300)을 포함하는 도 1의 전자 상거래 플랫폼(100)을 도시한다. AR 엔진(300)은 전자 상거래 플랫폼(100), 고객 디바이스(150) 및/또는 판매자 디바이스(102)에 의해 사용하기 위한 AR 콘텐츠를 생성하는 컴퓨터 구현 시스템의 예이다.
AR 엔진(300)이 도 3에서 전자 상거래 플랫폼(100)의 별개의 구성 요소로서 도시되어 있지만, 이것은 단지 예일 뿐이다. AR 엔진은 전자 상거래 플랫폼(100) 내부 또는 외부에 있는 다른 구성 요소에 의해 또한 또는 대신 제공될 수 있다. 일부 실시예에서, 애플리케이션(142A-B) 중 하나 또는 둘 모두는 고객 및/또는 판매자가 이용할 수 있는 AR 엔진을 제공한다. 또한, 일부 실시예에서, 상거래 관리 엔진(136)은 AR 엔진을 제공한다. 전자 상거래 플랫폼(100)은 하나 이상의 당사자에 의해 제공되는 다수의 AR 엔진을 포함할 수 있다. 다수의 AR 엔진은 동일한 방식, 유사한 방식 및/또는 별개의 방식으로 구현될 수 있다. 또한, AR 엔진의 적어도 일부는 판매자 디바이스(102) 및/또는 고객 디바이스(150)에서 구현될 수 있다. 예를 들어, 고객 디바이스(150)는 소프트웨어 애플리케이션으로서 국부적으로 AR 엔진을 저장하고 실행할 수 있다.
AR 엔진(300)은 본 명세서에 설명된 기능 중 적어도 일부를 구현할 수 있다. 아래에 설명되는 실시예는 전자 상거래 플랫폼(100)과 같은 (그러나 이에 제한되지 않음) 전자 상거래 플랫폼과 관련하여 구현될 수 있지만, 아래에 설명되는 실시예는 도 1 내지 도 3의 특정 전자 상거래 플랫폼(100)으로 제한되지 않는다. 또한, 본 명세서에 설명된 실시예는 반드시 전자 상거래 플랫폼과 관련하여 구현될 필요가 없거나 이를 포함할 필요가 없다. 일반적으로, AR의 모든 애플리케이션은 본 명세서에 개시된 시스템 및 방법을 구현할 수 있다.
상거래에서 AR 적용
AR은 가상 콘텐츠로 사용자의 현실 세계 환경을 보완하여 현실 세계 환경에 대한 사용자의 인식을 바꿀 수 있다. 동시적 위치 인식 및 매핑(simultaneous localization and mapping; SLAM)으로 공지된 프로세스를 통해, 사용자의 현실 세계 환경의 표현과 해당 현실 세계 환경 내의 사용자의 위치를 AR 엔진에 의해 지속적으로 또는 간헐적으로 결정할 수 있다. 본 명세서에서 사용된 바와 같이, 위치는 방향 및 장소 모두를 포함할 수 있다는 점을 유념해야 한다. 그런 다음, 하나 이상의 가상 모델을 현실 세계 환경의 표현에 매핑하여 사용자를 위한 AR 경험을 생성할 수 있다. 사용자를 위한 AR 콘텐츠는 현실 세계 환경에 오버레이되는 가상 모델의 렌더링을 포함할 수 있다. 렌더링은 현실 세계 환경에서 사용자의 상대적 위치와 현실 세계 환경에 대한 가상 모델의 매핑을 반영하기 위해 생성된다. 이러한 방식으로, AR 콘텐츠는 가상 모델과 사용자를 위한 현실 세계 공간의 거의 완벽한 통합을 제공할 수 있다.
AR을 통해 고객은 실제 제품과 상호 작용할 수 없을 때 가상 제품을 보고 상호 작용할 수 있다. 예를 들어, AR은 제품의 가상 표현을 이미지로 캡처된 현실 세계 환경에 중첩하여 제품이 현실 세계 환경에 존재하는 것처럼 보이게 할 수 있다. 이미지는 고객의 집 또는 고객과 관련된 다른 장소일 수 있으므로 고객은 고객의 관심 환경에서 제품을 볼 수 있다. 일부 구현에서, 가구 소매업자는 AR을 사용하여 고객이 자신의 집에서 가상 가구를 볼 수 있도록 할 수 있다. 예를 들어, 텔레비전의 가상 표현이 AR을 사용하여 고객 거실의 비디오 스트림에 중첩될 수 있어 거실에 있는 텔레비전의 크기와 모양을 인식할 수 있다.
종래에는, AR 경험은 단일 사용자 및/또는 단일 사용자 디바이스로 제한되었다. 텔레비전의 가상 표현이 고객 거실의 비디오 스트림에 중첩되는 예를 고려한다. 여기에서, AR 경험은 거실의 비디오를 캡처하는 고객으로 제한된다. 이는 경우에 따라 AR 경험의 기능을 제한할 수 있다. 예를 들어, 고객은 원격 판매자(즉, 고객과 같은 장소에 있지 않은 판매자)에게 텔레비전에 대한 특정 질문을 하기 원할 수 있다. 고객이 텔레비전의 가상 표현을 보면서 판매자와 말하거나 다른 방법으로 의사 소통할 수 있더라도, 고객은 여전히 판매자에게 질문을 분명하게 표현하는 데 어려움을 겪을 수 있다. 판매자는 고객이 보고 있는 AR 경험을 볼 수 없다. 따라서, 판매자는 고객이 텔레비전의 어느 부분을 참조하는지 알지 못하며 고객이 묻는 질문에 대해 제한된 콘텍스트를 갖는다. 예를 들어, 고객이 텔레비전의 특정 구성 요소에 대해 질문을 할 수 있지만 판매자에게 자신이 언급하는 텔레비전 구성 요소를 설명하기 어려울 수 있다. 유사한 설명이 판매자에게 적용되며, 판매자는 (현실 세계에서 또는 가상으로) 텔레비전을 볼 수도 있지만 판매자가 참조하는 텔레비전의 구성 요소를 고객이 알지 못하는 경우 고객에게 응답을 분명하게 표현하는 데 어려움을 겪을 수 있다.
단일 사용자 AR 경험의 한계는 고객과 판매자 사이의 상호 작용을 넘어 확장된다. 고객이 거실의 비디오 스트림 위에 중첩된 텔레비전의 가상 표현을 보는 예를 다시 참조하면, 이 거실은 다른 개인과 공유될 수 있다. 고객과 다른 개인은 상이한 두 장소에 있을 수 있지만, 텔레비전을 볼 때 협력하기를 원할 수 있다. 고객과 다른 개인이 각각의 AR 경험에서 텔레비전을 보고 서로 말할 수 있더라도, 고객과 다른 개인은 여전히 다른 사람이 보고 있는 텔레비전의 구성 요소나 측면을 결정하는 데 어려움을 겪을 수 있다. 이는 고객과 다른 개인 사이의 의사 소통과 협력을 방해할 수 있다.
또한, 고객과 다른 개인이 모두 같은 장소에서 각각의 AR 경험으로 텔레비전을 보고 있더라도, 문제가 발생할 수 있다. 일부 경우에, 고객과 다른 개인은 모두 같은 방(예를 들어, 공유 거실)에 있는 동안 협력하여 텔레비전을 함께 쇼핑하기를 원할 수 있다. AR 콘텐츠는 일반적으로 한 사용자 시각에서 생성되기 때문에, 한 사용자를 위해 생성된 AR 콘텐츠를 다른 사용자와 공유하기가 어렵다. 모바일 디바이스, 안경 세트 또는 헤드셋의 시각은 다른 디바이스가 같은 방에 있어도 다른 디바이스와 공유하기가 어렵다.
AR 경험을 다수의 사용자로 확장하면 AR 경험 내에서 협력이 가능하고 AR 경험의 전반적인 기능이 향상될 수 있다. 그러나, 다수의 사용자를 동시에 수용할 수 있는 AR 경험을 제공하는 데는 기술적 과제가 있다. 예를 들어, 두 명 이상의 사용자가 서로 다른 사이트에서 AR 경험에 액세스하는 경우, 효과적인 의사 소통을 가능하게 하는 방식으로 AR 경험에서 각 사용자의 위치 인식 및 매핑이 어려울 수 있다.
일부 실시예가 상거래 애플리케이션의 맥락에서 설명되었지만, 본 개시는 결코 상거래로 제한되지 않는다는 점을 유념해야 한다. 본 명세서에 개시된 시스템 및 방법은 AR의 다른 애플리케이션에서도 구현될 수 있다.
다중 사용자 AR
본 개시는 부분적으로 다중 사용자 AR 콘텐츠를 생성하기 위한 시스템 및 방법에 관한 것이다. 다중 사용자 AR 콘텐츠는 상이한 물리적 위치에 있는 다수의 사용자에게 공유 AR 경험을 제공할 수 있다. 사용자 사이의 물리적 분리에도 불구하고, 공유 AR 경험과 관련된 AR 콘텐츠가 각각의 사용자를 위해 생성될 수 있다. 공유 AR 경험은 예를 들어 가상 물품과 같은 가상 콘텐츠를 포함하는 단일 가상 좌표계를 구현할 수 있다. 가상 좌표계를 정의한 후, SLAM 프로세스(예)가 각각의 사용자를 가상 좌표계에 매핑하여 사용자를 위한 AR 콘텐츠를 생성할 수 있다. 따라서, 이러한 방식으로, 각각의 사용자는 공유 AR 경험의 고유한 관점을 통해 동일한 가상 콘텐츠를 경험할 수 있다.
일부 실시예에서, 공유 AR 경험에서 각각의 사용자를 위해 생성된 AR 콘텐츠는 다른 사용자의 가상 표현을 포함할 수 있다. 이는 상이한 사용자 사이의 의사 소통을 개선하여 공유 AR 경험 내에서 협력 및 협동을 용이하게 하는 데 도움이 될 수 있다. 예를 들어, 사용자의 가상 표현은 다수의 사용자가 AR 경험에서 가상 물품에 대한 서로의 관점을 인식할 수 있도록 하여 사용자 사이의 의사 소통을 위한 콘텍스트를 제공할 수 있다. 각각의 사용자는 공유 AR 경험에서 가상 물품을 보고 다른 사용자가 가상 물품을 어떻게 보고 있는지 볼 수 있다. 예를 들어, 상거래 애플리케이션에서, 이를 통해 다수의 사용자는 제품을 보고 다른 사용자가 제품을 어떻게 보고 있는지 볼 수 있다.
공유 AR 경험에서 사용자를 위한 다중 사용자 AR 콘텐츠는 오디오 콘텐츠를 더 포함할 수 있다. 이 오디오 콘텐츠는 공유 AR 경험에서 다른 사용자로부터 획득될 수 있으며, 예를 들어 다른 사용자가 말하는 오디오 녹음을 포함할 수 있다. 일부 구현에서, 오디오 콘텐츠는 공유 AR 경험에서 오디오 콘텐츠가 관련된 사용자 또는 객체의 위치에 대응하는 방향성을 포함한다. 방향성 오디오는 사용자가 공유 AR 경험에서 다른 사용자 또는 객체의 상대적 위치를 더 잘 결정하는 데 도움이 될 수 있다. 일 예에서, 제 1 사용자가 AR 경험에서 제 2 사용자의 시야에 없다면, 방향성 오디오는 여전히 AR 경험에서 제 1 사용자의 위치의 표시를 제 2 사용자에게 제공할 수 있다. 또 다른 예에서, 사용자가 공유 AR 경험에서 상이한 위치에 있는 다수의 다른 사용자의 가상 표현을 볼 수 있고 다른 사용자 중 한 명이 말하고 있으면, 방향성 오디오는 사용자가 다른 사용자 중 누가 말하고 있는지 결정하는 데 도움이 될 수 있다.
일부 실시예에서, 다중 사용자 AR 콘텐츠는 가상 사용자 상호 작용을 도시한다. 다시 말해서, 공유 AR 경험 내에서 한 사용자의 가상 상호 작용은 AR 경험의 다른 사용자(들)에게 전달된다. 이러한 상호 작용의 예는 사용자가 AR 경험에서 가상 물품을 향해 제스처를 취하고 심지어 가상 물품을 터치하는 것을 포함한다. AR 경험에 가상 상호 작용을 디스플레이하면 상이한 사용자 사이의 비언어적 의사 소통을 가능하게 하는 데 도움이 될 수 있다.
도 4는 일 실시예에 따른 공유 AR 경험을 위한 AR 콘텐츠(402)를 디스플레이하는 사용자 디바이스(400)를 도시한다. 공유 AR 경험의 제 1 사용자는 사용자 디바이스(400)를 조작하고 AR 콘텐츠(402)를 보고 있다. 도시된 바와 같이, 사용자 디바이스(400)는 또한 제 2 사용자가 공유 AR 경험에 존재한다는 표시(410)를 디스플레이할 수 있다. 제 2 사용자는 상이한 사용자 디바이스를 통해 공유 AR 경험에 액세스할 수 있으며 제 1 사용자와 상이한 물리적 장소에 있을 수 있다. 사용자 디바이스(400)는 도시된 바와 같이 공유 AR 경험을 종료하기 위한 옵션(412), 제 2 사용자가 제 1 사용자의 소리를 들을 수 없도록 사용자 디바이스(400)의 마이크를 음소거하기 위한 옵션(414) 및 다른 기능에 액세스하기 위한 옵션(416)을 추가로 디스플레이할 수 있다.
AR 콘텐츠(402)는 스탠드 업 주방 믹서의 가상 표현(404), 제 2 사용자의 가상 표현(406), 및 제 2 사용자와 믹서 사이의 상호 작용의 가상 표현(408)을 포함한다. 제 2 사용자의 가상 표현(406)은 휴대 전화를 들고 있는 손의 형태이고. 상호 작용의 가상 표현(408)은 믹서를 가리키는 손의 형태이지만, 이들은 단지 예일 뿐이다.
가상 표현(404, 406, 408)은 시각적 콘텐츠의 예이다. 그러나, AR 콘텐츠(402)는 햅틱 및/또는 오디오 콘텐츠를 더 포함할 수 있다. 예를 들어, AR 콘텐츠(402)는 제 1 사용자 및 제 2 사용자가 서로 말할 수 있도록 제 2 사용자의 음성의 녹음을 포함할 수 있다.
AR 콘텐츠(402)는 제 1 사용자의 주방 이미지에 오버레이되어 가상 표현(404)은 주방의 카운터에 놓여 있는 믹서를 현실적으로 도시한다. 일부 구현에서, AR 콘텐츠(402)는 SLAM 프로세스를 사용하여 적어도 부분적으로 생성된다. 믹서의 가상 표현(404)은 공유 AR 경험의 가상 좌표계 내에 정의된 믹서의 3 차원(3D) 모델의 렌더링일 수 있다. 가상 좌표계는 믹서의 모델이 주방 카운터에 배치되도록 제 1 사용자의 주방 표현에 매핑된다. 이러한 제 1 사용자의 주방 표현은 예를 들어 사용자 디바이스(400) 상의 카메라 또는 다른 센서를 사용하여 획득되었을 수 있다. 가상 좌표계를 제 1 사용자의 주방 표현에 매핑한 후, 주방 내의 제 1 사용자의 위치가 결정되어 가상 좌표계에 매핑될 있다. 그런 다음, 가상 좌표계에서 제 1 사용자 및 믹서의 상대적 위치에 기초하여 모델의 렌더링을 생성할 수 있다.
AR 콘텐츠(402)를 사용하여, 제 1 사용자는 가상 표현(404)을 통해 믹서를 동시에 볼 수 있고, 가상 표현(406)에 기초하여 제 2 사용자가 믹서를 보는 방법을 결정할 수 있으며, 제 2 사용자가 가상 표현(408)을 통해 믹서와 상호 작용하는 방법을 결정할 수 있다. 이러한 방식으로, 가상 표현(404, 406, 408)은 공유 AR 경험에서 제 1 사용자와 제 2 사용자 사이의 의사 소통 및 협력을 개선할 수 있다.
AR 콘텐츠는 또한 공유 AR 경험에서 제 2 사용자를 위해 생성될 수 있다. 이 AR 콘텐츠는 믹서의 가상 표현, 제 1 사용자의 가상 표현, 및/또는 제 2 사용자와 믹서 사이의 상호 작용의 가상 표현을 포함할 수 있다. 제 2 사용자를 위한 AR 콘텐츠는 제 2 사용자를 둘러싼 현실 세계 환경의 표현 위에 오버레이될 수 있다.
일부 실시예에서, 공유 AR 경험은 AR 콘텐츠와 다른 가상 콘텐츠의 조합을 제공한다. 예를 들어, 도 4의 공유 AR 경험에서, 제 2 사용자에게 AR 콘텐츠가 제공되지 않을 수 있다. 제 2 사용자에게는 가상 환경에 오버레이된 믹서 모델의 렌더링이 포함된 VR 콘텐츠가 대신 제공될 수 있다. 대안적으로, 제 2 사용자는 모델을 조작(예를 들어, 회전 및 확대)할 수 있는 기능이 있는 디바이스에서 믹서의 3D 모델을 간단히 볼 수 있다.
본 개시의 실시예는 이제 도 5 내지 도 29를 참조하여 보다 상세하게 설명될 것이다.
다중 사용자 AR 콘텐츠 생성
도 5는 공유 AR 경험을 위한 다중 사용자 AR 콘텐츠를 제공하기 위한 예시적인 시스템(500)을 도시하는 블록도이다. 시스템(500)은 AR 엔진(502), 네트워크(520) 및 다수의 사용자 디바이스(530a, 530b)를 포함한다.
네트워크(520)는 AR 엔진(502) 및 사용자 디바이스(530a, 530b)를 포함하는 상이한 디바이스 사이의 유선 및/또는 무선 연결을 구현하는 컴퓨터 네트워크일 수 있다. 네트워크(520)는 당 업계에 공지된 임의의 통신 프로토콜을 구현할 수 있다. 통신 프로토콜의 비제한적인 예는 근거리 통신망(LAN), 무선 LAN, 인터넷 프로토콜(IP) 네트워크 및 셀룰러 네트워크를 포함한다.
AR 엔진(502)은 다중 사용자 AR 콘텐츠를 포함하는 AR 콘텐츠 생성을 지원한다. 도시된 바와 같이, AR 엔진(502)은 프로세서(504), 메모리(506) 및 네트워크 인터페이스(508)를 포함한다. 프로세서(504)는 메모리(506)에 또는 다른 비일시적 컴퓨터 판독 가능 매체에 저장된 명령어를 실행하는 하나 이상의 프로세서에 의해 구현될 수 있다. 대안적으로, 프로세서(504)의 일부 또는 전부는 주문형 집적 회로(ASIC), 그래픽 처리 장치(GPU) 또는 프로그래밍된 필드 프로그램 가능 게이트 어레이(FPGA)와 같은 전용 회로를 사용하여 구현될 수 있다.
네트워크 인터페이스(508)는 네트워크(520)를 통한 통신을 위해 제공된다. 네트워크 인터페이스(508)의 구조는 구현에 특정하다. 예를 들어, 네트워크 인터페이스(508)는 네트워크 인터페이스 카드(NIC), 컴퓨터 포트(예를 들어, 플러그 또는 케이블이 연결되는 물리적 콘센트) 및/또는 네트워크 소켓을 포함할 수 있다.
메모리(506)는 가상 모델 기록부(510), 사용자 공간 기록부(512), 이미지 분석기(514) 및 가상 콘텐츠 생성기(516)를 저장한다.
가상 모델 기록부(510)는 물품, 건물, 장소, 풍경, 사람, 해부학적 특징, 동물 및/또는 임의의 다른 유형의 객체의 가상 모델을 저장한다. 이러한 가상 모델은 AR 경험에 구현될 수 있다. 예를 들어, 한 명 이상의 사용자는 가상 모델 기록부(510)에 저장된 가상 모델을 검색하고 선택하여 AR 경험을 구축할 수 있다. 그런 다음, 가상 모델은 한 명 이상의 사용자를 위해 AR 경험 내에 구현되어 사용자가 가상 모델을 보고 선택적으로 상호 작용할 수 있게 한다. 도 4의 AR 경험에서 스탠드 업 주방 믹서의 모델은 가상 모델 기록부(510)에 저장될 수 있는 가상 모델의 예이다.
가상 모델 기록부(510)에 저장된 가상 모델의 임의의, 하나, 일부 또는 전부는 3 차원(3D) 모델일 수 있다. 3D 모델은 길이, 폭 및 높이로 정의된 엔티티의 수학적 표현이다. 3D 모델은 예를 들어 직교 좌표계, 원통형 좌표계 또는 극좌표계가 될 수 있는 3D 가상 좌표계 내에 배치되거나 정의될 수 있다. 3D 모델은 3D 모델이 가상 좌표계의 중심에 있도록 가상 좌표계의 원점에 고정될 수 있다. 3D 모델은 전적으로 컴퓨터로 생성되거나 현실 세계 엔티티의 측정을 기반으로 생성될 수 있다. 현실 세계 엔티티에서 3D 모델을 생성하는 가능한 방법에는 사진 측량(일련의 2D 이미지에서 3D 모델 생성) 및 3D 스캔(모든 각도를 캡처하기 위해 객체 주위로 스캐너 이동)이 포함된다.
3D 모델을 사용하면 AR 경험에서 다양한 상이한 각도로 객체를 볼 수 있다. 또한, 사용자가 3D 기능이 있는 디바이스(예를 들어, 헤드셋)를 사용하여 AR 콘텐츠를 볼 때, 3D 모델을 통해 객체의 3D 표현이 생성되어 AR 콘텐츠에 포함될 수 있다. 예를 들어, 객체의 3D 표현은 사용자의 각 눈에 객체의 약간 다른 관점을 디스플레이하여 객체에 3D 효과를 제공함으로써 달성될 수 있다.
가상 모델 기록부(510)에 저장된 모델은 또한 연관된 오디오 콘텐츠 및/또는 햅틱 콘텐츠를 가질 수 있다. 예를 들어, 가상 모델 기록부(510)는 모델에 의해 만들어지거나 이와 연관된 소리 및/또는 모델의 느낌을 제공할 수 있는 햅틱 피드백을 저장할 수 있다.
가상 모델 기록부(510)의 가상 모델은 임의의 다양한 상이한 방법으로 획득될 수 있다. 일부 구현에서, 가상 모델의 적어도 일부는 예를 들어 고객 또는 판매자와 같은 AR 엔진(502)의 사용자로부터 획득된다. 판매자는 상점에서 판매되는 제품의 임의의, 하나, 일부, 또는 전체에 대한 가상 모델을 생성할 수 있다. 이들 가상 모델은 판매자에 의해 AR 엔진(502)에 직접 제공될 수 있거나, AR 엔진(502)은 전자 상거래 플랫폼 상의 판매자 계정으로부터 및/또는 판매자의 온라인 스토어로부터 가상 모델을 획득할 수 있다. 가상 모델은 또한 예를 들어 소셜 미디어 플랫폼과 같은 다른 플랫폼으로부터 획득될 수 있다. 또한, 일부 가상 모델은 AR 엔진(502)에서 국부적으로 생성될 수 있다. 예를 들어, AR 엔진(502)에 의해 획득된 이미지 또는 스캔은 3D 모델을 생성하는 데 사용될 수 있다.
사용자 공간 기록부(512)는 현실 세계 및/또는 가상 공간의 표현을 저장한다. 현실 세계 공간의 표현은 AR 콘텐츠를 제공하기 위해 가상 콘텐츠와 오버레이될 수 있는 현실 세계 환경을 정의할 수 있으며, 가상 공간의 표현은 VR 콘텐츠를 제공하기 위해 가상 콘텐츠와 오버레이될 수 있는 컴퓨터 생성 환경을 정의할 수 있다. 공간의 표현은 사용자에 특정할 수 있다. 예를 들어, 공간의 표현은 특정 사용자로부터 획득 및/또는 특정 사용자를 위해 특별히 생성될 수 있다. 그러나, 항상 그런 것은 아니다. 대신 공간의 표현은 일반적이거나 비개인적일 수 있다.
공간의 표현은 일반적으로 공간의 경계(예를 들어, 방의 벽) 및 공간 내의 객체(예를 들어, 방 안의 구조 및 사람)를 포함하여 공간의 특징부와 관련된 공간 정보를 제공한다. 공간 정보는 공간의 임의의, 일부 또는 모든 특징부를 식별할 수 있으며 공간에 있는 특징부의 위치(장소 및 방향 포함) 및 치수를 제공할 수 있다. 이러한 특징부의 비제한적인 예는 공간의 표면, 에지 및 코너를 포함한다. 다시 말해서, 공간의 표현은 공간의 지형도, 레이아웃 또는 모델을 3D로 제공할 수 있다.
경우에 따라, 현실 세계 공간의 표현은 현실 세계 방, 건물, 영역 또는 기타 물리적 환경에 해당한다. 예를 들어, 현실 세계 공간의 표현은 사용자 디바이스에 의해 캡처된 측정을 포함하거나 그로부터 생성될 수 있다. 이러한 측정은 예를 들어 공간의 하나 이상의 광학 이미지, 레이더 스캔, 라이더 스캔 및/또는 소나 스캔을 포함할 수 있다. 현실 세계 공간의 표현은 새로운 측정이 수신되면 지속적으로 또는 간헐적으로 업데이트될 수 있다. 일부 구현에서, 현실 세계 공간의 표현은 SLAM 프로세스에 의해 생성될 수 있다.
위에서 언급한 바와 같이, 사용자 공간 기록부(512)에 저장된 공간의 표현은 컴퓨터 생성될 수 있다. 컴퓨터 생성된 공간의 표현의 예는 가상 공간의 경계와 가상 공간 내의 임의의 객체를 정의하는 컴퓨터 생성 3D 모델이다.
이미지 분석기(514)는 AR 엔진(502)에 의해 수신 및/또는 저장된 이미지를 분석하기 위해 제공된다. 일부 구현에서, 이미지 분석기(514)는 현실 세계 공간의 하나 이상의 이미지에 기초하여 현실 세계 공간의 표현을 생성하는 데 사용된다. 이미지 분석은 현실 세계 공간의 표면, 에지 및/또는 코너를 포함하여 현실 세계 공간의 특징부를 검출할 수 있다. 이미지 분석은 또한 현실 세계 공간의 이러한 특징부의 치수와 상대적 위치를 3D로 결정할 수 있다. 현실 세계 공간의 표현은 특징부의 크기, 모양 및 위치에 기초하여 생성될 수 있으며, 선택적으로 사용자 공간 기록부(512)에 저장될 수 있다.
추가 구현에서, 이미지 분석기(514)는 예를 들어 사진 측량을 통해 객체의 가상 모델을 생성하는 데 사용된다. 이러한 가상 모델은 가상 모델 기록부(510)에 저장될 수 있다.
이미지 분석기(514)에는 한번에 하나 이상의 이미지가 입력될 수 있다. 예를 들어, 상이한 위치에서 촬영한 현실 세계 공간의 다수의 이미지는 현실 세계 공간의 보다 광범위하고 보다 정확한 표현의 결정을 허용할 수 있다. 예를 들어, 비디오 스트림 또는 다수의 상이한 카메라로부터 다수의 이미지를 획득할 수 있다. 이미지 분석기(514)가 현실 세계 공간에 대한 비디오 스트림을 수신하는 경우, 이미지 분석기(514)는 현실 세계 공간의 특징부의 정확한 위치를 찾기 위해 초기 특징부 검출 동작을 수행할 수 있다. 그런 다음, 이러한 특징부는 실시간으로 비디오 스트림으로부터 수신된 후속 이미지에서 추적될 수 있다. 후속 이미지에서 검출되는 새로운 특징부는 현실 세계 공간의 표현에 추가되어 현실 세계 공간의 표현을 확장할 수 있다.
이미지 분석기(514)는 프로세서(504)에 의해 실행 가능한 소프트웨어 명령어의 형태로 구현될 수 있다. 다수의 상이한 알고리즘 중 임의의 것이 이미지 분석기(514)에 포함될 수 있다. 이러한 알고리즘의 비제한적인 예는:
● 표면, 코너 및/또는 에지 검출 알고리즘;
● 객체 인식 알고리즘;
● 움직임 검출 알고리즘; 및
● 이미지 분할 알고리즘을 포함한다.
이미지 분석 알고리즘에 대한 추가 세부 사항은 Computer Vision: Algorithms and Applications by Richard Szeliski, ISBN: 978-1-84882-935-0(Springer, 2010)에서 찾을 수 있으며, 그 내용은 그 전체가 본 명세서에 참조로 포함된다.
가상 콘텐츠 생성기(516)는 한 명 이상의 사용자를 위한 가상 콘텐츠를 생성할 수 있는 하나 이상의 알고리즘(아마도 프로세서(504)에 의해 실행 가능한 소프트웨어 명령어의 형태로)을 사용 및/또는 구현한다. 이 가상 콘텐츠는 공유 AR 경험에서 사용자를 위해 생성되는 AR 콘텐츠의 기반을 형성할 수 있다. 가상 콘텐츠의 비제한적인 예는:
● 도 4의 스탠드 업 주방 믹서의 가상 표현(404)과 같은 하나 이상의 객체의 가상 표현;
● 도 4의 제 2 사용자의 가상 표현(406)과 같은 한 명 이상의 사용자의 가상 표현; 및
● 도 4의 제 2 사용자와 믹서 사이의 상호 작용의 가상 표현(408)과 같은 하나 이상의 사용자 상호 작용의 가상 표현을 포함한다.
특정 사용자를 위한 가상 콘텐츠를 생성하기 위해, 가상 콘텐츠 생성기(516)에 대한 가능한 입력은 다음을 포함한다:
● 가상 좌표계 내에 정의된 하나 이상의 가상 모델. 가상 모델은 예를 들어 가상 모델 기록부(510)로부터 획득될 수 있다.
● 사용자와 연관된 현실 세계 또는 가상 공간의 표현. 공간의 표현은 예를 들어 사용자 공간 기록부(512)로부터 획득될 수 있다.
● 가상 좌표계를 공간에 매핑하기 위한 공간 표현 내의 가상 좌표계에 대한 앵커 포인트. 앵커 포인트는 예를 들어 사용자 디바이스로부터 수신될 수 있다.
● 예를 들어, AR 엔진에 의해 결정되는 가상 좌표계 내의 사용자의 장소.
● 예를 들어, AR 엔진에 의해 결정되는 가상 좌표계 내의 한 명 이상의 다른 사용자의 장소.
● 예를 들어, AR 엔진에 의해 결정되는 가상 좌표계 내의 하나 이상의 사용자 상호 작용의 장소.
가상 콘텐츠 생성기(516)에 의해 출력되는 가상 콘텐츠는 시각적, 햅틱 및/또는 오디오 콘텐츠를 포함할 수 있다. 시각적 콘텐츠는 사용자가 AR 경험 내에서 가상 객체를 볼 수 있게 하고, 햅틱 콘텐츠는 사용자가 AR 경험 내에서 가상 객체를 만지고 느낄 수 있게 하며, 오디오 콘텐츠는 사용자가 AR 경험 내에서 소리를 들을 수 있게 한다. 일부 구현에서, 시각적, 햅틱 및/또는 오디오 콘텐츠는 AR 경험의 가상 좌표계 내의 한 명 이상의 사용자의 위치(장소 및 방향 포함)를 기반으로 생성된다. 예를 들어, 사용자를 위한 시각적 콘텐츠는 가상 좌표계에서 객체의 모델에 대한 사용자의 상대적 위치를 기반으로 객체를 도시할 수 있다. 햅틱 콘텐츠는 가상 좌표계에서 객체에 접하고 있는 사용자의 하나 이상의 해부학적 특징부에 기초하여 객체를 만지거나 느끼는 감각을 제공할 수 있다. 예를 들어, 햅틱 콘텐츠는 내장된 햅틱이 있는 의류를 사용하여 적어도 부분적으로 구현될 수 있다. 오디오 콘텐츠는 가상 좌표계 내에서 오디오 콘텐츠의 소스에 대한 사용자의 위치에 대응하는 방향성을 가진 공간 오디오를 구현할 수 있다. 일부 구현에서, 공간 오디오는 사용자의 각각의 귀에 재생되는 소리를 독립적으로 제어함으로써 생성된다.
AR 경험에서 특정 사용자를 위해 생성된 가상 콘텐츠의 예를 고려한다. 가상 콘텐츠는 AR 경험에서 객체를 도시하는 시각적 콘텐츠, 물체의 느낌을 제공하는 햅틱 콘텐츠 및 물체에 의해 만들어진 소리를 제공하는 오디오 콘텐츠를 포함할 수 있다. 시각적 콘텐츠에 도시된 객체의 크기 및 위치는 AR 경험의 가상 좌표계에서 객체에 대한 사용자의 위치에 대응할 수 있다. 유사하게, 오디오 콘텐츠의 방향성은 가상 좌표계에서 객체에 대한 사용자의 위치에 대응할 수 있다. 객체가 사용자의 왼쪽에 있으면, 객체의 오디오 콘텐츠는 사용자의 왼쪽 귀에서 더 클 수 있다. 햅틱 콘텐츠는 사용자의 어느 부분이 객체를 터치하고 있는지 (예를 들어, 사용자가 손가락이나 손바닥으로 객체를 터치하는 경우) 및 사용자가 가상 좌표계에서 객체의 어느 부분을 터치하고 있는지를 기반으로 할 수 있다.
가상 콘텐츠는 AR 경험의 변경 및/또는 수정을 반영하기 위해 가상 콘텐츠 생성기(516)에 의해 지속적으로 또는 간헐적으로 업데이트될 수 있다. 사용자가 AR 경험의 가상 좌표계 내에서 이동하면, 가상 좌표계 내의 사용자의 새로운 위치를 반영하기 위해 새로운 가상 콘텐츠가 생성될 수 있다. 예를 들어, 사용자가 가상 좌표계에서 가상 모델에 대해 이동할 때, 모델 렌더링의 크기와 방향이 그에 따라 변경될 수 있다. 유사한 설명이 사용자를 위한 가상 콘텐츠에 포함된 오디오 콘텐츠 및 햅틱 콘텐츠에 적용되며, 이 또한 사용자가 이동할 때 변경될 수 있다.
일부 구현에서, 가상 콘텐츠 생성기(516)에 의해 사용자를 위해 생성된 가상 콘텐츠는 AR 콘텐츠이다. AR 콘텐츠는 사용자를 둘러싼 현실 세계 공간에 오버레이되어 사용자에게 AR 경험을 제공한다. 예를 들어, 카메라로 캡처한 현실 세계 공간의 이미지에 AR 콘텐츠를 오버레이하는 것이 포함될 수 있다. 대안적으로, AR 콘텐츠는 예를 들어 AR 헤드셋의 투명 디스플레이를 사용하여 현실 세계 공간에 오버레이될 수 있다. AR 콘텐츠는 사용자 공간 기록부(512)에 저장된 현실 세계 공간의 표현에 기초하여 생성될 수 있다.
일부 구현에서, 가상 콘텐츠 생성기(516)에 의해 사용자를 위해 제공된 가상 콘텐츠는 AR 콘텐츠이다. VR 콘텐츠는 가상 공간의 표현에 오버레이되는 객체, 사용자 및/또는 사용자 상호 작용의 하나 이상의 가상 표현을 포함한다. 따라서, VR 콘텐츠는 전적으로 컴퓨터로 생성될 수 있다. 가상 공간의 표현은 예를 들어 사용자 공간 기록부(512)로부터 획득될 수 있다.
일부 구현에서, 가상 콘텐츠 생성기(516)는 다수의 사용자를 위한 공유 AR 경험을 제공한다. 다수의 사용자 각각을 위해 생성된 가상 콘텐츠는 객체, 사용자 및/또는 사용자 상호 작용의 하나 이상의 가상 모델을 정의하는 단일 가상 좌표계를 기반으로 할 수 있다. 공유 AR 경험의 각각의 사용자는 가상 좌표계 내의 위치(장소 및 방향 포함)를 가질 수 있으며, 각각의 사용자를 위해 생성된 가상 콘텐츠는 위치에 따라 달라질 수 있다.
AR 콘텐츠는 공유 AR 경험의 모든 사용자를 위해 항상 생성되지 않을 수 있음을 유념해야 한다. 일부 구현에서, 공유 AR 경험은 AR 콘텐츠와 VR 콘텐츠의 조합을 제공한다. 예를 들어, 고객이 공유 AR 경험에서 판매자와 상호 작용할 때, 고객은 현실 세계 환경에 오버레이된 AR 콘텐츠를 수신할 수 있지만, 판매자는 완전히 컴퓨터 생성된 VR 콘텐츠를 수신할 수 있다. 고객과 판매자는 모두 공유 AR 경험에서 판매자가 판매한 제품의 모델을 볼 수 있다. 고객은 자신의 집에서 제품이 어떻게 보이는지 알고 싶어 할 수 있으므로, 현실 세계 환경에 오버레이될 AR 콘텐츠를 선택할 수 있다. 반면에, 판매자는 고객을 지원하기 위해 공유 AR 경험에만 있을 수 있으며 제품을 보는 환경은 신경 쓰지 않을 수 있다. 따라서, 판매자는 VR 콘텐츠를 선택할 수 있다. 대안적으로, 판매자의 가상 콘텐츠는 환경에 전혀 오버레이되지 않을 수 있다. 판매자는 단순히 빈 공간에서 하나 이상의 3D 모델을 볼 수 있다. AR 콘텐츠와 VR 콘텐츠는 모두 판매자/고객의 표현을 포함할 수 있으므로, 협력적 AR 경험을 허용한다.
이미지 분석기(514) 및 가상 콘텐츠 생성기(516)가 별도의 모델로 도시되어 있지만, 이것은 단지 예일 뿐이다. 일부 실시예는 메모리(506) 또는 다른 비일시적 컴퓨터 판독 가능 매체에 저장된 단일 소프트웨어 인스턴스에서 이미지 분석기(514) 및 가상 콘텐츠 생성기(516)의 기능을 결합할 수 있다.
AR 엔진(502)에 의해 생성된 AR 콘텐츠 및 VR 콘텐츠를 포함하는 가상 콘텐츠는 사용자 디바이스(530a, 530b) 중 하나 또는 둘 모두에 출력될 수 있다. 이와 같이, 사용자 디바이스(530a, 530b)는 각각의 사용자가 공유 AR 경험에 참여하도록 할 수 있다. 사용자 디바이스의 비제한적인 예는 휴대폰, 태블릿, 랩톱, 프로젝터, 헤드셋 및 컴퓨터를 포함한다. 예를 들어, 사용자 디바이스는 고객이 소유 및/또는 조작하는 고객 디바이스일 수 있으며, 판매자가 소유 및/또는 조작하는 판매자 디바이스일 수 있다. 일부 구현에서, 사용자 디바이스(530a, 530b) 중 하나 또는 둘 모두는 의류 재료에 내장된 디바이스 또는 안경과 같은 사용자가 착용하는 디바이스와 같은 주입형 디바이스 또는 웨어러블 디바이스를 포함하며, 사용자가 현실 세계를 보고 동시에 현실 세계에 오버레이된 가상 콘텐츠를 볼 수 있게 하는 빌트인 디스플레이를 갖는다.
사용자 디바이스(530a)는 프로세서(532a), 메모리(534a), 사용자 인터페이스(536a), 네트워크 인터페이스(538a) 및 센서(540a)를 포함한다. 유사하게, 사용자 디바이스(530b)는 프로세서(532b), 메모리(534b), 사용자 인터페이스(536b), 네트워크 인터페이스(538b) 및 센서(540b)를 포함한다. 사용자 디바이스(530a)는 아래에서 예로서 설명될 것이다. 그러나, 사용자 디바이스(530a)에 대한 설명은 또한 사용자 디바이스(530b)에도 적용될 수 있음을 유념해야 한다.
사용자 인터페이스(536a)는 예를 들어 디스플레이 스크린(터치 스크린일 수 있음), 제스처 인식 시스템, 스피커, 헤드폰, 마이크, 햅틱, 키보드 및/또는 마우스를 포함할 수 있다. 사용자 인터페이스(536a)는 예를 들어 의류 및/또는 액세서리에 내장된 웨어러블 디바이스에 의해 적어도 부분적으로 구현될 수 있다. 사용자 인터페이스(536a)는 시각적, 햅틱 및 오디오 콘텐츠를 포함하는 가상 콘텐츠를 사용자에게 제시할 수 있다. 네트워크 인터페이스(538a)는 네트워크(520)를 통해 통신하기 위해 제공된다. 네트워크 인터페이스(538a)의 구조는 사용자 디바이스(530a)가 네트워크(520)와 인터페이스하는 방법에 의존할 것이다. 예를 들어, 사용자 디바이스(530a)가 휴대폰, 헤드셋 또는 태블릿인 경우, 네트워크 인터페이스(538a)는 네트워크(520)로/로부터 무선 전송을 송수신하기 위한 안테나를 갖는 송신기/수신기를 포함할 수 있다. 사용자 디바이스가 네트워크 케이블로 네트워크에 연결된 개인용 컴퓨터인 경우, 네트워크 인터페이스(538a)는 예를 들어 NIC, 컴퓨터 포트 및/또는 네트워크 소켓을 포함할 수 있다. 프로세서(532a)는 사용자 디바이스(530a)에 의해 수행되는 모든 동작을 직접 수행하거나 지시한다. 이러한 동작의 예는 사용자 인터페이스(536a)로부터 수신된 사용자 입력을 처리하고, 네트워크(520)를 통한 전송을 위해 정보를 준비하고, 네트워크(520)를 통해 수신된 데이터를 처리하며, 정보를 디스플레이하도록 디스플레이 화면에 지시하는 것을 포함한다. 프로세서(532a)는 메모리(534a)에 저장된 명령어를 실행하는 하나 이상의 프로세서에 의해 구현될 수 있다. 대안적으로, 프로세서(532a)의 일부 또는 전부는 ASIC, GPU 또는 프로그래밍된 FPGA와 같은 전용 회로를 사용하여 구현될 수 있다.
센서(540a)는 사용자 디바이스(530a)를 둘러싼 현실 세계 환경의 측정을 획득하기기 위해 제공된다. 이러한 측정은 예를 들어 현실 세계 공간의 표현 및/또는 객체의 3D 모델을 생성하는 데 사용될 수 있다. 현실 세계 공간의 표현은 사용자 공간 기록부(512)에 저장될 수 있고, 객체의 3D 모델은 가상 모델 기록부(510)에 저장될 수 있다.
센서(540a)는 예를 들어 하나 이상의 카메라, 레이더 센서, 라이더 센서 및 소나 센서를 포함할 수 있다. 카메라의 경우, 캡처된 이미지는 이미지 분석기(514)에 의해 처리될 수 있다. 레이더 센서, 라이더 센서 및 소나 센서로부터 획득된 측정은 또한 AR 엔진(502)에 의해 처리될 수도 있다. 센서(540a)가 사용자 디바이스(530a)의 구성 요소로서 도시되어 있지만, 센서(540a)는 또한 또는 대신 사용자 디바이스(530a)와 별도로 구현될 수 있으며, 예를 들어 유선 및/또는 무선 연결을 통해 사용자 디바이스(530a) 및/또는 AR 엔진(502)과 통신할 수 있다.
일부 구현에서, 사용자 디바이스(530a)는 AR 능력을 갖는다. 예를 들어, AR 엔진(502)과 유사한 AR 엔진이 사용자 디바이스(530a) 상에 부분적으로 또는 전체적으로 구현될 수 있다. 국부적으로 (즉, 사용자 디바이스(530a) 상에) 가상 콘텐츠를 생성하는 소프트웨어 애플리케이션 또는 인스턴스가 사용자 디바이스(530a)에 설치될 수 있다. 소프트웨어 애플리케이션은 AR 엔진(502)으로부터 가상 모델 기록부(510), 사용자 공간 기록부(512), 이미지 분석기(514) 및/또는 가상 콘텐츠 생성기(516)를 수신할 수 있다.
도 5에서, 2 개의 사용자 디바이스가 예로서 도시되어 있다. 2 개 이상의 사용자 디바이스가 AR 엔진(502)과 통신할 수 있다.
AR 엔진(502)은 예로서 제공된다. AR 엔진의 다른 구현이 또한 고려된다. 일부 구현에서, AR 엔진은 전자 상거래 플랫폼의 핵심 기능으로서 또는 전자 상거래 플랫폼에 의해 지원되거나 전자 상거래 플랫폼과 통신하는 애플리케이션 또는 서비스로서 전자 상거래 플랫폼에 의해 적어도 부분적으로 제공된다. 일부 구현에서, AR 엔진은 고객 디바이스 또는 판매자 디바이스와 같은 사용자 디바이스에 의해 적어도 부분적으로 구현된다. 일부 구현에서, AR 엔진은 AR 콘텐츠를 생성하기 위해 독립형 서비스로 구현된다. AR 엔진(502)이 단일 구성 요소로 도시되어 있지만, AR 엔진은 네트워크를 통해 통신하는 다수의 상이한 구성 요소에 의해 대신 제공될 수 있다.
사용자의 가상 표현을 갖는 다중 사용자 AR 콘텐츠 생성
도 6은 일 실시예에 따른 공유 AR 경험을 위한 AR 콘텐츠를 생성하는 방법(600)을 도시하는 흐름도이다. 방법(600)은 도 5의 AR 엔진(502)에 의해 수행되는 것으로 설명될 것이며, 공유 AR 경험은 적어도 사용자 디바이스(530a)의 사용자("제 1 사용자"로 지칭될 사용자) 및 사용자 디바이스(530b)의 사용자("제 2 사용자"로 지칭될 사용자)를 포함한다. 그러나, 방법(600)의 적어도 일부는 예를 들어 사용자 디바이스(530a) 및/또는 사용자 디바이스(530b)에서와 같이 다른 곳에서 대신 수행될 수 있다.
단계(602)는 프로세서(504)가 사용자 디바이스(530a, 530b) 중 어느 하나 또는 둘 모두로부터 수신된 명령어에 기초하여 공유 AR 경험을 시작하는 단계를 포함하는 선택적 단계이다. 공유 AR 경험은 임의의 다양한 상이한 방법으로 시작될 수 있다. 일 예에서, 제 1 사용자는 사용자 디바이스(530a) 상에서 개인 AR 경험을 시작할 수 있다. 그런 다음, 제 1 사용자는 제 2 사용자를 AR 경험으로 초대하여 공유 AR 경험을 생성할 수 있다. 다른 예에서, AR 경험은 제 1 사용자와 제 2 사용자에 대해 동시에 시작될 수 있다. 따라서, AR 경험은 다중 사용자 AR 경험으로 시작된다.
단계(604)는 프로세서(504)가 공유 AR 경험을 위한 물품의 모델을 획득하는 단계를 포함한다. 이 모델은 3D 모델일 수 있다. 일부 구현에서, 물품의 모델은 가상 모델 기록부(510)로부터 획득된다. 제 1 사용자 및/또는 제 2 사용자는 제 1 사용자 및/또는 제 2 사용자가 공유 AR 경험에서 보기를 원하는 특정 물품에 기초하여 가상 모델 기록부(510)로부터 모델을 선택할 수 있다. 예를 들어, 제 1 사용자가 판매자에 의해 판매된 특정 제품을 보기를 원한다면, 단계(604)는 제 1 사용자가 가상 모델 기록부(510)에서 이 제품을 검색하고 제품의 모델을 선택하는 단계를 포함할 수 있다. 다른 구현에서, 물품의 모델은 사용자 디바이스(530a, 530b) 중 하나로부터 직접 획득될 수 있다.
단계(604)에서 획득된 물품의 모델은 가상 좌표계 내에 위치되거나 정의될 수 있다. 모델은 모델이 가상 좌표계의 중심에 있도록 가상 좌표계의 원점에 고정될 수 있다. 물품의 치수는 모델에 의해 정의될 수 있으므로, 물품은 물품의 물리적 크기를 반영하도록 가상 좌표계 내에서 적절하게 크기 조정될 수 있다.
일부 구현에서, 물품의 다수의 모델은 단계(604)에서 획득될 수 있고 공유 AR 경험에 포함될 수 있다. 이러한 다수의 모델은 한 번에 또는 상이한 시간에 획득될 수 있으며, 제 1 사용자, 제 2 사용자 또는 둘 다에 의해 선택될 수 있다.
단계(606)는 프로세서(504)가 가상 좌표계 내의 제 1 사용자의 위치를 결정하는 단계를 포함한다. 가상 좌표계에서 제 1 사용자의 위치는 가상 좌표계에서 제 1 사용자의 좌표뿐만 아니라 가상 좌표계에서 제 1 사용자의 방향을 포함할 수 있다는 점을 유념해야 한다. 단계(606) 이후에, 물품의 모델 및 제 1 사용자는 가상 좌표계 내에 정의된 각각의 위치를 가질 것이며, 제 1 사용자에 대하여 모델의 위치가 결정될 수 있다.
일부 구현에서, 제 1 사용자의 위치는 사용자 디바이스(530a)에 의해 획득된 제 1 정보에 기초하여 결정된다. 제 1 정보는 네트워크(520)를 통해 사용자 디바이스(530a)에 의해 AR 엔진(502)에 전송될 수 있다. 제 1 정보의 형태는 본 명세서에서 제한되지 않는다. 일부 구현에서, 제 1 정보는 제 1 사용자와 연관된 공간의 표현을 포함하거나 제공한다. 이 공간은 제 1 사용자가 물품의 모델을 볼 수 있는 설정 또는 환경을 제공한다. 그런 다음, 가상 좌표계는 가상 좌표계 내에서 제 1 사용자의 위치를 결정하기 위해 공간의 표현에 매핑될 수 있다.
경우에 따라, 제 1 사용자와 연관된 공간은 제 1 사용자가 물리적으로 존재하는 3D 현실 세계 공간이다. 예를 들어, 현실 세계 공간은 제 1 사용자 집의 방일 수 있다. 제 1 정보는 사용자 디바이스(530a)에 의해 수집된 현실 세계 공간의 측정을 포함할 수 있다. 그런 다음, 이러한 측정으로부터 현실 세계 공간의 표현을 생성할 수 있다. 측정이 광학 이미지를 포함한다면, 이미지 분석기(514)는 이미지를 처리하여 현실 세계 공간의 표현을 생성하는 것을 도울 수 있다. 측정의 다른 예는 현실 세계 공간의 레이더 스캔, 라이더 스캔 및 소나 스캔을 포함한다. 현실 세계 공간의 표현은 사용자 공간 기록부(512)에 저장될 수 있다.
다른 경우에, 제 1 정보는 사용자 공간 기록부(512)로부터 이전에 생성된 공간의 표현의 선택을 포함할 수 있다. 이 공간은 제 1 사용자에게 특정한 장소(예를 들어, 제 1 사용자 집의 방)에 대응할 수 있고, 제 1 사용자로부터 이전에 획득되었던 측정에 기초할 수 있다.
단계(606)에서 공간에서 제 1 사용자의 위치(장소 및 방향 포함)는 가능하면 사용자 디바이스(530a)에 의해 획득된 제 1 정보에 기초하여 결정될 수 있다. 예를 들어, 제 1 정보는 공간 내의 제 1 사용자의 위치의 표시를 포함할 수 있다. 일부 경우에, 제 1 사용자의 위치는 사용자 디바이스(530a)의 위치와 동등한 것으로 간주된다. 이러한 경우의 예는 사용자 디바이스(530a)가 제 1 사용자가 잡고, 부착 및/또는 조작하는 스마트 폰 또는 헤드셋인 경우를 포함한다. 이러한 경우에, 단계(606)는 공간에서 사용자 디바이스(530a)의 위치를 결정하는 단계를 포함할 수 있고, 제 1 사용자의 위치는 사용자 디바이스(530a)의 위치로부터 추론된다.
공간의 표현이 사용자 디바이스(530a)에 의해 획득된 측정에 기초하여 결정되는 경우, 제 1 사용자의 위치는 또한 측정으로부터 결정될 수 있다. 예를 들어, 측정의 분석은 제 1 사용자 또는 사용자 디바이스(530a)로부터 공간 내의 하나 이상의 표면까지의 거리의 결정을 허용할 수 있다. 라이더 및 레이더는 표면까지의 거리를 결정하는 범위 기능을 가지고 있다. 또한, 이미지 분석기(514)에 의해 수행된 이미지 분석은 추가적으로 또는 대안적으로 광학 이미지로부터 표면까지의 거리를 결정하기 위해 사용될 수 있다. 제 1 사용자 또는 사용자 디바이스(530a)로부터 공간 내의 하나 이상의 표면까지의 거리가 알려진 경우, 공간 내의 제 1 사용자 및/또는 사용자 디바이스(530a)의 위치는 삼각 측량 또는 다른 수단을 통해 결정될 수 있다. GPS(Global Positioning System) 데이터가 또한 또는 대신 공간 내에서 사용자 디바이스(530a)의 위치를 결정하기 위해 사용될 수 있다. 경우에 따라, 현실 세계 공간의 표현을 생성하고 현실 세계 공간 내에서 제 1 사용자의 위치를 결정하는 프로세스는 SLAM 프로세스를 사용하여 수행될 수 있다.
공간 내의 제 1 사용자의 위치에 대한 명시적인 표시가 또한 또는 대신 제 1 정보에 의해 제공될 수 있다. 예를 들어, 공간 내의 제 1 사용자 및/또는 사용자 디바이스(530a)의 좌표는 AR 엔진(502)에 직접 제공될 수 있다.
제 1 정보가 공간의 표현을 제공할 때, 단계(606)는 가상 좌표계를 공간의 표현에 매핑하는 단계를 포함할 수 있다. 이것은 공간 내에서 단계(604)에서 획득된 모델의 위치(장소 및 방향 포함)를 획득하는 단계를 포함할 수 있다. 일부 경우에, 제 1 정보는 공간 내에서 모델의 원하는 위치의 선택 또는 표시를 포함한다. 예를 들어, 제 1 사용자는 사용자 디바이스(530a)를 사용하여 공간 내의 특정 장소 및 방향에 물품의 모델을 배치시키고 싶다는 것을 나타낼 수 있다. 모델의 이러한 위치는 가상 좌표계를 공간에 매핑하기 위한 앵커 포인트로 사용될 수 있다. 그런 다음, 가상 좌표계와 모델은 공간에 대하여 고정될 수 있다.
단계(606)에서, 공간의 표현을 획득하고, 공간 내의 제 1 사용자의 위치를 결정하고, 가상 좌표계를 공간에 매핑한 후, 가상 좌표계 내의 제 1 사용자의 위치가 결정될 수 있다.
단계(608)는 프로세서(504)가 가상 좌표계 내의 제 2 사용자의 위치를 결정하는 단계를 포함한다. 가상 좌표계에서 제 2 사용자의 위치는 가상 좌표계에서 제 2 사용자의 좌표뿐만 아니라 가상 좌표계에서 제 2 사용자의 방향을 포함할 수 있다. 단계(608) 이후에, 제 1 사용자, 제 2 사용자 및 물품의 모델은 가상 좌표계 내에 정의된 각각의 위치를 가질 것이다. 이것은 제 2 사용자에 대한 그리고 모델에 대한 제 1 사용자의 위치가 결정될 수 있게 한다.
가상 좌표계에서 제 2 사용자의 위치는 단계(606)와 관련하여 위에서 설명된 것과 유사한 방법 및 가상 좌표계에서 제 1 사용자의 위치 결정을 사용하여 결정될 수 있다. 일부 구현에서, 가상 좌표계에서 제 2 사용자의 위치는 사용자 디바이스(530b)에 의해 획득되고 네트워크(520)를 통해 AR 엔진(502)에 전송되는 제 2 정보에 기초하여 결정될 수 있다. 제 2 정보는 제 2 사용자와 연관된 공간의 표현을 포함할 수 있다. 경우에 따라, 제 2 사용자와 연관된 공간은 제 1 사용자와 연관된 현실 세계 공간과 상이한 현실 세계 공간이다. 예를 들어, 제 1 사용자 및 제 2 사용자와 연관된 각각의 현실 세계 공간은 물리적으로 서로 분리될 수 있다. 따라서, 제 1 사용자와 제 2 사용자는 다른 방, 건물, 도시 또는 국가에 있을 수 있다.
일부 구현에서, 제 2 사용자를 위한 공간의 표현은 컴퓨터로 생성된 가상 공간의 표현이다. 가상 공간은 제 2 사용자와 연관된 공간을 나타낼 수 있지만, 항상 그런 것은 아니다. 대신 가상 공간은 비개인적이거나 일반적인 공간이 될 수 있다. 예를 들어, 일반적인 방이 컴퓨터로 생성된 가상 공간의 표현에 도시될 수 있다.
단계(608)는 연관된 공간 내의 제 2 사용자의 위치에 기초하여 가상 좌표계 내의 제 2 사용자의 위치를 결정하는 단계를 포함할 수 있다. 예를 들어, 공간 내의 제 2 사용자의 위치는 측정 또는 사용자 디바이스(530b)로부터 수신된 명시적 표시를 사용하여 결정될 수 있다. 일부 구현에서, 프로세서(504)는 사용자 디바이스(530b)로부터 제 2 사용자와 연관된 공간 내에서 물품의 모델의 위치를 획득한다. 프로세서(504)는 공간 내의 모델의 위치에 기초하여 제 2 사용자의 공간에 가상 좌표계를 매핑할 수 있다. 이 매핑을 통해 가상 좌표계 내의 제 2 사용자의 위치를 결정할 수 있다.
단계(604, 606, 608) 이후에, 단일 가상 좌표계에서 제 1 사용자, 제 2 사용자 및 물품의 모델의 각각의 위치가 획득되었다. 가상 좌표계는 제 1 사용자 및 제 2 사용자와 연관된 상이한 공간에 매핑되었을 수 있다. 따라서, 제 1 사용자와 제 2 사용자는 자신이 선택한 환경에서 물품의 모델과 상호 작용할 수 있다.
단계(610)에서 프로세서(504)는 제 2 사용자의 오디오를 획득한다. 예를 들어, 제 2 사용자의 음성은 사용자 디바이스(530b)의 마이크에 의해 녹음되고 AR 엔진(502)에 전송될 수 있다. 제 2 사용자의 이미지와 같은 제 2 사용자에 관한 다른 정보가 또한 단계(610)에서 수집될 수 있다. 예를 들어, 사용자 디바이스(530b)는 제 2 사용자를 둘러싼 현실 세계 공간의 이미지를 캡처하기 위한 후면 카메라와 제 2 사용자의 얼굴 이미지를 캡처하기 위한 전면 카메라를 갖는 모바일 디바이스일 수 있다.
단계(612)는 프로세서(504)가 제 1 사용자를 위한 AR 콘텐츠를 생성하는 단계를 포함한다. AR 콘텐츠는 그 중에서도 단계(604)에서 획득된 모델의 렌더링, 제 2 사용자의 가상 표현, 오디오 콘텐츠 및/또는 햅틱 콘텐츠를 포함할 수 있다. 일부 구현에서, AR 콘텐츠는 가상 콘텐츠 생성기(516)를 사용하여 생성된다.
물품의 모델의 렌더링은 가상 좌표계 내의 제 1 사용자의 위치에 기초하여 생성된다. 예를 들어, 렌더링에 도시된 모델의 방향은 가상 좌표계에서 모델에 대한 제 1 사용자의 시각에 대응할 수 있다. 또한, 렌더링의 크기는 가상 좌표계에서 모델로부터 제 1 사용자의 거리에 대응할 수 있다. 예를 들어, 제 1 사용자가 가상 좌표계에서 모델에서 더 멀리 이동함에 따라, 제 1 사용자를 위한 AR 콘텐츠에서 모델의 크기는 줄어들 수 있다.
제 2 사용자의 가상 표현은 가상 좌표계에서 제 1 사용자의 위치 및 제 2 사용자의 위치에 기초할 수 있다. 예를 들어, 가상 좌표계에서 제 1 사용자의 위치에 대한 제 2 사용자의 위치는 제 1 사용자와 제 2 사용자 사이의 거리 및 제 1 사용자에 대한 제 2 사용자의 방향을 결정할 수 있다. 그런 다음, 이 거리와 방향은 제 2 사용자의 표현을 생성하는 데 사용될 수 있다. 가상 좌표계에서 제 1 사용자와 제 2 사용자 사이의 거리는 제 2 사용자의 가상 표현의 크기에 반영될 수 있다. 제 2 사용자의 가상 표현은 또한 가상 좌표계에서 제 2 사용자의 방향의 표시를 포함할 수 있다.
단계(612)에서 생성된 AR 콘텐츠에서 제 2 사용자의 표현 및 모델의 렌더링은 가상 좌표계에서 모델에 대한 제 2 사용자의 위치를 반영할 수 있다. 따라서, 제 1 사용자의 AR 콘텐츠는 모델로 도시된 물품에 대한 제 2 사용자의 관점을 전달할 수 있다.
일부 구현에서, 제 2 사용자의 표현은 제 2 사용자를 도시하거나 나타내는 모델을 사용하여 생성된다. 이 모델은 가상 모델 기록부(510)로부터 획득될 수 있고 제 2 사용자의 위치에서 가상 좌표계에 매핑될 수 있다. 제 2 사용자의 모델의 렌더링이 제 2 사용자의 표현으로 사용될 수 있다. 제 2 사용자의 모델은 제 2 사용자의 가상 아바타로 간주될 수 있다.
제 2 사용자의 표현의 형태는 본 명세서에서 제한되지 않는다. 제 2 사용자의 표현은 제 2 사용자의 전신, 제 2 사용자의 신체의 일부(예를 들어, 사용자의 얼굴) 및/또는 제 2 사용자와 연관된 일부 객체를 도시할 수 있다. 그러나, 제 2 사용자의 표현은 제 2 사용자를 전혀 도시하지 않을 수 있다. 대신, 제 2 사용자의 표현은 제 2 사용자를 나타내는 기호 또는 객체일 수 있다. 일부 경우에, 제 2 사용자의 표현은 가상 사용자 디바이스를 포함한다. 이들 경우 중 적어도 일부에서, 단계(608)에서 결정된 제 2 사용자의 위치는 사용자 디바이스(530b)의 위치에 대응할 수 있다. 가상 사용자 디바이스의 예는 도 4의 가상 표현(406)이다.
일부 구현에서, 제 2 사용자의 가상 표현은 단계(610)에서 획득된 제 2 사용자의 이미지의 적어도 일부를 포함할 수 있다. 이 이미지는 제 2 사용자 얼굴의 이미지일 수 있으며, 이는 제 1 사용자를 위한 AR 콘텐츠에서 제 2 사용자의 표현으로 포함될 수 있다. 이와 같이, 제 1 사용자는 제 2 사용자의 실시간 얼굴 표정을 볼 수 있어 더욱 몰입감 있는 다중 사용자 AR 경험을 제공할 수 있다. 일부 경우에, 제 2 사용자 얼굴의 3D 모델은 사용자 디바이스(530b)에 의해 캡처된 다수의 이미지에 기초하여 생성될 수 있다. 이 3D 모델은 가상 좌표계에서 제 1 사용자에 대한 제 2 사용자의 방향을 반영하기 위해 제 2 사용자의 얼굴에 대한 상이한 보기를 생성하는 데 사용될 수 있다.
제 1 사용자를 위한 AR 콘텐츠의 오디오 콘텐츠는 단계(610)에서 획득된 제 2 사용자의 오디오를 포함하거나 이에 기초할 수 있다. 이러한 방식으로, 제 1 사용자는 공유 AR 경험에서 제 2 사용자의 말을 들을 수 있고, 사용자 사이의 구두 통신을 가능하게 할 수 있다. 추가적으로 또는 대안적으로, 물품의 모델과 연관된 소리와 같은 다른 오디오 콘텐츠가 AR 콘텐츠에 포함될 수 있다.
일부 구현에서, 오디오 콘텐츠는 제 1 사용자의 위치 및 오디오 콘텐츠에서 소리를 만드는 사용자 또는 객체의 위치에 기초하여 공간화될 수 있다. 공간화된 오디오는 사용자 디바이스(530a)의 다수의 스피커에 의해 전달될 수 있는 방향성을 갖는다. 예를 들어, 단계(610)에서 획득된 제 2 사용자의 오디오 녹음에 기초한 오디오 콘텐츠는 가상 좌표계 내의 제 1 사용자의 위치에 대한 제 2 사용자의 위치에 대응하는 방향성을 포함할 수 있다. 제 2 사용자의 위치가 가상 좌표계에서 제 1 사용자 왼쪽에 있는 경우, 제 2 사용자의 오디오 녹음은 사용자 디바이스(530a)의 왼쪽 스피커에서만 재생될 수 있다. 이를 통해 제 1 사용자는 오디오 콘텐츠에 기초하여 제 2 사용자의 상대적 위치를 인식할 수 있어 보다 몰입감 있는 AR 경험을 제공할 수 있다.
단계(612)에서 생성된 AR 콘텐츠에 포함된 햅틱 콘텐츠는 예를 들어 물품의 모델 및 제 2 사용자를 포함하는 공유 AR 경험에서 제 1 사용자가 다른 객체를 가상으로 터치하고 느낄 수 있도록 할 수 있다.
단계(614)에서, AR 콘텐츠는 사용자 디바이스(530a)에 제시하기 위해 프로세서(504)에 의해 출력된다. 이것은 네트워크(520)를 통해 사용자 디바이스(530a)에 AR 콘텐츠의 적어도 일부를 전송하는 것을 포함할 수 있다. 예를 들어, AR 콘텐츠의 시각적 콘텐츠는 사용자 디바이스(530a)의 화면에 디스플레이될 수 있고, AR 콘텐츠의 오디오 콘텐츠는 사용자 디바이스(530a)의 스피커에서 재생될 수 있다.
일부 구현에서, AR 콘텐츠는 제 1 사용자를 위한 현실 세계 공간의 표현의 적어도 일부를 포함한다. 예를 들어, 사용자 디바이스(530a)에 제시하는 동안, AR 콘텐츠의 적어도 일부(예를 들어, 모델의 렌더링 및 제 2 사용자의 가상 표현 포함)는 단계(606)에서 획득된 현실 세계 공간의 이미지에 오버레이될 수 있다. 따라서, AR 콘텐츠는 제 1 사용자의 현실 세계 환경 위에 중첩될 수 있다.
현실 세계 공간의 이미지에 AR 콘텐츠를 오버레이하는 것은 AR 엔진(502) 또는 사용자 디바이스(530a)에서 수행될 수 있다. 예를 들어, 모델의 렌더링 및 제 2 사용자의 가상 표현은 AR 엔진(502)에서 생성되고, 그런 다음 사용자 디바이스(530a)에 전송될 수 있으며, 여기서 모델의 렌더링 및 제 2 사용자의 가상 표현은 사용자 디바이스(530a)에 의해 캡처된 이미지 위에 오버레이된다. 대안적으로, AR 콘텐츠는 제 1 사용자의 현실 세계 공간의 표현을 포함하지 않을 수 있다. AR 콘텐츠는 대신 사용자 디바이스(530a)의 투명 디스플레이에 제시되어 제 1 사용자가 AR 콘텐츠와 현실 세계를 동시에 볼 수 있도록 한다.
도 6의 단계(614)에서 단계(606)로의 피드백 화살표로 도시된 바와 같이, 단계(606, 608, 610, 612, 614)는 여러 번 반복될 수 있다. 이를 통해 제 1 사용자는 공유 AR 경험 내에서 돌아다니고 이에 대한 응답으로 예를 들어 새로운 AR 콘텐츠를 수신할 수 있다. 단계(614)의 각각의 인스턴스에서, 제 1 사용자를 위한 업데이트된 AR 콘텐츠가 사용자 디바이스(530a)에 출력되며, 이는 물품의 모델의 업데이트된 렌더링, 제 2 사용자의 업데이트된 표현, 새로운 오디오 콘텐츠 및/또는 새로운 햅틱 콘텐츠를 포함할 수 있다.
가상 좌표계 내의 제 1 사용자의 위치가 현실 세계 공간 내의 제 1 사용자의 위치에 기초하여 결정되는 경우, AR 경험 내의 이동은 제 1 사용자 현실 세계 공간 내에서 자신을 또는 자신의 사용자 디바이스(530a)를 물리적으로 이동시키는 것을 포함할 수 있다. 사용자 디바이스(530a)로부터의 측정에 기초하여, 현실 세계 공간에서 제 1 사용자의 업데이트된 위치는 단계(606)의 각각의 인스턴스에서 결정될 수 있으며, 이는 현실 세계 공간에 고정된 상태로 유지되는 가상 좌표계에 매핑될 수 있다. 가상 좌표계에서 제 2 사용자의 업데이트된 위치는 또한 단계(608)의 각각의 인스턴스에서 결정될 수 있다. 그런 다음, 제 1 사용자 및 제 2 사용자의 업데이트된 위치에 기초하여 제 1 사용자를 위한 업데이트된 AR 콘텐츠가 단계(612)에서 생성될 수 있다. 사용자 디바이스(530a)가 단계(606)의 반복을 통해 현실 세계 공간의 더 많은 측정을 캡처함에 따라, 현실 세계 공간의 표현은 또한 업데이트될 수 있다. 이것은 현실 세계 공간의 표현에 새로운 특징부 및/또는 영역을 추가할 수 있다. 그러나, 가상 좌표계에서 물품의 모델의 위치는 시간이 지남에 따라 고정된 상태로 유지될 수 있으므로 방법(600)에서 한 번만 정의하면 된다.
도 6의 단계(602, 604, 606, 608, 610, 612, 614)의 순서는 단지 예로서 도시된다는 점을 유념해야 한다. 단계(602, 604, 606, 608, 610, 612, 614)의 상이한 순서가 또한 고려된다. 예를 들어, 단계(608)는 단계(606) 전에 수행될 수 있다. 추가적으로 또는 대안적으로, 단계(602, 604, 606, 608, 610, 612, 614) 중 2 개 이상이 동시에 수행될 수 있다.
방법(600)이 제 1 사용자를 위한 AR 콘텐츠의 생성과 관련되어 있지만, 가상 콘텐츠는 또한 AR 엔진(502)에 의해 제 2 사용자를 위해 생성될 수도 있다. 추가 사용자가 또한 공유 AR 경험에 존재할 수 있고 AR 엔진(502)에 의해 생성된 관련 가상 콘텐츠를 수신할 수 있다. 제 2 사용자를 위한 가상 콘텐츠는 예를 들어 가상 콘텐츠 생성기(516)를 사용하여 생성된 AR 콘텐츠 또는 VR 콘텐츠일 수 있다. 그런 다음, 가상 콘텐츠는 사용자 디바이스(530b)에 제시하기 위해 출력될 수 있다. 가상 콘텐츠는:
● 가상 좌표계 내의 제 2 사용자의 위치에 기초한 모델의 렌더링;
● 가상 좌표계 내의 제 1 사용자의 위치 및 제 2 사용자의 위치에 기초한 제 1 사용자의 표현;
● 오디오 콘텐츠; 및
● 햅틱 콘텐츠
중 하나 이상을 포함할 수 있다.
제 2 사용자를 위해 AR 콘텐츠가 생성되는 경우, 단계(610, 612, 614)와 유사한 단계를 구현하여 AR 콘텐츠를 생성할 수 있다. 대안적으로, 예를 들어, 모델의 렌더링 및/또는 제 1 사용자의 표현을 가상 공간에 추가함으로써, 제 2 사용자를 위한 다른 가상 콘텐츠가 생성될 수 있다. 가상 공간은 사용자 공간 기록부(512)로부터 획득될 수 있다. 제 2 사용자는 사용자 인터페이스(536b)를 사용하여 공유 AR 경험 내에서 돌아다닐 수 있다. 예를 들어, 사용자 인터페이스(536b)는 가상 좌표계 내에서 제 2 사용자의 위치를 이동시키기 위한 버튼을 포함할 수 있다.
이제 일 실시예에 따른 고객 및 판매자를 위한 공유 AR 경험을 도시하는 도 7 내지 도 10을 참조할 것이다. 고객과 판매자는 상이한 물리적 장소에 있지만 각각의 디바이스를 사용하여 공유 AR 경험에서 스탠드 업 주방 믹서와 가상으로 상호 작용하는 사용자이다. 도 7은 시간의 제 1 인스턴스에서 공유 AR 경험의 가상 좌표계(700)의 사시도이고, 도 8은 시간의 제 1 인스턴스에서 공유 AR 경험을 위한 AR 콘텐츠(802)를 디스플레이하는 고객 디바이스(800)를 도시하고, 도 9는 시간의 제 2 인스턴스에서 공유 AR 경험의 가상 좌표계(700)의 사시도이며, 도 10은 시간의 제 2 인스턴스에서 공유 AR 경험을 위한 추가 AR 콘텐츠(1002)를 디스플레이하는 고객 디바이스(800)를 도시한다. 도 8 및 도 10에서, 고객 디바이스(800)는 또한 판매자가 공유 AR 경험에 존재한다는 표시(810), 공유 AR 경험을 종료하기 위한 옵션(812), 판매자가 고객의 소리를 들을 수 없도록 고객 디바이스(800)의 마이크를 음소거하기 위한 옵션(814), 및 다른 기능에 액세스하기 위한 옵션(816)을 디스플레이할 수 있다. 도 7 내지 도 10의 공유 AR 경험은 방법(600)을 사용하여 적어도 부분적으로 제공될 수 있다.
도 7 내지 도 10에 도시된 판매자 및 고객을 위한 공유 AR 경험은 임의의 다양한 상이한 방법으로 시작될 수 있다. 일부 구현에서, 공유 AR 경험은 방법(600)의 단계(602)에서 시작된다. 일 예에서, 고객은 자신의 주방에서 가상으로 믹서를 보고/보거나 믹서와 상호 작용하기 위해 고객 디바이스(800)에서 개인 AR 경험을 시작할 수 있다. 예를 들어, 고객이 믹서에 대해 판매자에게 질문하는 경우, 고객은 판매자를 AR 경험에 초대할 수 있다. 판매자를 AR 경험에 초대하는 행동는 다중 사용자 AR 경험을 시작할 수 있다. 다른 예에서, AR 경험은 고객과 판매자에 대해 동시에 시작될 수 있다. 따라서, AR 경험은 다중 사용자 AR 경험으로 시작된다. 고객은 판매자에게 믹서에 관한 질문을 하기 위해 판매자와 함께 공유 AR 경험을 시작할 수 있다. 대안적으로, 고객은 믹서에 관한 질문을 판매자에게 보낼 수 있으며, 판매자는 고객의 질문에 답하기 위해 고객과 함께 공유 AR 경험을 시작할 수 있다.
도 7 및 도 9에 도시된 바와 같이, 가상 좌표계(700)는 x 축, y 축 및 z 축을 포함하는 직교 좌표계이다. 스탠드 업 주방 믹서의 3D 가상 모델(702)은 가상 좌표계(700)의 원점에 배치된다. 모델(702)의 위치는 시간의 제 1 인스턴스와 시간의 제 2 인스턴스 사이에서 변하지 않는다. 따라서, 모델(702)은 가상 좌표계(700)에 고정된 것으로 간주될 수 있다. 일부 구현에서, 모델(702)은 방법(600)의 단계(604)에서 획득된다.
고객의 3D 가상 모델(704) 및 판매자의 3D 가상 모델(706)이 또한 가상 좌표계(700) 내에 배치된다. 각각의 모델(704, 706)은 가상 사용자 디바이스를 잡고 있는 가상 손을 도시한다. 가상 좌표계(700)에서 모델(704, 706)의 위치는 고객 및 판매자의 위치에 각각 대응하며, 이는 방법(600)의 단계(606, 608)에서 결정될 수 있다. 예를 들어, 고객 디바이스(800)로부터 획득된 정보에 기초하여, 가상 좌표계(700) 내의 고객의 위치가 결정될 수 있다. 고객 디바이스(800)는 광학 이미지, 라이더 및/또는 레이더를 통해 고객의 주방의 표현을 획득하고 주방 내에서 고객의 위치를 결정할 수 있다. 고객은 믹서의 모델(702)이 주방 카운터에 특정 방향으로 배치되기를 원한다고 표시할 수 있다. 그런 다음, 가상 좌표계(700)는 도 8 및 도 10에 도시된 바와 같이 주방 카운터에 믹서의 모델(702)을 배치시키기 위해 주방의 표현에 매핑될 수 있다. 유사하게, 가상 좌표계(700) 내의 판매자의 위치는 판매자 디바이스(도시되지 않음)로부터의 정보에 기초하여 결정될 수 있다.
가상 좌표계(700)에서 모델(704, 706) 중 하나 또는 둘 모두의 위치는 시간의 제 1 인스턴스와 시간의 제 2 인스턴스 사이에서 변경될 수 있으며, 위치 변화는 가상 좌표계(700) 내에서 고객 및/또는 판매자의 이동에 대응한다. 예를 들어, 도 7 및 도 8에 도시된 바와 같이, 시간의 제 1 인스턴스에서, 고객과 판매자는 일반적으로 가상 좌표계(700)에서 믹서의 모델(702)의 반대 쪽에 배치된다. 나중에, 도 9 및 도 10에 도시된 시간의 제 2 인스턴스에서, 고객과 판매자는 일반적으로 가상 좌표계(700)에서 믹서의 모델(702)의 같은 쪽에 배치된다. 시간의 제 1 인스턴스와 시간의 제 2 인스턴스 사이의 고객 이동은 고객이 자신의 주방 내에서 물리적으로 이동하는 것에 해당할 수 있다. 고객 디바이스(800)는 측정을 통해 주방에서 고객의 위치를 지속적으로 결정하고 주방 카운터에 있는 믹서의 고정된 위치를 사용하여 이 위치를 가상 좌표계(700)에 매핑할 수 있다.
AR 콘텐츠(802, 1002)는 방법(600)의 단계(612)의 개별 인스턴스에서 생성될 수 있는 AR 콘텐츠의 예이다. 단계(612)의 제 1 인스턴스에서, AR 콘텐츠(802)가 생성될 수 있다. AR 콘텐츠(802)는 믹서의 가상 표현(804) 및 판매자의 가상 표현(806)을 포함한다. 가상 표현(804)은 시간의 제 1 인스턴스에서 가상 좌표계(700)에서 고객의 위치에 기초하여 생성된 믹서의 모델(702)의 렌더링이다. 마찬가지로, 가상 표현(806)은 시간의 제 1 인스턴스에서 가상 좌표계(700)에서 고객의 위치 및 판매자의 위치에 기초하여 생성된 모델(706)의 렌더링이다. 단계(612)의 제 2 인스턴스에서, AR 콘텐츠(1002)가 생성될 수 있다. AR 콘텐츠(1002)는 또한 시간의 제 2 인스턴스에서 가상 좌표계(700)에서 고객의 위치에 기초하여 생성된 믹서의 모델(702)의 렌더링인 믹서의 가상 표현(1004)을 포함한다.
도시된 바와 같이, AR 콘텐츠(802, 1002)는 고객 디바이스(800)에 의해 캡처된 고객의 주방의 이미지에 오버레이된다. 따라서, 고객은 가상 표현(804, 1004)을 통해 주방에서 믹서를 볼 수 있다. 또한, 고객은 판매자의 가상 표현(806)을 통해 판매자가 시간의 제 1 인스턴스에서 믹서를 어떻게 보는지 알 수 있다. 가상 표현(806)에 도시된 모바일 디바이스의 위치에 기초하여, 고객은 판매자의 관점을 인식할 수 있다. 가상 표현(806)에 도시된 모바일 디바이스의 방향은 가상 좌표계(700)에서 판매자의 방향 표시의 예이다. 공유 AR 경험 덕분에, 판매자와 고객은 믹서에 대한 서로의 견해를 인식할 수 있으며, 이는 의사 소통을 위한 콘텍스트를 제공한다.
도 9에 도시된 바와 같이, 판매자는 시간의 제 2 인스턴스에서 가상 좌표계(700)에서 고객에게 보이지 않는다. 따라서, AR 콘텐츠(1002)는 판매자의 가상 표현을 포함하지 않는다. 그러나, AR 콘텐츠(1002)는 시간의 제 2 인스턴스에서 가상 좌표계(700)에서 판매자의 위치의 표시를 여전히 제공할 수 있다. 예를 들어, 판매자의 음성 녹음에 대응하는 오디오 콘텐츠가 AR 콘텐츠(1002)에 포함될 수 있다. 이 오디오 콘텐츠는 가상 좌표계(700)에서 고객의 위치에 대한 판매자의 위치에 대응하는 방향성을 포함할 수 있다. 따라서, 고객은 오디오 콘텐츠의 방향성에 기초하여 시간의 제 2 인스턴스에서 가상 좌표계(700)에서 판매자의 위치를 결정할 수 있다.
도 7 내지 도 10에 도시되지 않았지만, 가상 콘텐츠는 또한 공유 AR 경험에서 판매자를 위해 생성될 수도 있다. 일부 구현에서, 판매자를 위한 가상 콘텐츠는 AR 콘텐츠이다. 그러나, 가상 콘텐츠는 대신 VR 콘텐츠이거나 단순히 믹서의 3D 모델(702)의 뷰일 수 있다. 판매자를 위한 가상 콘텐츠는 판매자 디바이스에 출력될 수 있다. 일부 구현에서, 판매자를 위한 가상 콘텐츠는 고객 디바이스(800)에 의해 캡처된 이미지를 포함할 수 있다. 이는 판매자에게 고객이 제품에 사용하고자 하는 현실 세계 공간(예를 들어, 고객의 주방)에 대한 통찰력을 제공할 수 있다.
사용자 상호 작용의 가상 표현을 갖는 다중 사용자 AR 콘텐츠 생성
도 6 내지 도 10은 다중 사용자 AR 경험에서 상이한 사용자의 가상 표현을 구현하는 것에 관한 것으로, 이는 AR 경험 내에서 사용자 의사 소통을 개선하는 데 도움이 될 수 있다. 그러나, AR 경험에서 다수의 사용자 사이의 의사 소통을 개선하는 방법은 사용자의 가상 표현 구현으로 제한되지 않는다. 본 개시의 다른 양태는 가상 사용자 상호 작용을 포함하는 다중 사용자 AR 콘텐츠를 생성하는 것에 관한 것이다. 이러한 다중 사용자 AR 콘텐츠는 동시에 다수의 사용자에게 대화형 공유 AR 경험을 제공할 수 있다. AR 경험 내에서 한 사용자의 가상 상호 작용은 AR 경험의 다른 사용자(들)에게 전달된다. 이러한 상호 작용의 예는 사용자가 AR 경험에서 가상 물품을 향해 제스처를 취하고 심지어 가상 물품을 터치하는 것을 포함한다. AR 경험에 가상 상호 작용을 디스플레이하면 상이한 사용자 사이의 비언어적 의사 소통을 개선하는 데 도움이 될 수 있다.
도 11은 일 실시예에 따른 가상 사용자 상호 작용을 갖는 공유 AR 경험을 위한 AR 콘텐츠를 생성하는 방법(1100)을 도시하는 흐름도이다. 방법(1100)은 도 5의 AR 엔진(502)에 의해 수행되는 것으로 설명될 것이며, 공유 AR 경험은 적어도 사용자 디바이스(530a)의 제 1 사용자 및 사용자 디바이스(530b)의 제 2 사용자를 포함한다. 그러나, 방법(1100)의 적어도 일부는 예를 들어 사용자 디바이스(530a) 및/또는 사용자 디바이스(530b)에서와 같이 다른 곳에서 대신 수행될 수 있다.
단계(1102)는 프로세서(504)가 공유 AR 경험에서 제 1 사용자에 제시하기 위한 초기 가상 콘텐츠를 생성하는 단계를 포함하는 선택적 단계이다. 예를 들어, AR 콘텐츠 또는 VR 콘텐츠일 수 있는 이 초기 가상 콘텐츠는 본 명세서에 개시된 임의의 방법을 사용하여 생성될 수 있다. 예를 들어, 초기 가상 콘텐츠는 도 6의 방법(600)을 사용하여 생성된 AR 콘텐츠일 수 있다. 초기 가상 콘텐츠는 공유 AR 경험의 가상 좌표계 내에 정의된 3D 모델의 렌더링을 포함할 수 있다. 초기 가상 콘텐츠는 또한 제 2 사용자의 가상 표현, 오디오 콘텐츠 및/또는 햅틱 콘텐츠와 같은 다른 콘텐츠를 포함할 수 있다.
단계(1104)에서, 프로세서(504)는 사용자 디바이스(530a)에 제시하기 위해 초기 가상 콘텐츠를 출력한다. 이와 같이, 제 1 사용자는 사용자 디바이스(530a)를 통해 초기 가상 콘텐츠를 보고/보거나 상호 작용할 수 있다. 일부 구현에서, 단계(1102)에서 생성된 초기 가상 콘텐츠는 제 2 사용자를 위해 생성된 AR 콘텐츠이다. 그러므로, 제 1 사용자는 단계(1104)에서 제 2 사용자가 보고 있는 AR 장면을 볼 수 있다.
단계(1106)는 프로세서(504)가 제 1 사용자와 사용자 디바이스(530a)에 제시된 초기 가상 콘텐츠 사이의 상호 작용의 위치를 획득하는 단계를 포함한다. 그런 다음, 상호 작용의 위치는 메모리(506)에 또는 다른 비일시적 컴퓨터 판독 가능 매체에 저장될 수 있다. 제 1 사용자와 초기 가상 콘텐츠 사이의 상호 작용은 초기 가상 콘텐츠와 관련된 제 1 사용자에 의해 수행되는 임의의 행동을 포함할 수 있다. 예를 들어, 상호 작용은 제 1 사용자가 초기 가상 콘텐츠에서 모델의 렌더링을 가상으로 가리키거나 잡거나 심지어 터치하는 것을 포함할 수 있다. 모델의 렌더링이 가상 좌표계 내에 정의되기 때문에, 상호 작용의 위치는 가상 좌표계 내에서 결정될 수 있다. 일부 경우에, 상호 작용 유형이 또한 단계(1106)에서 결정된다. 예를 들어, 상호 작용은 가리키기, 잡기 또는 터치 상호 작용으로 분류될 수 있다.
제 1 사용자와 초기 가상 콘텐츠 사이의 상호 작용의 위치는 가상 콘텐츠의 형태에 의존할 수 있는 다수의 상이한 방식 중 임의의 방식으로 결정될 수 있다. 예를 들어, VR 콘텐츠와의 사용자 상호 작용은 AR 콘텐츠와의 사용자 상호 작용과 상이할 수 있으며, 결과적으로 상호 작용의 위치를 결정하는 방법은 AR 콘텐츠와 VR 콘텐츠에 대해 상이할 수 있다.
일부 구현에서, 제 1 사용자와 초기 가상 콘텐츠 사이의 상호 작용은 제 1 사용자가 사용자 디바이스(530a)를 사용하여 초기 가상 콘텐츠에서 2 차원(2D) 포인트를 선택하는 것을 포함한다. 예를 들어, 사용자 디바이스(530a)는 초기 가상 콘텐츠의 적어도 일부를 제 1 사용자에게 디스플레이하는 2D 디스플레이 화면을 포함할 수 있다. 제 1 사용자는 디스플레이 화면에서 초기 가상 콘텐츠의 2D 포인트에 해당하는 포인트를 선택할 수 있다. 디스플레이 화면이 터치 스크린인 경우, 터치 동작을 사용하여 2D 포인트를 선택할 수 있다. 대안적으로, 예를 들어, 마우스 커서와 같은 커서를 사용하여 2D 포인트를 선택할 수 있다. 일부 경우에, 제 1 사용자는 초기 가상 콘텐츠에서 모델의 렌더링에서 특정 구성 요소를 가리킬 수 있으며, 2D 포인트는 모델의 렌더링에서 이 구성 요소에 해당할 수 있다.
제 1 사용자에 의해 선택된 초기 가상 콘텐츠의 2D 포인트는 가상 좌표계 내의 상호 작용의 위치를 결정하기 위해 가상 좌표계에 매핑될 수 있다. 이 매핑은 가상 좌표계 내의 제 1 사용자의 위치(장소 및 방향 포함)에 기초할 수 있다. 방법(600)의 단계(606, 608)는 가상 좌표계에서 사용자의 위치를 획득하는 예를 제공한다.
일부 구현에서, 초기 가상 콘텐츠의 2D 포인트는 가상 좌표계 내의 제 1 사용자의 위치에 대응하는 가상 좌표계의 평면의 2D 포인트에 매핑된다. 평면에 대한 법선 벡터는 가상 좌표계에서 제 1 사용자의 시각 또는 관점을 정의한다. 따라서, 평면의 2D 포인트를 통해 확장되는 법선 벡터는 가상 좌표계에서 제 1 사용자의 관점의 방향으로 확장되는 3D 라인을 제공할 수 있다. 법선 벡터는 가상 좌표계에서 모델과 교차할 수 있으며, 가상 좌표계에서의 결과적인 3D 교차점은 제 1 사용자와 초기 가상 콘텐츠 사이의 상호 작용 위치에 기초하여 형성할 수 있다.
따라서, 제 1 사용자와 초기 가상 콘텐츠 사이의 상호 작용이 초기 가상 콘텐츠에서 2D 포인트의 선택을 포함하는 경우, 상호 작용의 위치는 가상 좌표계 내의 제 1 사용자의 위치뿐만 아니라 초기 가상 콘텐츠 내의 2D 포인트의 위치에 기초할 수 있다. 그러한 경우에, 단계(1106)는 가상 좌표계 내의 제 1 사용자의 위치에 기초하여 초기 가상 콘텐츠의 2D 포인트를 가상 좌표계의 평면의 2D 포인트에 매핑하는 단계를 포함할 수 있다. 그런 다음, 가상 좌표계의 평면의 2D 포인트를 통해 확장되고 가상 좌표계의 평면에 수직인 벡터를 결정할 수 있다. 제 1 사용자와 초기 가상 콘텐츠 사이의 상호 작용의 위치는 벡터가 모델과 교차하는 가상 좌표계 내의 3D 교차점에 기초할 수 있다. 상호 작용의 방향은 가상 좌표계 내의 모델에 대한 벡터의 방향에 기초할 수 있다.
일부 구현에서, 제 1 사용자와 초기 가상 콘텐츠 사이의 상호 작용은 공유 AR 경험의 가상 좌표계에 매핑되는 제 1 사용자의 특징부(예를 들어, 제 1 사용자의 손)를 사용하여 발생한다. 이러한 제 1 사용자의 특징부는 제 1 사용자가 초기 가상 콘텐츠와 상호 작용하는 임의의 수단을 포함할 수 있으며, 일부 경우에는 단계(1102)에서 생성된 초기 가상 콘텐츠의 형태에 의존할 것이다. 제 1 사용자의 특징부는 3D로 제어될 수 있으며, 제 1 사용자에게 가상 좌표계 내에서 특징부의 제한 없는 이동을 허용할 수 있다.
제 1 사용자와 초기 가상 콘텐츠 사이의 상호 작용이 제 1 사용자의 특징부를 사용하여 발생하는 경우, 가상 좌표계 내의 상호 작용의 위치는 가상 좌표계 내의 특징부의 위치에 기초할 수 있다. 이와 같이, 단계(1106)는 가상 좌표계 내의 특징부의 위치를 획득하는 단계를 포함할 수 있다. 일부 구현에서, 가상 좌표계 내의 특징부의 위치는 제 1 사용자와 연관된 현실 세계 또는 가상 공간 내의 특징부의 위치에 기초하여 결정된다. 이 공간의 표현과 공간 내의 모델의 위치가 획득될 수 있으며, 공간 내의 모델의 위치에 기초하여 가상 좌표계를 공간에 매핑할 수 있다. 이 매핑을 사용하면 가상 좌표계 내의 특징부의 위치를 공간 내의 특징부의 위치에 기초하여 결정할 수 있다. 공간 내에서 및/또는 가상 좌표계 내에서 제 1 사용자의 특징부의 위치를 결정하는 것은 특징부의 방향을 결정하는 것을 포함할 수 있다는 점을 유념해야 한다. 가상 좌표계를 현실 세계 또는 가상 공간에 매핑하는 것에 대한 추가 세부 사항은 본 명세서에의 다른 곳에서 찾을 수 있다.
일부 구현에서, 제 1 사용자를 위한 초기 가상 콘텐츠는 AR 콘텐츠를 포함하고 제 1 사용자의 특징부는 현실 세계 공간에서 가상 좌표계로 매핑되는 현실 세계 특징부이다. 현실 세계 특징부의 예는 사용자의 손과 같은 해부학적 특징부이다. 가상 좌표계가 제 1 사용자를 둘러싼 현실 세계 공간의 표현에 매핑될 때, 가상 좌표계에서 현실 세계 특징부의 위치가 결정될 수 있다.
일부 구현에서, 제 1 사용자를 둘러싼 현실 세계 공간의 표현은 사용자 디바이스(530a)에 의해 캡처된 이미지에 기초하여 생성된다. 여기서, 공간 내의 제 1 사용자의 특징부의 위치를 결정하는 것은 이미지에 대한 이미지 분석을 수행하는 것을 포함할 수 있다. 이미지 분석은 이미지 분석기(514)를 사용하여 수행될 수 있다. 예를 들어, 사용자 디바이스(530a)는 제 1 사용자의 손을 인식하고 현실 세계 공간 내의 손의 위치를 결정할 수 있는 이미지 또는 다른 측정을 획득할 수 있다. 제 1 사용자는 현실 세계 공간에서 손의 감지 능력을 향상시키는 것을 돕기 위해 AR 전용 장갑을 착용할 수 있다. 그런 다음, 제 1 사용자의 손의 위치를 가상 좌표계에 매핑할 수 있다. 제 1 사용자는 현실 세계 공간 내에서 손을 움직일 수 있으므로, 가상 좌표계에서 제 1 사용자의 손의 대응하는 움직임을 초래할 수 있다. 따라서, 제 1 사용자는 예를 들어 가상 좌표계에서 모델을 가리키거나 터치하여 AR 콘텐츠와 상호 작용할 수 있다.
가상 좌표계에서 제 1 사용자의 해부학적 특징부의 위치는 제 1 사용자와 초기 가상 콘텐츠 사이의 상호 작용의 위치에 대응할 수 있다. 일부 구현에서, 현실 세계 공간에서 제 1 사용자의 해부학적 특징부의 검출은 초기 가상 콘텐츠와의 상호 작용으로 간주될 수 있다. 따라서, 가상 좌표계에서 해부학적 특징부의 위치를 지속적으로 결정할 수 있다. 일부 구현에서, 현실 세계 공간에서 해부학적 특징부의 측정은 초기 가상 콘텐츠와의 상호 작용으로 해석되는 해부학적 특징부에 의해 수행되는 개별 동작을 검출하기 위해 분석된다. 예를 들어, 해부학적 특징부가 제 1 사용자의 손인 경우, 가리키거나 잡는 것과 같은 제스처를 검출하여 상호 작용으로 해석할 수 있다. 그런 다음, 이러한 제스처를 실행할 때의 손의 위치를 결정할 수 있다.
제 1 사용자의 특징부는 항상 현실 세계 특징부인 것은 아니다. 대신, 특징부는 사용자 디바이스(530a)를 사용하는 제 1 사용자에 의해 제어되는 가상 특징부일 수 있다. 이는 초기 가상 콘텐츠가 VR 콘텐츠이거나 제 2 사용자를 위해 생성된 AR 장면인 경우일 수 있다. 가상 특징부의 예는 사용자 디바이스(530a)를 사용하여 제 1 사용자에 의해 제어되는 커서이다. 사용자 디바이스(530a)는 커서의 이동을 가능하게 하는 하나 이상의 제어부(예컨대, 조이스틱)를 포함할 수 있다. 커서는 공유 AR 경험의 가상 좌표계에 매핑되어 제 1 사용자가 가상 좌표계 내의 3D 포인트로 커서를 이동할 수 있게 한다. 커서는 초기 가상 콘텐츠와 상호 작용하는 데 사용될 수 있으므로, 커서의 위치는 가상 좌표계 내에서 제 1 사용자와 초기 가상 콘텐츠 사이의 상호 작용의 위치에 대응할 수 있다.
단계(1106)에서 제 1 사용자와 초기 가상 콘텐츠 사이의 상호 작용의 위치를 획득하는 단계는 사용자 디바이스(530a)로부터 정보를 획득하는 단계를 포함할 수 있다. 이 정보의 형태는 제 1 사용자와 초기 가상 콘텐츠 사이의 상호 작용의 유형에 따라 달라질 것이다. 상호 작용이 제 1 사용자 디바이스를 사용하여 초기 가상 콘텐츠에서 2D 포인트의 선택을 포함하는 경우, 사용자 디바이스(530a)로부터 획득된 정보는 이 2D 포인트의 표시를 포함할 수 있다. 예를 들어, 초기 가상 콘텐츠의 2D 포인트에 대응하는 좌표 또는 픽셀이 사용자 디바이스(530a)로부터 획득된 정보에 포함될 수 있다. 상호 작용이 가상 좌표계에 매핑된 제 1 사용자의 특징부의 사용을 포함하는 경우, 사용자 디바이스(530a)로부터 획득된 정보는 제 1 사용자의 특징부의 위치의 표시를 포함할 수 있다. 이러한 정보의 예는 현실 세계 공간에서 제 1 사용자의 해부학적 특징부의 측정 및/또는 사용자 디바이스(530a)를 사용하여 제 1 사용자에 의해 제어되는 커서의 위치의 표시를 포함한다.
일부 경우에, 단계(1106)는 공유 AR 경험의 가상 좌표계에서 다수의 사용자 상호 작용의 위치를 획득하는 단계를 포함할 수 있다는 점을 유념해야 한다. 이러한 사용자 상호 작용은 공유 AR 경험에서 제 1 사용자, 제 2 사용자 및/또는 다른 사용자에 의해 수행될 수 있다.
일부 구현에서, 단계(1106)의 적어도 일부는 사용자 디바이스(530a)에 의해 수행될 수 있다. 예를 들어, 사용자 디바이스(530a)는 현실 세계 공간 및/또는 가상 좌표계 내에서 제 1 사용자의 해부학적 특징부의 위치를 획득하는 것을 돕는 데 사용될 수 있다. 사용자 디바이스(530a)는 현실 세계 공간 내의 특징부의 위치를 결정하는 것을 돕기 위해 이미지 분석을 수행할 수 있다.
단계(1108)는 프로세서(504)가 제 2 사용자를 위한 AR 콘텐츠를 생성하는 단계를 포함한다. AR 콘텐츠는 가상 좌표계 내의 제 2 사용자의 위치에 기초한 모델의 렌더링을 공유 AR 경험에 포함한다. 사용자의 위치를 결정하는 예는 방법(600)의 단계(606, 608)에서 제공된다. AR 콘텐츠는 단계(1106)에서 결정된 상호 작용의 위치 및 선택적으로 가상 좌표계에서 제 1 사용자의 위치에 기초하여 제 1 사용자와 초기 가상 콘텐츠 사이의 상호 작용의 가상 표현을 더 포함한다. 따라서, 제 2 사용자는 단계(1108)에서 생성된 AR 콘텐츠를 통해, 가상 좌표계에서 제 1 사용자의 상호 작용을 볼 수 있다. 이를 통해 제 1 사용자와 제 2 사용자는 공유 AR 경험에서 모델에 대한 참조를 통해 비언어적으로 의사 소통할 수 있다. 다른 사용자 상호 작용의 가상 표현(공유 AR 경험에서 제 1 사용자, 제 2 사용자 및/또는 다른 사용자에 의해 수행됨), 제 1 사용자의 가상 표현, 오디오 콘텐츠 및/또는 햅틱 콘텐츠가 또한 단계(1108)에서 생성된 AR 콘텐츠에 포함될 수 있다.
단계(1108)에서 생성된 AR 콘텐츠는 가상 좌표계 내의 제 1 사용자, 제 2 사용자, 제 1 사용자의 상호 작용 및 모델의 상대적 위치를 반영할 수 있다. 따라서, 제 1 사용자와 초기 가상 콘텐츠 사이의 상호 작용이 모델의 특정 구성 요소에 대응하는 가상 좌표계 내의 위치에서 발생하면, AR 콘텐츠는 모델의 특정 구성 요소에서의 상호 작용을 도시할 수 있다. 다시 말해서, AR 콘텐츠는 상호 작용이 모델의 특정 구성 요소에 대응함을 도시할 수 있다.
AR 콘텐츠에서 상호 작용의 가상 표현의 형태는 본 명세서에서 제한되지 않는다. 하나 이상의 객체, 기호, 조명 및/또는 색상을 사용하여 AR 콘텐츠에서 상호 작용의 가상 표현을 제공할 수 있다. 하나의 예에서, 상호 작용이 제 1 사용자가 디스플레이 화면을 사용하여 초기 가상 콘텐츠에서 2D 포인트를 선택하는 것을 포함하는 경우, 상호 작용의 가상 표현은 가상 좌표계에서의 상호 작용의 위치가 조명되거나 원으로 표시되거나 다른 색상으로 변경되는 것을 포함할 수 있다. 다른 예에서, 상호 작용이 제 1 사용자의 손을 사용하여 수행된 현실 세계의 가리키기 제스처를 포함하는 경우, 상호 작용의 가상 표현은 가리키기 제스처를 수행하는 손 모양의 객체를 포함할 수 있다. 손의 모양은 제 1 사용자의 손의 측정된 모양을 반영할 수 있다.
일부 구현에서, AR 콘텐츠에서 상호 작용의 가상 표현은 가상 좌표계에서 상호 작용의 방향 표시를 포함한다. 상호 작용의 위치가 2D 포인트로부터 확장되는 벡터에 기초하여 결정되는 경우, 상호 작용의 방향은 벡터의 방향에 기초할 수 있다. 상호 작용의 가상 표현은 예를 들어 화살표를 사용하여 벡터의 방향 표시를 제공할 수 있다. 상호 작용의 위치가 제 1 사용자의 특징부의 위치에 기초하는 경우, 상호 작용의 표현은 특징부의 방향 표시를 포함할 수 있다. 예를 들어, 상호 작용의 가상 표현이 가상 가리키기 제스처를 포함할 때, 가리키기 제스처의 방향은 가상 좌표계에서 상호 작용의 방향에 기초할 수 있다. 대안적으로, 가리키기 제스처의 방향은 가리키기 제스처가 제 2 사용자에 대해 고정된 방향에 있도록 제 2 사용자의 위치에 (예를 들어, 전적으로) 기초할 수 있다. 예를 들어, 가리키기 제스처의 방향은 고객이 가리키기 제스처의 방향을 더 잘 인식할 수 있도록 고객의 시각에 수직일 수 있다.
단계(1110)는 프로세서(504)가 사용자 디바이스(530b)에 제시하기 위해 AR 콘텐츠를 출력하는 단계를 포함한다. 일부 경우에, 단계(1110)는 방법(600)의 단계(614)와 유사한 방식으로 수행된다.
단계(1110)에서 단계(1102)로의 화살표를 사용하여 도시된 바와 같이, 방법(1100)은 여러 번 반복될 수 있다. 방법(1100)의 각각의 인스턴스에서, 업데이트된 가상 콘텐츠가 생성되어 제 1 사용자에게 제시될 수 있으며, 제 1 사용자와 가상 콘텐츠 사이의 상호 작용의 위치가 획득될 수 있다. 그런 다음, 상호 작용의 표현을 포함하는 업데이트된 AR 콘텐츠가 생성되어 제 2 사용자에게 제시될 수 있다. 제 1 사용자는 방법(1100)의 다수의 인스턴스 동안 상호 작용을 시작, 중지 및/또는 변경할 수 있으며, 이는 제 2 사용자를 위해 생성된 업데이트된 AR 콘텐츠에 전달된다.
방법(1100)은 또한 제 2 사용자와 제 2 사용자를 위한 AR 콘텐츠 사이의 상호 작용의 가상 표현을 포함하는 제 1 사용자를 위한 AR 콘텐츠를 생성하도록 수행될 수 있다는 점을 유념해야 한다. 이러한 경우, 단계(1102, 1104)는 단계(1108, 1110)와 유사할 수 있지만, 제 2 사용자가 아닌 제 1 사용자를 위한 AR 콘텐츠를 생성하고, 단계(1106)는 제 2 사용자와 AR 콘텐츠 사이의 상호 작용의 위치를 결정할 수 있다.
도 12 내지 도 16은 공유 AR 경험에서 사용자 상호 작용의 예를 도시하며, 공유 AR 경험은 도 7 내지 도 10을 참조하여 위에서 논의된 것과 동일한 AR 경험이다. 공유 AR 경험은 가상 좌표계(700)에서 스탠드 업 주방 믹서의 모델(702)과 상호 작용하는 고객 및 판매자를 포함한다. 도 12 내지 도 16의 공유 AR 경험은 방법(1100)을 사용하여 적어도 부분적으로 제공될 수 있다.
도 12는 공유 AR 경험을 위한 가상 콘텐츠(1202)를 디스플레이하는 판매자 디바이스(1200)를 도시한다. 가상 콘텐츠(1202)는 빈 공간에 오버레이된 믹서의 모델(702)의 렌더링(1204)을 포함한다. 모델(702)의 렌더링(1204)은 가상 좌표계(700)에서 모델(702)에 대한 판매자의 위치에 기초하여 생성된다. 가상 콘텐츠(1202)는 판매자를 둘러싼 어떠한 현실 세계 공간에도 오버레이되지 않으므로, 가상 콘텐츠(1202)는 VR 콘텐츠로 간주될 수 있다. 일부 구현에서, 가상 콘텐츠(1202)는 방법(1100)의 단계(1102)에서 생성된다. 판매자 디바이스(1200)는 또한 고객이 공유 AR 경험에 존재한다는 표시(1208)를 디스플레이할 수 있다.
판매자는 판매자 디바이스(1200)를 사용하여 가상 콘텐츠(1202)와 상호 작용할 수 있고, 판매자와 가상 콘텐츠(1202) 사이의 이러한 상호 작용의 위치는 방법(1100)의 단계(1106)에서 결정될 수 있다.
도 13 및 도 14는 판매자와 가상 콘텐츠(1202) 사이의 상호 작용의 제 1 예를 도시한다. 도 13은 제 1 예시적인 상호 작용 동안 공유 AR 경험을 위한 가상 좌표계(700)의 사시도이다. 도 13은 믹서의 모델(702), 고객의 모델(704) 및 판매자의 모델(706)을 포함한다. 판매자와 가상 콘텐츠(1202) 사이의 제 1 예시적인 상호 작용에서, 판매자는 손가락 또는 커서를 사용하여 가상 콘텐츠(1202)에서 2D 포인트(도 12에서 1206으로 표시됨)를 선택한다. 선택된 2D 포인트(1206)는 믹서의 손잡이에 대응한다. 가상 좌표계(700)에서 제 1 예시적인 상호 작용의 위치를 결정하기 위해, 가상 콘텐츠(1202)의 선택된 2D 포인트(1206)는 도 13에 도시된 가상 좌표계(700)의 평면(1300)의 2D 포인트에 매핑된다. 평면(1300)은 가상 좌표계(700)에서 판매자의 위치 및 관점에 대응한다. 벡터(1302)는 평면(1300)의 2D 포인트로부터 연장되며, 평면(1300)에 수직이다. 벡터(1302)는 가상 좌표계(700)에서 믹서의 모델(702)과 교차한다. 도 13에서 1304로 표시된 3D 교차점은 믹서의 손잡이에 대응한다. 판매자와 가상 콘텐츠(1202) 사이의 제 1 예시적인 상호 작용의 위치는 3D 교차점(1304) 및 선택적으로 가상 좌표계(700)에서 벡터(1302)의 방향에 기초하여 결정될 수 있다.
도 14는 판매자와 가상 콘텐츠(1202) 사이의 제 1 예시적인 상호 작용 동안 공유 AR 경험을 위한 AR 콘텐츠(1402)를 디스플레이하는 고객 디바이스(800)를 도시한다. AR 콘텐츠(1402)는 믹서의 렌더링(1404) 및 판매자의 가상 표현(1406)을 포함하며, 이는 가상 좌표계(700)에서 고객, 판매자 및 믹서의 모델(702)의 각각의 위치에 기초한다. AR 콘텐츠(1402)는 판매자와 가상 콘텐츠(1202) 사이의 제 1 예시적인 상호 작용의 가상 표현(1408)을 더 포함한다. AR 콘텐츠(1402)에서의 가상 표현(1408)은 고객의 위치에 대한 가상 좌표계(700)에서의 3D 교차점(1304)에 기초한다. 가상 표현(1408)은 믹서의 손잡이 주위의 원으로 도시되며, 이는 도 12의 가상 콘텐츠(1202)의 선택된 2D 포인트(1206)에 도시된 동일한 손잡이이다. 따라서, 판매자와 고객은 공유 AR 경험에서 상이한 관점을 가지고 있지만, 판매자와 가상 콘텐츠(1202) 사이의 제 1 예시적인 상호 작용은 고객을 위한 AR 콘텐츠(1402)에 정확하게 도시된다. 일부 구현에서, AR 콘텐츠(1402)는 방법(1100)의 단계(1108)에서 생성된다.
도 15 및 도 16은 판매자와 가상 콘텐츠(1202) 사이의 상호 작용의 제 2 예를 도시하며, 여기서 판매자는 자신의 현실 세계 손을 사용하여 믹서의 손잡이를 가리킨다. 도 15는 제 2 예시적인 상호 작용 동안 공유 AR 경험을 위한 가상 좌표계(700)의 사시도이다. 도 15는 판매자 손의 모델(1500)을 포함한다. 모델(1500)의 모양과 위치는 믹서의 모델(702)에 있는 손잡이를 향한 판매자의 가리키기 제스처를 도시한다.
일부 구현에서, 판매자 디바이스(1200) 상의 카메라 또는 다른 센서는 판매자 손을 검출하고 판매자를 둘러싼 실제 세계 공간에서 판매자 손의 위치를 결정하는 데 사용된다. 가상 좌표계(700)에서 판매자의 손의 위치는 본 명세서의 다른 곳에서 설명된 바와 같이 가상 좌표계(700)를 현실 세계 공간에 매핑함으로써 결정될 수 있다.
도 16은 판매자와 가상 콘텐츠(1202) 사이의 제 2 예시적인 상호 작용 동안 공유 AR 경험을 위한 AR 콘텐츠(1602)를 디스플레이하는 고객 디바이스(800)를 도시한다. AR 콘텐츠(1602)는 가상 좌표계(700)에서 믹서의 모델(702) 및 고객의 각각의 위치에 기초한 믹서의 모델(702)의 렌더링(1604)을 포함한다. AR 콘텐츠(1602)는 판매자와 가상 콘텐츠(1202) 사이의 제 2 예시적인 상호 작용의 가상 표현(1606)을 더 포함한다. AR 콘텐츠(1602)에서 가상 표현(1606)의 위치는 고객의 위치에 대한 가상 좌표계(700)에서의 판매자 손의 모델(1500)의 위치에 기초한다. 가상 표현(1606)은 믹서의 손잡이를 가리키는 가상 손을 도시하는 모델(1500)의 렌더링이다. 일부 구현에서, AR 콘텐츠(1602)는 방법(1100)의 단계(1108)에서 생성된다.
판매자와 가상 콘텐츠(1202) 사이의 제 1 예시적인 상호 작용 및 제 2 예시적인 상호 작용은 또한 판매자를 위해 생성된 추가 가상 콘텐츠에 제시될 수 있다는 점을 유념해야 한다.
공유 AR 경험 수정
본 개시의 일부 실시예는 공유 AR 경험을 수정하기 위한 방법을 제공한다. 이러한 방법은 공유 AR 경험에서 하나 이상의 사용자 시각 또는 관점을 수정하는 단계를 포함할 수 있다. 일반적으로, 공유 AR 경험의 각각의 사용자는 공유 AR 경험 내에서 상이한 시각을 가질 수 있으며, 이는 공유 AR 경험의 가상 좌표계 내에서 사용자의 위치에 부분적으로 기초한다. 사용자의 시각은 사용자를 위해 생성된 가상 콘텐츠에 반영된다. 예를 들어, 가상 물품의 묘사는 공유 AR 경험에서 가상 물품에 대한 사용자의 관점에 기초할 것이다. 본 명세서에 개시된 공유 AR 경험에 대한 수정은 공유 AR 경험에서 하나 이상의 사용자 시각을 변경하여 상이한 사용자 사이의 협동 및 협력을 잠재적으로 개선할 수 있다.
본 개시의 일 양태에 따르면, 공유 AR 경험의 가상 좌표계에서 한 사용자의 위치는 다른 사용자의 위치와 일치하도록 수정될 수 있다. 그런 다음, 두 사용자는 AR 경험 내에서 공유 또는 공통 시각을 가질 수 있다. 유리하게는, 사용자 시각을 공유할 수 있게 함으로써 AR 경험 내에서 의사 소통 및 협력을 개선할 수 있다. 두 사용자 시각이 적어도 일시적으로 겹치는 경우, 두 사용자는 AR 경험 내에서 실질적으로 동일한 참조 프레임을 가질 수 있다. 이러한 실질적으로 동일한 참조 프레임은 두 사용자 사이의 의사 소통에 의미 있는 콘텍스트를 제공할 수 있다. 예를 들어, 도 4의 공유 AR 경험을 참조하면, 제 1 사용자는 제 2 사용자와 실질적으로 동일한 믹서 뷰를 갖기 위해 제 2 사용자의 관점에서 믹서 보기를 요청할 수 있다.
도 17은 일 실시예에 따른 공유 AR 경험에서 사용자의 시각을 수정하기 위한 방법(1700)을 도시하는 흐름도이다. 방법(1700)은 도 5의 AR 엔진(502)에 의해 수행되는 것으로 설명될 것이며, 공유 AR 경험은 적어도 사용자 디바이스(530a)의 제 1 사용자 및 사용자 디바이스(530b)의 제 2 사용자를 포함한다. 그러나, 방법(1700)의 적어도 일부는 예를 들어 사용자 디바이스(530a) 및/또는 사용자 디바이스(530b)에서와 같이 다른 곳에서 대신 수행될 수 있다.
단계(1702)는 프로세서(504)가 제 1 사용자를 위한 제 1 AR 콘텐츠를 생성하는 단계를 포함한다. 제 1 AR 콘텐츠는 공유 AR 경험의 가상 좌표계 내에 고정되거나 정의된 모델의 제 1 렌더링을 포함한다. 예를 들어, 이 모델은 물품의 3D 모델일 수 있다. 선택적으로, 제 1 AR 콘텐츠는 또한 제 2 사용자의 가상 표현, 하나 이상의 가상 사용자 상호 작용의 가상 표현, 오디오 콘텐츠 및/또는 햅틱 콘텐츠를 포함할 수 있다. 단계(1704)에서, 프로세서(504)는 사용자 디바이스(530a)에 제시하기 위해 제 1 AR 콘텐츠를 출력한다.
일부 구현에서, 단계(1702, 1704)는 방법(600)의 단계(602, 604, 606, 608, 610, 612, 614) 및/또는 방법(1100)의 단계(1106, 1108, 1110) 중 임의의, 일부 또는 전부와 유사할 수 있다.
단계(1702)에서 생성된 AR 콘텐츠에서 모델의 제 1 렌더링은 공유 AR 경험의 가상 좌표계 내의 제 1 사용자의 초기 위치에 기초한다. 가상 좌표계에서 제 1 사용자의 위치는 제 1 사용자의 좌표 및 방향을 포함할 수 있다. 따라서, 제 1 렌더링은 가상 좌표계의 제 1 사용자의 초기 위치에서 제 1 사용자의 시각에서 이루어진다.
일부 경우에, 단계(1702)는 사용자 디바이스(530a)에 의해 획득된 제 1 정보에 기초하여 가상 좌표계 내의 제 1 사용자의 초기 위치를 결정하는 단계를 포함한다. 예를 들어, 사용자 디바이스(530a)로부터 수신된 제 1 정보는 제 1 사용자를 둘러싼 현실 세계 공간의 표현을 포함할 수 있다. 가상 좌표계 내의 제 1 사용자의 초기 위치를 결정하는 단계는 공간 내의 모델의 위치를 획득하는 단계, 공간 내의 모델의 위치에 기초하여 가상 좌표계를 공간에 매핑하는 단계, 및 공간 내의 제 1 사용자의 위치를 결정하는 단계를 포함할 수 있다. 가상 좌표계 내의 제 1 사용자의 초기 위치는 공간 내의 제 1 사용자의 위치에 기초하여 결정될 수 있다. 가상 좌표계에서 사용자의 위치를 결정하는 추가 세부 사항 및 예는 방법(600)의 단계(606)를 참조하여 위에서 제공된다.
가상 콘텐츠는 또한 공유 AR 경험에서 제 2 사용자를 위해 생성될 수 있으며, 이는 가상 좌표계에서 제 2 사용자의 위치에 기초한 모델의 렌더링을 포함할 수 있다. 가상 좌표계에서 제 2 사용자의 위치는 제 2 사용자의 좌표 및 방향을 포함할 수 있다. 제 1 사용자는 처음에 가상 좌표계 내에서 제 2 사용자와 상이한 위치에 있다. 이와 같이, 제 1 사용자 및 제 2 사용자는 상이한 관점에서 모델을 보고 있을 수 있다. 그러나, 상이한 관점에서 모델을 보는 것은 일부 상황에서 의사 소통을 방해할 수 있다. 예를 들어, 제 2 사용자는 제 2 사용자에게 보이지 않는 모델의 특정 구성 요소를 참조할 수 있다. 따라서, 제 1 사용자는 가상 좌표계 내에서 제 2 사용자의 위치 및 시각에서 모델을 보기 위한 요청을 생성할 수 있다. 대안적으로, 제 2 사용자는 제 1 사용자에게 자신의 위치에서 모델을 보라는 요청을 생성할 수 있다.
단계(1706)는 프로세서(504)가 가상 좌표계 내의 제 2 사용자의 위치로 제 1 사용자를 재배치하라는 명령어를 획득하는 단계를 포함한다. 그런 다음, 명령어는 메모리(506)에 또는 다른 비일시적 컴퓨터 판독 가능 매체에 저장될 수 있다. 단계(1706)에서 획득된 명령어의 예는 제 1 사용자에게 가상 좌표계 내에서 제 2 사용자의 시각에서 모델을 보라는 요청이다. 위에서 언급한 바와 같이, 명령어는 사용자 디바이스(530a)를 통해 제 1 사용자로부터 및/또는 사용자 디바이스(530b)를 통해 제 2 사용자로부터 수신될 수 있다.
가상 좌표계 내의 제 2 사용자의 위치로 제 1 사용자의 재배치를 트리거하는 역할을 하는 명령어를 사용자 디바이스에 생성하기 위해 제 1 사용자 또는 제 2 사용자에 의해 다수의 상이한 동작 중 임의의 동작이 수행될 수 있다. 일 예에서, 단계(1702)에서 제 1 사용자를 위해 생성된 AR 콘텐츠는 가상 좌표계 내의 상이한 위치에 있는 제 2 사용자의 표현을 포함한다. 사용자 디바이스(530a)를 통해, 제 1 사용자는 AR 콘텐츠에서 제 2 사용자의 표현을 선택할 수 있다. 그런 다음, 사용자 디바이스(530a)는 가상 좌표계 내에서 제 2 사용자의 위치로 가상으로 이동하기 위한 옵션을 디스플레이할 수 있다.
단계(1708)는 프로세서(504)가 제 1 사용자를 위한 제 2 AR 콘텐츠를 생성하는 단계를 포함한다. 제 2 AR 콘텐츠는 가상 좌표계 내의 제 2 사용자의 위치에 기초한 모델의 제 2 렌더링을 포함한다. 다시 말해서, 제 1 사용자는 가상 좌표계에서 제 2 사용자의 위치로 이동했으며 제 1 사용자는 제 2 사용자의 관점에서 모델(및 잠재적으로 AR 경험의 다른 가상 객체)을 보고 있다. 단계(1710)는 사용자 디바이스(530a)에 제시하기 위해 제 2 AR 콘텐츠를 출력하는 단계를 포함한다.
일부 구현에서, 단계(1708)는 사용자 디바이스(530b)에 의해 획득된 제 2 정보에 기초하여, 가상 좌표계 내의 제 2 사용자의 위치를 결정하는 단게를 포함한다. 그런 다음, 가상 좌표계 내의 제 1 사용자의 위치는 제 2 사용자의 위치와 일치하도록 수정될 수 있다. 이러한 동작 후에, 가상 좌표계 내의 제 1 사용자의 위치는 가상 좌표계 내의 제 2 사용자의 위치와 일치할 수 있으며, 따라서 단계(1708)에서 제 1 사용자를 위해 생성된 AR 콘텐츠의 적어도 일부는 제 2 사용자를 위해 생성된 가상 콘텐츠와 실질적으로 동일할 수 있다. 예를 들어, 제 1 사용자 및 제 2 사용자는 모두 모델의 제 2 렌더링을 보고 있을 수 있다. 이를 통해 제 1 사용자와 제 2 사용자는 AR 경험에서 모델에 대한 공유 관점을 가질 수 있다.
가상 좌표계에서 제 1 사용자의 초기 위치가 현실 세계 공간에서 제 1 사용자의 위치 및 현실 세계 공간에 가상 좌표계의 매핑에 기초하여 결정될 때, 단계(1708)는 현실 세계 공간에 가상 좌표계를 재매핑(remapping)하는 단계를 포함할 수 있다. 가상 좌표계를 재매핑하는 단계는 현실 세계 공간 내의 제 1 사용자의 위치가 가상 좌표계 내의 제 2 사용자의 위치에 대응하도록 제 1 사용자의 현실 세계 공간에 대해 가상 좌표계를 이동하는 단계를 포함할 수 있다. 가상 좌표계는 제 1 사용자에 대해 이동되지만 제 1 사용자는 현실 세계 공간에 고정되어 있으므로, 제 1 사용자는 현실 세계 공간에서 능동적으로 이동하지 않고 가상 좌표계에서 이동한다. 모델은 가상 좌표계에 고정된 상태로 유지되며, 따라서 현실 세계 공간을 기준으로 가상 좌표계를 이동하면 현실 세계 공간을 기준으로 모델도 이동할 것이다.
단계(1708)에서 제 1 사용자의 현실 세계 공간 내에 가상 좌표계를 재매핑하는 단계는 제 2 사용자의 공간(현실 세계 또는 가상)에 가상 좌표계를 매핑하는 데 영향을 미치지 않을 수 있다. 이와 같이, 모델은 제 2 사용자의 공간에 대해 고정된 상태로 유지될 수 있다. 제 1 사용자의 현실 세계 공간에 가상 좌표계를 재매핑하는 것은 제 2 사용자의 관점에서 제 1 사용자가 가상 좌표계 내에서 이동하는 것처럼 보일 수 있다. 이와 같이, 가상 좌표계 내의 제 2 사용자의 위치는 가상 좌표계 내의 제 1 사용자의 위치에 대한 수정에도 불구하고 고정된 상태로 유지될 수 있다.
일부 구현에서, 단계(1706)에서 획득된 명령어는 가상 좌표계 내의 제 1 사용자의 위치를 가상 좌표계 내의 제 2 사용자의 위치에 고정하라는 명령어를 포함할 수 있다. 그 결과, 가상 좌표계 내에서 제 1 사용자 및 제 2 사용자의 이동은 단계(1708)에서 제 2 사용자의 위치로 제 1 사용자의 위치를 초기에 일치시킨 후에 적어도 일시적으로 동기화된다. 이러한 구현에서, 방법(1700)은 선택적 단계(1712, 1714, 1716, 1718)로 진행할 수 있다.
단계(1712)에서, 프로세서(504)는 제 2 디바이스에 의해 획득된 제 3 정보에 기초하여, 제 2 사용자가 가상 좌표계 내의 새로운 위치에 있다고 결정한다. 다시 말해서, 제 2 사용자는 가상 좌표계에서 이동했다. 이것은 예를 들어 제 2 사용자가 가상 좌표계가 매핑된 현실 세계 공간 내에서 물리적으로 이동한 것을 포함할 수 있다.
프로세서(504)는 단계(1714)에서 제 1 사용자를 위한 제 3 AR 콘텐츠를 생성하고, 프로세서(504)는 단계(1716)에서 사용자 디바이스(530a)에 제시하기 위해 제 3 AR 콘텐츠를 출력한다. 제 1 사용자의 위치는 제 2 사용자의 위치에 고정되어 있기 때문에, 단계(1714)에서 제 1 사용자는 제 2 사용자의 새로운 위치로 이동한다. 제 3 AR 콘텐츠는 가상 좌표계 내의 제 2 사용자의 새로운 위치에 기초한 모델의 제 3 렌더링을 포함한다. 따라서, 제 1 사용자를 위한 제 3 AR 콘텐츠는 제 2 사용자가 가상 좌표계 내의 새로운 위치에 있을 때 제 2 사용자를 위한 가상 콘텐츠에 포함된 모델의 동일한 렌더링을 포함할 수 있다.
단계(1716)와 단계(1712) 사이의 화살표로 도시된 바와 같이, 단계(1712, 1714, 1716)는 여러 번 수행될 수 있다. 이것은 시간이 지남에 따라 제 1 사용자의 위치가 제 2 사용자의 위치에 고정된 상태로 유지되도록하는 데 도움이 될 수 있다. 가상 좌표계 내에서 제 2 사용자의 위치가 변경되면, 가상 좌표계에서 제 1 사용자의 위치가 이에 따라 수정될 수 있다. 실제로, 이것은 제 2 사용자에게 제 1 사용자의 관점에 대한 제어를 제공한다. 위에서 언급한 바와 같이, 가상 좌표계에서 제 1 사용자의 위치를 수정하는 것은 제 1 사용자를 둘러싼 현실 세계 공간에 가상 좌표계를 재매핑하는 것을 포함할 수 있다. 따라서, 제 1 사용자는 가상 좌표계 내에서 제 2 사용자와 동일한 위치를 유지하기 위해 물리적으로 이동할 필요가 없다.
단계(1718)에서, 프로세서(504)는 가상 좌표계 내의 제 2 사용자의 위치로부터 제 1 사용자의 위치를 고정 해제하라는 추가 명령어를 획득한다. 이 명령어는 사용자 디바이스(530a)를 사용하여 명시적으로 또는 암시적으로 획득될 수 있다. 명시적 요청의 예는 제 1 사용자가 자신의 위치를 고정 해제하기 위해 사용자 디바이스(530a)에 디스플레이된 버튼을 누르는 것이다. 암시적 표시의 예는 제 1 사용자가 가상 좌표계 내에서 제 2 사용자로부터 멀어지는 것이며, 이는 제 1 사용자가 가상 좌표계에서 독립적으로 이동하기를 원하는 것으로 해석될 수 있다.
도 18 내지 도 20은 공유 AR 경험에서 사용자 수정의 예를 도시한다. 도 18 내지 도 20은 도 7 내지 도 10 및 도 12 내지 도 16을 참조하여 위에서 논의된 동일한 AR 경험에 관한 것이며, 이는 가상 좌표계(700)에서 스탠드 업 주방 믹서의 모델(702)과 상호 작용하는 고객 및 판매자를 포함한다. 도 18 내지 도 20의 공유 AR 경험은 방법(1700)을 사용하여 적어도 부분적으로 제공될 수 있다.
도 18은 공유 AR 경험에서 고객을 위한 AR 콘텐츠(1802)를 디스플레이하는 고객 디바이스(800)를 도시한다. AR 콘텐츠(1802)는 믹서의 모델(702)의 렌더링(1804) 및 판매자의 가상 표현(1806)을 포함한다. 일부 구현에서, AR 콘텐츠(802)는 방법(1700)의 단계(1702)에서 생성된다.
도 18의 고객 디바이스(800)는 가상 좌표계(700)에서 판매자의 위치로 고객을 재배치하기 위한 옵션(1808), 및 가상 좌표계(700)에서 판매자의 위치에 고정하기 위한 다른 옵션(1810)을 더 디스플레이한다. 옵션(1808, 1810)은 예를 들어 고객이 AR 콘텐츠(1802)에서 판매자의 가상 표현(1806) 또는 판매자가 공유 AR 경험에 존재한다는 표시(810)를 선택한 후에 디스플레이될 수 있다.
도 19는 고객이 옵션(1808, 1810) 중 하나를 선택하고 가상 좌표계(700)에서 판매자의 위치로 재배치된 이후의 공유 AR 경험의 가상 좌표계(700)의 사시도이다. 도 19는 도시된 예에서 고객 및 판매자가 가상 좌표계(700) 내의 동일한 위치에서 겹칠 때 고객 및 판매자 모두를 나타내는 역할을 하는 3D 가상 모델(1900)을 도시한다.
도 20은 고객이 가상 좌표계(700)에서 판매자의 위치에 고정하기 위한 옵션(1810)을 선택한 이후의 공유 AR 경험에서 고객을 위한 AR 콘텐츠(2002)를 디스플레이하는 고객 디바이스(800)를 도시한다. AR 콘텐츠(2002)는 가상 좌표계(700)에서 고객과 판매자의 공유 위치에 기초하여 생성된 모델(702)의 렌더링(2004)을 포함한다. 모델(702)의 동일한 렌더링(2004)을 포함하는 가상 콘텐츠가 또한 판매자를 위해 생성될 수 있다. 일부 구현에서, AR 콘텐츠(2002)는 방법(1700)의 단계(1708)에서 생성된다.
도 20에서, 고객 디바이스(800)는 고객의 위치가 판매자의 위치에 고정되어 있다는 표시(2006)를 더 디스플레이한다. 판매자의 위치에 고정하는 것은 일반적으로 고객을 판매자의 위치로 처음 재배치한 후 시간이 지남에 따라 가상 좌표계(700)에서 판매자의 위치에 고객을 유지하는 것을 포함한다. 표시(2006)는 또한 판매자의 위치에서 고객을 고정 해제하는 버튼으로 기능 할 수 있다. 예를 들어, 고객은 다시 한 번 가상 좌표계 내에서 독립적으로 이동하가 위해 표시(2006)를 선택할 수 있다.
본 개시의 다른 양태에 따르면, 공유 AR 경험의 한 사용자는 동시에 다수의 사용자를 위한 AR 콘텐츠를 수정할 수 있다. 예를 들어, 공유 AR 경험의 가상 좌표계에 정의된 모델은 단일 사용자의 요청에 따라 수정될 수 있다. 그 결과, 공유 AR 경험에서 각 사용자의 모델 보기가 변경될 수 있다. 따라서, 단일 사용자는 공유 AR 경험에서 다수의 사용자를 위해 생성되는 AR 콘텐츠의 적어도 일부를 제어할 수 있다. 유리하게는, 모델에 대한 수정을 공유, 연결 또는 상호 연관시킬 수 있게 하면 AR 경험 내에서 의사 소통 및 협력을 개선할 수 있다. 예를 들어, 도 4의 공유 AR 경험을 참조하면, 제 1 사용자는 믹서의 특정 관점을 제 2 사용자에게 보여주기 위해 가상 좌표계에서 믹서 모델의 방향을 수정할 수 있다.
도 21은 일 실시예에 따른 공유 AR 경험을 수정하는 방법(2100)을 도시하는 흐름도이다. 방법(2100)은 도 5의 AR 엔진(502)에 의해 수행되는 것으로 설명될 것이며, 공유 AR 경험은 적어도 사용자 디바이스(530a)의 제 1 사용자 및 사용자 디바이스(530b)의 제 2 사용자를 포함한다. 그러나, 방법(2100)의 적어도 일부는 예를 들어 사용자 디바이스(530a) 및/또는 사용자 디바이스(530b)에서와 같이 다른 곳에서 대신 수행될 수 있다.
단계(2102)는 프로세서(504)가 제 1 사용자를 위한 제 1 AR 콘텐츠를 생성하는 단계를 포함한다. 제 1 AR 콘텐츠는 공유 AR 경험의 가상 좌표계 내에 고정되거나 정의된 모델의 제 1 렌더링을 포함한다. 예를 들어, 이 모델은 물품의 3D 모델일 수 있다. 일부 구현에서, 모델의 제 1 렌더링은 가상 좌표계에서 제 1 사용자의 위치에 기초하고 제 1 사용자의 시각에서 나온 것이다. 선택적으로, 제 1 AR 콘텐츠는 또한 제 2 사용자의 가상 표현, 하나 이상의 가상 사용자 상호 작용의 가상 표현, 오디오 콘텐츠 및/또는 햅틱 콘텐츠를 포함할 수 있다.
단계(2104)는 프로세서(504)가 사용자 디바이스(530a)에 제시하기 위해 제 1 AR 콘텐츠를 출력하는 단계를 포함한다. 일부 구현에서, 단계(2102, 2104)는 방법(600)의 단계(602, 604, 606, 608, 610, 612, 614) 및/또는 방법(1100)의 단계(1106, 1108, 1110) 중 임의의, 일부 또는 전부와 유사할 수 있다.
AR 콘텐츠 또는 VR 콘텐츠와 같은 가상 콘텐츠가 또한 제 2 사용자를 위해 생성되어 사용자 디바이스(530b)에 제시될 수 있다. 제 2 사용자를 위한 가상 콘텐츠는 가상 좌표계 내의 제 2 사용자의 위치 및 시각에 기초한 모델의 제 2 렌더링을 포함할 수 있다.
단계(2106)는 프로세서(504)가 가상 좌표계 내에 정의된 수정된 모델을 생성하기 위해 모델을 수정하는 단계를 포함한다. 단계(2106)는 사용자 디바이스(530b)에 의해 제 2 사용자로부터 획득된 명령어에 기초하여 수행될 수 있다. 명령어는 AR 엔진(502)에 전송되고 메모리(506)에 또는 다른 비일시적 컴퓨터 판독 가능 매체에 저장될 수 있다.
단계(2106)에서 모델을 수정하는 단계는 AR 경험의 가상 좌표계 내에서 모델을 재배치하는 단계를 포함할 수 있다. 가상 좌표계 내에서 모델을 재배치하는 비제한적인 예에는 모델 이동, 방향 변경, 뒤집기, 비틀기 및/또는 회전이 포함된다. 일부 구현에서, 가상 좌표계 내에서 모델을 재배치하는 단계는 가상 좌표계가 제 1 사용자 및 제 2 사용자에 대해 고정된 상태로 유지되는 동안 가상 좌표계로부터 모델을 고정 해제하는 단계를 포함할 수 있다. 그 결과, 모델은 사용자 디바이스(530b)에 의해 획득된 명령어에 기초하여 제 1 사용자 및 제 2 사용자 모두에 대해 동시에 재배치된다.
단계(2106)에서 모델을 수정하는 단계는 가상 좌표계에서 모델의 다른 구성 요소에 대해 모델의 한 구성 요소를 재배치함으로써 모델을 조작하거나 애니메이션화하는 단계를 또한 또는 대신 포함할 수 있다. 예를 들어, 모델에는 여러 상이한 3D 구성 요소가 포함될 수 있다. 사용자 디바이스(530b)에 의해 획득된 명령어는 가상 좌표계 내에서 이들 구성 요소 중 하나 또는 일부를 재배치하라는 요청을 포함할 수 있다. 그런 다음, 모델의 이러한 구성 요소는 가상 좌표계에서 고정 해제되고 재배치될 수 있으며, 모델의 다른 구성 요소는 고정된 상태로 유지된다. 이러한 수정 형태는 모델의 일부 기능을 시뮬레이션할 수 있다. 예를 들어, 모델이 나타내는 물품은 물품의 한 부분이 다른 부분에 대해 움직이는 기계적 기능을 수행할 수 있다.
단계(2106)에서 모델을 수정하는 단계는 추가적으로 또는 대안적으로 모델을 다른 모델로 대체하는 단계를 포함할 수 있다. 예를 들어, 원래 모델은 판매자가 판매한 특정 제품일 수 있다. 제 2 사용자는 사용자 디바이스(530b)를 사용하여 원래 모델을 상이한 색상 또는 스타일의 동일한 제품의 모델 또는 상이한 제품의 모델로 대체하라는 명령어를 생성할 수 있다. 일 예에서, 제 2 사용자는 방법(2100)에 의해 제공되는 공유 AR 경험을 사용하여 테이블의 중앙 장식품을 쇼핑할 수 있다. 제 2 사용자는 원래 꽃병 모델을 보고, 꽃병 모델을 조각품 모델로 대체하라는 명령어를 생성할 수 있다.
단계(2108)는 제 1 사용자를 위한 제 2 AR 콘텐츠를 생성하는 단계를 포함하며, 여기서 제 2 AR 콘텐츠는 단계(2106)에서 획득된 수정된 모델의 렌더링을 포함한다. 그런 다음, 제 2 AR 콘텐츠는 단계(2110)에서 사용자 디바이스(530a)에 제시하기 위해 출력된다. 단계(2108, 2110)는 단계(2102, 2104)와 실질적으로 유사할 수 있지만 모델이 수정된 후에 발생한다. 제 2 사용자를 위한 가상 콘텐츠가 또한 생성될 수도 있으며 수정된 모델의 렌더링을 포함할 수 있다.
도 22 내지 도 29는 공유 AR 경험에 대한 수정의 예를 도시하며, 공유 AR 경험은 도 7 내지 도 10, 도 12 내지 도 16 및 도 18 내지 도 20을 참조하여 위에서 논의된 것과 동일한 AR 경험이다. 공유 AR 경험은 가상 좌표계(700)에서 스탠드 업 주방 믹서의 모델(702)과 상호 작용하는 고객 및 판매자를 포함한다. 도 22 내지 도 29의 공유 AR 경험은 방법(2100)을 사용하여 적어도 부분적으로 제공될 수 있다.
도 22 및 도 23은 시간의 특정 인스턴스에서의 공유 AR 경험을 도시한다. 도 22는 공유 AR 경험의 가상 좌표계(700)의 사시도이고, 도 23은 공유 AR 경험을 위한 AR 콘텐츠(2302)를 디스플레이하는 고객 디바이스(800)를 도시한다. AR 콘텐츠(2302)는 믹서의 모델의 렌더링(2304) 및 판매자의 가상 표현(2306)을 포함한다. 선택적으로, AR 콘텐츠(2302)는 오디오 콘텐츠 및/또는 햅틱 콘텐츠를 더 포함할 수 있다. 일부 구현에서, AR 콘텐츠(2302)는 방법(2100)의 단계(2102)에서 생성된다.
도 23의 고객 디바이스(800)는 가상 좌표계(700)에서 모델(702)을 재배치하기 위한 옵션(2308), 가상 좌표계(700)에서 모델(702)을 조작하기 위한 옵션(2310), 및 모델(702)을 다른 모델로 대체하기 위한 옵션(2312)을 더 디스플레이한다. 예를 들어, 고객이 옵션(816)을 선택하면 옵션(2308, 2310, 2312)이 고객에게 제시될 수 있다.
도 24 및 도 25는 고객 및 판매자를 위한 공유 AR 경험을 수정하는 제 1 예를 도시한다. 도 24는 믹서의 모델(702)이 재배치된 이후의 공유 AR 경험을 위한 가상 좌표계(700)의 사시도이고, 도 25는 믹서의 모델(702)이 재배치된 이후의 공유 AR 경험을 위한 AR 콘텐츠(2502)를 디스플레이하는 고객 디바이스(800)를 도시한다. AR 콘텐츠는 재배치된 믹서의 모델(702)의 렌더링(2504) 및 판매자의 가상 표현(2506)을 포함한다. 일부 구현에서, AR 콘텐츠(2502)는 방법(2100)의 단계(2108)에서 생성된다.
도 24 및 도 25에 도시된 바와 같이, 믹서의 모델(702)은 가상 좌표계(700)에서 (도 22 및 도 23의 모델(702)의 원래 위치와 비교하여) 수직으로 뒤집혀서(즉, 반전됨) 재배치되었다. 따라서, 고객은 이제 렌더링(2504)에서 믹서의 바닥을 볼 수 있다. 믹서의 모델(702)을 뒤집는 것은 고객 또는 판매자로부터 받은 명령어에 따라 수행될 수 있다. 예를 들어, 판매자는 믹서 바닥에 대해 고객과 논의하기를 원했을 수 있다. 믹서의 모델(702)의 바닥을 보도록(가능하지 않을 수도 있음) 공유 AR 경험의 가상 좌표계(700) 내에서 위치를 수정하도록 고객에게 지시하는 대신, 판매자는 대신 가상 좌표계(700) 내에서 모델(702)을 재배치함으로써 모델(702)을 수정하라는 명령어를 생성하였다. 모델(702)의 이러한 재배치는 판매자를 위해 생성된 가상 콘텐츠 및 고객을 위해 생성된 AR 콘텐츠(2502)에 반영된다.
도 26 및 도 27은 고객 및 판매자를 위한 공유 AR 경험을 수정하는 제 2 예를 도시한다. 도 26은 믹서의 모델(702)이 조작된 이후의 공유 AR 경험을 위한 가상 좌표계(700)의 사시도이고, 도 27은 믹서의 모델(702)이 조작된 이후의 공유 AR 경험을 위한 AR 콘텐츠(2702)를 디스플레이하는 고객 디바이스(800)를 도시한다. AR 콘텐츠(2702)는 조작된 믹서의 모델(702)의 렌더링(2704) 및 판매자의 가상 표현(2706)을 포함한다. 일부 구현에서, AR 콘텐츠(2702)는 방법(2100)의 단계(2108)에서 생성된다.
도 26 및 도 27에 도시된 바와 같이, 믹서의 모델(702)은 믹서의 베이스에 대해 믹서의 상부를 회전시킴으로써 조작되었다. 이것은 믹서의 그릇을 제거할 수 있는 믹서의 실제 기능을 시뮬레이션할 수 있으며, 고객은 이제 이것을 AR 콘텐츠(2702)에서 볼 수 있다. 공유 AR 경험에서 고객과 판매자의 관점에서, 모델(702)을 조작하는 것은 믹서의 바닥에 대해 움직이는 믹서의 상부의 애니메이션으로 보일 수 있다. 일부 구현에서, 모델(702)은 다수의 상이한 모델 또는 구성 요소의 조합일 수 있고, 믹서의 베이스에 대해 믹서의 상부를 회전시키는 것은 나머지 구성 요소에 대해 모델(702)의 하나 또는 일부 구성 요소를 재배치함으로써 달성될 수 있다. 예를 들어, 믹서의 상부(모터 및 비터 포함)는 제 1 3D 구성 요소로 표현될 수 있고 믹서의 베이스는 제 2 3D 구성 요소로 표현될 수 있다. 함께 결합될 때, 제 1 3D 구성 요소 및 제 2 3D 구성 요소는 완전한 믹서의 모델(702)을 제공한다. 이 예에서, 제 1 3D 구성 요소는 제 2 3D 구성 요소에 대해 회전되어 믹서의 바닥에 대해 믹서의 상부를 회전시키는 것을 시뮬레이션할 수 있다.
믹서를 조작하는 것은 고객 또는 판매자로부터 받은 명령어에 따라 수행될 수 있다. 예를 들어, 판매자는 믹서의 기능을 고객에게 보여주고 싶을 수 있다.
도 28 및 도 29는 고객 및 판매자를 위한 공유 AR 경험을 수정하는 제 3 예를 도시한다. 도 28은 믹서의 모델(702)이 블렌더의 모델(2802)로 대체된 이후의 공유 AR 경험을 위한 가상 좌표계(700)의 사시도이고, 도 29는 믹서의 모델(702)이 블렌더의 모델(2802)로 대체된 이후의 공유 AR 경험을 위한 AR 콘텐츠(2902)를 디스플레이하는 고객 디바이스(800)를 도시한다. AR 콘텐츠는 블렌더의 모델(2802)의 렌더링(2904) 및 판매자의 가상 표현(2906)을 포함한다. 일부 구현에서, AR 콘텐츠(2902)는 방법(2100)의 단계(2108)에서 생성된다.
믹서의 모델(702)을 블렌더의 모델(2802)로 대체하는 것은 고객 또는 판매자로부터 받은 명령어에 기초하여/응답하여 수행될 수 있다. 예를 들어, 고객은 믹서 및 브렌더에 대해 판매자와 논의하기를 원했을 수 있다. 고객이 믹서에 대한 질문을 완료한 후, 고객은 믹서의 모델(702)이 블렌더의 모델(2802)로 대체되도록 요청을 생성할 수 있다. 이 요청은 고객 디바이스(800)의 사용자 인터페이스를 통해 고객 입력을 수신하는 것에 응답하여 생성될 수 있다. 그런 다음, 요청은 고객 및/또는 판매자를 위한 AR 콘텐츠를 생성하는 AR 엔진에 전송될 수 있다. 요청에 응답하여, AR 엔진은 믹서의 모델(702)을 블렌더의 모델(2802)로 대체하기 위해 공유 AR 경험을 수정할 수 있다. 이 예에서, 두 모델(702, 2802)은 가상 좌표계(700)에서 동일한 위치를 갖는다.
결론
본 발명은 특정 특징 및 그 실시예를 참조하여 설명되었지만, 본 발명에서 벗어나지 않고 다양한 수정 및 조합이 이루어질 수 있다. 따라서, 상세한 설명 및 도면은 첨부된 청구 범위에 의해 정의된 바와 같이 단순히 본 발명의 일부 실시예의 예시로서 간주되어야 하며, 본 발명의 범위 내에 속하는 임의의 및 모든 수정, 변형, 조합 또는 등가물을 포괄하는 것으로 고려된다. 따라서, 본 발명 및 그 장점이 상세하게 설명되었지만, 첨부된 청구 범위에 의해 정의된 바와 같이 본 발명에서 벗어나지 않고 다양한 변경, 대체 및 교체가 본 명세서에서 이루어질 수 있다. 더욱이, 본 출원의 범위는 본 명세서에 설명된 프로세스, 기계, 제조, 물질의 조성, 수단, 방법 및 단계의 특정 실시예로 제한되도록 의도되지 않는다. 당업자는 본 발명의 개시로부터, 본 명세서에 설명된 대응하는 실시예와 실질적으로 동일한 기능을 수행하거나 실질적으로 동일한 결과를 달성하는, 현재 존재하거나 이후에 개발될, 프로세스, 기계, 제조, 물질의 조성, 수단, 방법 또는 단계를 본 발명에 따라 사용할 수 있음을 쉽게 이해할 것이다. 따라서, 첨부된 청구 범위는 이러한 프로세스, 기계, 제조, 물질의 조성, 수단, 방법 또는 단계와 같은 범위 내에 포함하도록 의도된다.
더욱이, 명령어를 실행하는 본 명세서에 예시된 임의의 모듈, 구성 요소 또는 디바이스는 컴퓨터/프로세서 판독 가능 명령어, 데이터 구조, 프로그램 모듈 및/또는 기타 데이터와 같은 정보의 저장을 위한 비일시적 컴퓨터/프로세서 판독 가능 저장 매체 또는 매체들을 포함하거나 이에 대한 액세스를 가질 수 있다. 비일시적 컴퓨터/프로세서 판독 가능 저장 매체의 예의 비제한적인 목록에는 자기 카세트, 자기 테이프, 자기 디스크 저장소 또는 기타 자기 저장 장치, CD-ROM(compact disc read-only memory; 컴팩트 디스크 읽기 전용 메모리), 디지털 비디오 디스크 또는 DVD(digital versatile disc; 디지털 다기능 디스크), Blu-ray Disc™ 또는 기타 광학 저장소와 같은 광학 디스크, 모든 방법 또는 기술로 구현된 휘발성 및 비휘발성, 이동식 및 비이동식 매체, RAM(Random-Access Memory; 랜덤 액세스 메모리), ROM(Read-Only Memory; 읽기 전용 메모리), EEPROM(Electrical Erasable Programmable Read-Only Memory; 전기적 소거 가능 프로그램 가능 읽기 전용 메모리), 플래시 메모리 또는 기타 메모리 기술이 포함된다. 이러한 비일시적 컴퓨터/프로세서 저장 매체는 디바이스의 일부이거나 디바이스에 액세스 가능하거나 연결 가능할 수 있다. 본 명세서에 설명된 임의의 애플리케이션 또는 모듈은 그러한 비일시적 컴퓨터/프로세서 판독 가능 저장 매체에 의해 저장되거나 유지될 수 있는 컴퓨터/프로세서 판독 가능/실행 가능 명령어를 사용하여 구현될 수 있다.
본 교시는 또한 다음의 번호가 매겨진 조항 중 하나 이상의 특징으로 확장될 수 있다.
조항
1. 컴퓨터 구현 방법에 있어서,
제 1 사용자와 제 1 디바이스에 제시된 가상 콘텐츠 사이의 상호 작용의 위치를 획득하는 단계 - 상기 가상 콘텐츠는 가상 좌표계 내에 정의된 3D(3 차원) 모델의 제 1 렌더링을 포함하고, 상기 상호 작용의 위치는 상기 가상 좌표계 내에서 정의됨 - ;
증강 현실(AR) 콘텐츠를 생성하는 단계로서, 상기 AR 콘텐츠는:
상기 가상 좌표계 내의 제 2 사용자의 위치에 기초한 상기 모델의 제 2 렌더링 - 상기 제 2 사용자의 위치는 제 2 디바이스에 의해 획득된 정보에 기초함 - , 및
상기 상호 작용의 위치에 기초한 상기 상호 작용의 가상 표현을 포함하는 것인, 상기 AR 콘텐츠를 생성하는 단계; 및
상기 제 2 디바이스에 제시하기 위해 상기 AR 콘텐츠를 출력하는 단계
를 포함하는 컴퓨터 구현 방법.
2. 제 1 조항에 있어서,
상기 가상 좌표계 내의 상기 제 1 사용자의 위치를 획득하는 단계
를 더 포함하고, 상기 상호 작용의 위치는 상기 가상 좌표계 내의 상기 제 1 사용자의 위치에 기초하는 것인, 컴퓨터 구현 방법.
3. 제 2 조항에 있어서,
상기 상호 작용은 상기 제 1 디바이스를 사용하여 상기 가상 콘텐츠에서 2 차원(2D) 포인트의 선택을 포함하고,
상기 상호 작용의 위치를 획득하는 단계는:
상기 가상 좌표계 내의 상기 제 1 사용자의 위치에 기초하여 상기 가상 콘텐츠의 2D 포인트를 상기 가상 좌표계의 평면의 2D 포인트에 매핑하는 단계,
상기 가상 좌표계의 평면의 2D 포인트를 통해 확장되고 상기 가상 좌표계의 평면에 수직인 벡터를 결정하는 단계, 및
상기 벡터가 상기 모델과 교차하는 상기 가상 좌표계 내의 3D 교차점을 결정하는 단계 - 상기 상호 작용의 위치는 상기 가상 좌표계 내의 3D 교차점에 기초함 - 를 포함하는 것인, 컴퓨터 구현 방법.
4. 제 3 조항에 있어서,
상기 상호 작용의 위치를 획득하는 단계는 상기 가상 좌표계 내의 상기 모델에 대한 상기 벡터의 방향을 결정하는 단계를 더 포함하고;
상기 상호 작용의 가상 표현은 상기 벡터의 방향 표시를 포함하는 것인, 컴퓨터 구현 방법.
5. 제 1 조항에 있어서,
상기 가상 좌표계 내의 상기 상호 작용의 위치를 획득하는 단계는 상기 가상 좌표계 내의 상기 제 1 사용자의 특징부의 위치를 획득하는 단계를 포함하고;
상기 가상 좌표계 내의 상기 상호 작용의 위치는 상기 가상 좌표계 내의 상기 제 1 사용자의 특징부의 위치에 기초하는 것인, 컴퓨터 구현 방법.
6. 제 5 조항에 있어서,
상기 제 1 디바이스를 사용하여, 공간의 표현을 획득하는 단계
를 더 포함하고, 상기 가상 좌표계 내의 제 1 사용자의 특징부의 위치를 획득하는 단계는:
상기 공간 내의 상기 모델의 위치를 결정하는 단계,
상기 공간 내의 상기 모델의 위치에 기초하여 상기 가상 좌표계를 상기 공간에 매핑하는 단계, 및
상기 공간 내의 상기 제 1 사용자의 특징부의 위치를 결정하는 단계 - 상기 가상 좌표계 내의 상기 제 1 사용자의 특징부의 위치는 상기 공간 내의 상기 제 1 사용자의 특징부의 위치에 기초함 - 를 포함하는 것인, 컴퓨터 구현 방법.
7. 제 6 조항에 있어서, 상기 제 1 사용자의 특징부는 상기 제 1 사용자의 해부학적 특징부인 것인, 컴퓨터 구현 방법.
8. 제 6 조항에 있어서, 상기 제 1 사용자의 특징부는 상기 제 1 디바이스를 사용하는 상기 제 1 사용자에 의해 제어되는 커서인 것인, 컴퓨터 구현 방법.
9. 제 6 조항에 있어서,
상기 공간의 표현은 상기 제 1 디바이스에 의해 캡처된 상기 공간의 이미지를 포함하고;
상기 공간 내의 상기 제 1 사용자의 특징부의 위치를 결정하는 단계는 상기 이미지의 이미지 분석에 기초하는 것인, 컴퓨터 구현 방법.
10. 제 5 조항에 있어서,
상기 가상 좌표계 내의 상기 제 1 사용자의 특징부의 위치를 결정하는 단계는 상기 가상 좌표계 내의 상기 제 1 사용자의 특징부의 방향을 결정하는 단계를 포함하고;
상기 상호 작용의 표현은 상기 제 1 사용자의 특징부의 방향 표시를 포함하는 것인, 컴퓨터 구현 방법.
11. 제 1 조항에 있어서,
상기 AR 콘텐츠는 제 1 AR 콘텐츠이고;
상기 가상 콘텐츠는 제 2 AR 콘텐츠를 포함하는 것인, 컴퓨터 구현 방법.
12. 시스템에 있어서,
제 1 사용자와 제 1 디바이스에 제시된 가상 콘텐츠 사이의 상호 작용의 위치를 저장하기 위한 메모리 - 상기 가상 콘텐츠는 가상 좌표계 내에 정의된 3 차원(3D) 모델의 제 1 렌더링을 포함하고, 상기 상호 작용의 위치는 상기 가상 좌표계 내에서 정의됨 - ; 및
적어도 하나의 프로세서
를 포함하고, 상기 적어도 하나의 프로세서는:
증강 현실(AR) 콘텐츠를 생성하는 것으로서, 상기 AR 콘텐츠는:
상기 가상 좌표계 내의 제 2 사용자의 위치에 기초한 상기 모델의 제 2 렌더링 - 상기 제 2 사용자의 위치는 제 2 디바이스에 의해 획득된 정보에 기초함 - , 및
상기 상호 작용의 위치에 기초한 상기 상호 작용의 가상 표현
을 포함하는 것인, 상기 AR 콘텐츠를 생성하고;
상기 제 2 디바이스에 제시하기 위해 상기 AR 콘텐츠를 출력하도록 구성되는 것인, 시스템.
13. 제 12 조항에 있어서, 상기 적어도 하나의 프로세서는 또한 상기 가상 좌표계 내의 상기 제 1 사용자의 위치를 획득하도록 구성되고, 상기 상호 작용의 위치는 상기 가상 좌표 내의 상기 제 1 사용자의 위치에 기초하는 것인, 시스템.
14. 제 13 조항에 있어서,
상기 상호 작용은 상기 제 1 디바이스를 사용하여 상기 가상 콘텐츠에서 2 차원(2D) 포인트의 선택을 포함하고;
상기 적어도 하나의 프로세서는 또한:
상기 가상 좌표계 내의 상기 제 1 사용자의 위치에 기초하여 상기 가상 콘텐츠의 2D 포인트를 상기 가상 좌표계의 평면의 2D 포인트에 매핑하고,
상기 가상 좌표계의 평면의 2D 포인트를 통해 확장되고 상기 가상 좌표계의 평면에 수직인 벡터를 결정하며,
상기 벡터가 상기 모델과 교차하는 상기 가상 좌표계 내의 3D 교차점을 결정하도록 구성되며, 상기 상호 작용의 위치는 상기 가상 좌표계 내의 3D 교차점에 기초하는 것인, 시스템.
15. 제 14 조항에 있어서,
상기 상호 작용의 위치는 상기 가상 좌표계 내의 상기 모델에 대한 상기 벡터의 방향을 더 포함하고;
상기 상호 작용의 가상 표현은 상기 벡터의 방향 표시를 포함하는 것인, 시스템.
16. 제 12 조항에 있어서,
상기 가상 좌표계 내의 상기 상호 작용의 위치는 상기 가상 좌표계 내의 상기 제 1 사용자의 특징부의 위치에 기초하는 것인, 시스템.
17. 제 16 조항에 있어서, 상기 적어도 하나의 프로세서는 또한:
상기 제 1 디바이스를 사용하여, 공간의 표현을 획득하고,
상기 공간 내의 상기 모델의 위치를 결정하고,
상기 공간 내의 상기 모델의 위치에 기초하여 상기 가상 좌표계를 상기 공간에 매핑하며,
상기 공간 내의 상기 제 1 사용자의 특징부의 위치를 결정하도록 구성되고, 상기 가상 좌표계 내의 상기 제 1 사용자의 특징부의 위치는 상기 공간 내의 상기 제 1 사용자의 특징부의 위치에 기초하는 것인, 시스템.
18. 제 17 조항에 있어서, 상기 제 1 사용자의 특징부는 상기 제 1 사용자의 해부학적 특징부인 것인, 시스템.
19. 제 17 조항에 있어서, 상기 제 1 사용자의 특징부는 상기 제 1 디바이스를 사용하는 상기 제 1 사용자에 의해 제어되는 커서인 것인, 시스템.
20. 제 17 조항에 있어서,
상기 공간의 표현은 상기 제 1 디바이스에 의해 캡처된 상기 공간의 이미지를 포함하고;
상기 공간 내의 상기 제 1 사용자의 특징부의 위치는 상기 이미지의 이미지 분석에 기초하는 것인, 시스템.
21. 제 16 조항에 있어서,
상기 가상 좌표계 내의 상기 제 1 사용자의 특징부의 위치는 상기 가상 좌표계 내의 상기 제 1 사용자의 특징부의 방향을 포함하고;
상기 상호 작용의 표현은 상기 제 1 사용자의 특징부의 방향 표시를 포함하는 것인, 시스템.
22. 제 12 조항에 있어서,
상기 AR 콘텐츠는 제 1 AR 콘텐츠이고;
상기 가상 콘텐츠는 제 2 AR 콘텐츠를 포함하는 것인, 시스템.
23. 컴퓨터 실행 가능 명령어를 저장하는 비일시적 컴퓨터 판독 가능 매체에 있어서, 컴퓨터에 의해 실행될 때, 상기 컴퓨터가:
제 1 사용자와 제 1 디바이스에 제시된 가상 콘텐츠 사이의 상호 작용의 위치를 획득하고 - 상기 가상 콘텐츠는 가상 좌표계 내에 정의된 3D(3 차원) 모델의 제 1 렌더링을 포함하고, 상기 상호 작용의 위치는 상기 가상 좌표계 내에서 정의됨 - ;
증강 현실(AR) 콘텐츠를 생성하는 것으로서, 상기 AR 콘텐츠는:
상기 가상 좌표계 내의 제 2 사용자의 위치에 기초한 상기 모델의 제 2 렌더링 - 상기 제 2 사용자의 위치는 제 2 디바이스에 의해 획득된 정보에 기초함 - , 및
상기 상호 작용의 위치에 기초한 상기 상호 작용의 가상 표현
을 포함하는 것인, 상기 AR 콘텐츠를 생성하고;
상기 제 2 디바이스에 제시하기 위해 상기 AR 콘텐츠를 출력하도록 구성되는 것인, 비일시적 컴퓨터 판독 가능 매체.

Claims (13)

  1. 컴퓨터 구현 방법에 있어서,
    제 1 사용자와 제 1 디바이스에 제시된 가상 콘텐츠 사이의 상호 작용의 위치를 획득하는 단계 - 상기 가상 콘텐츠는 가상 좌표계 내에 정의된 3D(3 차원) 모델의 제 1 렌더링을 포함하고, 상기 상호 작용의 위치는 상기 가상 좌표계 내에서 정의됨 - ;
    증강 현실(AR) 콘텐츠를 생성하는 단계로서, 상기 AR 콘텐츠는:
    상기 가상 좌표계 내의 제 2 사용자의 위치에 기초한 상기 모델의 제 2 렌더링 - 상기 제 2 사용자의 위치는 제 2 디바이스에 의해 획득된 정보에 기초함 - , 및
    상기 상호 작용의 위치에 기초한 상기 상호 작용의 가상 표현을 포함하는 것인, 상기 AR 콘텐츠를 생성하는 단계; 및
    상기 제 2 디바이스에 제시하기 위해 상기 AR 콘텐츠를 출력하는 단계
    를 포함하는 컴퓨터 구현 방법.
  2. 제 1 항에 있어서,
    상기 가상 좌표계 내의 상기 제 1 사용자의 위치를 획득하는 단계
    를 더 포함하고, 상기 상호 작용의 위치는 상기 가상 좌표계 내의 상기 제 1 사용자의 위치에 기초하는 것인, 컴퓨터 구현 방법.
  3. 제 2 항에 있어서,
    상기 상호 작용은 상기 제 1 디바이스를 사용하여 상기 가상 콘텐츠에서 2 차원(2D) 포인트의 선택을 포함하고,
    상기 상호 작용의 위치를 획득하는 단계는:
    상기 가상 좌표계 내의 상기 제 1 사용자의 위치에 기초하여 상기 가상 콘텐츠의 2D 포인트를 상기 가상 좌표계의 평면의 2D 포인트에 매핑하는 단계,
    상기 가상 좌표계의 평면의 2D 포인트를 통해 확장되고 상기 가상 좌표계의 평면에 수직인 벡터를 결정하는 단계, 및
    상기 벡터가 상기 모델과 교차하는 상기 가상 좌표계 내의 3D 교차점을 결정하는 단계 - 상기 상호 작용의 위치는 상기 가상 좌표계 내의 3D 교차점에 기초함 - 를 포함하는 것인, 컴퓨터 구현 방법.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 상호 작용의 위치를 획득하는 단계는 상기 가상 좌표계 내의 상기 모델에 대한 상기 벡터의 방향을 결정하는 단계를 더 포함하고;
    상기 상호 작용의 가상 표현은 상기 벡터의 방향 표시를 포함하는 것인, 컴퓨터 구현 방법.
  5. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 가상 좌표계 내의 상기 상호 작용의 위치를 획득하는 단계는 상기 가상 좌표계 내의 상기 제 1 사용자의 특징부의 위치를 획득하는 단계를 포함하고;
    상기 가상 좌표계 내의 상기 상호 작용의 위치는 상기 가상 좌표계 내의 상기 제 1 사용자의 특징부의 위치에 기초하는 것인, 컴퓨터 구현 방법.
  6. 제 5 항에 있어서,
    상기 제 1 디바이스를 사용하여, 공간의 표현을 획득하는 단계
    를 더 포함하고, 상기 가상 좌표계 내의 제 1 사용자의 특징부의 위치를 획득하는 단계는:
    상기 공간 내의 상기 모델의 위치를 결정하는 단계,
    상기 공간 내의 상기 모델의 위치에 기초하여 상기 가상 좌표계를 상기 공간에 매핑하는 단계, 및
    상기 공간 내의 상기 제 1 사용자의 특징부의 위치를 결정하는 단계 - 상기 가상 좌표계 내의 상기 제 1 사용자의 특징부의 위치는 상기 공간 내의 상기 제 1 사용자의 특징부의 위치에 기초함 - 를 포함하는 것인, 컴퓨터 구현 방법.
  7. 제 5 항에 있어서, 상기 제 1 사용자의 특징부는 상기 제 1 사용자의 해부학적 특징부인 것인, 컴퓨터 구현 방법.
  8. 제 5 항에 있어서, 상기 제 1 사용자의 특징부는 상기 제 1 디바이스를 사용하는 상기 제 1 사용자에 의해 제어되는 커서인 것인, 컴퓨터 구현 방법.
  9. 제 5 항에 있어서,
    상기 공간의 표현은 상기 제 1 디바이스에 의해 캡처된 상기 공간의 이미지를 포함하고;
    상기 공간 내의 상기 제 1 사용자의 특징부의 위치를 결정하는 단계는 상기 이미지의 이미지 분석에 기초하는 것인, 컴퓨터 구현 방법.
  10. 제 5 항에 있어서,
    상기 가상 좌표계 내에서 상기 제 1 사용자의 특징부의 위치를 결정하는 단계는 상기 가상 좌표계 내에서 상기 제 1 사용자의 특징부의 방향을 결정하는 단계를 포함하고;
    상기 상호 작용의 표현은 상기 제 1 사용자의 특징부의 방향 표시를 포함하는 것인, 컴퓨터 구현 방법.
  11. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    상기 AR 콘텐츠는 제 1 AR 콘텐츠이고;
    상기 가상 콘텐츠는 제 2 AR 콘텐츠를 포함하는 것인, 컴퓨터 구현 방법.
  12. 시스템에 있어서,
    제 1 사용자와 제 1 디바이스에 제시된 가상 콘텐츠 사이의 상호 작용의 위치를 저장하기 위한 메모리 - 상기 가상 콘텐츠는 가상 좌표계 내에 정의된 3 차원(3D) 모델의 제 1 렌더링을 포함하고, 상기 상호 작용의 위치는 상기 가상 좌표계 내에서 정의됨 - ; 및
    제 1 항 내지 제 3 항 중 어느 한 항의 방법을 수행하도록 구성된 적어도 하나의 프로세서
    를 포함하는 시스템.
  13. 매체에 저장된 컴퓨터 프로그램에 있어서, 컴퓨터의 프로세서 상에서 실행될 때, 제 1 항 내지 제 3 항 중 어느 한 항의 방법을 수행하도록 구성되는 것인, 매체에 저장된 컴퓨터 프로그램.
KR1020210083267A 2020-07-27 2021-06-25 다중 사용자 증강 현실에서 사용자 상호 작용을 표현하기 위한 시스템 및 방법 KR20220013903A (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US16/939,280 US11908159B2 (en) 2020-07-27 2020-07-27 Systems and methods for representing user interactions in multi-user augmented reality
US16/939,280 2020-07-27
EP21168734.8 2021-04-15
EP21168734.8A EP3945486A1 (en) 2020-07-27 2021-04-15 Systems and methods for representing user interactions in multi-user augmented reality

Publications (1)

Publication Number Publication Date
KR20220013903A true KR20220013903A (ko) 2022-02-04

Family

ID=79551984

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210083267A KR20220013903A (ko) 2020-07-27 2021-06-25 다중 사용자 증강 현실에서 사용자 상호 작용을 표현하기 위한 시스템 및 방법

Country Status (8)

Country Link
US (1) US11908159B2 (ko)
EP (1) EP3945486A1 (ko)
JP (1) JP2022023789A (ko)
KR (1) KR20220013903A (ko)
CN (1) CN113986004A (ko)
AU (1) AU2021203479A1 (ko)
CA (1) CA3117878A1 (ko)
TW (1) TW202205173A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102618364B1 (ko) * 2023-07-05 2023-12-28 주식회사 디씨엠 온라인 쥬얼리 시착 서비스 제공 시스템

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11494153B2 (en) 2020-07-27 2022-11-08 Shopify Inc. Systems and methods for modifying multi-user augmented reality
US11527045B2 (en) 2020-07-27 2022-12-13 Shopify Inc. Systems and methods for generating multi-user augmented reality content
US11580592B2 (en) 2021-05-19 2023-02-14 Snap Inc. Customized virtual store
US11636654B2 (en) 2021-05-19 2023-04-25 Snap Inc. AR-based connected portal shopping
US11829126B2 (en) * 2021-09-22 2023-11-28 Rockwell Automation Technologies, Inc. Systems and methods for providing context-based data for an industrial automation system based on a virtual coordinate system
US11894989B2 (en) * 2022-04-25 2024-02-06 Snap Inc. Augmented reality experience event metrics system
US20240071004A1 (en) * 2022-08-31 2024-02-29 Snap Inc. Social memory re-experiencing system

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2775814B1 (fr) 1998-03-06 2001-01-19 Rasterland Sa Systeme de visualisation d'images tridimensionnelles realistes virtuelles en temps reel
SE521263C2 (sv) 1998-06-22 2003-10-14 Ericsson Telefon Ab L M Anordning och förfarande för att upprätta förbindelse mellan en första och andra abonnent med hjälp av ett publikt register
JP3631151B2 (ja) 2000-11-30 2005-03-23 キヤノン株式会社 情報処理装置、複合現実感提示装置及びその方法並びに記憶媒体
US7136829B2 (en) * 2002-03-08 2006-11-14 America Online, Inc. Method and apparatus for providing a shopping list service
CN201281869Y (zh) 2008-10-21 2009-07-29 蓝劲松 网络商品销售装置
US9348141B2 (en) 2010-10-27 2016-05-24 Microsoft Technology Licensing, Llc Low-latency fusing of virtual and real content
US20120113223A1 (en) 2010-11-05 2012-05-10 Microsoft Corporation User Interaction in Augmented Reality
US20140267234A1 (en) * 2013-03-15 2014-09-18 Anselm Hook Generation and Sharing Coordinate System Between Users on Mobile
US10430018B2 (en) 2013-06-07 2019-10-01 Sony Interactive Entertainment Inc. Systems and methods for providing user tagging of content within a virtual scene
US10203762B2 (en) * 2014-03-11 2019-02-12 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
US10725298B2 (en) 2014-03-26 2020-07-28 Mark D. Wieczorek, P.C. Virtual reality devices and accessories
US10852838B2 (en) 2014-06-14 2020-12-01 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
KR101687017B1 (ko) * 2014-06-25 2016-12-16 한국과학기술원 머리 착용형 컬러 깊이 카메라를 활용한 손 위치 추정 장치 및 방법, 이를 이용한 맨 손 상호작용 시스템
US9645648B2 (en) 2014-09-18 2017-05-09 Mary A. Spio Audio computer system for interacting within a virtual reality environment
US10360729B2 (en) * 2015-04-06 2019-07-23 Scope Technologies Us Inc. Methods and apparatus for augmented reality applications
US9898864B2 (en) 2015-05-28 2018-02-20 Microsoft Technology Licensing, Llc Shared tactile interaction and user safety in shared space multi-person immersive virtual reality
TWI585617B (zh) 2016-08-31 2017-06-01 宅妝股份有限公司 互動方法及系統
US20200050256A1 (en) 2017-01-25 2020-02-13 Google Llc Techniques to cause changes in both virtual environment and physical environment
US10140773B2 (en) * 2017-02-01 2018-11-27 Accenture Global Solutions Limited Rendering virtual objects in 3D environments
DK180470B1 (en) * 2017-08-31 2021-05-06 Apple Inc Systems, procedures, and graphical user interfaces for interacting with augmented and virtual reality environments
US10685456B2 (en) * 2017-10-12 2020-06-16 Microsoft Technology Licensing, Llc Peer to peer remote localization for devices
US10773169B2 (en) * 2018-01-22 2020-09-15 Google Llc Providing multiplayer augmented reality experiences
US10438414B2 (en) * 2018-01-26 2019-10-08 Microsoft Technology Licensing, Llc Authoring and presenting 3D presentations in augmented reality
GB2571337B (en) 2018-02-26 2021-03-10 Sony Interactive Entertainment Inc Controlling data processing
US11107184B2 (en) * 2019-09-17 2021-08-31 Adobe Inc. Virtual object translation
US11380069B2 (en) * 2019-10-30 2022-07-05 Purdue Research Foundation System and method for generating asynchronous augmented reality instructions
WO2021178900A1 (en) 2020-03-06 2021-09-10 Christopher Renwick Alston Technologies for augmented-reality
US11494153B2 (en) 2020-07-27 2022-11-08 Shopify Inc. Systems and methods for modifying multi-user augmented reality
US11527045B2 (en) 2020-07-27 2022-12-13 Shopify Inc. Systems and methods for generating multi-user augmented reality content

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102618364B1 (ko) * 2023-07-05 2023-12-28 주식회사 디씨엠 온라인 쥬얼리 시착 서비스 제공 시스템

Also Published As

Publication number Publication date
AU2021203479A1 (en) 2022-02-10
JP2022023789A (ja) 2022-02-08
TW202205173A (zh) 2022-02-01
US20220028108A1 (en) 2022-01-27
US11908159B2 (en) 2024-02-20
EP3945486A1 (en) 2022-02-02
CA3117878A1 (en) 2022-01-27
CN113986004A (zh) 2022-01-28

Similar Documents

Publication Publication Date Title
US11568620B2 (en) Augmented reality-assisted methods and apparatus for assessing fit of physical objects in three-dimensional bounded spaces
US11908159B2 (en) Systems and methods for representing user interactions in multi-user augmented reality
US11676200B2 (en) Systems and methods for generating augmented reality scenes for physical items
US11847716B2 (en) Systems and methods for generating multi-user augmented reality content
US11593870B2 (en) Systems and methods for determining positions for three-dimensional models relative to spatial features
US11670065B2 (en) Systems and methods for providing augmented media
US11899833B2 (en) Systems and methods for interacting with augmented reality content using a dual-interface
EP4099276A1 (en) Systems and methods for supplementing digital media with three-dimensional (3d) models
US11494153B2 (en) Systems and methods for modifying multi-user augmented reality
KR20210075847A (ko) 2d 이미지 추천을 위한 시스템 및 방법
US11941750B2 (en) Augmented reality enabled dynamic product presentation
US11935202B2 (en) Augmented reality enabled dynamic product presentation
US11948244B2 (en) Augmented reality enabled dynamic product presentation
US20230377027A1 (en) Systems and methods for generating augmented reality within a subspace