KR20190093216A - 증강 현실 맞춤형 콘텐츠를 제공하기 위한 시스템들 및 방법들 - Google Patents

증강 현실 맞춤형 콘텐츠를 제공하기 위한 시스템들 및 방법들 Download PDF

Info

Publication number
KR20190093216A
KR20190093216A KR1020197020066A KR20197020066A KR20190093216A KR 20190093216 A KR20190093216 A KR 20190093216A KR 1020197020066 A KR1020197020066 A KR 1020197020066A KR 20197020066 A KR20197020066 A KR 20197020066A KR 20190093216 A KR20190093216 A KR 20190093216A
Authority
KR
South Korea
Prior art keywords
user
camera view
advertisement
placement
objects
Prior art date
Application number
KR1020197020066A
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 페이스북, 인크.
Priority claimed from PCT/US2017/068048 external-priority patent/WO2018125766A1/en
Publication of KR20190093216A publication Critical patent/KR20190093216A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/21Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
    • G06F18/214Generating training patterns; Bootstrap methods, e.g. bagging or boosting
    • 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/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0251Targeted advertisements
    • G06Q30/0269Targeted advertisements based on user profile or attribute
    • 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/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0241Advertisements
    • G06Q30/0277Online advertisement
    • 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
    • G06Q50/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/01Social networking
    • 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
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Accounting & Taxation (AREA)
  • Development Economics (AREA)
  • Finance (AREA)
  • Computing Systems (AREA)
  • Tourism & Hospitality (AREA)
  • Software Systems (AREA)
  • Primary Health Care (AREA)
  • Human Resources & Organizations (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Data Mining & Analysis (AREA)
  • Artificial Intelligence (AREA)
  • Evolutionary Computation (AREA)
  • Computer Graphics (AREA)
  • Mathematical Physics (AREA)
  • Medical Informatics (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Geometry (AREA)
  • Evolutionary Biology (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • User Interface Of Digital Computer (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Processing Or Creating Images (AREA)

Abstract

시스템들, 방법들, 및 비-일시적 컴퓨터 판독 가능 매체는 증강 현실(AR) 광고를 디스플레이하기 위해 카메라 뷰의 배치를 결정할 수 있고, 상기 카메라 뷰는 컴퓨팅 장치와 연관된다. 상기 컴퓨팅 장치와 연관된 사용자에 대한 AR 광고는 사용자와 연관된 속성들에 기초하여 결정될 수 있다. AR 광고의 디스플레이는 카메라 뷰의 결정된 배치에서 야기될 수 있다.

Description

증강 현실 맞춤형 콘텐츠를 제공하기 위한 시스템들 및 방법들
본 기술은 증강 현실(AR: augmented reality)의 분야에 관한 것이다. 더 구체적으로, 본 기술은 미디어 콘텐츠와 연관된 AR 효과들 또는 콘텐츠를 제공하기 위한 기술들에 관한 것이다.
사용자들은 종종 다양한 목적들로 컴퓨팅 장치들을 사용한다. 사용자들은 그들의 컴퓨팅 장치들을 사용하여 예를 들어, 서로 상호 작용하고, 미디어 콘텐츠에 액세스하고, 미디어 콘텐츠를 공유하고, 미디어 콘텐츠를 만들 수 있다. 미디어 콘텐츠는 예를 들어, 텍스트, 이미지들, 비디오들 및 오디오 중 하나 이상의 조합을 포함할 수 있다. 몇몇 경우들에서, 미디어 콘텐츠는 다른 이들에 의한 소비를 위해 소셜 네트워킹 시스템의 사용자들에 의해 제공될 수 있다. 미디어 콘텐츠는 사용자들의 컴퓨팅 장치들 상에서 캡쳐될 수 있고 소셜 네트워킹 시스템에 업로드될 수 있다. 예를 들어, 사용자는 소셜 네트워킹 시스템에 의해 제공된 애플리케이션과 같은 애플리케이션과 연관된 카메라 뷰에서 이미지 또는 비디오를 캡쳐할 수 있다.
본 개시의 다양한 실시예들은 컴퓨팅 장치와 연관된 카메라 뷰로부터 이미지 데이터를 획득하도록 구성된 시스템들, 방법들 및 비-일시적인 컴퓨터 판독가능 매체를 포함할 수 있고, 이미지 데이터는 내부 공간과 연관된다. 하나 이상의 증강 현실(AR) 콘텐츠 아이템들을 디스플레이하기 위한 이미지 데이터의 일부가 결정될 수 있다. 카메라 뷰에 디스플레이하는 AR 콘텐츠 아이템이 결정될 수 있다. AR 콘텐츠 아이템은 이미지 데이터의 결정된 부분을 기반으로 하여 카메라 뷰 내의 표현을 위해 제공될 수 있다.
일부 실시예들에서, 카메라 뷰로부터의 이미지 데이터에 포함된 하나 이상의 객체들이 식별될 수 있다.
특정 실시예들에서, 하나 이상의 객체들은 기계 학습 모델을 기반으로 하여 식별된다.
일 실시예에서, 상기 부분은 카메라 뷰로부터의 이미지 데이터에 식별된 객체이다.
일부 실시예들에서, 내부 공간의 3차원(3D) 맵이 제공될 수 있다.
특정 실시예들에서, 3D 맵은 동시적 위치추정 및 지도작성(SLAM: simultaneous localization and mapping)을 기반으로 한다.
일 실시예에서, 이미지 데이터는 3D 맵에서 카메라 뷰와 연관된 사용자의 위치 또는 방향 중 하나 이상을 결정하기 위해 내부 공간의 3D 맵에 매핑될 수 있고, 카메라 뷰는 사용자의 시점을 나타낸다.
일부 실시예들에서, 3D 맵은 내부 공간의 하나 이상의 객체들의 3D 모델을 포함한다.
특정 실시예들에서, 상기 부분은 3D 맵의 미리 정의된 섹션 또는 미리 정의된 객체 중 하나 이상과 연관된다.
일 실시예에서, 정보는 AR 콘텐츠 아이템과 연관된 제스처에 응답하여 제공될 수 있다.
본 개시의 다양한 실시예들은 시스템들, 방법들, 및 증강 현실(AR) 광고를 디스플레이하기 위해 카메라 뷰의 배치를 결정하도록 구성된 비-일시적 컴퓨터 판독 가능한 매체를 포함할 수 있고, 카메라 뷰는 컴퓨팅 장치와 연관된다. 컴퓨팅 장치와 연관된 사용자의 AR 광고는 사용자와 연관된 속성들을 기반으로 결정될 수 있다. AR 광고의 디스플레이는 카메라 뷰의 결정된 배치에서 야기될 수 있다.
일부 실시예들에서, 카메라 뷰의 배치를 결정하는 것은 카메라 뷰의 하나 이상의 객체들을 식별하는 것을 포함한다.
특정 실시예들에서, 카메라 뷰의 하나 이상의 객체들을 식별하는 것은 기계 학습 모델을 기반으로 한다.
일 실시예에서, 사용자에 대한 AR 광고는 하나 이상의 객체들에 적어도 부분적으로 기초하여 결정된다.
일부 실시예들에서, 하나 이상의 객체들은 카메라 뷰의 외부 공간의 객체를 포함한다.
특정 실시예들에서, 카메라 뷰의 배치를 결정하는 것은 카메라 뷰의 이미지 데이터를 카메라 뷰의 내부 공간의 3차원(3D) 맵에 매핑하는 것을 포함한다.
일 실시예에서, 내부 공간의 3D 맵은 동시적 위치추정 및 지도작성(SLAM)을 기반으로 한다.
일부 실시예들에서, 배치는 3D 맵의 미리 정의된 섹션 또는 미리 정의된 객체와 연관된다.
특정 실시예들에서, 속성들은: 연령, 연령 범위, 성별, 지리적 영역, 또는 관심 사항 중 하나 이상을 포함한다.
일 실시예에서, AR 광고를 결정하는 것은 소셜 네트워킹 시스템에서 사용자와 연관된 정보를 기반으로 한다.
개시된 기술의 많은 다른 특징들, 응용들, 실시예들 및/또는 변형들이 첨부된 도면들 및 다음의 상세한 설명으로부터 명백해질 것이라는 것을 이해해야한다. 본원에 개시된 구조들, 시스템들, 비-일시적 컴퓨터 판독 가능한 매체, 및 방법들의 추가의 및/또는 대안의 구현들은 개시된 기술의 원리들을 벗어나지 않으면서 사용될 수 있다.
도 1은 본 개시의 일 실시예에 따라, 카메라 뷰와 연관된 다양한 AR 효과들을 제공하도록 구성된 예시적인 증강 현신 효과 모듈을 포함하는 예시적인 시스템을 도시하는 도면.
도 2는 본 개시의 일 실시예에 따라, 내부 공간들과 연관된 AR 오버레이들을 제공하도록 구성된 예시적인 AR 내부 오버레이 모듈을 도시하는 도면.
도 3은 본 개시의 일 실시예에 따라, AR 맞춤형 광고들을 제공하도록 구성된 예시적인 AR 맞춤형 광고 모듈을 도시하는 도면.
도 4는 본 개시의 일 실시예에 따라, 내부 공간들과 연관된 AR 오버레이들을 제공하기 위한 예시적인 제 1 방법을 도시하는 도면.
도 5는 본 개시의 일 실시예에 따라, AR 맞춤형 광고들을 제공하기 위한 예시적인 제 2 방법을 도시하는 도면.
도 6은 본 개시의 일 실시예에 따라, 다양한 시나리오들에서 사용될 수 있는 예시적인 시스템의 네트워크 다이어그램을 도시하는 도면.
도 7은 본 개시의 일 실시예에 따라, 다양한 시나리오들에서 사용될 수 있는 컴퓨터 시스템의 예시를 도시하는 도면.
도면들은 단지 예시의 목적들로 개시된 기술의 다양한 실시예들을 도시하고, 도면들은 동일한 요소들을 식별하기 위해 동일한 참조 번호들을 사용한다. 당업자는 도면들에 도시된 구조들 및 방법들의 대안적인 실시예들이 본원에 기재된 개시된 기술의 원리들을 벗어나지 않고 사용될 수 있다는 것을 다음의 설명으로부터 용이하게 인식할 것이다.
증강 현실 효과들을 제공하는 것
사용자들은 종종 다양한 목적들로 컴퓨팅 장치들을 사용한다. 사용자들은 예를 들어, 서로 상호 작용하고, 미디어 콘텐츠에 액세스하고, 미디어 콘텐츠를 공유하고, 미디어 콘텐츠를 만들기 위해 컴퓨팅 장치들을 사용할 수 있다. 미디어 콘텐츠는 예를 들어, 텍스트, 이미지들, 비디오들, 및 오디오 중 하나 또는 이들의 조합을 포함할 수 있다. 몇몇 경우들에서, 미디어 콘텐츠는 다른 이들에 의한 소비를 위해 소셜 네트워킹 시스템의 사용자들에 의해 제공될 수 있다.
미디어 콘텐츠는 사용자들의 컴퓨팅 장치들에서 생성되고 소셜 네트워킹 시스템에 업로드 될 수 있다. 예를 들어, 사용자는 소셜 네트워킹 시스템에 의해 제공되는 애플리케이션과 같은 애플리케이션과 연관된 카메라 뷰에 도시된 이미지 또는 비디오를 캡쳐할 수 있다. 컴퓨터 기술의 영역에서 특히 발생하는 종래의 접근법들은 미디어 콘텐츠를 생성하는 것과 관련된 카메라 뷰에 오버레이를 제공할 수 있다. 그러나, 이러한 오버레이는 카메라 뷰에 도시된 이미지 데이터와 관련되지 않을 수 있다. 따라서, 종래의 접근법들은 카메라 뷰에서 이미지 데이터와 관련하여 관련 정보를 제공하지 않을 수 있다.
컴퓨터 기술에 뿌리를 둔 개선된 접근법은 컴퓨터 기술 영역에서 특히 발생하는 종래의 접근법들과 관련된 전술한 단점 및 다른 단점을 극복할 수 있다. 컴퓨터 기술에 기초하여, 개시된 기술은 애플리케이션과 연관된 카메라 뷰에 증강 현실(AR) 효과들을 제공할 수 있다. 개시된 기술은 카메라 뷰에 도시된 내부 공간들과 관련하여 카메라 뷰에 AR 효과들을 제공할 수 있다. 일부 실시예들에서, 내부 공간 내의 하나 이상의 객체들이 식별될 수 있고, AR 오버레이들은 식별된 객체들과 관련하여 제공될 수 있다. 예를 들어, 객체들은 객체 검출 또는 인식 기술들에 기초하여 식별될 수 있다. 다른 실시예들에서, 내부 공간의 3D 매핑은 예를 들어 내부 공간과 관련된 개체에 의해 제공될 수 있다. 내부 공간의 카메라 뷰는 카메라 뷰에 의해 표시된 시점에 기초하여 내부 공간의 3D 맵에 맵핑될 수 있다. AR 오버레이들은 내부 공간의 3D 맵에서 사용자의 위치 및/또는 방향과 관련하여 제공될 수 있다. 예를 들어, 사용자가 3D 맵의 특정 위치에 있고 사용자가 특정 섹션 또는 특정 객체를 보고 있다는 것이 결정될 수 있고, AR 오버레이들은 특정 섹션 또는 특정 객체에 기초하여 제공될 수 있다. 개시된 기술은 또한 광고와 같은 AR 맞춤형 콘텐츠를 카메라 뷰에 제공할 수 있다. AR 맞춤형 광고들은 사용자들, 객체들 등과 관련된 속성들과 같은 선택된 기준에 기초하여 선택될 수 있다. AR 맞춤형 광고들은 카메라 뷰 내에서 식별된 하나 이상의 객체들 위에 디스플레이될 수 있다. AR 맞춤형 광고들은 또한 카메라 뷰의 미리 정의된 위치들 또는 영역들에 표시될 수 있다. 이러한 방식으로, 개시된 기술은 카메라 뷰에 도시된 이미지 데이터와 관련된 AR 컨텐츠를 제공할 수 있고, 대화형의 그리고 재미있는 사용자 경험을 제공할 수 있다.
도 1은 본 개시의 일 실시예에 따라, 카메라 뷰와 관련된 다양한 AR 효과들을 제공하도록 구성된 예시적인 증강 현실 효과 모듈(102)을 포함하는 예시적인 시스템(100)을 도시한다. 증강 현실 효과 모듈(102)은 AR 내부 오버레이 모듈(104) 및 AR 맞춤형 광고 모듈(106)을 포함할 수 있다. 일부 예시들에서, 예시적인 시스템(100)은 적어도 하나의 데이터 저장소(120)를 포함할 수 있다. 이 도면 및 모든 도면들에 도시된 구성요소들(예를 들어, 모듈들, 요소들, 단계들, 블록들 등)은 단지 예시적인 것이고, 다른 구현 예들은 추가의, 더 적은, 통합된 또는 상이한 구성 요소들을 포함할 수 있다. 일부 구성요소들은 관련 세부 사항이 모호해지지 않도록 도시되지 않을 수 있다. 다양한 실시예들에서, 증강 현실 효과 모듈(102)과 관련하여 기술된 하나 이상의 기능들은 임의의 적절한 조합들로 구현될 수 있다. 설명의 목적들로, 개시된 기술은 소셜 네트워킹 시스템과 관련하여 설명되지만, 개시된 기술은 임의의 유형의 애플리케이션 및/또는 시스템에 적용될 수 있다.
증강 현실 효과 모듈(102)은 카메라 뷰에 도시된 이미지 데이터와 연관된 다양한 AR 효과들을 제공할 수 있다. 카메라 뷰는 카메라에 의해 획득된 이미지 데이터를 표시할 수 있다. 카메라 뷰에 도시된 이미지 데이터는 이미지 또는 비디오와 같은 미디어 콘텐츠 아이템으로 캡쳐될 수 있다. 증강 현실 효과 모듈(102)은 카메라 뷰에 도시된 이미지 데이터와 연관된 하나 이상의 AR 컨텐츠 아이템들을 제공할 수 있다. AR 콘텐츠 아이템은 AR 오버레이와 같은 AR 효과를 제공하는 임의의 콘텐츠를 포함할 수 있다. AR 콘텐츠 아이템들은 카메라 뷰에서 제공될 수 있다. AR 콘텐츠 아이템들은 미디어 콘텐츠 아이템의 일부로서 캡쳐될 수 있다. 예를 들어, 카메라 뷰에 AR 오버레이가 디스플레이되고 카메라 뷰에 도시된 이미지가 캡쳐된 경우, AR 오버레이는 이미지의 일부로서 포함될 수 있다. 일부 실시예들에서, 미디어 콘텐츠 아이템은 라이브일 수 있고, 기록될 때 소셜 네트워킹 시스템에 업로드 될 수 있다. 이러한 실시예들에서, AR 콘텐츠 아이템들은 라이브 미디어 콘텐츠 아이템에 유사하게 제공될 수 있다.
AR 내부 오버레이 모듈(104)은 내부 공간들과 연관된 AR 오버레이들과 같은 AR 콘텐츠 아이템들을 제공할 수 있다. 예를 들어, AR 내부 오버레이 모듈(104)은 내부 공간을 도시하는 카메라 뷰 내에서 식별된 하나 이상의 객체들에 대해 AR 오버레이들을 제공할 수 있다. 다른 예로서, AR 내부 오버레이 모듈(104)은 카메라 뷰에 도시된 내부 공간의 3D 매핑에 기초하여 사용자에 대한 AR 오버레이들을 제공할 수 있다. 내부 공간은 빌딩 또는 구조물의 내부와 같은 임의의 내부 환경을 포함할 수 있다. 내부 공간들의 예들은 상점, 사무실 등을 포함할 수 있다. AR 내부 오버레이 모듈(104)의 기능은 본원에 더 상세히 설명된다.
AR 맞춤형 광고 모듈(106)은 AR 맞춤형 광고들과 같은 맞춤형 AR 콘텐츠 아이템들을 제공할 수 있다. AR 맞춤형 광고 모듈(106)은 카메라 뷰 내에 맞춤형 광고의 배치를 결정할 수 있다. AR 맞춤형 광고 모듈(106)은 선택된 범주에 기초하여 특정 사용자에 대한 디스플레이를 하기 위해 맞춤형 광고를 선택할 수 있다. 선택된 맞춤형 광고는 카메라 뷰의 결정된 배치에 제공될 수 있다. AR 맞춤형 광고 모듈(106)의 기능은 본원에 더 상세히 설명된다.
일부 실시예들에서, 증강 현실 효과 모듈(102)은 소프트웨어, 하드웨어 또는 이들의 임의의 조합으로서 부분적으로 또는 전체적으로 구현될 수 있다. 일반적으로, 본원에서 논의된 모듈은 소프트웨어, 하드웨어, 또는 이들의 임의의 조합과 연관될 수 있다. 일부 구현들에서, 모듈들의 하나 이상의 기능들, 작업들 및/또는 동작들은 소프트웨어 루틴들, 소프트웨어 프로세스들, 하드웨어 및/또는 이들의 임의의 조합에 의해 실행되거나 수행될 수 있다. 일부 경우들에서, 증강 현실 효과 모듈(102)은 부분적으로 또는 전체적으로, 서버 시스템 또는 클라이언트 컴퓨팅 장치와 같은 하나 이상의 컴퓨팅 장치들 또는 시스템들에서 실행되는 소프트웨어로서 구현될 수 있다. 일부 예시들에서, 증강 현실 효과 모듈(102)은 부분적으로 또는 전체적으로, 도 6의 소셜 네트워킹 시스템(630)과 같은 소셜 네트워킹 시스템(또는 서비스)과 함께 동작하거나 이와 함께 결합되도록 구현되거나 구성될 수 있다. 마찬가지로, 일부 예시들에서, 증강 현실 효과 모듈(102)은 부분적으로 또는 전체적으로, 도 6의 사용자 장치(610)와 같은 클라이언트 컴퓨팅 장치와 함께 동작하도록 또는 클라이언트 장치와 함께 결합하도록 구현되거나 구성될 수 있다. 예를 들어, 증강 현실 효과 모듈(102)은 사용자 컴퓨팅 장치 또는 클라이언트 컴퓨팅 시스템에서 실행되는 전용 애플리케이션(예를 들어, 앱(app)), 프로그램 또는 애플릿(applet)으로서 또는 그 내부에 구현될 수 있다. 많은 변형이 가능하다는 것을 이해해야한다.
데이터 저장소(120)는 증강 현실 효과 모듈(102)의 지원 및 동작에 관한 데이터와 같은 다양한 유형의 데이터를 저장하고 유지하도록 구성될 수 있다. 데이터 저장소(120)에 의해 유지되는 데이터는 예를 들어, AR 오버레이들, 카메라 뷰 내의 이미지 데이터, 객체 식별(예를 들어, 객체 검출 또는 인식), 공간들의 3D 매핑 등을 포함할 수 있다. 데이터 저장소(120)는 또한 소셜 네트워킹 시스템과 관련된 다른 정보를 유지할 수 있다. 소셜 네트워킹 시스템과 관련된 정보는 사용자들, 사회적 연결들, 사회적 상호 작용들, 위치들, 지오-펜스 지연(geo-fenced areas), 지도들, 장소들, 이벤트들, 그룹들, 게시물들, 통신들, 콘텐츠, 계정 설정들, 개인 정보 설정들 및 소셜 그래프를 포함할 수 있다. 소셜 그래프는 소셜 네트워킹 시스템의 모든 항목들과 상호 작용들을 반영할 수 있다. 예시적인 시스템(100)에 도시된 바와 같이, 증강 현실 효과 모듈(102)은 데이터 저장소(120)와 통신 및/또는 동작하도록 구성될 수 있다. 일부 실시예들에서, 데이터 저장소(120)는 클라이언트 컴퓨팅 장치 내에 데이터 저장소일 수 있다. 일부 실시예들에서, 데이터 저장소(120)는 클라이언트 컴퓨팅 장치와 통신하는 서버 시스템의 데이터 저장소일 수 있다.
도 2는 본 개시의 일 실시예에 따라, 내부 공간들과 관련된 AR 오버레이들을 제공하도록 구성된 예시적인 AR 내부 오버레이 모듈(202)을 도시한다. 일부 실시예들에서, 도 1의 AR 내부 오버레이 모듈(104)은 예시적인 AR 내부 오버레이 모듈(202)과 함께 구현될 수 있다. 도 2에 도시된 바와 같이, 예시적인 내부 오버레이 모듈(202)은 객체 식별 모듈(204), 3D 모델링 모듈(206), 및 AR 콘텐츠 결정 모듈(208)을 포함할 수 있다.
객체 식별 모듈(204)은 카메라 뷰 내에 도시된 객체들을 식별할 수 있다. 객체들의 식별은 적절한 트리거링 조건들(예를 들어, 카메라 뷰의 개시)에 기초하여 트리거링될 수 있다. 객체 식별 모듈(204)은 객체 인식 또는 검출 기술들에 기초하여 카메라 뷰 내의 객체들을 검출할 수 있다. 객체 식별 모듈(204)은 기계 학습 모델에 기초하여 카메라 뷰 내의 객체들을 검출할 수 있다. 일부 실시예들에서, 기계 학습 모델은 분류자(classifier)일 수 있다. 기계 학습 모델은 객체들 및 관련 이미지들을 포함하는 교육 데이터를 기반으로 훈련될 수 있다. 훈련된 기계 학습 모델은 카메라 뷰 내에 포함된 객체들을 결정하기 위해 객체들의 이미지들 또는 비디오에 적용될 수 있다. 몇몇 경우들에서, 객체들은 카메라 뷰 내에서 이동할 수 있고, 객체들은 객체들을 검출하기 위해 추적될 수 있다. 객체 식별 모듈(204)은 실시간 또는 그 근방에서 카메라 뷰 내의 객체들을 검출할 수 있다. 일부 실시예들에서, 객체들은 로고들 및/또는 브랜드들일 수 있다. 다른 실시예들에서, 객체들은 제품들일 수 있다. 특정 실시예들에서, 객체들은 창문, 문들, 빈 벽들 등일 수 있다. 많은 변형들이 가능하다.
3D 모델링 모듈(206)은 내부 공간의 3차원(3D) 맵핑을 제공할 수 있다. 예를 들어, 내부 공간의 3D 맵은 내부 공간과 연관된 엔티티(예를 들어, 사용자, 사업자, 회사 등)에 의해 제공될 수 있다. 3D 맵은 내부 공간의 3D 깊이 맵을 제공할 수 있다. 몇몇 경우들에서, 내부 공간의 3D 맵은 내부 공간 내의 객체들의 3D 모델들을 포함할 수 있다. 일부 실시예들에서, 내부 공간의 3D 맵은 동시적 위치추정 및 지도작성(SLAM) 기술들을 기반으로 한다. 예를 들어, SLAM 기술들은 알려지지 않은 환경의 맵을 생성하거나 업데이트 할 수 있는 동시에 환경 내에서 사용자의 위치를 추적할 수 있다. 내부 공간 내의 객체들은 SLAM 기술들을 기반으로 매핑될 수도 있다. 내부 공간과 연관된 엔티티는 AR 오버레이들을 제공하기 위한 내부 공간의 3D 맵 내의 다양한 섹션들 및/또는 객체들을 특정하거나 지정할 수 있다. 예를 들어, 스토어와 연관된 엔티티는 AR 오버레이들을 제공할 스토어의 3D 맵에서 다른 스토어 디파트먼트에 대한 섹션들을 지정할 수 있다.
3D 모델링 모듈(206)은 사용자에게 제공된 카메라 뷰를 내부 공간의 3D 맵에 맵핑 할 수 있다. 내부 공간의 3D 맵에 대한 카메라 뷰 내의 이미지 데이터의 매핑은 적절한 트리거링 조건들(예를 들어, 카메라 뷰의 개시)에 기초하여 트리거링될 수 있다. 3D 모델링 모듈(206)은 사용자의 카메라 뷰에 도시된 바와 같은 시점에 기초하여 3D 맵 내의 사용자의 위치 및/또는 방향을 결정할 수 있다. 카메라 뷰의 이미지 데이터는 내부 공간 내에서 사용자의 시점을 나타낼 수 있고, 3D 모델링 모듈(206)은 이미지 데이터를 3D 맵에 매핑함으로써 사용자가 내부 공간 내에 있는지 그리고 내부 공간 내에서 사용자가 보고있는 것을 결정할 수 있다. 3D 모델링 모듈(206)은 카메라 뷰를 통해 사용자가 보고있는 임의의 섹션들 및/또는 객체들을 결정할 수 있고, 관련된 AR 오버레이들은 예를 들어 AR 콘텐츠 결정 모듈(208)에 의해 결정된 섹션들 및/또는 객체들과 관련하여 제공될 수 있다.
AR 콘텐츠 결정 모듈(208)은 내부 공간과 관련하여 AR 오버레이를 결정 및 제공 할 수 있다. AR 오버레이는 임의의 유형의 콘텐츠 아이템들을 포함할 수 있다. 콘텐츠 아이템들의 예들은 텍스트, 이미지들, 비디오들, 오디오들 등을 포함할 수 있다. 콘텐츠 아이템들은 2-차원(2D) 콘텐츠 및/또는 3-차원 콘텐츠를 포함할 수 있다. 일부 실시예들에서, AR 콘텐츠 결정 모듈(208)은 모든 사용자들에 대해 동일하거나 유사한 AR 오버레이들을 제공할 수 있다. 예를 들어, AR 오버레이는 매장 이벤트 또는 판매와 관련된 정보를 제공할 수 있다. 다른 실시예들에서, AR 콘텐츠 결정 모듈(208)은 선택된 기준에 기초하여 특정 사용자를 제공하기 위해 AR 오버레이를 선택할 수 있다. 선택한 기준은 사용자들, 제품들 등과 관련된 속성들을 포함할 수 있다. 예를 들어, AR 오버레이는 사용자가 상점에서 봤던 제품들을 기반으로 특정 사용자에 대한 제품 권장 사항들을 제공할 수 있다. 일부 실시예들에서, 사용자는 카메라 뷰를 나타내는 인터페이스를 통해 적용된 다양한 제스처들을 기반으로 AR 오버레이들과 상호 작용할 수 있다. 예를 들어, 터치 제스처와 같은 특정 제스처는 특정 기능에 해당할 수 있다. 예로서, 사용자는 특정 터치 제스처를 수행함으로써 AR 오버레이와 관련하여 추가 정보(예를 들어, 콘텍스트 정보)에 액세스할 수 있다.
일부 실시예들에서, AR 콘텐츠 결정 모듈(208)은 카메라 뷰 내의 식별된 객체들에 기초하여 제공하기 위해 AR 오버레이들을 결정할 수 있다. 예를 들어, AR 컨텐츠 결정 모듈(208)은 객체 식별 모듈(204)에 의해 식별된 하나 이상의 객체들에 대한 AR 오버레이들을 결정할 수 있다. 예를 들어, 객체는 로고 또는 브랜드가 될 수 있고, AR 오버레이는 로고 또는 브랜드와 관련된 하나 이상의 제품들에 대한 정보를 제공하기 위해 카메라 뷰에 디스플레이될 수 있다. 특정 실시예들에서, AR 콘텐츠 결정 모듈(208)은 또한 카메라 뷰 내에 식별된 객체들에 기초하여 AR 오버레이들을 제공하기 위해 카메라 뷰 내의 위치를 결정할 수 있다. 예를 들어, 문들, 창들 또는 빈 공간들과 같이 카메라 뷰에서 검출된 하나 이상의 다른 객체들 위에 AR 오버레이들이 제공될 수 있다. 다양한 변형들이 가능하다.
특정 실시예들에서, AR 콘텐츠 결정 모듈(208)은 카메라 뷰로부터 내부 공간의 3D 맵으로의 이미지 데이터의 매핑에 기초하여 제공하기 위해 AR 오버레이들을 결정할 수 있다. 전술한 바와 같이, 사용자의 위치 및/또는 방향은 내부 공간의 3D 맵 내에, 예를 들어 3D 모델링 모듈(206)에 의해 결정될 수 있다. AR 콘텐츠 결정 모듈(208)은 3D 맵에서 사용자가 어디에 있고 사용자가 무엇을 보고 있는지에 기초하여 AR 오버레이들을 제공할 수 있다. 예를 들어, 사용자가 특정 제품을 보고 있는 경우, AR 오버레이는 제품과 관련된 정보를 제공할 수 있다. AR 콘텐츠 결정 모듈(208)은 3D 맵에서 하나 이상의 지정된 섹션들에 AR 오버레이들을 제공할 수 있다. AR 콘텐츠 결정 모듈(208)은 또한 3D 맵에서 하나 이상의 지정된 객체들과 관련하여 AR 오버레이들을 제공할 수 있다. 예를 들어, AR 오버레이들을 제공하는 섹션들 및/또는 객체들은 내부 공간과 관련된 엔티티에 의해 지정되거나 미리 정의될 수 있다. 예로서, 내부 공간과 관련된 엔티티는 조직, 조직의 개인 또는 에이전트 등을 포함할 수 있다. 예를 들어, 엔티티는 내부 공간과 관련된 회사, 회사 직원, 회사 관리자 등이 될 수 있다.
AR 콘텐츠 결정 모듈(208)은 AR 오버레이들에서 다양한 유형들의 정보를 제공할 수 있다. AR 오버레이들에서 제공되는 정보의 예들은 제품들, 상점들, 이벤트들(예를 들어, 판매들), 제품들의 권장 사항들 등에 관한 정보를 포함할 수 있다. 몇몇 경우들에서, AR 오버레이에서 제공되는 정보는 내부 공간과 연관된 엔티티에 의해 정의될 수 있다. 예를 들어, 엔티티는 3D 맵의 한 섹션에 디스플레이할 비디오 또는 이미지를 선택할 수 있다. 일부 실시예들에서, 사용자를 보조하기 위한 봇(bot)이 AR 오버레이로서 제공될 수 있다. 예를 들어, 봇은 카메라 뷰 내에서 객체 또는 애니메이션으로 나타날 수 있다. 또 다른 예로, 봇은 카메라 뷰 내 메시징 기능으로 나타날 수 있다. 본원의 모든 예들은 설명의 목적들로 제공되고, 많은 변형들 및 다른 가능성들이 존재할 수 있다.
도 3은 본 개시의 일 실시예에 따라 AR 맞춤형 광고들을 제공하도록 구성된 예시적인 AR 맞춤형 광고 모듈(302)을 도시한다. 일부 실시예들에서, 도 1의 AR 맞춤형 광고 모듈(106)은 예시적인 AR 맞춤형 광고 모듈(302)로 구현될 수 있다. 도 3의 예시에 도시된 바와 같이, 예시적인 AR 맞춤형 광고 모듈(302)은 광고 배치 모듈(304) 및 광고 결정 모듈(306)을 포함할 수 있다.
광고 배치 모듈(304)은 AR 맞춤형 광고들을 디스플레이하기 위해 카메라 뷰 내에 하나 이상의 위치들을 결정할 수 있다. 일부 실시예들에서, 광고 배치 모듈(304)은 카메라 뷰 내에서 식별된 하나 이상의 객체들에 기초하여 위치를 결정할 수 있다. 객체 식별은 상술된 객체 식별과 유사할 수 있다. 예를 들어, 카메라 뷰 내에 객체들은 객체 인식 또는 검출 기술들에 기초하여 식별될 수 있다. 기계 학습 모델은 객체들을 식별하기 위해 사용될 수 있다. 맞춤형 광고들은 카메라 뷰 내의 하나 이상의 식별된 객체들에 제공될 수 있다. 다른 실시예들에서, 광고 배치 모듈(304)은 내부 공간의 3D 매핑에 기초한 위치를 결정할 수 있다. 내부 공간의 3D 매핑은 위에서 설명한 3D 매핑과 유사할 수 있다. 예를 들어, 내부 공간과 관련된 엔티티는 AR 맞춤형 광고들을 제공하기 위해 내부 공간의 3D 맵 내의 하나 이상의 섹션들 및/또는 객체들을 지정하거나 미리 정의할 수 있다. 맞춤형 광고들은 3D 맵 내의 지정된 섹션들 또는 3D 맵 내의 지정된 객체들과 관련하여 제공될 수 있다. 광고 배치 모듈(304)은 내부 공간들뿐만 아니라 외부 공간들에 대한 맞춤형 광고들을 제공할 수 있다. 외부 공간들의 예들은 공원들, 경기장들, 표식들, 건물들 등을 포함할 수 있다. 단지 하나의 예로서, 맞춤형 광고는 야구 경기장에서 마운드 위에 제공될 수 있다. 광고 배치 모듈(304)은 또한 개인 장소들뿐만 아니라 공공 장소들에 대한 맞춤형 광고들을 제공할 수 있다. 다양한 변형들이 가능하다.
광고 결정 모듈(306)은 카메라 뷰 내에서 사용자를 제공하기 위해 하나 이상의 맞춤형 광고들을 결정할 수 있다. 광고 결정 모듈(306)은 선택된 기준에 기초하여 특정 사용자에게 제공할 수 있는 광고를 선택할 수 있다. 선택된 기준은 사용자들, 객체들(예를 들어, 제품들) 등과 연관된 속성들을 포함할 수 있다. 사용자들과 연관된 속성들의 예들은 연령, 연령 범위, 성별, 지리적 영역(예를 들어, 국가, 주, 자치주, 도시 등), 관심 사항 등을 포함할 수 있다. 일부 실시예들에서, 광고 결정 모듈(306)은 소셜 네트워킹 시스템에서 사용자와 관련된 정보에 기초하여 사용자에 대한 광고를 선택할 수 있다. 사용자는 콘텐츠를 생성할 수 있고, 게시물들을 포스팅하고, 게시물들에 댓글을 달고, 게시물들을 좋아하고, 미디어 콘텐츠를 업로드하는 등과 같은 소셜 네트워킹 시스템에서의 다양한 활동들에 참여할 수 있다. 광고 결정 모듈(306)은 소셜 네트워킹 시스템 내의 사용자의 콘텐츠와 활동들에 기초하여 광고를 결정할 수 있다. 광고 결정 모듈(306)은 또한 등급 방법들, 소셜 그래프, 및 소셜 네트워킹 시스템과 관련된 다른 속성들에 기초하여 사용자에 대한 광고를 선택할 수 있다. AR 맞춤형 광고는 임의의 유형의 콘텐츠 아이템들을 포함할 수 있다. 콘텐츠 아이템들의 예들은 텍스트, 이미지들, 비디오들, 오디오들 등을 포함할 수 있다. 콘텐츠 아이템들은 2차원(2D) 콘텐츠 및/또는 3차원 콘텐츠를 포함할 수 있다. 일부 실시예들에서, AR 맞춤형 광고는 카메라 뷰에 도시된 이미지 데이터에 관련될 수 있다. 예를 들어, AR 맞춤형 광고는 카메라 뷰에서 식별된 객체와 관련될 수 있다. 다른 실시예들에서, AR 맞춤형은 카메라 뷰에 도시된 이미지 데이터와 관련되지 않을 수 있지만, 사용자와 관련될 수 있다. 예를 들어, AR 맞춤형 광고는 카메라 뷰 내의 이미지 데이터와 직접 관련되지 않은 사용자의 관심과 관련될 수 있다. AR 맞춤형 광고들은 카메라 뷰 내의 오버레이들로서 제공될 수 있다. 일부 실시예들에서, 사용자는 카메라 뷰를 나타내는 인터페이스를 통해 적용된 다양한 제스처들에 기초하여 AR 맞춤형 광고들과 상호작용할 수 있다. 예를 들어, 터치 제스처와 같은 특정 제스처는 특정 기능에 대응할 수 있다. 예로서, 사용자는 특정 터치 제스처를 수행함으로써 AR 맞춤형 광고와 관련하여 추가 정보(예를 들어, 컨텍스트 정보)에 액세스할 수 있다. 예시의 목적들을 위해, 개시된 기술은 AR 맞춤형 광고들에 관해 설명되지만, 개시된 기술은 임의의 유형의 콘텐츠에 적용될 수 있다. 본원의 모든 예들은 예시적인 목적들을 위해 제공되고, 많은 변형들 및 다른 가능성들이 존재할 수 있다.
도 4는 본 개시의 일 실시예에 따라 내부 공간들과 연관된 AR 오버레이들을 제공하기 위한 예시적인 제 1 방법(400)을 도시한다. 달리 언급되지 않는 한, 본 명세서에서 논의된 다양한 특징들 및 실시예들에 기초하여, 유사하거나 대안적인 명령 또는 병렬로 수행되는 추가, 더 적은 또는 대안의 단계들이 존재할 수 있다는 것을 이해해야한다.
블록(402)에서, 예시적인 방법(400)은 컴퓨팅 장치와 연관된 카메라 뷰로부터 이미지 데이터를 획득할 수 있고, 이미지 데이터는 내부 공간과 연관된다. 블록(404)에서, 예시적인 방법(400)은 하나 이상의 증강 현실(AR) 콘텐츠 아이템들을 디스플레이하기 위해 이미지 데이터의 일부를 결정할 수 있다. 블록(406)에서, 예시적인 방법(400)은 카메라 뷰에 디스플레이할 AR 콘텐츠 아이템을 결정할 수 있다. 블록(408)에서, 예시적인 방법(400)은 이미지 데이터의 결정된 부분에 기초하여 카메라 뷰에 표현을 위해 AR 콘텐츠 아이템을 제공할 수 있다. 본 개시의 다양한 특징들 및 실시예들을 통합하는 다른 적절한 기술들이 가능하다.
도 5는 본 개시의 일 실시예에 따라, AR 맞춤형 광고들을 제공하기 위한 예시적인 제 2 방법(500)을 나타낸다. 이와 달리 언급되지 않는 한, 본원에 설명된 다양한 특징들 및 실시예들에 기초하여. 유사한 또는 대안적인 순서들로 또는 병렬로 수행되는 추가의, 보다 적은, 또는 대안적인 단계들이 있을 수 있다는 것이 이해되어야 한다. 상기 방법(500)의 특정 단계들은 상술된 예시적인 방법(400)과 조합하여 수행될 수 있다.
블록(502)에서, 상기 예시적인 방법(500)은 증강 현실(AR) 광고를 디스플레이 하기 위한 카메라 뷰의 배치를 결정할 수 있고, 카메라 뷰는 컴퓨팅 장치와 연관된다. 블록(504)에서, 상기 예시적인 방법(500)은 사용자와 연관된 속성들을 기반으로 하여 컴퓨팅 장치와 연관된 사용자에 대해 AR 광고를 결정할 수 있다. 블록(506)에서, 상기 예시적인 방법(500)은 카메라 뷰의 결정된 배치에서 AR 광고의 디스플레이를 야기할 수 있다. 본 개시의 다양한 특징들 및 실시예들을 포함하는 다른 적합한 기술들이 가능하다.
본 개시의 다양한 실시예들과 연관된 많은 다른 사용들, 응용들, 특징들, 가능성들, 및/또는 변형들이 존재할 수 있다고 생각된다. 예를 들어, 사용자들은, 몇몇 경우들에서 본 개시된 기술을 이용하도록 사전-동의를 받을지 말지를 선택할 수 있다. 본 개시된 기술은 또한, 예를 들어, 다양한 비밀 설정들, 선호사항들, 및 구성들이 유지되고 비밀 정보가 누설되지 않게 할 수 있다는 것을 보증할 수 있다. 또 다른 예에서, 본 개시의 다양한 실시예들이 시간이 흐름에 따라 학습, 향상, 및 개선될 수 있다.
소셜 네트워킹 시스템 - 예시적 구현
도 6은 본 개시의 일 실시예에 따라, 다양한 시나리오들에 이용될 수 있는 예시적 시스템(600)의 네트워크 다이어그램을 나타낸다. 상기 시스템(600)은 하나 이상의 사용자 장치들(610), 하나 이상의 외부 시스템들(620), 소셜 네트워킹 시스템(또는 서비스)(630), 및 네트워크(655)를 포함한다. 일 실시예에서, 전술된 실시예들과 관련하여 언급된 소셜 네트워킹 서비스, 공급자, 및/또는 시스템이 소셜 네트워킹 시스템(630)으로서 구현될 수 있다. 도시의 목적들을 위해, 도 6에 도시된 시스템(600)의 실시예는 단일의 외부 시스템(620) 및 단일의 사용자 장치(610)를 포함한다. 그러나, 다른 실시예들에서, 상기 시스템(600)은 보다 많은 사용자 장치들(610) 및/또는 보다 많은 외부 시스템들(620)을 포함할 수 있다. 특정 실시예들에서, 소셜 네트워킹 시스템(630)은 소셜 네트워크 공급자에 의해 운영되는 반면, 외부 시스템들(620)은 소셜 네트워킹 시스템(630)과 별개인데, 즉, 그들은 서로 다른 엔티티들에 의해 운영될 수 있다. 그러나, 다양한 실시예들에서, 소셜 네트워킹 시스템(630) 및 외부 시스템들(620)은 소셜 네트워킹 시스템(630)의 사용자들(또는 멤버들)에게 소셜 네트워킹 서비스들을 제공하기 위해 협력하여 동작한다. 이런 의미에서, 소셜 네트워킹 시스템(630)은, 외부 시스템들(620)과 같은 다른 시스템들이 인터넷을 통해 사용자들에게 소셜 네트워킹 서비스들 및 기능들을 제공하기 위해 사용할 수 있는 플랫폼 또는 백본(backbone)을 제공한다.
사용자 장치(610)는 사용자로부터 입력을 수신하고 네트워크(655)를 통해 데이터를 전달 및 수신할 수 있는 하나 이상의 컴퓨팅 장치들을 포함한다. 하나의 실시예에서, 사용자 장치(610)는, 예를 들어, 마이크로 윈도우즈 호환가능 운영 체제(OS), 애플 OS X, 및/또는 리눅스 배포판을 실행시키는 종래의 컴퓨터 시스템이다. 또 다른 실시예에서, 사용자 장치(610)는 스마트-폰, 테블릿, 개인용 정보 단말기(personal digital assistant; PDA), 이동 전화, 등과 같은 컴퓨터 기능을 갖는 장치일 수 있다. 사용자 장치(610)는 네트워크(655)를 통해 통신하도록 구성된다. 사용자 장치(610)는 응용 프로그램, 예를 들어, 사용자 장치(610)의 사용자로 하여금 소셜 네트워킹 시스템(630)과 상호작용하게 하는 브라우저 응용 프로그램을 실행할 수 있다. 또 다른 실시예에서, 사용자 장치(610)는 iOS 및 안드로이드와 같은, 사용자 장치(610)의 원래의 운영 시스템에 의해 제공되는 응용 프로그램 인터페이스(application programming interface; API)를 통해 소셜 네트워킹 시스템(630)과 상호작용한다. 사용자 장치(610)는 네트워크(650)를 통해 외부 시스템(620) 및 소셜 네트워킹 시스템(630)과 통신하도록 구성되고, 여기서 네트워크(650)는 유선 및/또는 무선 통신 시스템들을 사용하는, 근거리 및/또는 원거리 네트워크들의 임의의 조합을 포함할 수 있다.
하나의 실시예에서, 네트워크(650)는 표준 통신 기술들 및 프로토콜들을 사용한다. 따라서, 네트워크(650)는 이더넷(Ethernet), 802.11, 와이맥스(worldwide interoperability for microwave access; WiMAX), 3G, 4G, CDMA, GSM, LTE, 디지털 가입자 회선(digital subscriber line; DSL), 등과 같은 기술들을 사용하는 링크들을 포함할 수 있다. 마찬가지로, 네트워크(650) 상에서 사용되는 네트워킹 프로토콜들은 다중 프로토콜 레이블 스위칭(MPLS: multiprotocol label switching), 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP: transmission control protocol/Internet protocol), 사용자 데이터그램 프로토콜(UDP: User Datagram Protocol), 하이퍼텍스트 전송 프로토콜(HTTP: hypertext transport protocol), 간이 전자 우편 전송 프로토콜(SMTP: simple mail transfer protocol), 파일 전송 프로토콜(FTP: file transfer protocol), 등을 포함할 수 있다. 네트워크(650)를 통해 교환된 데이터는 하이퍼텍스트 마크업 언어(hypertext markup language; HTML) 및 확장성 마크업 언어(extensible markup language; XML)를 포함하는 기술들 및/또는 포맷들을 사용하여 표현될 수 있다. 이외에, 모든 또는 몇몇의 링크들이 보안 소켓 계층(secure sockets layer; SSL), 전송 계층 보안(transport layer security; TLS), 및 인터넷 보안 프로토콜(Internet Protocol security; IPsec)과 같은 종래의 암호화 기술들을 사용하여 암호화될 수 있다.
하나의 실시예에서, 사용자 장치(610)는 브라우저 응용 프로그램(612)을 사용하여 외부 시스템(620) 및 소셜 네트워킹 시스템(630)으로부터 수신된 마크업 언어 문서(614)를 처리함으로써 외부 시스템(620) 및/또는 소셜 네트워킹 시스템(630)으로부터의 콘텐츠를 디스플레이할 수 있다. 마크업 언어 문서(614)는 콘텐츠 및 콘텐츠의 포맷팅 또는 표시를 설명하는 하나 이상의 명령들을 식별한다. 마크업 언어 문서(614)에 포함된 명령들을 실행함으로써, 브라우저 응용 프로그램(612)은 마크업 언어 문서(614)에 의해 설명된 포맷 또는 표시를 사용하여 식별된 콘텐츠를 디스플레이한다. 예를 들어, 마크업 언어 문서(614)는 외부 시스템(620) 및 소셜 네트워킹 시스템(630)으로부터 검색된 텍스트 및/또는 이미지 데이터를 포함하는 복수의 프레임들을 갖는 웹 페이지를 생성 및 디스플레이하기 위한 명령들을 포함한다. 다양한 실시예들에서, 마크업 언어 문서(614)는 확장성 마크업 언어(XML) 데이터, 확장성 하이퍼텍스트 마크업 언어(XHTML) 데이터, 또는 다른 마크업 언어 데이터를 포함하는 데이터 파일을 포함한다. 추가로, 마크업 언어 문서(614)는 외부 시스템(620)과 사용자 장치(610) 간의 데이터-상호교환을 용이하게 하기 위해 JSON(JavaScript Object Notation) 데이터, JSONP(JSON with padding), 자바스크립트 데이터를 포함할 수 있다. 사용자 장치(610) 상의 브라우저 응용 프로그램(612)은 마크업 언어 문서(614)를 디코딩하기 위해 자바스크립트 컴파일러를 사용할 수 있다.
마크업 언어 문서(614)는 또한 FLASHTM 또는 UnityTM 응용 프로그램들, SilverLightTM 응용 프로그램 프레임워크, 등과 같은 응용 프로그램들 또는 응용 프로그램 프레임워크들을 포함하거나, 그들에 링크할 수 있다.
하나의 실시예에서, 사용자 장치(610)는 또한 사용자 장치(610)의 사용자가 소셜 네트워킹 시스템(630)에 로그인했는지 아닌지를 나타내는 데이터를 포함하는 하나 이상의 쿠키들(616)을 포함하고, 여기서 쿠키들(616)은 소셜 네트워킹 시스템(630)에서 사용자 장치(610)로 전달된 데이터의 수정을 가능하게 할 수 있다.
외부 시스템(620)은 네트워크(650)를 사용하여 사용자 장치(610)에 전달되는, 하나 이상의 웹 페이지들(622a, 622b)을 포함하는 하나 이상의 웹 서버들을 포함한다. 외부 시스템(620)은 소셜 네트워킹 시스템(630)과 별개이다. 예를 들어, 외부 시스템(620)은 제 1 도메인과 연관되는 반면, 소셜 네트워킹 시스템(630)은 별개의 소셜 네트워킹 도메인과 연관된다. 외부 시스템(620)에 포함된 웹 페이지들(622a, 622b)은 콘텐츠를 식별하고 식별된 콘텐츠의 포맷팅(formatting) 또는 표시를 특정하는 명령들을 포함하는 마크업 언어 문서들(614)을 포함한다.
소셜 네트워킹 시스템(630)은 하나 이상의 소셜 네트워크용 컴퓨팅 장치들을 포함하는데, 여기서 소셜 네트워크는 복수의 사용자들을 포함하고, 소셜 네트워크의 사용자들에게 소셜 네트워크의 다른 사용자들과 통신 및 상호작용하는 능력을 제공한다. 몇몇 사례들에서, 소셜 네트워크는 그래프, 즉, 에지들(edges) 및 노드들을 포함하는 데이터 구조로 표현될 수 있다. 다른 데이터 구조들이 또한 소셜 네트워크를 표현하는데 사용될 수 있고, 이들은 데이터베이스들, 객체들(objects), 계급들, 메타 요소들, 파일들, 또는 임의의 다른 데이터 구조를 포함하지만, 이에 한정되는 것은 아니다. 소셜 네트워킹 시스템(630)은 운영자에 의해 운영, 관리, 또는 제어될 수 있다. 소셜 네트워킹 시스템(630)의 운영자는 소셜 네트워킹 시스템(630) 내에서 콘텐츠를 관리하고, 정책들을 규제하고, 사용 메트릭들(usage metrics)을 수집하는 인간, 자동화된 응용 프로그램, 또는 일련의 응용 프로그램들일 수 있다. 임의의 유형의 운영자가 사용될 수 있다.
사용자들은 소셜 네트워킹 시스템(630)에 가입할 수 있고, 그 후 그들이 접속되고자 원하는 소셜 네트워킹 시스템(630)의 임의의 수의 다른 사용자들에 대한 접속들을 추가할 수 있다. 본원에 사용된 바와 같이, "친구"란 용어는 사용자가 소셜 네트워킹 시스템(630)을 통해 접속, 유대, 또는 관계를 형성한, 소셜 네트워킹 시스템(630)의 임의의 다른 사용자를 의미한다. 예를 들어, 일 실시예에서, 소셜 네트워킹 시스템(630) 내의 사용자들이 소셜 그래프 내에 노드들로서 표현되면, "친구"란 용어는 2개의 사용자 노드들 간에 형성된 및 2개의 사용자 노드들을 직접 접속시키는 에지를 의미할 수 있다.
접속들은 사용자에 의해 명확하게 추가되거나, 사용자들의 공통 특징들에 기초하여(예를 들어, 같은 교육 기관의 졸업생들인 사용자들) 소셜 네트워킹 시스템(630)에 의해 자동으로 생성될 수 있다. 예를 들어, 제 1 사용자는 구체적으로 특정한 다른 사용자를 친구로 선택한다. 소셜 네트워킹 시스템(630) 내의 접속들은, 반듯이 그런 것은 아니지만, 보통 양방향적이므로, "사용자" 및 "친구"란 용어는 참조 프레임에 따른다. 소셜 네트워킹 시스템(630)의 사용자들 간의 접속들은 보통 양방향("2-방향") 또는 "상호적"이지만, 접속들은 또한 단방향 또는 "1-방향"일 수도 있다. 예를 들어, 밥(Bob)과 조(Joe)가 모두 소셜 네트워킹 시스템(630)의 사용자들이고 서로 접속되어 있으면, 밥과 조는 서로의 접속들이다. 한편, 밥은 조에 의해 소셜 네트워킹 시스템(630)에 전달된 데이터를 보기 위해 조에게 접속되길 바라지만, 조는 상호 접속을 형성하기를 바라지 않으면, 단방향 접속이 구축될 수 있다. 사용자들 간의 접속은 직접 접속일 수 있지만; 소셜 네트워킹 시스템(630)의 몇몇 실시예들은 접속이 하나 이상의 접속 수준들 또는 분리 정도들을 통해 간접적이게 한다.
사용자들 간에 접속들을 구축 및 유지하고, 사용자들 간에 상호작용들을 허용하는 것 이외에, 소셜 네트워킹 시스템(630)은 소셜 네트워킹 시스템(630)에 의해 지원되는 다양한 유형들의 아이템들에 대해 동작들을 취할 수 있는 능력을 사용자들에게 제공한다. 이들 아이템들은 소셜 네트워킹 시스템(630)의 사용자들이 속할 수 있는 그룹들 또는 네트워크들(즉, 사람, 엔티티들, 및 컨셉들의 소셜 네트워크들), 사용자가 관심있을 수 있는 이벤트들 또는 일정 엔티티들, 사용자가 소셜 네트워킹 시스템(630)을 통해 사용할 수 있는 컴퓨터-기반 응용 프로그램들, 사용자들이 소셜 네트워킹 시스템(630)에 의해 또는 그것을 통해 제공되는 서비스들을 통해 아이템들을 팔거나 살 수 있게 하는 거래들, 및 사용자들이 소셜 네트워킹 시스템(630) 상에서 또는 외부에서 수행할 수 있는 광고들과의 상호작용들을 포함할 수 있다. 이들은 사용자가 소셜 네트워킹 시스템(630) 상에서 동작할 수 있는 아이템들의 몇몇 예들일 뿐이고, 많은 다른 것들이 가능하다. 사용자는 소셜 네트워킹 시스템(630) 내에, 또는 소셜 네트워킹 시스템(630)과 별개이거나 네트워크(650)를 통해 소셜 네트워킹 시스템(630)에 연결된 외부 시스템(620) 내에 표현될 수 있는 어떤 것과도 상호작용할 수 있다.
소셜 네트워킹 시스템(630)은 또한 다양한 엔티티들을 링크시킬 수 있다. 예를 들어, 소셜 네트워킹 시스템(630)은 사용자들로 하여금, API, 웹 서비스, 또는 다른 통신 채널들을 통해 외부 시스템들(620) 또는 다른 엔티티들뿐만 아니라, 서로 상호작용할 수 있게 한다. 소셜 네트워킹 시스템(630)은 복수의 에지들에 의해 서로 접속된 복수의 노드들을 포함하는 "소셜 그래프"를 생성 및 유지한다. 소셜 그래프 내의 각각의 노드는 또 다른 노드에 대해 동작을 취할 수 있고/있거나 또 다른 노드에 의한 동작이 취해질 수 있는 엔티티를 나타낼 수 있다. 소셜 그래프는 다양한 유형들의 노드들을 포함할 수 있다. 노드들의 유형들의 예들은 사용자들, 비-사람 엔티티들(non-person entities), 콘텐츠 아이템들, 웹 페이지들, 그룹들, 활동들, 메시지들, 컨셉들, 및 소셜 네트워킹 시스템(630) 내에서 객체로 표현될 수 있는 임의의 다른 것들을 포함한다. 소셜 그래프 내의 2개의 노드들 간의 에지는 2개의 노드들 간의 특정한 종류의 접속, 또는 유대를 표현할 수 있는데, 이들은 노드 관계들, 또는 노드들 중 하나가 다른 노드에 가한 동작의 결과일 수 있다. 몇몇 경우들에서, 노드들 간의 에지들은 가중될 수 있다. 에지의 무게는 노드들 간의 접속 또는 유대의 세기와 같은, 에지와 연관된 속성을 나타낼 수 있다. 상이한 유형들의 에지들에는 상이한 무게들이 제공될 수 있다. 예를 들어, 하나의 사용자가 다른 사용자를 "좋아할" 때 생성된 에지에는 무게 1이 주어질 수 있는 반면, 사용자가 또 다른 사용자와 친구일 때 생성된 에지에는 다른 무게가 주어질 수 있다.
일례로서, 제 1 사용자가 제 2 사용자를 친구로 식별하면, 제 1 사용자를 나타내는 노드와 제 2 사용자를 나타내는 제 2 노드를 접속시키는, 소셜 그래프 내의 에지가 생성된다. 다양한 노드들이 서로 관련되거나 상호작용하므로, 소셜 네트워킹 시스템(630)은 다양한 노드들을 접속시키는 에지들을 관계들 및 상호작용들을 반영하도록 수정한다.
소셜 네트워킹 시스템(630)은 또한 소셜 네트워킹 시스템(630)과의 사용자의 상호작용들을 개선시키는 사용자-생성 콘텐츠를 포함한다. 사용자-생성 콘텐츠는 사용자가 소셜 네트워킹 시스템(630)에 추가, 업로드, 송신, 또는 "포스트"할 수 있는 어느 것이나 포함할 수 있다. 예를 들어, 사용자는 사용자 장치(610)로부터 소셜 네트워킹 시스템(630)으로 포스트들을 전달한다. 포스트들은 상태 갱신들 또는 다른 텍스트 데이터, 위치 정보, 사진들과 같은 이미지들, 비디오들, 링크들, 음악, 또는 다른 유사한 데이터 및/또는 미디어들과 같은 데이터를 포함할 수 있다. 콘텐츠는 또한 제3자에 의해 소셜 네트워킹 시스템(630)에 추가될 수 있다. 콘텐츠 "아이템들"은 소셜 네트워킹 시스템(630) 내에 객체들로 표현된다. 이 방식으로, 소셜 네트워킹 시스템(630)의 사용자들은 다양한 통신 채널들을 통해 다양한 미디어 유형의 콘텐츠 아이템들 및 텍스트를 포스팅함으로써 서로 통신하도록 고무된다. 이러한 통신은 사용자들의 서로와의 상호작용을 증가시키고, 사용자들이 소셜 네트워킹 시스템(630)과 상호작용하는 빈도를 높인다.
소셜 네트워킹 시스템(630)은 웹 서버(632), API 요청 서버(634), 사용자 프로필 저장소(636), 접속 저장소(638), 동작 이력 기록기(action logger)(640), 활동 이력(642), 및 인가 서버(644)를 포함한다. 본 발명의 일 실시예에서, 소셜 네트워킹 시스템(630)은 다양한 응용들을 위해 추가의, 보다 적은, 또는 상이한 구성요소들을 포함할 수 있다. 네트워크 인터페이스들, 보안 기기들, 부하 분산기들, 페일오버 서버들(failover servers), 관리 및 네트워크 운영 콘솔들(consoles), 등과 같은 다른 구성요소들은 시스템의 세부사항들을 모호하지 않게 하기 위해 도시되지 않았다.
사용자 프로필 저장소(636)는 자서전적 정보, 인구통계학적 정보, 및 경력, 학력, 취미들 또는 선호사항들, 위치, 등과 같은 다른 유형들의 묘사적 정보를 포함하는, 사용자 계정들에 관한 정보를 유지하는데, 이 정보는 사용자들에 의해 신고되거나 소셜 네트워킹 시스템(630)에 의해 추론된 것이다. 이 정보는 각각의 사용자가 고유하게 식별되도록 사용자 프로필 저장소(636) 내에 저장된다. 소셜 네트워킹 시스템(630)은 또한 상이한 사용자들 간의 하나 이상의 접속들을 나타내는 데이터를 접속 저장소(638)에 저장한다. 접속 정보는 유사한 또는 공통의 경력, 그룹 멤버쉽들, 취미들, 또는 학력을 갖는 사용자들을 표현할 수 있다. 이외에, 소셜 네트워킹 시스템(630)은 상이한 사용자들 간의 사용자-정의 접속들을 포함하는데, 이는 사용자들로 하여금 다른 사용자들과 그들의 관계들을 특정하게 한다. 예를 들어, 사용자-정의 접속들은 사용자들로 하여금 친구들, 직장동료들, 파트너들, 등과 같은 사용자들의 실-생활 관계들과 유사한 다른 사용자들과의 관계들을 생성하게 한다. 사용자들은 미리 결정된 유형들의 접속들로부터 선택하거나, 필요에 따라 그들만의 접속 유형들을 정의할 수 있다. 비-사람 엔티티들, 버킷들(buckets), 클러스터 센터들, 이미지들, 관심들, 페이지들, 외부 시스템들, 컨셉들, 등과 같은, 소셜 네트워킹 시스템(630) 내의 다른 노드들과의 접속들도 또한 접속 저장소(638)에 저장된다.
소셜 네트워킹 시스템(630)은 사용자가 상호작용할 수 있는 객체들에 대한 데이터를 유지한다. 이 데이터를 유지하기 위해, 사용자 프로필 저장소(636) 및 접속 저장소(638)가 소셜 네트워킹 시스템(630)에 의해 유지되는 대응하는 유형의 객체들의 인스턴스들(instances)을 저장한다. 각각의 객체 유형은 그 유형의 객체에 적절한 정보를 저장하기에 적합한 정보 필드들을 갖는다. 예를 들어, 사용자 프로필 저장소(636)는 사용자의 계정 및 사용자의 계정에 관한 정보를 나타내기에 적합한 필드들을 갖는 데이터 구조들을 포함한다. 특정한 유형의 새로운 객체가 생성되면, 소셜 네트워킹 시스템(630)은 대응하는 유형의 새로운 데이터 구조를 개시하고, 그것에 고유한 객체 식별자를 할당하고, 필요에 따라 그 객체에 데이터를 추가하기 시작한다. 이는, 예를 들어, 사용자가 소셜 네트워킹 시스템(630)의 사용자가 되어, 소셜 네트워킹 시스템(630)이 사용자 프로필 저장소(636)에 사용자 프로필의 새로운 인스턴스를 생성하고, 그 사용자 계정에 고유한 식별자를 할당하고, 사용자가 제공한 정보를 갖는 사용자 계정 필드들을 덧붙이기(populate) 시작할 때, 발생할 수 있다.
접속 저장소(638)는 다른 사용자들에의 사용자의 접속들, 외부 시스템(620)에의 접속들, 또는 다른 엔티티들에의 접속들을 나타내기에 적합한 데이터 구조들을 포함한다. 접속 저장소(638)는 또한 사용자에 대한 정보에의 액세스를 규정하기 위해 사용자의 비밀 설정과 함께 사용될 수 있는 접속 유형을 사용자의 접속들에 연관시킬 수 있다. 본 발명의 일 실시예에서, 사용자 프로필 저장소(636) 및 접속 저장소(638)는 연합 데이터베이스로 구현될 수 있다.
접속 저장소(638), 사용자 프로필 저장소(636), 및 활동 이력(642)에 저장된 데이터는, 소셜 네트워킹 시스템(630)으로 하여금, 소셜 그래프를 생성하게 하는데, 소셜 그래프는 다양한 객체들을 식별하기 위해 노드들을 사용하고 상이한 객체들 간의 관계들을 식별하기 위해 노드들을 접속시키는 에지들을 사용한다. 예를 들어, 제 1 사용자가 소셜 네트워킹 시스템(630) 내에서 제 2 사용자와 접속을 구축하면, 사용자 프로필 저장소(636)로부터의 제 1 사용자 및 제 2 사용자의 사용자 계정들은 소셜 그래프 내에서 노드들로서 동작할 수 있다. 접속 저장소(638)에 의해 저장되어 있는 제 1 사용자와 제 2 사용자 간의 접속은 제 1 사용자와 제 2 사용자와 연관된 노드들 간의 에지이다. 이 예에 계속하여, 이후 제 2 사용자는 소셜 네트워킹 시스템(630) 내에서 제 1 사용자에게 메시지를 송신할 수 있다. 저장되어 있을 수 있는 메시지를 송신하는 동작은 제 1 사용자 및 제 2 사용자를 나타내는 소셜 그래프 내의 2개의 노드들 간의 또 다른 에지이다. 추가로, 메시지 자체는 제 1 사용자 및 제 2 사용자를 나타내는 노드들에 접속된 또 다른 노드로서 소셜 그래프 내에 식별 및 저장될 수 있다.
또 다른 예에서, 제 1 사용자는 소셜 네트워킹 시스템(630)에 의해 유지되는 이미지 내에서 (또는, 대안적으로, 소셜 네트워킹 시스템(630) 외부의 또 다른 시스템에 의해 유지되는 이미지 내에서) 제 2 사용자를 태깅할 수 있다. 이미지는 자체로 소셜 네트워킹 시스템(630) 내에서 노드로 표현될 수 있다. 이 태깅 동작은, 소셜 그래프 내에서 또한 노드인, 각각의 사용자들과 이미지 간에 에지를 생성할 뿐만 아니라 제 1 사용자와 제 2 사용자 간에 에지들을 생성할 수 있다. 또 다른 예에서, 사용자가 이벤트에 참여한다고 확인하면, 사용자 및 이벤트는 사용자 프로필 저장소(636)로부터 획득되는 노드들인데, 여기서, 이벤트의 참여는 활동 이력(642)으로부터 검색될 수 있는 노드들 간의 에지이다. 소셜 그래프를 생성 및 유지함으로써, 소셜 네트워킹 시스템(630)은 많은 상이한 유형들의 객체들 및 그들 객체들 간의 상호작용들 및 접속들을 나타내는 데이터를 포함하고, 이에 따라 사회적으로 관련성 있는 정보의 풍부한 자원이 제공된다.
웹 서버(632)는 네트워크(650)를 통해 소셜 네트워킹 시스템(630)을 하나 이상의 사용자 장치들(610) 및/또는 하나 이상의 외부 시스템들(620)에 링크시킨다. 웹 서버(632)는 자바, 자바스크립트, 플래시(Flash), XML, 등과 같은 다른 웹-관련 콘텐츠뿐만 아니라 웹 페이지들을 서비스한다. 웹 서버(632)는 소셜 네트워킹 시스템(630)과 하나 이상의 사용자 장치들(610) 간에 메시지들을 수신하고 라우팅(routing)하기 위해 메일 서버 또는 다른 메시징 기능을 포함할 수 있다. 메시지들은 인스턴트 메시지들, 큐잉된(queued) 메시지들(예를 들어, 이메일), 텍스트 및 SMS 메시지들, 또는 임의의 다른 적합한 메시징 포맷일 수 있다.
API 요청 서버(634)는 하나 이상의 API 기능들을 호출함으로써, 하나 이상의 외부 시스템들(620) 및 사용자 장치들(610)로 하여금 소셜 네트워킹 시스템(630)으로부터 액세스 정보를 호출하게 한다. API 요청 서버(634)는 또한 외부 시스템들(620)로 하여금 API들을 호출함으로써 소셜 네트워킹 시스템(630)에 정보를 송신하게 할 수 있다. 하나의 실시예에서, 외부 시스템(620)은 네트워크(650)를 통해 API 요청을 소셜 네트워킹 시스템(630)에 송신하고, API 요청 서버(634)는 API 요청을 수신한다. API 요청 서버(634)는 적절한 응답을 생성하기 위해 API 요청과 연관된 API를 호출함으로써 그 요청을 처리하는데, 여기서, API 요청 서버(634)는 네트워크(650)를 통해 외부 시스템(620)과 통신한다. 예를 들어, API 요청에 응답하여, API 요청 서버(634)는 외부 시스템(620)에 로그인한 사용자의 접속들과 같은 사용자와 연관된 데이터를 수집하고, 수집한 데이터를 외부 시스템(620)에 전달한다. 또 다른 실시예에서, 사용자 장치(610)는 외부 시스템들(620)과 같은 방식으로 API들을 통해 소셜 네트워킹 시스템(630)과 통신한다.
동작 이력 기록기(640)는 소셜 네트워킹 시스템(630) 상에서의 및/또는 밖에서의 사용자 동작들에 대한 통신들을 웹 서버(632)로부터 수신할 수 있다. 동작 이력 기록기(640)는 사용자 동작들에 대한 정보를 갖는 활동 이력(642)을 덧붙여, 소셜 네트워킹 시스템(630)으로 하여금 소셜 네트워킹 시스템(630) 내에서 및 소셜 네트워킹 시스템(630) 외부에서 그것의 사용자들에 의해 취해진 다양한 동작들을 발견할 수 있게 한다. 특정한 사용자가 소셜 네트워킹 시스템(630) 상의 또 다른 노드에 대하여 취한 어떤 동작이든, 활동 이력(642) 또는 유사한 데이터베이스 또는 다른 데이터 저장장치에 유지된 정보를 통해, 각각의 사용자의 계정에 연관될 수 있다. 식별되고 저장되는, 소셜 네트워킹 시스템(630) 내에서 사용자에 의해 취해진 동작들의 예들은, 예를 들어, 또 다른 사용자에의 접속을 추가하고, 또 다른 사용자에게 메시지를 송신하고, 또 다른 사용자로부터의 메시지를 판독하고, 또 다른 사용자와 연관된 콘텐츠를 보고, 또 다른 사용자에 의해 포스팅된 이벤트에 참여하고, 이미지를 포스팅하고, 이미지를 포스팅하려고 시도하고, 또는 또 다른 사용자나 또 다른 객체와 상호작용하는 다른 동작들을 포함할 수 있다. 사용자가 소셜 네트워킹 시스템(630) 내에서 동작을 취하면, 그 동작은 활동 이력(642)에 기록된다. 하나의 일 실시예에서, 소셜 네트워킹 시스템(630)은 엔트리들의 데이터베이스로서 활동 이력(642)을 유지한다. 소셜 네트워킹 시스템(630) 내에서 동작이 취해지면, 동작에 대한 엔트리가 활동 이력(642)에 추가된다. 활동 이력(642)은 동작 이력으로서 참조될 수 있다.
추가로, 사용자 동작들은 소셜 네트워킹 시스템(630)과 별개인 외부 시스템(620)과 같은 소셜 네트워킹 시스템(630) 외부의 엔티티 내에서 발생하는 컨셉들 및 동작들에 연관될 수 있다. 예를 들어, 동작 이력 기록기(640)는 외부 시스템(620)과의 사용자 상호작용을 나타내는 데이터를 웹 서버(632)로부터 수신할 수 있다. 이 예에서, 외부 시스템(620)은 소셜 그래프 내에 구조화된 동작들 및 객체들에 따라 사용자의 상호작용을 보고한다.
사용자가 외부 시스템(620)과 상호작용하는 동작들의 다른 예들은, 사용자가 외부 시스템(620) 또는 또 다른 엔티티에 대한 관심을 표현하는 것, 사용자가 외부 시스템(620) 또는 외부 시스템(620) 내의 웹 페이지(622a)를 설명하는 코맨트(comment)를 소셜 네트워킹 시스템(630)에 포스팅하는 것, 사용자가 외부 시스템(620)과 연관된 통합 자원 식별자(URL: Uniform Resource Locator) 또는 다른 식별자를 소셜 네트워킹 시스템(630)에 포스팅하는 것, 사용자가 외부 시스템(620)과 연관된 이벤트에 참여하는 것, 또는 외부 시스템(620)에 관련되고 사용자에 의한 임의의 다른 동작을 포함한다. 따라서, 활동 이력(642)은 소셜 네트워킹 시스템(630)의 사용자와 소셜 네트워킹 시스템(630)과 별개인 외부 시스템(620) 간의 상호작용들을 나타내는 동작들을 포함할 수 있다.
인가 서버(644)는 소셜 네트워킹 시스템(630)의 사용자들의 하나 이상의 비밀 설정들을 시행한다. 사용자의 비밀 설정은 사용자와 연관된 특정한 정보가 어떻게 공유될 수 있는지를 결정한다. 비밀 설정은 사용자와 연관된 특정한 정보의 명세 및 정보가 공유될 수 있는 엔티티 또는 엔티티들의 명세를 포함한다. 정보가 공유될 수 있는 엔티티들의 예들은 다른 사용자들, 응용 프로그램들, 외부 시스템들(620), 또는 잠재적으로 정보에 액세스할 수 있는 임의의 엔티티를 포함할 수 있다. 사용자에 의해 공유될 수 있는 정보는 프로필 사진들, 사용자와 연관된 전화 번호들, 사용자의 접속들, 접속들을 추가하고, 사용자 프로필 정보를 변경하는 등과 같은 사용자에 의해 취해진 동작들과 같은 사용자 계정 정보를 포함한다.
비밀 설정 명세는 상이한 수준의 단위(granularity)에서 제공된다. 예를 들어, 비밀 설정은 다른 사용자들과 공유되는 특정 정보를 식별할 수 있고; 비밀 설정은 프로필 사진, 집 전화 번호, 및 상태를 포함하는 개인 정보와 같은 특정 세트의 관련 정보 또는 직장 전화 번호를 식별한다. 대안적으로, 비밀 설정은 사용자와 연관된 정보 모두에 적용될 수 있다. 특정한 정보에 액세스할 수 있는 엔티티들의 세트에 대한 명세도 또한 다양한 수준의 단위에서 특정될 수 있다. 정보가 공유될 수 있는 다양한 엔티티 세트들은, 예를 들어, 사용자의 모든 친구들, 친구들의 모든 친구들, 모든 응용 프로그램들, 또는 모든 외부 시스템들(620)을 포함할 수 있다. 하나의 실시예는 엔티티들의 세트에 대한 명세로 하여금 엔티티들의 목록을 포함하게 한다. 예를 들어, 사용자는 어떤 정보에 액세스하도록 허락된 외부 시스템들(620)의 리스트를 제공할 수 있다. 또 다른 실시예는 그 명세로 하여금 정보에 액세스하도록 허락되지 않은 예외들과 함께 엔티티들의 세트를 포함하게 한다. 예를 들어, 사용자는, 모든 외부 시스템들(620)로 하여금 사용자의 작업 정보에 액세스하게 할 수 있지만, 작업 정보에 액세스하지 못하는 외부 시스템들(620)의 리스트를 특정할 수도 있다. 어떤 실시예들은 어떤 정보에 액세스하도록 허락되지 않은 예외들의 리스트를 "차단 리스트"라고 부른다. 사용자에 의해 특정된 차단 리스트에 속한 외부 시스템들(620)은 비밀 설정에서 특정된 정보에 액세스하는 것이 차단된다. 정보가 공유되는, 정보 명세의 단위 및 엔티티들의 명세의 단위에 대한 다양한 조합들이 가능하다. 예를 들어, 모든 개인 정보가 친구들과 공유될 수 있는 반면, 모든 작업 정보는 친구들의 친구들과 공유될 수 있다.
인가 서버(644)는, 사용자와 연관된 어떤 정보가 사용자의 친구들, 외부 시스템들(620), 및/또는 다른 응용 프로그램들 및 엔티티들에 의해 액세스될 수 있는지를 결정하기 위한 논리를 포함한다. 외부 시스템(620)은 사용자의 직장 전화 번호와 같은, 사용자의 보다 사적인 및 민감한 정보에 액세스하기 위해 인가 서버(644)로부터 인가를 받을 필요가 있을 수 있다. 사용자의 비밀 설정들에 기초하여, 인가 서버(644)는, 또 다른 사용자, 외부 시스템(620), 응용 프로그램, 또는 또 다른 엔티티로 하여금 사용자에 의해 취해진 동작들에 대한 정보를 포함하는 사용자와 연관된 정보에 액세스하도록 허락되는지를 결정한다.
몇몇 실시예들에서, 소셜 네트워킹 시스템(630)은 증강 현실 효과 모듈(646)을 포함할 수 있다. 본원에 보다 상세하게 설명된 바와 같이, 증강 현실 효과 모듈(646)은 증강 현실 효과 모듈(102)로 구현될 수 있다. 몇몇 실시예들에서, 증강 현실 효과 모듈(646)의 하나 이상의 기능들은 사용자 장치(610) 내에서 구현될 수 있다.
하드웨어 구현
앞의 처리들 및 특징들은 매우 다양한 기기 및 컴퓨터 시스템 아키텍처들에 의해 그리고 매우 다양한 네트워크 및 컴퓨팅 환경들 내에 구현될 수 있다. 도 7은 본 발명의 일 실시예에 따른, 본원에 설명된 하나 이상의 실시예들을 구현하기 위해 사용될 수 있는 컴퓨터 시스템(700)의 일례를 나타낸다. 컴퓨터 시스템(700)은 컴퓨터 시스템(700)으로 하여금 본원에 설명된 처리들 및 특징들을 수행하게 하기 위한 명령어들의 세트들을 포함한다. 컴퓨터 시스템(700)은 다른 기기들에 접속(예를 들어, 네트워킹)될 수 있다. 네트워킹되는 배치에서, 컴퓨터 시스템(700)은 클라이언트-서버 네트워크 환경에서는 서버 기기 또는 클라이언트 기기로서, 또는 피어-투-피어(peer-to-peer)(또는 분산) 네트워크 환경에서는 피어 기기로서 동작할 수 있다. 본 발명의 일 실시예에서, 컴퓨터 시스템(700)은 소셜 네트워킹 시스템(630), 사용자 장치(610), 및 외부 시스템(720), 또는 그들의 조합일 수 있다. 본 발명의 일 실시예에서, 컴퓨터 시스템(700)은 소셜 네트워킹 시스템(630)의 모두 또는 일부를 구성하는 많은 것들 중 하나의 서버일 수 있다.
컴퓨터 시스템(700)은 프로세서(702), 캐시(704), 및 하나 이상의 실행가능 모듈들 및 드라이버들을 포함하는데, 이들은 컴퓨터-판독가능 매체에 저장되고, 본원에 설명된 처리들 및 특징들에 대한 것이다. 추가로, 컴퓨터 시스템(700)은 고성능 입력/출력(I/O) 버스(706) 및 표준 I/O 버스(708)를 포함한다. 호스트 브릿지(host bridge)(710)는 프로세서(702)를 고성능 I/O 버스(706)에 연결시키는 반면, I/O 버스 브릿지(712)는 2개의 버스들(706 및 708)을 서로 연결시킨다. 시스템 메모리(714) 및 하나 이상의 네트워크 인터페이스들(716)은 고성능 I/O 버스(706)에 연결된다. 컴퓨터 시스템(700)은 비디오 메모리 및 비디오 메모리에 연결된 디스플레이 장치를 더욱 포함할 수 있다(도시되지 않음). 대용량 저장소(718) 및 I/O 포트들(720)은 표준 I/O 버스(708)에 연결된다. 컴퓨터 시스템(700)은 표준 I/O 버스(708)에 연결되는 키보드 및 포인팅 장치(pointing device), 디스플레이 장치, 또는 다른 입력/출력 장치들(도시되지 않음)을 선택적으로 포함할 수 있다. 집합적으로, 이들 요소들은 임의의 다른 적합한 프로세서뿐만 아니라 캘리포니아, 산타 클라라의 인텔 사에 의해 제조되는 x86-호환가능 프로세서들 및 캘리포니아, 서니베일의 AMD사(Advanced Micro Devices, Inc.)에 의해 제조되는 x-86 호환가능 프로세서들에 기초한 컴퓨터 시스템들을 포함하는(그러나 이들에 한정되는 것은 아님), 광범위한 컴퓨터 하드웨어 시스템들을 나타내도록 의도된다.
운영 체제는 소프트웨어 응용 프로그램들(도시되지 않음)에 데이터를 입력하고 그것으로부터 데이터를 출력하는 것을 포함하는, 컴퓨터 시스템(700)의 동작을 관리 및 제어한다. 운영 체제는 시스템 상에서 실행되고 있는 소프트웨어 응용 프로그램들과 시스템의 하드웨어 구성요소들 간에 인터페이스를 제공한다. 리눅스 운영 체제, 캘리포니아, 쿠퍼티노(Cupertino)의 애플 컴퓨터(Apple Computer Inc.)로부터 이용할 수 있는 애플 매킨토시 운영 체제, UNIX 운영 체제들, Microsoft® Windows® 운영 체제들, BSD 운영 체제들, 등과 같은 임의의 적합한 운영 체제가 사용될 수 있다. 다른 구현들도 가능하다.
컴퓨터 시스템(700)의 요소들이 아래에 더욱 상세하게 설명된다. 특히, 네트워크 인터페이스(716)는 컴퓨터 시스템(700)과 이더넷(예를 들어, IEEE 802.3) 네트워크, 백플랜(backplane), 등과 같은 임의의 광범위한 네트워크들 간의 통신을 제공한다. 대용량 저장소(718)는 앞에서 식별된 각각의 컴퓨팅 시스템들에 의해 구현되는 전술된 처리들 및 특징들을 수행하기 위한 데이터 및 프로그래밍 명령들에 대한 영구 저장을 제공하는 반면, 시스템 메모리(714)(예를 들어, DRAM)는 프로세서(702)에 의해 실행될 때 데이터 및 프로그래밍 명령들에 대한 일시적 저장을 제공한다. I/O 포트들(720)은 컴퓨터 시스템(700)에 연결될 수 있는 추가적인 주변 장치들 간의 통신을 제공하는 하나 이상의 직렬 및/또는 병렬 통신 포트들일 수 있다.
컴퓨터 시스템(700)은 다양한 시스템 아키텍처들을 포함할 수 있고, 컴퓨터 시스템(700)의 다양한 구성요소들은 재정렬될 수 있다. 예를 들어, 캐시(704)는 프로세서(702)와 함께 칩에 내장될 수 있다(on-chip). 대안적으로, 프로세서(702)가 "프로세서 코어(processor core)"로 언급되면서, 캐시(704) 및 프로세서(702)는 "프로세서 모듈"로서 함께 실장될 수 있다. 더욱이, 본 발명의 어떤 실시예들은 앞의 구성요소들 모두를 요구하지도 포함하지도 않을 수 있다. 예를 들어, 표준 I/O 버스(708)에 연결된 주변 장치들이 고성능 I/O 버스(706)에 연결될 수 있다. 이외에, 몇몇 실시예들에서는, 컴퓨터 시스템(700)의 구성요소들이 단일 버스에 연결되면서, 단지 하나의 버스만이 존재할 수 있다. 게다가, 컴퓨터 시스템(700)은 추가의 프로세서들, 저장 장치들, 또는 메모리들과 같은 추가의 구성요소들을 포함할 수 있다.
일반적으로, 본원에 설명된 처리들 및 특징들은 운영 체제, 또는 특수 응용 프로그램, 구성요소, 프로그램, 객체, 모듈, 또는 "프로그램들"로 언급되는 일련의 명령들의 일부로 구현될 수 있다. 예를 들어, 하나 이상의 프로그램들이 여기에 설명된 특수 처리들을 실행하는데 사용될 수 있다. 프로그램들은 전형적으로 컴퓨터 시스템(700) 내의 다양한 메모리 및 저장 장치들 내의 하나 이상의 명령들을 포함하는데, 이 명령들은, 하나 이상의 프로세서들에 의해 판독 및 실행될 때, 컴퓨터 시스템(700)으로 하여금 여기에 설명된 처리들 및 특징들을 실행하게 하는 동작을 수행하게 한다. 본원에 설명된 처리들 및 특징들은 소프트웨어, 펌웨어, 하드웨어(예를 들어, 응용 프로그램 특수 집적 회로), 또는 그들의 임의의 조합으로 구현될 수 있다.
하나의 구현에서, 본원에 설명된 처리들 및 특징들은 분산 컴퓨팅 환경 내에서 개별적으로 또는 집합적으로 컴퓨터 시스템(700)에 의해 실행되는 일련의 실행가능 모듈들로 구현된다. 앞의 모듈들은 하드웨어, 컴퓨터-판독가능 매체(또는 기기-판독가능 매체) 상에 저장된 실행가능 모듈들, 또는 양자 모두의 조합에 의해 실현될 수 있다. 예를 들어, 모듈들은 프로세서(702)와 같은 하드웨어 시스템 내의 프로세서에 의해 실행되는 복수의 또는 일련의 명령들을 포함할 수 있다. 처음에, 일련의 명령들이 대용량 저장소(718)와 같은 저장 장치 상에 저장될 수 있다. 그러나, 일련의 명령들은 임의의 적합한 컴퓨터 판독가능 저장 매체 상에 저장될 수 있다. 게다가, 일련의 명령들은 국부적으로 저장될 필요는 없고, 네트워크 상의 서버와 같은 원거리 저장 장치로부터 네트워크 인터페이스(716)를 통해 수신될 수 있다. 명령들은 대용량 저장소(718)와 같은 저장 장치로부터 시스템 메모리(714)로 복사되어, 프로세서(702)에 의해 액세스 및 실행된다. 다양한 구현들에서, 모듈 또는 모듈들은 병렬 처리 환경 내의 다수의 서버들과 같이, 하나 이상의 다수의 위치들의 프로세서 또는 다수의 프로세서들에 의해 실행될 수 있다.
컴퓨터-판독가능 매체의 예들은, 휘발성 및 비-휘발성 메모리 장치들; 고체 메모리들; 플로피 및 다른 이동가능 디스크들; 하드 디스크 드라이브들; 자기 매체; 광학 디스크들(예를 들어, 콤팩트 디스크 판독-전용 메모리(Compact Disk Read-Only Memory; CD ROMS), 디지털 다기능 디스크(Digital Versatile Disks; DVDs)); 다른 유사한 비-일시적(또는 일시적), 유형(또는 비-유형) 저장 매체; 또는 본원에 설명된 임의의 하나 이상의 처리들 및 특징들을 수행하기 위해 컴퓨터 시스템(700)에 의해 실행되는 일련의 명령들을 저장, 인코딩, 또는 전달하기에 적합한 임의의 유형의 매체와 같은 기록가능한 유형의 매체를 포함하지만, 이에 한정되는 것은 아니다.
설명의 목적들을 위해, 많은 구체적인 세부사항들이 본 설명의 완벽한 이해를 제공하기 위해 설명되었다. 그러나, 본 게시물의 실시예들이 이들 구체적인 세부사항들 없이 구현될 수 있다는 것이 당업자에게 명확해질 것이다. 몇몇 사례들에서, 설명을 모호하지 않게 하기 위해, 모듈들, 구조들, 처리들, 특징들, 및 장치들이 블럭도 형태로 도시되었다. 다른 사례들에서, 데이터 및 논리 흐름들을 나타내기 위해 기능 블럭도들 및 흐름도들이 도시되어 있다. 블럭도들 및 흐름도들의 구성요소들(예를 들어, 모듈들, 블록들, 구조들, 장치들, 특징들, 등)은 여기에 명확히 설명되고 나타내진 것과 다른 방식으로 다양하게 조합, 분리, 제거, 재순서화, 및 재위치될 수 있다.
이 명세서 내의 "하나의 실시예", "일 실시예", "다른 실시예들", "일련의 실시예들", "몇몇 실시예들", "다양한 실시예들" 등과 같은 언급은 그 실시예에 관련하여 설명된 특정한 특징, 디자인, 구조, 또는 특징이 본 게시물의 적어도 하나의 실시예에 포함된다는 것을 의미한다. 예를 들어, 본 명세서의 여러 위치들에 "하나의 실시예에서" 또는 "일 실시예에서"란 어구가 나타나는 것은 반드시 모두가 동일한 실시예를 의미하는 것도 아니고, 개별적인 또는 대안적인 실시예들이 다른 실시예들에 상호 배타적이라는 것도 아니다. 게다가, "실시예" 등에 대한 명확한 언급이 있든 아니든, 몇몇 실시예들에서는 다양하게 조합 및 포함될 수 있지만, 또한 다른 실시예들에서는 다양하게 생략될 수 있는 다양한 특징들이 설명되어 있다. 마찬가지로, 몇몇 실시예들에 대해서는 선호사항 또는 요구사항들 일 수 있지만 다른 실시예들에서는 그렇지 않을 수 있는 다양한 특징들이 설명되어 있다.
본원에 사용된 언어는 원칙적으로 읽기 쉽게하고 교육적 목적들을 위해 선택되었으며, 본 발명의 주제를 설명하거나 제한하기 위해 선택된 것은 아닐 수 있다. 따라서, 본 발명의 범위는 이 상세한 설명에 의해 제한되지 않고, 오히려 본원에 기초한 특허 출원 상의 임의의 청구항에 의해 제한된다고 의도된다. 따라서, 본 발명의 실시예들에 대한 개시는 다음의 청구항들에 나타낸 본 발명의 범위를 나타내기 위해 의도된 것일 뿐, 그것을 제한하기 위한 것은 아니다.

Claims (20)

  1. 컴퓨터-구현 방법에 있어서:
    컴퓨팅 시스템에 의해, 증강 현실(AR: augmented reality) 광고를 디스플레이하기 위한 카메라 뷰의 배치를 결정하는 단계로서, 상기 카메라 뷰는 컴퓨팅 장치와 연관되는, 상기 카메라 뷰의 배치를 결정하는 단계;
    상기 컴퓨팅 시스템에 의해, 사용자와 연관된 속성들에 기초하여 상기 컴퓨팅 장치와 연관된 상기 사용자에 대한 AR 광고를 결정하는 단계; 및
    상기 컴퓨팅 시스템에 의해, 상기 카메라 뷰의 상기 결정된 배치에서 상기 AR 광고의 디스플레이를 야기하는 단계를 포함하는, 컴퓨터-구현 방법.
  2. 제 1 항에 있어서,
    상기 카메라 뷰의 배치를 결정하는 단계는 상기 카메라 뷰에서 하나 이상의 객체들을 식별하는 단계를 포함하는, 컴퓨터-구현 방법.
  3. 제 2 항에 있어서,
    상기 카메라 뷰에서 상기 하나 이상의 객체들을 식별하는 단계는 기계 학습 모델(machine learning model)을 기반으로 하는, 컴퓨터-구현 방법.
  4. 제 2 항에 있어서,
    상기 사용자에 대한 상기 AR 광고는 상기 하나 이상의 객체들에 적어도 부분적으로 기초하여 결정되는, 컴퓨터-구현 방법.
  5. 제 2 항에 있어서,
    상기 하나 이상의 객체들은 상기 카메라 뷰의 외부 공간에 객체를 포함하는, 컴퓨터-구현 방법.
  6. 제 1 항에 있어서,
    상기 카메라 뷰의 배치를 결정하는 단계는 상기 카메라 뷰의 이미지 데이터를 상기 카메라 뷰의 내부 공간의 3차원(3D) 맵에 매핑하는 단계를 포함하는, 컴퓨터-구현 방법.
  7. 제 6 항에 있어서,
    상기 내부 공간의 상기 3D 맵은 동시적 위치추정 및 지도작성(SLAM: simultaneous localization and mapping)을 기반으로 하는, 컴퓨터-구현 방법.
  8. 제 6 항에 있어서,
    상기 배치는 상기 3D 맵 내의 미리 정의된 섹션 또는 미리 정의된 객체와 연관되는, 컴퓨터-구현 방법.
  9. 제 1 항에 있어서,
    상기 사용자와 연관된 상기 속성들은: 연령, 연령 범위, 성별, 지리적 영역, 또는 관심 사항 중 하나 이상을 포함하는, 컴퓨터-구현 방법.
  10. 제 1 항에 있어서,
    상기 AR 광고를 결정하는 단계는 소셜 네트워킹 시스템에서 상기 사용자와 연관된 정보를 기반으로 하는, 컴퓨터-구현 방법.
  11. 시스템에 있어서:
    적어도 하나의 하드웨어 프로세서; 및
    명령들을 저장하는 메모리를 포함하고, 상기 명령들은 상기 적어도 하나의 프로세서에 의해 실행될 때, 상기 시스템으로 하여금:
    증강 현실(AR) 광고를 디스플레이하기 위한 카메라 뷰의 배치를 결정하는 것으로서, 상기 카메라 뷰는 컴퓨팅 장치와 연관되고;
    상기 사용자와 연관된 속성들을 기반으로 하여 상기 컴퓨팅 장치와 연관된 사용자에 대한 AR 광고를 결정하고;
    상기 카메라 뷰의 상기 결정된 배치에서 상기 AR 광고의 디스플레이를 야기하는 것을 수행하게 하는, 시스템.
  12. 제 11 항에 있어서,
    상기 카메라 뷰의 배치를 결정하는 것은 상기 카메라 뷰에서 하나 이상의 객체들을 식별하는 것을 포함하는, 시스템.
  13. 제 12 항에 있어서,
    상기 사용자에 대한 상기 AR 광고는 상기 하나 이상의 객체들에 적어도 부분적으로 기초하여 결정되는, 시스템.
  14. 제 11 항에 있어서,
    상기 카메라 뷰의 상기 배치를 결정하는 것은 상기 카메라 뷰의 이미지 데이터를 상기 카메라 뷰의 내부 공간의 3차원(3D) 맵에 매핑하는 것을 포함하는, 시스템.
  15. 제 14 항에 있어서,
    상기 배치는 상기 3D 맵의 미리 정의된 섹션 또는 미리 정의된 객체와 연관되는, 시스템.
  16. 명령들을 포함하는 비-일시적 컴퓨터 판독 가능 매체로서, 상기 명령들은 컴퓨팅 시스템의 적어도 하나의 하드웨어 프로세서에 의해 실행될 때, 상기 컴퓨팅 시스템으로 하여금:
    증강 현실(AR) 광고를 디스플레이하기 위한 카메라 뷰의 배치를 결정하는 단계로서, 상기 카메라 뷰는 컴퓨팅 장치와 연관되는, 상기 카메라 뷰의 배치를 결정하는 단계;
    상기 사용자와 연관된 속성들을 기반으로 하여 상기 컴퓨팅 장치와 연관된 사용자에 대한 AR 광고를 결정하는 단계; 및
    상기 카메라 뷰의 상기 결정된 배치에서 상기 AR 광고의 디스플레이를 야기하는 단계를 포함하는 방법을 수행하게 하는, 비-일시적 컴퓨터 판독 가능 매체.
  17. 제 16 항에 있어서,
    상기 카메라 뷰의 배치를 결정하는 단계는 상기 카메라 뷰에서 하나 이상의 객체들을 식별하는 단계를 포함하는, 비-일시적 컴퓨터 판독 가능 매체.
  18. 제 17 항에 있어서,
    상기 사용자에 대한 상기 AR 광고는 상기 하나 이상의 객체들에 적어도 부분적으로 기초하여 결정되는, 비-일시적 컴퓨터 판독 가능 매체.
  19. 제 16 항에 있어서,
    상기 카메라 뷰의 상기 배치를 결정하는 단계는 상기 카메라 뷰의 이미지 데이터를 상기 카메라 뷰의 내부 공간의 3차원(3D) 맵에 매핑하는 단계를 포함하는, 비-일시적 컴퓨터 판독 가능 매체.
  20. 제 19 항에 있어서,
    상기 배치는 상기 3D 맵의 미리 정의된 섹션 또는 미리 정의된 객체와 연관되는, 비-일시적 컴퓨터 판독 가능 매체.
KR1020197020066A 2016-12-30 2017-12-21 증강 현실 맞춤형 콘텐츠를 제공하기 위한 시스템들 및 방법들 KR20190093216A (ko)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201662441109P 2016-12-30 2016-12-30
US62/441,109 2016-12-30
US15/849,596 2017-12-20
US15/849,620 US11210854B2 (en) 2016-12-30 2017-12-20 Systems and methods for providing augmented reality personalized content
US15/849,596 US20180190033A1 (en) 2016-12-30 2017-12-20 Systems and methods for providing augmented reality effects and three-dimensional mapping associated with interior spaces
US15/849,620 2017-12-20
PCT/US2017/068048 WO2018125766A1 (en) 2016-12-30 2017-12-21 Systems and methods for providing augmented reality personalized content

Publications (1)

Publication Number Publication Date
KR20190093216A true KR20190093216A (ko) 2019-08-08

Family

ID=62711937

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020197020066A KR20190093216A (ko) 2016-12-30 2017-12-21 증강 현실 맞춤형 콘텐츠를 제공하기 위한 시스템들 및 방법들

Country Status (4)

Country Link
US (2) US20180190033A1 (ko)
JP (1) JP2020515933A (ko)
KR (1) KR20190093216A (ko)
CN (2) CN110402450B (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102523507B1 (ko) * 2021-12-20 2023-04-19 전광표 사운드 맵 서비스 제공 장치 및 방법

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10706459B2 (en) 2017-06-20 2020-07-07 Nike, Inc. Augmented reality experience unlock via target image detection
KR20230153496A (ko) * 2017-09-11 2023-11-06 나이키 이노베이트 씨.브이. 표적 탐색 및 지오캐싱 이용을 위한 장치, 시스템, 및 방법
EP3682398A1 (en) 2017-09-12 2020-07-22 Nike Innovate C.V. Multi-factor authentication and post-authentication processing system
CN111316307A (zh) 2017-09-12 2020-06-19 耐克创新有限合伙公司 多因素认证与认证后处理系统
CN107833264B (zh) * 2017-11-13 2019-02-01 百度在线网络技术(北京)有限公司 一种图片处理方法、装置、设备和计算机可读存储介质
US10482674B1 (en) * 2018-06-27 2019-11-19 Beijing Jingdong Shangke Information Technology Co., Ltd. System and method for mobile augmented reality
CN109191369B (zh) 2018-08-06 2023-05-05 三星电子(中国)研发中心 2d图片集转3d模型的方法、存储介质和装置
US10929894B2 (en) 2018-08-10 2021-02-23 At&T Intellectual Property I, L.P. System for delivery of XR ad programs
US11461985B2 (en) * 2019-01-30 2022-10-04 Mosaic, Ltd Methods and systems for rendering and modifying three-dimensional models for interior design
DE102020111318A1 (de) 2019-04-30 2020-11-05 Apple Inc. Lokalisieren von inhalten in einer umgebung
CN111859199A (zh) 2019-04-30 2020-10-30 苹果公司 在环境中定位内容
EP4229552A4 (en) * 2020-10-13 2024-03-06 Flyreel Inc GENERATION OF MEASUREMENTS OF PHYSICAL STRUCTURES AND ENVIRONMENTS THROUGH AUTOMATED ANALYSIS OF SENSOR DATA
US11886767B2 (en) 2022-06-17 2024-01-30 T-Mobile Usa, Inc. Enable interaction between a user and an agent of a 5G wireless telecommunication network using augmented reality glasses

Family Cites Families (64)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8933967B2 (en) * 2005-07-14 2015-01-13 Charles D. Huston System and method for creating and sharing an event using a social network
KR20090001667A (ko) 2007-05-09 2009-01-09 삼성전자주식회사 증강 현실 기술을 이용하여 컨텐츠를 구현하기 위한 장치및 방법
CN100458794C (zh) * 2007-08-03 2009-02-04 苏州工业园区联科信息技术有限公司 在电子地图中加载广告的方法
US20150170256A1 (en) * 2008-06-05 2015-06-18 Aisle411, Inc. Systems and Methods for Presenting Information Associated With a Three-Dimensional Location on a Two-Dimensional Display
US9224172B2 (en) * 2008-12-02 2015-12-29 Yahoo! Inc. Customizable content for distribution in social networks
US9424583B2 (en) * 2009-10-15 2016-08-23 Empire Technology Development Llc Differential trials in augmented reality
DE102009049849B4 (de) * 2009-10-19 2020-09-24 Apple Inc. Verfahren zur Bestimmung der Pose einer Kamera, Verfahren zur Erkennung eines Objekts einer realen Umgebung und Verfahren zur Erstellung eines Datenmodells
KR101055985B1 (ko) 2010-01-12 2011-08-11 인크로스 주식회사 카메라가 구비된 단말기를 이용한 정보제공방법 및 정보서비스방법
US9008686B2 (en) * 2010-01-12 2015-04-14 Nokia Corporation Collaborative location/orientation estimation
US20110213664A1 (en) * 2010-02-28 2011-09-01 Osterhout Group, Inc. Local advertising content on an interactive head-mounted eyepiece
US20110214082A1 (en) * 2010-02-28 2011-09-01 Osterhout Group, Inc. Projection triggering through an external marker in an augmented reality eyepiece
EP2539759A1 (en) 2010-02-28 2013-01-02 Osterhout Group, Inc. Local advertising content on an interactive head-mounted eyepiece
US20130311329A1 (en) * 2012-03-29 2013-11-21 Digimarc Corporation Image-related methods and arrangements
FR2960986A1 (fr) * 2010-06-04 2011-12-09 Thomson Licensing Procede de selection d’un objet dans un environnement virtuel
US8866847B2 (en) * 2010-09-14 2014-10-21 International Business Machines Corporation Providing augmented reality information
US8533192B2 (en) 2010-09-16 2013-09-10 Alcatel Lucent Content capture device and methods for automatically tagging content
KR101160571B1 (ko) 2010-10-20 2012-07-09 (주)비글 증강현실 기반의 광고 방법 및 시스템
US20120157190A1 (en) * 2010-12-17 2012-06-21 Yuliya Hungate Systems and methods for providing awards and advertisement content within a gaming environment
US8098171B1 (en) * 2010-12-28 2012-01-17 GM Global Technology Operations LLC Traffic visibility in poor viewing conditions on full windshield head-up display
US20120197709A1 (en) 2011-02-01 2012-08-02 Timothy Kendall Mobile Advertisement with Social Component for Geo-Social Networking System
US8670183B2 (en) * 2011-03-07 2014-03-11 Microsoft Corporation Augmented view of advertisements
US8929591B2 (en) 2011-03-08 2015-01-06 Bank Of America Corporation Providing information associated with an identified representation of an object
US8668498B2 (en) 2011-03-08 2014-03-11 Bank Of America Corporation Real-time video image analysis for providing virtual interior design
US10127564B2 (en) 2011-09-15 2018-11-13 Stephan HEATH System and method for using impressions tracking and analysis, location information, 2D and 3D mapping, mobile mapping, social media, and user behavior and information for generating mobile and internet posted promotions or offers for, and/or sales of, products and/or services
US9230367B2 (en) 2011-12-13 2016-01-05 Here Global B.V. Augmented reality personalization
US10223710B2 (en) * 2013-01-04 2019-03-05 Visa International Service Association Wearable intelligent vision device apparatuses, methods and systems
US20130238617A1 (en) * 2012-03-06 2013-09-12 Richard Postrel Method and system for implementing a social network profile
US20130297460A1 (en) 2012-05-01 2013-11-07 Zambala Lllp System and method for facilitating transactions of a physical product or real life service via an augmented reality environment
US20130293530A1 (en) * 2012-05-04 2013-11-07 Kathryn Stone Perez Product augmentation and advertising in see through displays
US20130317912A1 (en) * 2012-05-09 2013-11-28 William Bittner Advertising in Augmented Reality Based on Social Networking
US9035970B2 (en) * 2012-06-29 2015-05-19 Microsoft Technology Licensing, Llc Constraint based information inference
CN103577788A (zh) * 2012-07-19 2014-02-12 华为终端有限公司 增强现实的实现方法和装置
AU2013213701A1 (en) 2012-07-27 2014-02-13 Cavtec Pty Ltd Method and system for augmented reality
US20140047464A1 (en) * 2012-08-10 2014-02-13 Samsung Electronics Co., Ltd. Method and apparatus for measuring tv or other media delivery device viewer's attention
WO2014031899A1 (en) * 2012-08-22 2014-02-27 Goldrun Corporation Augmented reality virtual content platform apparatuses, methods and systems
US9449343B2 (en) * 2012-10-05 2016-09-20 Sap Se Augmented-reality shopping using a networked mobile device
US9412121B2 (en) * 2012-10-05 2016-08-09 Sap Se Backend support for augmented reality window shopping
US9489635B1 (en) * 2012-11-01 2016-11-08 Google Inc. Methods and systems for vehicle perception feedback to classify data representative of types of objects and to request feedback regarding such classifications
US20140172570A1 (en) * 2012-12-14 2014-06-19 Blaise Aguera y Arcas Mobile and augmented-reality advertisements using device imaging
US20140172640A1 (en) * 2012-12-19 2014-06-19 Wal-Mart Stores, Inc. Augmented reality shopping game
US20140195277A1 (en) * 2013-01-05 2014-07-10 Stanley H. Kim Systems and methods for generating dynamic seating charts
US20140214547A1 (en) * 2013-01-25 2014-07-31 R4 Technologies, Llc Systems and methods for augmented retail reality
JP2014174589A (ja) 2013-03-06 2014-09-22 Mega Chips Corp 拡張現実システム、プログラムおよび拡張現実提供方法
US20140278053A1 (en) * 2013-03-14 2014-09-18 Samsung Electronics Co., Ltd. Navigation system with dynamic update mechanism and method of operation thereof
US9495389B2 (en) * 2013-03-15 2016-11-15 Qualcomm Incorporated Client-server based dynamic search
CN103945274A (zh) * 2013-04-19 2014-07-23 达腾科公司 提供对应于电视节目的交互增强现实信息的方法和设备
US9451162B2 (en) * 2013-08-21 2016-09-20 Jaunt Inc. Camera array including camera modules
WO2015048749A1 (en) * 2013-09-30 2015-04-02 Interdigital Patent Holdings, Inc. Methods, apparatus, systems, devices, and computer program products for providing an augmented reality display and/or user interface
US9582516B2 (en) * 2013-10-17 2017-02-28 Nant Holdings Ip, Llc Wide area augmented reality location-based services
US10366445B2 (en) * 2013-10-17 2019-07-30 Mashgin Inc. Automated object recognition kiosk for retail checkouts
US10783554B1 (en) * 2014-02-25 2020-09-22 Groupon, Inc. Generation of promotion in an augmented reality
US10203762B2 (en) * 2014-03-11 2019-02-12 Magic Leap, Inc. Methods and systems for creating virtual and augmented reality
US9626709B2 (en) * 2014-04-16 2017-04-18 At&T Intellectual Property I, L.P. In-store field-of-view merchandising and analytics
US9363569B1 (en) * 2014-07-28 2016-06-07 Jaunt Inc. Virtual reality system including social graph
JP6492451B2 (ja) * 2014-08-12 2019-04-03 セイコーエプソン株式会社 頭部装着型表示装置およびその制御方法、並びにコンピュータープログラム
US20160133230A1 (en) 2014-11-11 2016-05-12 Bent Image Lab, Llc Real-time shared augmented reality experience
US9916002B2 (en) 2014-11-16 2018-03-13 Eonite Perception Inc. Social applications for augmented reality technologies
GB2535728A (en) 2015-02-25 2016-08-31 Bae Systems Plc Information system and method
CN105069644A (zh) 2015-07-20 2015-11-18 北京易讯理想科技有限公司 基于增强现实的购物客户端、服务器及系统
CN105338117B (zh) * 2015-11-27 2018-05-29 亮风台(上海)信息科技有限公司 用于生成ar应用和呈现ar实例的方法、设备与系统
CN105405046A (zh) 2015-12-28 2016-03-16 徐亦隽 一种房屋共享平台的房屋查看和租售的方法
US20180039479A1 (en) * 2016-08-04 2018-02-08 Adobe Systems Incorporated Digital Content Search and Environmental Context
US10445872B2 (en) * 2016-10-07 2019-10-15 Cnh Industrial America Llc Machine control measurements device
US10685386B2 (en) * 2016-11-30 2020-06-16 Bank Of America Corporation Virtual assessments using augmented reality user devices

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102523507B1 (ko) * 2021-12-20 2023-04-19 전광표 사운드 맵 서비스 제공 장치 및 방법

Also Published As

Publication number Publication date
CN110402450A (zh) 2019-11-01
US20180190033A1 (en) 2018-07-05
US11210854B2 (en) 2021-12-28
JP2020515933A (ja) 2020-05-28
CN110352442A (zh) 2019-10-18
CN110402450B (zh) 2023-09-19
US20180189840A1 (en) 2018-07-05

Similar Documents

Publication Publication Date Title
US10452898B2 (en) Systems and methods for providing augmented reality overlays
US11210854B2 (en) Systems and methods for providing augmented reality personalized content
US10354694B2 (en) Systems and methods for providing content items associated with objects
US10506301B2 (en) Systems and methods for automatically inserting advertisements into live stream videos
US20190138656A1 (en) Systems and methods for providing recommended media content posts in a social networking system
US20190042976A1 (en) Systems and methods for providing contextual recommendations for pages based on user intent
US10521825B2 (en) Systems and methods for providing interactive user interface elements for obtaining feedback within a media content item
CN108702481B (zh) 创建复合视频的系统和方法
JP2018502398A (ja) メディアコンテンツ上に重ね合わされるテキストのソーシャルリマークスを提供するためのシステムおよび方法
US10783150B2 (en) Systems and methods for social network post audience prediction and selection
US20190205929A1 (en) Systems and methods for providing media effect advertisements in a social networking system
EP3343441A1 (en) Systems and methods for providing augmented reality overlays
US11036289B2 (en) Systems and methods to present information in a virtual environment
KR20180054668A (ko) 다수의 지도 데이터 소스로부터의 다수의 지도 부분을 이용하는 시스템 및 방법
EP3343491A1 (en) Systems and methods for providing augmented reality personalized content
EP3343490A1 (en) Systems and methods for providing augmented reality effects and three-dimensional mapping associated with interior spaces
WO2018125766A1 (en) Systems and methods for providing augmented reality personalized content
US10496750B2 (en) Systems and methods for generating content
CN110326030B (zh) 用于提供与虚拟内容项目相关联的嵌套内容项目的系统和方法
WO2018125762A1 (en) Systems and methods for providing augmented reality overlays
US11403718B1 (en) Systems and methods for sensitive data modeling
US10956991B2 (en) Systems and methods for enhancing interactions in a computer networking environment
US20190138162A1 (en) Systems and methods for providing calls-to-action and related content associated with virtual media content
US20190034973A1 (en) Systems and methods for automated audience identification
US20180225859A1 (en) Systems and methods for rendering content

Legal Events

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

Free format text: TRIAL NUMBER: 2022101001715; TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20220920

Effective date: 20230210

J122 Written withdrawal of action (patent court)