KR20230122172A - 서드파티 자산으로 증강 현실 경험을 촉진하기 위한컴퓨팅 플랫폼 - Google Patents

서드파티 자산으로 증강 현실 경험을 촉진하기 위한컴퓨팅 플랫폼 Download PDF

Info

Publication number
KR20230122172A
KR20230122172A KR1020237026574A KR20237026574A KR20230122172A KR 20230122172 A KR20230122172 A KR 20230122172A KR 1020237026574 A KR1020237026574 A KR 1020237026574A KR 20237026574 A KR20237026574 A KR 20237026574A KR 20230122172 A KR20230122172 A KR 20230122172A
Authority
KR
South Korea
Prior art keywords
data
augmented reality
rendering
computing device
software development
Prior art date
Application number
KR1020237026574A
Other languages
English (en)
Inventor
이반 뉴랜더
이안 조셉 로스
하오 왕
어거스틴 3세 올리반 베네주엘라
서브라마니안 시얌선더 마서
수에메이 자오
발드린 코시
제임스 스라우 싱
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 KR20230122172A publication Critical patent/KR20230122172A/ko

Links

Classifications

    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/54Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/50Lighting effects
    • G06T15/80Shading
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

데이터 자산 취득 및 난독화를 위한 시스템 및 방법은 서드파티로부터 증강 현실 렌더링 데이터 자산을 검색하는데 도움이 될 수 있다. 소프트웨어 개발 키트를 보내고 데이터 자산을 다시 수신하면 데이터 자산이 사용자 인터페이스의 증강 현실 렌더링 환경과 호환되는지 확인할 수 있다. 난독화 기능이 있는 데이터 수집 시스템은 서드파티에 의해 생성된 코드가 시맨틱을 제거하게 하고 가독성을 낮출 수 있다.

Description

서드파티 자산으로 증강 현실 경험을 촉진하기 위한 컴퓨팅 플랫폼
본 발명은 일반적으로 데이터 자산의 취득에 관한 것이다. 특히, 본 발명은 사용자에게 증강 현실 경험을 제공하기 위해 서드파티로부터 데이터 자산을 취득하는 것에 관한 것이다.
관련 출원
본 출원은 2021년 1월 7일 출원된 미국 특허 출원 제17/144,002호에 대한 우선권을 주장한다. 미국 특허 출원 제17/144,002호의 전체 개시 내용은 그 전체가 본 명세서에 참조로서 통합된다.
증강 현실(Augmented Reality, AR)은 현실 세계에 존재하는 객체가 컴퓨터-생성 지각 정보에 의해 향상되는 실제 환경의 인터렉션 경험을 생성하고 실행하는 것을 의미할 수 있다. 하나의 예로서, AR 경험은 장면에 가상 객체를 삽입하고 및/또는 장면에 포함된 실세계 객체의 외관을 수정함으로써 사용자의 카메라에 의해 캡처된 장면을 증강하는 것을 포함할 수 있다.
특정 엔티티는 사용자가 엔티티에 의해 제조 또는 배포된 객체와 관련된 AR 경험에 참여하게 하는 기능을 제공할 수 있다(예: 증강 현실 "체험(try-on)"). 그러나 대부분의 엔터티는 이러한 AR 경험을 자체 웹 사이트에서만 제공한다. 증강 현실 제품 "체험"에 대한 제한된 접근성으로 인해 소비자는 상이한 객체에 대한 상이한 AR 경험에 참여하기 위해 한 웹사이트에서 다른 웹사이트로 이동해야 할 수 있다(예: 다양한 제품을 시도하고 제품 비교). 이 문제로 인해 소비자는 상이한 AR 세션에 쉽게 참여할 수 있도록 상이한 웹 사이트들 사이를 탐색하는데 훨씬 더 많은 컴퓨팅 리소스를 소비하게 될 수 있다.
또한 증강 현실 경험의 웹 기반 구현은 네이티브 애플리케이션에서 제공되는 증강 현실 경험에 비해 프레임 속도가 낮고 현실감이 떨어지는 렌더링으로 이어질 수 있다.
다른 증강 현실 경험에 참여하는 또 다른 문제는 다른 AR 애플리케이션이 다른 코딩 언어로 코딩될 수 있다는 것이다. 특정 코딩 언어는 보안 문제를 일으킬 수 있으며, 이는 애플리케이션이 사용자 얼굴의 이미지 또는 비디오를 프로세싱할 때 특히 우려할 수 있다.
본 발명의 실시예의 양태들 및 이점들이 후술하는 설명에서 부분적으로 기술될 것이며, 또는 설명으로부터 학습될 수 있거나 또는 실시예의 실시를 통해 학습될 수 있다.
본 개시의 일 예시적 양태는 서드파티 데이터 자산을 클라이언트에게 제공하기 위한 컴퓨터로 구현되는 방법에 관한 것이다. 방법은 컴퓨팅 디바이스에 의해 소프트웨어 개발 키트를 전송하는 단계를 포함할 수 있다. 소프트웨어 개발 키트는 하나 이상의 렌더링 효과 쉐이더를 구축하기 위한 템플릿을 포함할 수 있다. 방법은 컴퓨팅 디바이스에 의해 데이터 자산을 수신하는 단계를 포함할 수 있다. 일부 구현예에서, 데이터 자산은 소프트웨어 개발 키트를 사용하여 구축된 하나 이상의 렌더링 효과 쉐이더를 포함할 수 있다. 방법은 컴퓨팅 디바이스에 의해 데이터 자산을 저장하는 단계 및 컴퓨팅 디바이스에 의해 증강 현실 렌더링 경험을 제공하는 단계를 포함할 수 있다. 일부 구현예에서, 증강 현실 렌더링은 데이터 자산에 적어도 부분적으로 기초할 수 있다.
본 발명의 일 예시적 양태는 컴퓨팅 시스템에 관한 것이다. 컴퓨팅 시스템은 하나 이상의 프로세서 및 명령어를 집합적으로 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 매체를 포함할 수 있으며, 상기 명령어는 상기 하나 이상의 프로세서에 의해 실행될 때, 상기 컴퓨터 시스템으로 하여금 동작들을 수행하게 한다. 상기 동작들은 증강 현실 경험을 생성하기 위한 템플릿을 포함하는 소프트웨어 개발 키트를 수신하는 동작을 포함할 수 있다. 동작들은 템플릿을 수정하기 위한 하나 이상의 입력을 수신하는 동작을 포함할 수 있다. 일부 구현예에서, 템플릿을 수정하는 것은 제품-특정 증강 현실 경험을 생성할 수 있다. 일부 구현예에서, 동작들은 하나 이상의 입력에 적어도 부분적으로 기초하여 데이터 자산을 생성하는 동작 및 데이터 자산을 제2 컴퓨팅 디바이스에 전송하는 동작을 포함할 수 있다.
본 개시의 다른 예시적 양태는 하나 이상의 프로세서들에 의해 실행될 때 컴퓨팅 시스템으로 하여금 동작들을 수행하게 하는 명령어들을 집합적으로 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 매체에 관한 것이다. 상기 동작들은 컴퓨팅 디바이스에 의해 소프트웨어 개발 키트를 전송하는 동작을 포함할 수 있다. 일부 구현예에서, 소프트웨어 개발 키트는 하나 이상의 렌더링 효과 쉐이더를 구축하기 위한 템플릿을 포함할 수 있다. 상기 동작들은 컴퓨팅 디바이스에 의해 데이터 자산을 수신하는 동작을 포함할 수 있다. 데이터 자산은 소프트웨어 개발 키트를 사용하여 구축된 하나 이상의 렌더링 효과 쉐이더를 포함할 수 있다. 상기 동작들은 컴퓨팅 디바이스에 의해 데이터 자산을 저장하는 단계 및 컴퓨팅 디바이스에 의해 증강 현실 렌더링 경험을 제공하는 동작을 포함할 수 있다. 일부 구현예에서, 증강 현실 렌더링은 데이터 자산에 적어도 부분적으로 기초할 수 있다.
본 발명의 다른 양태는 다양한 시스템, 디바이스, 비일시적 컴퓨터 판독가능 매체, 사용자 인터페이스 및 전자 디바이스에 관한 것이다.
본 발명의 다양한 실시예의 이들 및 다른 구성들, 양태들 및 이점들은 후술하는 설명 및 첨부된 청구항들을 참조하여 보다 잘 이해될 것이다. 본 명세서에 통합되고 본 명세서의 일부를 구성하는 첨부 도면들은 설명과 함께 본 발명의 실시예를 도시하며, 관련된 원리들을 설명하기 위해 제공된다.
통상의 기술자 중 누군가를 위한 실시예의 상세한 논의가 첨부된 도면들을 참조하는 명세서에서 기술된다.
도 1a는 본 발명의 예시적 실시예에 따라 데이터 자산 취득을 수행하는 예시적 컴퓨팅 시스템의 블록도를 도시한다.
도 1b는 본 발명의 예시적 실시예에 따라 데이터 자산 취득 및 난독화를 수행하는 예시적 컴퓨팅 시스템의 블록도를 도시한다.
도 1c는 본 발명의 예시적 실시예에 따라 데이터 자산 취득 및 난독화를 수행하는 예시적 컴퓨팅 디바이스의 블록도를 도시한다.
도 1d는 본 발명의 예시적 실시예에 따라 데이터 자산 취득 및 난독화를 수행하는 예시적 컴퓨팅 디바이스의 블록도를 도시한다.
도 2는 본 발명의 예시적 실시예에 따른 예시적 데이터 자산 취득 시스템의 블록도를 도시한다.
도 3은 본 발명의 예시적 실시예에 따른 예시적 난독화의 블록도를 도시한다.
도 4는 본 발명의 예시적 실시예에 따른 예시적 데이터 자산 취득 시스템의 블록도를 도시한다.
도 5는 본 발명의 예시적 실시예에 따른 예시적 데이터 자산 취득 시스템의 블록도를 도시한다.
도 6은 본 발명의 예시적 실시예들에 따른 데이터 자산 취득을 수행하기 위한 예시적 방법의 흐름도를 도시한다.
도 7는 본 발명의 예시적 실시예들에 따른 데이터 자산 생성을 수행하기 위한 예시적 방법의 흐름도를 도시한다.
도 8은 본 발명의 예시적 실시예들에 따른 데이터 자산 취득 및 난독화를 수행하기 위한 예시적 방법의 흐름도를 도시한다.
복수의 도면들에 걸쳐 반복되는 참조 번호는 다양한 구현예에서 동일한 구성을 식별하도록 의도되었다.
개요
일반적으로, 본 발명은 증강 현실 렌더링 경험을 사용자에게 제공하기 위해 서드파티로부터 데이터 자산의 수집을 용이하게 하는 플랫폼에 관한 것이다. 예를 들어, 플랫폼은 서드파티가 사용자에게 제공될 렌더링 효과를 구축 및/또는 제출하게 할 수 있는 인터페이스를 제공할 수 있다. 플랫폼은 사용자에게 증강 현실 렌더링 경험을 제공할 수 있으며, 사용자는 사용자 데이터를 입력하고 증강 사용자 데이터를 출력으로 수신할 수 있다. 또한, 다른 예시적 양태에 따르면, 플랫폼은 서드파티 코드를 보호하기 위해 수신된 서드파티 데이터 자산에 대해 다양한 난독화 기법을 수행할 수 있다.
따라서, 본 발명의 예시적 양태는 증강 현실 렌더링을 위한 서드파티 데이터 자산을 취득하고 취득한 코드를 난독화하여 서드파티 소유 정보를 보호하기 위한 시스템을 제공할 수 있다. 일부 구현예에서 시스템 및 방법은 소프트웨어 개발 키트를 서드파티에게 보내는 것을 포함할 수 있다. 소프트웨어 개발 키트는 렌더링 효과 쉐이더를 구축하기 위한 템플릿을 포함할 수 있다. 일 예시로서, AR 효과는 공유 템플릿과 다수의 제품별 프리셋으로 구성될 수 있다. 템플릿은 특정 제품군의 모든 제품(예: 특정 공급업체의 모든 립스틱)에 공통적인 쉐이더 및 기타 리소스를 포함할 수 있다. 프리셋은 균일한 값과 텍스처를 포함할 수 있는 이러한 쉐이더에 대응하는 파라미터를 포함한다. 서드파티는 플랫폼에 데이터 자산을 다시 제공할 수 있다(예: SDK 내에 패키징됨). 예를 들어, 데이터 자산은 소프트웨어 개발 키트를 사용하여 구축된 하나 이상의 렌더링 효과 쉐이더를 포함할 수 있다. 그런 다음 수신된 데이터 자산이 저장될 수 있다. 그런 다음 데이터 자산을 사용하여 증강 현실 렌더링 경험을 촉진할 수 있으며, 여기서 데이터 자산은 증강 현실 체험 경험을 생성하는데 도움이 될 수 있다.
데이터 자산 취득을 위한 시스템 및 방법은 하나 이상의 시스템 또는 디바이스를 포함할 수 있다. 제1 컴퓨팅 디바이스는 서버, 촉진 컴퓨팅 디바이스 또는 중간 컴퓨팅 디바이스일 수 있다. 제2 컴퓨팅 디바이스는 서드파티 컴퓨팅 디바이스일 수 있다. 서드파티는 비디오 게임 회사, 제품 제조업체 또는 제품 브랜드일 수 있다. 제1 컴퓨팅 디바이스와 제2 컴퓨팅 디바이스는 데이터를 교환하여 사용자를 위한 증강 현실 렌더링 경험을 생성할 수 있다. 증강 현실 렌더링 경험은 하나 이상의 제품 또는 아이템을 포함하는 증강 현실 뷰를 렌더링하는 것을 포함할 수 있다. 제품은 화장품(예: 립스틱, 아이쉐도우 등), 가구 또는 기타 가정용품(예: 전자 장비, 조리기구, 유리 제품, 장식품, 식물 등), 의류, 페인트 색상, 자동차, 각종 전자 제품 또는 임의의 기타 아이템일 수 있다.
데이터 자산 취득은 제1 컴퓨팅 디바이스가 소프트웨어 개발 키트를 제2 컴퓨팅 디바이스로 전송하는 것을 포함할 수 있다. 소프트웨어 개발 키트는 렌더링 효과 쉐이더를 구축하기 위한 템플릿을 포함할 수 있다. 소프트웨어 개발 키트는 예제 효과, 렌더링 효과를 만드는 도구, 증강 현실 렌더링을 만드는데 도움이 되는 미리보기 모드를 포함할 수 있다. 제2 컴퓨팅 디바이스는 렌더링 효과를 구축하기 위해 사용될 수 있고, 일단 렌더링 효과가 구축되면, 제2 컴퓨팅 디바이스는 구축된 렌더링 효과 데이터를 렌더링 효과를 재현하는데 필요한 데이터 자산을 포함할 수 있는 렌더링 가능한 압축 파일(예를 들어, .ZIP 파일)로 내보낼 수 있다. 그런 다음 데이터 자산은 제1 컴퓨팅 디바이스에 전송될 수 있다. 제1 컴퓨팅 디바이스는 데이터 자산을 수신하면 사용자에게 제공되는 증강 현실 렌더링 경험에 사용하기 위해 데이터 자산을 저장할 수 있다. 제공된 증강 현실 렌더링 경험은 사용자에게 제공될 수 있으며, 여기서 사용자는 프로세싱을 위해 자신의 사용자 데이터를 입력할 수 있고 출력은 제2 컴퓨팅 디바이스에 구축된 렌더링 효과를 포함하는 증강 사용자 데이터일 수 있다. 사용자 데이터는 사용자 디바이스에 의해 캡처된 이미지 데이터 또는 비디오 데이터일 수 있다. 일부 구현예에서 사용자 데이터는 라이브 카메라 피드일 수 있다.
일부 구현예에서, 하나 이상의 렌더링 효과 쉐이더는 렌더링 기능을 기술하는 데이터를 포함할 수 있다. 하나 이상의 렌더링 효과 쉐이더가 증강 현실 경험을 위한 렌더링 효과를 렌더링하는데 사용될 수 있다. 예를 들어, 증강 현실로 얼굴에 립스틱을 렌더링하는 것은 립스틱 쉐이더, 텍스처, 유니폼 및 필터링 쉐이더의 활용을 포함할 수 있다. 일부 구현예에서 렌더링 효과를 생성하는데 도움이 되도록 텍스처와 유니폼이 쉐이더에 입력될 수 있다. 일부 구현예에서, 데이터 자산은 렌더링 효과 쉐이더를 포함할 수 있다. 일부 구현예에서, 렌더링 효과 쉐이더는 렌더링된 이미지를 생성하기 위해 사용자 데이터와 함께 렌더링 계산기에 의해 프로세싱될 수 있다.
일부 구현예에서, 수신된 데이터 자산은 증강 현실 렌더링의 생성을 용이하게 하는데 사용될 수 있다. 메시 모델은 입력 데이터를 프로세싱하여 메시 및 세그먼트 마스크를 생성할 수 있다. 그런 다음 증강 모델은 메시와 세그먼트 마스크를 수신하고, 데이터 자산을 사용하여 특정 렌더링을 렌더링할 위치와 방법을 결정할 수 있다. 예를 들어 데이터 자산은 앵커링 랜드마크 데이터를 포함할 수 있다. 따라서 데이터 자산을 사용하여 렌더링이 필요한 위치를 결정할 수 있다. 일부 구현예에서 데이터 자산은 쉐이더 데이터를 포함할 수 있다. 쉐이더 데이터는 사용자를 위한 메이크업 증강 현실 렌더링의 생성을 돕기 위해 립스틱 색상 또는 아이쉐도우 색상을 기술할 수 있다. 또한 쉐이더 데이터는 제품의 색상, 광택, 불투명도 및/또는 다양한 기타 특성을 기술할 수 있다.
증강 현실 렌더링 경험은 데이터 자산에 적어도 부분적으로 기초하여 렌더링을 생성하는 렌더링 계산기를 포함할 수 있다. 일부 구현예에서 증강 현실 렌더링 경험은 렌더링 엔진을 포함할 수 있고 렌더링 엔진은 렌더링 계산기를 포함할 수 있다.
증강 현실 렌더링 경험은 지각 서브그래프와 렌더링 서브그래프를 포함할 수 있다. 지각 서브그래프는 시스템 전체에서 균일할 수 있다. 지각 서브그래프는 다양한 렌더링 서브그래프와 함께 사용될 수 있다. 렌더링 서브그래프는 사용자에게 제공할 렌더링 효과를 생성하기 위해 서드파티에 의해 구축될 수 있다. 렌더링 서브그래프는 구축된 후 인식 서브그래프를 저장하는 증강 현실 렌더링 경험 플랫폼에 의해 사용될 수 있다. 렌더링 서브그래프는 렌더링 효과 및 서브그래프에 따라 다를 수 있다. 일부 구현예에서, 증강 사용자 이미지 또는 비디오에서 다수의 렌더링을 렌더링하기 위해 단일 인식 서브그래프가 다수의 렌더링 서브그래프와 함께 사용될 수 있다. 예를 들어, 사용자 얼굴의 사진이나 비디오를 프로세싱하여 얼굴에 립스틱, 아이쉐도우, 마스카라의 증강 현실 렌더링을 생성할 수 있다. 프로세싱은 단일 인식 서브그래프를 포함할 수 있지만 각각의 제품(즉, 립스틱, 아이쉐도우 및 마스카라)에 대한 렌더링 서브그래프를 포함할 수 있다.
일부 구현예에서, 데이터 자산은 서드파티가 판매하는 제품을 기술하는 제품 데이터를 포함할 수 있다. 일부 구현예에서, 여기에 개시된 시스템 및 방법은 소비자가 다양한 상이한 브랜드 또는 공급자로부터의 상이한 제품의 가상 체험을 가질 수 있도록 소매상을 위한 제품 증강 현실 렌더링 경험을 컴파일하는데 사용될 수 있다. 소매상은 소비자가 집에서 편안하게 제품을 가상으로 입어볼 수 있는 온라인 소매상일 수 있다. 일부 구현예에서, 소매상은 증강 현실 경험이 매장 내부에 있는 모바일 애플리케이션 또는 컴퓨팅 디바이스를 통해 활성화될 수 있는 물리적 매장 소매상일 수 있다. 일부 구현예에서, 본 명세서에 개시된 시스템 및 방법은 소비자가 제품의 브랜드, 제품의 유형, 제품의 색상 등을 검색할 수 있는 검색 엔진 애플리케이션 내에서 증강 현실 렌더링 경험을 가능하게 할 수 있고, 검색 엔진은 검색 쿼리에 기초하여 결과를 제공할 수 있고, 그 결과는 증강 현실을 사용하여 결정된 결과를 체험하는 옵션을 포함한다.
일부 구현예에서, 수신된 데이터 자산은 다양한 증강 현실 경험을 생성하게 할 수 있다. 예를 들어, 데이터 자산은 가정 내에서 하나 이상의 제품을 렌더링하는데 도움이 되도록 가구 또는 기타 가정 용품의 제조업체, 유통업체, 판매자 등에 의해 생성된 데이터 자산을 포함할 수 있다. 이 구현예에서 서드파티는 가구 또는 기타 가정 용품 증강 현실 경험을 생성할 수 있도록 소프트웨어 개발 키트를 수정하고 미세 조정할 수 있다. 서드파티가 생성된 경험에 만족하면, 데이터 자산을 저장하기 위해 촉진 시스템/플랫폼으로 내보내고 전송할 수 있다. 그런 다음 촉진 시스템은 데이터 자산을 사용하여 사용자가 액세스할 수 있는 증강 현실 렌더링 경험을 활성화할 수 있다.
증강 현실 렌더링은 사용자 데이터를 수신하고, 인코더 모델로 사용자 데이터를 프로세싱하여 사용자 메시를 생성하고, 증강 현실 렌더링을 생성하기 위해 사용자 메시를 증강 모델로 프로세싱함으로써 생성될 수 있다. 일부 구현예에서, 메시는 다각형 메시일 수 있다. 일부 구현예에서, 증강 모델은 데이터 자산에 적어도 부분적으로 기초한 쉐이더를 포함할 수 있다. 일부 구현예에서, 증강 모델은 카메라 피드 이미지 위에 중첩된 사용자 지정 쉐이더를 사용하여 다각형 메시를 렌더링함으로써 증강 현실 렌더링을 생성할 수 있다.
일부 구현예에서, 시스템 및 방법은 소프트웨어 개발 키트를 수용하고 수정하는 서드파티 컴퓨팅 디바이스를 포함할 수 있다. 이 방법은 증강 현실 경험을 생성하도록 수정되도록 구성된 소프트웨어 개발 키트를 수신하는 단계를 포함할 수 있다. 또한, 방법은 소프트웨어 수정하기 위한 하나 이상의 입력을 수신하는 단계를 포함할 수 있고, 상기 소프트웨어 개발 키트를 수정하는 것은 제품-특정 증강 현실 경험을 생성한다. 방법은 하나 이상의 입력에 적어도 부분적으로 기초하여 데이터 자산을 생성하는 단계 및 데이터 자산을 제2 컴퓨팅 디바이스에 전송하는 단계를 포함할 수 있다.
일부 구현예에서, 서드파티 컴퓨팅 디바이스는 미세 조정을 위해 증강 현실 경험을 테스트할 수 있다. 증강 현실 경험 테스트는 렌더링된 이미지와 사전 렌더링된 참조("골든") 이미지를 비교하는 것을 포함할 수 있다. 대안적으로, 일부 구현예에서, 테스트는 트레이닝 데이터 획득, 증강 현실 미디어를 생성하기 위해 증강 현실 경험으로 트레이닝 데이터를 프로세싱 및 증강 현실 미디어와 참조 데이터 비교를 포함할 수 있다. 데이터 자산의 하나 이상의 파라미터는 비교에 적어도 부분적으로 기초하여(예를 들어, 증강 현실 미디어와 참조 데이터를 비교하는 손실 함수에 기초하여) 조정될 수 있다(예를 들어, 기계 학습 알고리즘을 사용하여 자동으로).
일부 구현예에서, 시스템 및 방법은 코드를 난독화하기 위해 수신된 데이터 자산을 프로세싱할 수 있다. 난독화는 코드에서 공백 제거, 코드에서 하나 이상의 코멘트 제거, 코드에서 용어 및 기호 이름 변경을 포함할 수 있다. 하나 이상의 코멘트가 코드 시맨틱을 기술하는 텍스트를 포함할 수 있기 때문에 하나 이상의 코멘트가 제거될 수 있다. 데이터 자산의 코드에서 하나 이상의 용어 이름 변경은 파일 전체에서 균일한 이름 변경을 포함할 수 있다. 균일한 이름 변경 프로세스는 향후 이름 변경 균일성에 대한 참조를 제공하는 인덱스 용어를 포함할 수 있다. 일부 구현예에서 이름 변경은 해싱 함수를 사용하는 것을 포함할 수 있다. 해싱은 전역 레지스트리 또는 인덱스 테이블에서 인덱싱될 수 있다. 새로운 기호는 받은 대로 인덱스에 능동적으로 추가될 수 있다. 이름 변경된 용어 및 기호는 결정론적 용어일 수 있다. 일부 구현예에서 시스템은 다수의 파일 간에 공유되는 함수 이름과 같은 기호의 이름을 변경할 수 있다.
이름 변경은 쉐이더 코드를 파싱하고, 교체를 위해 특정 선언을 분리하는 것을 포함할 수 있다. 공백을 제거하면 특정 방식으로 코드를 포맷팅하는 것에 포함된 일부 논리를 제거하기 위해 코드 구성이 제거될 수 있다. 난독화는 서드파티가 공개하기를 원하지 않는 쉐이더 정보(예: OpenGL 코드, GLSL 또는 기타 기본 소스에서 발견되는 독점 정보)를 포함할 수 있는 시맨틱 콘텐츠를 제거하는 것을 포함할 수 있다.
일부 구현예에서 플랫폼은 제품 렌더링의 디렉토리를 생성하는데 사용될 수 있다. 증강 현실 렌더링의 디렉토리는 광고, 비디오 웹 애플리케이션 또는 모바일 앱에 대한 렌더링을 제공하도록 구현될 수 있다. 일부 구현예에서, 공유 코드는 라이브러리 종속성으로 디렉토리에 통합될 수 있다.
데이터 자산을 수신하거나 수집하는 것은 다양한 방법을 통해 발생할 수 있다. 일부 구현예에서 수집이 플랫폼에 내장된 내보내기 기능을 통해 발생할 수 있다. 다른 구현예에서 데이터 자산은 단일 최상위 파일에 정의된 쉐이더 유니폼으로 파라미터화된 단일 효과 템플릿을 이메일로 전송하여 전달될 수 있다. 예를 들어 립스틱 렌더링의 경우 서드파티가 사용자에게 제공하려는 각 립스틱 제품에 대한 쉐이더 균일 값을 전송할 수 있다. 시스템 및 방법은 효과 템플릿과 제품별 쉐이더 유니폼을 결합하여 제품별 AR 효과(예: 미용 효과)를 생성할 수 있다. 일부 구현예에서 이메일 대신 인터넷 기반 데이터 피드를 통해 데이터 자산을 수집할 수 있다. 데이터 자산은 개별적으로 또는 한꺼번에 수집될 수 있다.
일부 구현예에서 소프트웨어 개발 키트는 다양한 제품 유형에 맞게 구성될 수 있다. 예를 들어, 립스틱을 렌더링하기 위한 데이터 자산을 구축하기 위한 소프트웨어 개발 키트는 소파 렌더링을 위한 데이터 자산을 구축하기 위한 소프트웨어 개발 키트와 비교하여 다른 템플릿과 프리셋을 포함할 수 있다. 또한 미용 효과를 공유 "템플릿"으로 구성하고 제품별 다수의 프리셋을 통해 서드파티가 특정 제품을 렌더링하기 위한 데이터 자산을 구축하는데 도움을 줄 수 있다. 템플릿은 특정 제품군의 모든 제품(예: 공급업체 A의 모든 립스틱)에 공통적인 쉐이더 및 기타 리소스를 포함할 수 있다. 프리셋은 균일한 값과 텍스처를 포함할 수 있는 이러한 쉐이더에 대응하는 파라미터를 포함할 수 있다.
일부 구현예에서, 본 명세서에 개시된 시스템 및 방법은 네이티브 애플리케이션으로 구현될 수 있다. 네이티브 애플리케이션은 클라이언트가 선택할 수 있는 서드파티 제품 렌더링을 포함하는 증강 현실 렌더링 경험을 클라이언트에게 제공할 수 있다.
본 명세서에 개시된 시스템 및 방법은 혼합 현실을 포함하는 다른 기술에도 적용될 수 있다. 일부 구현예에서 서드파티는 소프트웨어 개발 키트를 사용하여 인터렉티브 렌더링을 구축할 수 있다. 예를 들어, 가구 브랜드는 다양한 리클라이너와 다양한 확장형 테이블에 다양한 렌더링 효과를 구축할 수 있다. 렌더링 효과 쉐이더는 증강 현실 렌더링 경험 플랫폼으로 전송되어 사용자가 집에 있는 가구를 렌더링할 수 있는 혼합 현실 렌더링 경험을 제공할 수 있다. 그런 다음 사용자는 렌더링과 인터렉션하여 기본 포지션과 대안적 포지션에서 가구 렌더링을 볼 수 있다. 따라서 사용자는 세워진 포지션과 리클라이닝된 포지션에서 리클라이너가 집에 맞는지 테스트할 수 있다. 사용자는 혼합 현실 환경을 사용하여 확장된 테이블이 주어진 방에 맞는지 결정할 수 있다.
또한 데이터 자산 취득 및 난독화 플랫폼은 지원되는 사용자 경험을 생성하기 위해 다양한 다른 플랫폼에 적용될 수 있다. 데이터 취득을 위한 플랫폼은 지원되는 애플리케이션 생성, 임베디드 기능 생성 및 위젯 생성에 활용될 수 있다.
또한, 일부 구현예에서 시스템 및 방법은 시각적 호환성 계산기로서 사용될 수 있다. 예를 들어, 특정 제품이나 부품이 원하는 공간이나 위치에 맞도록 보장하기 위해 시스템과 방법이 사용될 수 있다. 시스템 및 방법은 가상 현실을 사용하여 제품의 측정치/크기를 가상으로 테스트하는데 사용할 수 있다. 서드파티는 제품 측정치를 기술하는 데이터가 포함된 데이터 자산을 제공할 수 있다. 그런 다음 데이터 자산을 사용하여 서드파티가 제공한 측정치에 따라 제품이 렌더링되는 증강 현실 렌더링 경험을 사용자에게 제공할 수 있다. 이러한 양태를 통해 소비자는 제품을 "체험"하여 제품이 차지할 수 있는 공간을 시각화할 수 있다.
본 발명의 시스템 및 방법은 다수의 기술적 효과 및 이점을 제공한다. 일 예시로서, 시스템 및 방법은 고객이 애플리케이션에서 제품을 가상으로 볼 수 있도록 서드파티로부터 증강 현실에 대한 파라미터를 수신할 수 있다. 시스템 및 방법은 서드파티로부터 제공된 데이터의 보안을 보장하기 위해 추가로 사용될 수 있다. 더욱이, 시스템 및 방법은 사용자가 웹사이트에서 웹사이트로 또는 전용 애플리케이션에서 전용 애플리케이션으로 탐색할 필요 없이 여러 공급업체의 제품을 체험해 볼 수 있도록 다양한 공급업체로부터 가상 체험을 위한 증강 현실 데이터 세트의 중앙 집중식 수집을 가능하게 할 수 있다.
더욱이, 일부 구현예에서, 개시된 시스템 및 방법은 네이티브 애플리케이션으로 구현될 수 있다. 네이티브 애플리케이션에서 시스템 및 방법을 구현하면 웹 애플리케이션 대안에 비해 더 높은 프레임 속도와 더 사실적인 렌더링을 제공할 수 있다.
본 개시의 시스템 및 방법의 또 다른 기술적 이점은 코드(예를 들어, 쉐이더 코드)를 난독화하는 기능이다. 시스템 및 방법은 원래 제공된 소스 코드에서 있는 독점 정보를 누설하는 코멘트 또는 기호 없이 코드가 클러스터링되도록 할 수 있다. 시스템 및 방법은 수신된 데이터 자산을 난독화할 수 있으므로, 서드파티는 특정 독점 정보를 누설하지 않고 데이터를 제공할 수 있다.
이제 도면들을 참조하여, 본 발명의 예시적 실시예들이 더 자세히 논의될 것이다.
예시적 디바이스 및 시스템
도 1a는 본 발명의 예시적 실시예에 따라 데이터 자산 취득을 수행하는 예시적 컴퓨팅 시스템(80)의 블록도를 도시한다. 시스템(80)은 클라이언트 컴퓨팅 시스템(20), 증강 현실 플랫폼(30) 및 서드파티 컴퓨팅 시스템을 포함한다.
도 1a에 도시된 바와 같이, 증강 현실 플랫폼(30)은 서드파티 컴퓨팅 시스템(60)과 통신하여 서드파티 증강 현실(AR) 자산 라이브러리(40)를 생성할 수 있다. 서드파티 AR 자산 라이브러리(40)는 클라이언트 인터페이스(32)를 통해 클라이언트 컴퓨팅 시스템(20)에 증강 현실(AR) 경험을 제공하기 위해 활용될 수 있다.
예를 들어, 증강 현실 플랫폼(30)은 서드파티 컴퓨팅 시스템(60)에 템플릿을 포함하는 소프트웨어 개발 키트(SDK)를 제공할 수 있다. 서드파티 컴퓨팅 시스템(60)은 템플릿을 포함하는 SDK를 사용하여 서드파티에 의해 판매되는 제품을 기술하는 증강 현실 렌더링 효과를 구축할 수 있다. 완성된 렌더링 효과는 완성된 데이터 자산으로 증강현실 플랫폼(30)에 다시 제공될 수 있다. 각각의 완성된 데이터 자산은 증강 현실 플랫폼(30)의 서드파티 AR 자산 라이브러리(40)에 저장될 수 있다. 서드파티 AR 자산 라이브러리(40)에 저장된 제품 자산은 단일 서드파티로부터 또는 다수의 서드파티로부터 온 것일 수 있다. 예를 들어, 제품 1 자산(42), 제품 2 자산(44) 부터 제품 N 자산(46)까지 단일 서드파티 컴퓨팅 시스템에서 올 수 있으며, 서드파티가 제공하는 다양한 제품을 포함할 수 있다. 대안적으로, 제품 1 자산(42) 및 제품 2 자산(44)은 상이한 서드파티에 의해 제공될 수 있고 상이한 브랜드의 상이한 제품을 기술하는 데이터 자산을 포함할 수 있다.
증강 현실 플랫폼(30)은 클라이언트 컴퓨팅 시스템(20)에 AR 경험을 제공하기 위해 렌더링 엔진(34)에 의해 프로세싱될 클라이언트 인터페이스(32)를 통해 클라이언트 데이터를 수용할 수 있다. 렌더링 엔진(34)은 지각 모델 및 증강 모델로 클라이언트 데이터를 프로세싱할 수 있다. 인식 모델은 증강 모델에 입력될 수 있는 하나 이상의 메시와 하나 이상의 세그먼트 마스크를 출력할 수 있다. 증강 모델은 클라이언트 인터페이스(32)를 통해 클라이언트 컴퓨팅 시스템(20)으로 전송될 수 있는 증강 현실 클라이언트 이미지 또는 비디오를 출력하기 위해 클라이언트 데이터, 하나 이상의 메시 및 하나 이상의 세그먼트 마스크를 프로세싱할 수 있다.
일부 구현예에서, AR 경험은 클라이언트 컴퓨팅 시스템(20)이 "체험"할 원하는 제품을 표시하기 위해 증강 현실 플랫폼(30)에 선택을 보내는 것을 포함할 수 있다. 증강 현실 플랫폼은 데이터 자산을 사용하여 렌더링 엔진(34)의 증강 모델을 파라미터화함으로써 클라이언트 제공 이미지 또는 비디오에서 제품을 렌더링하기 위해 서드파티 AR 자산 라이브러리(40)로부터 저장된 데이터 자산을 사용할 수 있다. 예를 들어, 클라이언트 컴퓨팅 시스템(20)은 가상으로 체험할 제품 1을 선택하기 위해 클라이언트 인터페이스(32)를 사용할 수 있다. 제품 1 자산(42)은 클라이언트 데이터 세트와 함께 렌더링 엔진(34)에 제공될 수 있다. 렌더링 엔진(34)은 클라이언트 데이터 세트 및 제품 1 자산(42)을 프로세싱하여, 클라이언트 컴퓨팅 시스템(20)에 의해 제공되는 이미지 또는 비디오에서 제품 1의 이미지 또는 비디오를 생성할 수 있다.
도 1b는 본 발명의 예시적 실시예에 따라 데이터 자산 취득 및 난독화를 수행하는 예시적 컴퓨팅 시스템(100)의 블록도를 도시한다. 시스템(100)은 네트워크(180)를 통해 통신적으로 연결된 사용자 컴퓨팅 디바이스(102), 서버 컴퓨팅 시스템(130) 및 트레이닝 컴퓨팅 시스템(150)을 포함한다.
사용자 컴퓨팅 디바이스(102)는 예를 들어 개인 컴퓨팅 디바이스(예: 랩톱 또는 데스크톱), 모바일 컴퓨팅 디바이스(예: 스마트폰 또는 태블릿), 게임 콘솔 또는 컨트롤러, 웨어러블 컴퓨팅 디바이스, 임베디드 컴퓨팅 디바이스 또는 임의의 다른 유형의 컴퓨팅 디바이스와 같은 임의의 유형의 컴퓨팅 디바이스일 수 있다.
사용자 디바이스(102)는 하나 이상의 프로세서들(112) 및 메모리(114)를 포함한다. 하나 이상의 프로세서들(112)은 임의의 적절한 프로세싱 디바이스(예를 들어, 프로세서 코어, 마이크로 프로세서, ASIC, FPGA, 제어기, 마이크로 컨트롤러 등)일 수 있고, 하나의 프로세서 또는 동작적으로 연결된 하나 이상의 프로세서 또는 복수의 프로세서들일 수 있다. 메모리(114)는 RAM, ROM, EEPROM, EPROM, 플래시 메모리 디바이스, 자기 디스크 등과 같은 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체 및 이들의 조합을 포함할 수 있다. 메모리(114)는 사용자 컴퓨팅 디바이스(102)가 동작을 수행하게 하기 위한 프로세서(112)에 의해 실행되는 데이터(116) 및 명령어들(118)을 저장할 수 있다.
일부 구현예에서, 사용자 컴퓨팅 디바이스(102)는 하나 이상의 증강 현실 렌더링 모델(120)을 저장 또는 포함할 수 있다. 예를 들면, 증강 현실 렌더링 모델(120)은 신경 네트워크들(예: 딥 신경 네트워크)과 같은 다양한 기계 학습 모델들 또는 비선형 모델 및/또는 선형 모델을 포함하는 다른 유형의 기계 학습 모델들일 수 있거나 또는 이들을 포함할 수 있다. 신경 네트워크는 피드-포워드 신경 네트워크들(feed-forward neural networks), 순환 신경 네트워크(예: 장단기 메모리 순환 신경 네트워크들), 컨벌루션 신경 네트워크 또는 다른 형태의 신경 네트워크들을 포함할 수 있다. 예시적 증강 현실 렌더링 모델(120)은 도 2 및 4를 참조하여 논의된다.
일부 구현예에서, 하나 이상의 증강 현실 렌더링 모델(120)은 네트워크(180)를 통해 트레이닝 컴퓨팅 시스템(150)으로부터 수신되고, 사용자 컴퓨팅 디바이스 메모리(114)에 저장되며, 하나 이상의 프로세서(112)에 의해 사용되거나 이와 달리 구현되는 데이터 자산을 포함할 수 있다. 일부 구현예에서, 사용자 컴퓨팅 디바이스(102)는 (예를 들어, 병렬 렌더링 효과를 수행하기 위해) 단일 증강 현실 렌더링 모델(122)의 다수의 병렬 인스턴스를 구현할 수 있다.
보다 구체적으로, 서버 컴퓨팅 시스템(130)과 트레이닝 컴퓨팅 시스템(150)은 데이터를 교환하여 증강 현실 렌더링 모델이 이미지 또는 비디오 데이터를 프로세싱하여 증강 이미지 데이터 또는 증강 비디오 데이터를 출력하게 하는 데이터 자산을 생성할 수 있다.
추가적으로 또는 대안적으로, 하나 이상의 증강 현실 렌더링 모델(140)은 클라이언트-서버 관계에 따라 사용자 컴퓨팅 디바이스(102)와 통신하는 서버 컴퓨팅 시스템(130)에 포함되거나 이와 달리 저장되고 구현될 수 있다. 예를 들어, 증강 현실 렌더링 모델(140)은 서버 컴퓨팅 시스템(140)에 의해 웹 서비스(예: 메이크업, 의류, 전자 제품, 자동차 또는 가구 또는 기타 가정 용품에 대한 "실시간 체험" 서비스)의 일부로서 구현될 수 있다. 따라서, 하나 이상의 모델(120)은 사용자 컴퓨팅 디바이스(102)에 저장되고 구현될 수 있고 및/또는 하나 이상의 모델(140)은 서버 컴퓨팅 시스템(130)에 저장되고 구현될 수 있다.
또한 사용자 컴퓨팅 디바이스(102)는 사용자 입력을 수신하는 하나 이상의 사용자 입력 컴포넌트(122)를 포함할 수 있다. 예를 들어, 사용자 입력 컴포넌트(122)는 사용자 입력 객체(예를 들어, 손가락 또는 스타일러스)의 터치에 감응하는 터치 감지 컴포넌트(예를 들어, 터치 감지 디스플레이 스크린 또는 터치 패드)일 수 있다. 터치 감지 컴포넌트는 가상 키보드를 구현하는데 사용할 수 있다. 다른 예시적 사용자 입력 컴포넌트는 마이크로폰, 전통적 키보드 또는 사용자가 사용자 입력을 제공할 수 있는 다른 수단들을 포함한다.
서버 컴퓨팅 시스템(130)은 하나 이상의 프로세서들(132) 및 메모리(134)를 포함한다. 하나 이상의 프로세서들(132)은 임의의 적절한 프로세싱 디바이스(예를 들어, 프로세서 코어, 마이크로 프로세서, ASIC, FPGA, 제어기, 마이크로 컨트롤러 등)일 수 있고, 하나의 프로세서 또는 동작적으로 연결된 하나 이상의 프로세서 또는 복수의 프로세서들일 수 있다. 메모리(134)는 RAM, ROM, EEPROM, EPROM, 플래시 메모리 디바이스, 자기 디스크 등과 같은 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체 및 이들의 조합을 포함할 수 있다. 메모리(134)는 서버 컴퓨팅 시스템(130)이 동작을 수행하게 하기 위한 프로세서(132)에 의해 실행되는 데이터(136) 및 명령어들(138)을 저장할 수 있다.
일부 구현예에서, 서버 컴퓨팅 시스템(130)은 하나 이상의 서버 컴퓨팅 디바이스들을 포함하거나 이와 달리 그에 의해 구현된다. 서버 컴퓨팅 시스템(130)이 복수의 서버 컴퓨팅 디바이스들을 포함하는 경우에, 그러한 서버 컴퓨팅 디바이스들은 순차적 컴퓨팅 아키텍처, 병렬 컴퓨팅 아키텍처 또는 이들의 조합에 따라 동작할 수 있다.
상기 기술된 바와 같이, 서버 컴퓨팅 시스템(130)은 하나 이상의 기계 학습 증강 현실 렌더링 모델(140)을 저장하거나 또는 포함할 수 있다. 예를 들어, 모델(140)은 다양한 기계 학습 모델일 수 있거나 이를 포함할 수 있다. 기계 학습 모델의 예는 신경 네트워크 또는 기타 멀티 레이어 비선형 모델을 포함한다. 예시적 신경 네트워크는 피드 포워드 신경 네트워크, 딥 신경 네트워크, 순환 신경 네트워크 및 컨벌루션 신경 네트워크를 포함한다. 예시적 모델(140)은 도 2 및 4를 참조하여 논의된다.
사용자 컴퓨팅 디바이스(102) 및/또는 서버 컴퓨팅 시스템(130)은 네트워크(180)를 통해 통신적으로 연결된 트레이닝 컴퓨팅 시스템(150)과의 인터렉션을 통해 모델(120 및/또는 140)을 트레이닝할 수 있다. 트레이닝 컴퓨팅 시스템(150)은 서버 컴퓨팅 시스템(130)과 별개이거나 서버 컴퓨팅 시스템(130)의 일부일 수 있다.
트레이닝 컴퓨팅 시스템(150)은 하나 이상의 프로세서들(152) 및 메모리(154)를 포함한다. 하나 이상의 프로세서들(152)은 임의의 적절한 프로세싱 디바이스(예를 들어, 프로세서 코어, 마이크로 프로세서, ASIC, FPGA, 제어기, 마이크로 컨트롤러 등)일 수 있고, 하나의 프로세서 또는 동작적으로 연결된 하나 이상의 프로세서 또는 복수의 프로세서들일 수 있다. 메모리(154)는 RAM, ROM, EEPROM, EPROM, 플래시 메모리 디바이스, 자기 디스크 등과 같은 하나 이상의 비일시적 컴퓨터 판독가능 저장 매체 및 이들의 조합을 포함할 수 있다. 메모리(154)는 트레이닝 컴퓨팅 시스템(150)이 동작을 수행하게 하기 위한 프로세서(152)에 의해 실행되는 데이터(156) 및 명령어들(158)을 저장할 수 있다. 일부 구현예에서, 트레이닝 컴퓨팅 시스템(150)은 하나 이상의 서버 컴퓨팅 디바이스들을 포함하거나 이와 달리 그에 의해 구현된다.
트레이닝 컴퓨팅 시스템(150)은, 예를 들어 에러의 역방향 전파와 같은 다양한 트레이닝 또는 학습 기법을 사용하여, 사용자 컴퓨팅 디바이스(102) 및/또는 서버 컴퓨팅 시스템(130)에 저장된 기계 학습 모델(120 및/또는 140)을 트레이닝하는 모델 트레이너(160)를 포함할 수 있다. 예를 들어, 손실 함수는 (예를 들어, 손실 함수의 기울기에 기초하여) 모델(들)의 하나 이상의 파라미터를 업데이트하기 위해 모델(들)을 통해 역전파될 수 있다. 평균 제곱 오차, 우도 손실, 교차 엔트로피 손실, 힌지 손실 및/또는 다양한 기타 손실 함수와 같은 다양한 손실 함수가 사용될 수 있다. 경사 하강법을 사용하여 여러 트레이닝 반복에 걸쳐 파라미터를 반복적으로 업데이트할 수 있다.
일부 구현예에서, 에러의 역방향 전파를 수행하는 것은 시간을 통한 잘린 역 전파(truncated backpropagation through time)를 수행하는 것을 포함할 수 있다. 모델 트레이너(160)는 트레이닝되는 모델의 일반화 능력을 향상시키기 위해 다수의 일반화 기법들(예를 들어, 가중치 감소, 드롭 아웃 등)을 수행할 수 있다.
특히, 모델 트레이너(160)는 트레이닝 데이터(162)의 세트에 기초하여 증강 현실 렌더링 모델(120 및/또는 140)을 트레이닝할 수 있다. 트레이닝 데이터(162)는 예를 들어 소프트웨어 개발 키트를 사용하여 서드파티에 의해 구축된 쉐이더를 포함할 수 있으며, 서드파티는 촉진 컴퓨팅 디바이스 또는 서버 컴퓨팅 시스템(130)으로부터 소프트웨어 개발 키트를 수신했다. 서드파티는 소프트웨어 개발 키트로 증강 현실 경험을 구축하고 테스트하여 쉐이더와 데이터 자산을 생성했을 수 있다.
일부 구현예에서, 사용자가 동의를 제공하면, 트레이닝 예시들은 사용자 컴퓨팅 디바이스(102)에 의해 제공될 수 있다. 따라서, 이러한 구현예에서, 사용자 컴퓨팅 디바이스(102)에 제공되는 모델(120)은 사용자 컴퓨팅 디바이스(102)로부터 수신된 사용자 특정 데이터에 대한 트레이닝 컴퓨팅 시스템(150)에 의해 트레이닝될 수 있다. 일부 경우에, 이 프로세스를 모델 개인화로 지칭될 수 있다.
모델 트레이너(160)는 원하는 기능을 제공하기 위해 활용되는 컴퓨터 로직을 포함한다. 모델 트레이너(160)는 범용 프로세서를 제어하는 하드웨어, 펌웨어 및/또는 소프트웨어로 구현될 수 있다. 예를 들어, 일부 구현예에서, 모델 트레이너(160)는 저장 디바이스에 저장된 프로그램 파일을 포함하고, 메모리에 로딩되고 하나 이상의 프로세서에 의해 실행된다. 다른 구현예에서, 모델 트레이너(160)는 RAM 하드 디스크 또는 광학 또는 자기적 매체와 같은 유형적 컴퓨터 판독가능 저장 매체에 저장된 컴퓨터 실행가능 명령어들의 하나 이상의 세트들을 포함한다.
네트워크(180)는 근거리 네트워크(예를 들어, 인트라넷), 광역 네트워크(예를 들어, 인터넷) 또는 그들의 조합과 같은 임의의 유형의 통신 네트워크일 수 있고, 임의의 수의 유선 또는 무선 링크들을 포함할 수 있다. 일반적으로, 네트워크(180)를 통한 통신은 임의의 유형의 유선 및/또는 무선 연결을 사용하여, 다양한 통신 프로토콜들(예를 들어, TCP/IP, HTTP, SMTP, FTP), 인코딩 또는 포맷들(예를 들어, HTML, XML), 및/또는 보호 스키마(예를 들어, VPN, 시큐어 HTTP, SSL)를 통해 수행될 수 있다.
본 명세서에 설명된 기계 학습 모델은 다양한 작업, 애플리케이션 및/또는 사용 사례에서 사용될 수 있다.
일부 구현예에서, 본 발명의 기계 학습 모델(들)에 대한 입력은 이미지 데이터일 수 있다. 기계 학습 모델(들)은 이미지 데이터를 프로세싱하여 출력을 생성할 수 있다. 예를 들어, 기계 학습 모델(들)은 이미지 데이터를 프로세싱하여 이미지 인식 출력(예를 들어, 이미지 데이터의 인식, 이미지 데이터의 잠재 임베딩, 이미지 데이터의 인코딩된 표현, 이미지 데이터의 해시 등)을 생성할 수 있다. 다른 예로서, 기계 학습 모델(들)은 이미지 데이터를 프로세싱하여 이미지 분할 출력을 생성할 수 있다. 다른 예로서, 기계 학습 모델(들)은 이미지 데이터를 프로세싱하여 이미지 분류 출력을 생성할 수 있다. 다른 예로서, 기계 학습 모델(들)은 이미지 데이터를 프로세싱하여 이미지 데이터 수정 출력(예를 들어, 이미지 데이터의 변경 등)을 생성할 수 있다. 다른 예로서, 기계 학습 모델(들)은 이미지 데이터를 프로세싱하여 인코딩된 이미지 데이터 출력(예를 들어, 이미지 데이터의 인코딩된 및/또는 압축된 표현 등)을 생성할 수 있다. 다른 예로서, 기계 학습 모델(들)은 이미지 데이터를 프로세싱하여 업스케일링된 이미지 데이터 출력을 생성할 수 있다. 다른 예로서, 기계 학습 모델(들)은 이미지 데이터를 프로세싱하여 예측 출력을 생성할 수 있다.
일부 구현예에서, 본 발명의 기계 학습 모델(들)에 대한 입력은 텍스트 또는 자연어 데이터일 수 있다. 기계 학습 모델(들)은 텍스트 또는 자연어 데이터를 프로세싱하여 출력을 생성할 수 있다. 일 예시로서, 기계 학습 모델(들)은 자연어 데이터를 프로세싱하여 언어 인코딩 출력을 생성할 수 있다. 다른 예로서, 기계 학습 모델(들)은 텍스트 또는 자연어 데이터를 프로세싱하여 잠재 텍스트 임베딩 출력을 생성할 수 있다. 다른 예로서, 기계 학습 모델(들)은 텍스트 또는 자연어 데이터를 프로세싱하여 번역 출력을 생성할 수 있다. 다른 예로서, 기계 학습 모델(들)은 텍스트 또는 자연어 데이터를 프로세싱하여 분류 출력을 생성할 수 있다. 또 다른 예로서, 기계 학습 모델(들)은 텍스트 또는 자연어 데이터를 프로세싱하여 텍스트 세그먼트 출력을 생성할 수 있다. 또 다른 예로서, 기계 학습 모델(들)은 텍스트 또는 자연어 데이터를 프로세싱하여 시맨틱 의도 출력을 생성할 수 있다. 다른 예로서, 기계 학습 모델(들)은 텍스트 또는 자연어 데이터를 프로세싱하여, 업스케일된 텍스트 또는 자연어 출력(예: 입력 텍스트 또는 자연어 등보다 품질이 높은 텍스트 또는 자연어 데이터 등)을 생성할 수 있다. 다른 예로서, 기계 학습 모델(들)은 텍스트 또는 자연어 데이터를 프로세싱하여 예측 출력을 생성할 수 있다.
일부 구현예에서, 본 발명의 기계 학습 모델(들)에 대한 입력은 잠재 인코딩 데이터일 수 있다(예: 입력의 잠재 공간 표현 등). 기계 학습 모델(들)은 잠재 인코딩 데이터를 프로세싱하여 출력을 생성할 수 있다. 일 예로서, 기계 학습 모델(들)은 잠재 인코딩 데이터를 프로세싱하여 인식 출력을 생성할 수 있다. 다른 예로서, 기계 학습 모델(들)은 잠재 인코딩 데이터를 프로세싱하여 재구성 출력을 생성할 수 있다. 다른 예로서, 기계 학습 모델(들)은 잠재 인코딩 데이터를 프로세싱하여 잠재 인코딩 데이터를 프로세싱할 수 있다. 또 다른 예로서, 기계 학습 모델(들)은 잠재 인코딩 데이터를 프로세싱하여 재클러스터링 출력을 생성할 수 있다. 다른 예로서, 기계 학습 모델(들)은 잠재 인코딩 데이터를 프로세싱하여 예측 출력을 생성할 수 있다.
일부 구현예에서, 본 발명의 기계 학습 모델(들)에 대한 입력은 센서 데이터일 수 있다. 기계 학습 모델은 센서 데이터를 프로세싱하여 출력을 생성할 수 있다. 일 예시로서, 기계 학습 모델(들)은 센서 데이터를 프로세싱하여 인식 출력을 생성할 수 있다. 다른 예로서, 기계 학습 모델(들)은 센서 데이터를 프로세싱하여 예측 출력을 생성할 수 있다. 다른 예로서, 기계 학습 모델(들)은 센서 데이터를 프로세싱하여 분류 출력을 생성할 수 있다. 또 다른 예로서, 기계 학습 모델(들)은 센서 데이터를 프로세싱하여 분할 출력을 생성할 수 있다. 또 다른 예로서, 기계 학습 모델(들)은 센서 데이터를 프로세싱하여 분할 출력을 생성할 수 있다. 또 다른 예로서, 기계 학습 모델(들)은 센서 데이터를 프로세싱하여 시각화 출력을 생성할 수 있다. 또 다른 예로서, 기계 학습 모델(들)은 센서 데이터를 프로세싱하여 진단 출력을 생성할 수 있다. 또 다른 예로서, 기계 학습 모델(들)은 센서 데이터를 프로세싱하여 검출 출력을 생성할 수 있다.
일부 경우에, 기계 학습 모델(들)은 신뢰할 수 있고/있거나 효율적인 전송 또는 저장(및/또는 대응 디코딩)을 위해 입력 데이터를 인코딩하는 것을 포함하는 작업을 수행하도록 구성될 수 있다. 다른 예에서, 입력은 시각적 데이터(예를 들어, 하나 이상의 이미지 또는 비디오)를 포함하고, 출력은 압축된 시각적 데이터를 포함하며, 작업은 시각적 데이터 압축 작업이다. 다른 예에서, 작업은 입력 데이터(예를 들어, 시각적 데이터)에 대한 임베딩을 생성하는 것을 포함할 수 있다.
일부 경우에, 입력은 시각적 데이터를 포함하며, 작업은 컴퓨터 비전 작업이다. 일부 경우에, 입력은 하나 이상의 이미지에 대한 픽셀 데이터를 포함하며 작업은 이미지 프로세싱 작업이다. 예를 들어, 이미지 프로세싱 작업은 이미지 분류일 수 있으며, 여기서 출력은 점수들의 세트이며, 각 점수는 상이한 객체 클래스에 대응하고, 하나 이상의 이미지가 객체 클래스에 속하는 객체를 묘사할 가능성을 나타낸다. 이미지 프로세싱 작업은 객체 검출일 수 있으며, 여기서 이미지 프로세싱 출력은 하나 이상의 이미지에서 하나 이상의 영역을 식별하고, 각 영역에 대해 해당 영역이 관심 객체를 나타낼 가능성을 식별한다. 또 다른 예로서, 이미지 프로세싱 작업은 이미지 세그먼트화일 수 있으며, 여기서 이미지 프로세싱 출력은 하나 이상의 이미지의 각 픽셀에 대해, 사전 결정된 카테고리 세트의 각 카테고리에 대한 각각의 가능성을 정의한다. 예를 들어 카테고리 세트는 전경 및 배경일 수 있다. 또 다른 예로 카테고리 세트는 객체 클래스일 수 있다. 다른 예로서, 이미지 프로세싱 작업은 깊이 추정일 수 있으며, 여기서 이미지 프로세싱 출력은 하나 이상의 이미지의 각 픽셀에 대한 각각의 깊이 값을 정의한다. 다른 예로서, 이미지 프로세싱 작업은 모션 추정일 수 있으며, 네트워크 입력은 다수의 이미지를 포함하고, 이미지 프로세싱 출력은 입력 이미지 중 하나의 각 픽셀에 대해, 네트워크 입력에서 이미지들 사이의 픽셀에 묘사된 장면의 모션을 정의한다.
도 1b는 본 발명을 구현하는데 사용될 수 있는 하나의 예시적 컴퓨팅 시스템을 도시한다. 다른 컴퓨팅 시스템도 사용될 수 있다. 예를 들어, 일부 구현예에서, 사용자 컴퓨팅 디바이스(102)는 모델 트레이너(160) 및 트레이닝 데이터 세트(162)를 포함할 수 있다. 이러한 구현예에서, 모델(120)은 사용자 컴퓨팅 디바이스(102)에서 로컬적으로 트레이닝되고 사용될 수 있다. 이러한 구현예 중 일부에서, 사용자 컴퓨팅 디바이스(102)는 사용자 특정 데이터에 기초하여 모델(120)을 개인화하기 위해 모델 트레이너(160)를 구현할 수 있다.
도 1c는 본 발명의 예시적 실시예에 따라 수행하는 예시적 컴퓨팅 디바이스(10)의 블록도를 도시한다. 컴퓨팅 디바이스(10)는 사용자 컴퓨팅 디바이스 또는 서버 컴퓨팅 디바이스일 수 있다.
컴퓨팅 디바이스(10)는 다수의 애플리케이션(예를 들어, 애플리케이션 1 내지 애플리케이션 N)을 포함한다. 각 애플리케이션은 자체적 기계 학습 라이브러리 및 기계 학습 모델(들)을 포함한다. 예를 들어, 각 애플리케이션은 기계 학습 모델을 포함할 수 있다. 예시적 애플리케이션은 텍스트 메시징 애플리케이션, 이메일 애플리케이션, 받아쓰기 애플리케이션, 가상 키보드 애플리케이션, 브라우저 애플리케이션 등을 포함한다.
도 1c에 도시된 바와 같이, 각 애플리케이션은 예를 들어, 하나 이상의 센서, 컨텍스트 관리자, 디바이스 상태 컴포넌트 및/또는 추가 컴포넌트들과 같은 컴퓨팅 디바이스의 다수의 다른 컴포넌트들과 통신할 수 있다. 일부 구현예에서, 각 애플리케이션은 API(예를 들어, 퍼블릭 API)를 사용하여 각 디바이스 컴포넌트와 통신할 수 있다. 일부 구현예에서 각 애플리케이션에 의해 사용되는 API는 해당 애플리케이션에 대해 특정적이다.
도 1d는 본 발명의 예시적 실시예에 따라 수행하는 예시적 컴퓨팅 디바이스(50)의 블록도를 도시한다. 컴퓨팅 디바이스(50)는 사용자 컴퓨팅 디바이스 또는 서버 컴퓨팅 디바이스일 수 있다.
컴퓨팅 디바이스(50)는 다수의 애플리케이션(예를 들어, 애플리케이션 1 내지 애플리케이션 N)을 포함한다. 각 애플리케이션은 중앙 인텔리전스 레이어와 통신한다. 예시적 애플리케이션은 문자 메시지 애플리케이션, 이메일 애플리케이션, 받아쓰기 애플리케이션, 가상 키보드 애플리케이션, 브라우저 애플리케이션 등을 포함한다. 일부 구현예에서, 각 애플리케이션은 API(예: 모든 애플리케이션에 걸쳐 공통 API)를 사용하여 중앙 인텔리전스 레이어(및 그 안에 저장된 모델)과 통신할 수 있다.
중앙 인텔리전스 레이어는 다수의 기계 학습 모델들을 포함한다. 예를 들어, 도 1d에 도시된 바와 같이, 각각의 기계 학습 모델(예: 모델)은 각 애플리케이션에 대해 제공될 수 있고, 중앙 인텔리전스 레이어에 의해 관리될 수 있다. 다른 구현예에서, 2개 이상의 애플리케이션들은 단일의 기계 학습 모델을 공유할 수 있다. 예를 들어, 일부 구현예에서, 중앙 인텔리전스 레이어는 모든 애플리케이션에 대해 단일 모델(예를 들어, 단일 모델)을 제공할 수 있다. 일부 구현예에서, 중앙 인텔리전스 레이어는 컴퓨팅 디바이스(50)의 운영 체제 내에 포함되거나 이와 다르게 구현될 수 있다.
중앙 인텔리전스 레이어는 중앙 디바이스 데이터 레이어와 통신할 수 있다. 중앙 디바이스 데이터 레이어는 컴퓨팅 디바이스(50)에 대한 중앙 집중식 데이터 저장소일 수 있다. 도 1d에 도시된 바와 같이, 중앙 디바이스 데이터 레이어는 예를 들어, 하나 이상의 센서, 컨텍스트 관리자, 디바이스 상태 컴포넌트 및/또는 추가 컴포넌트들과 같은 컴퓨팅 디바이스의 다수의 다른 컴포넌트들과 통신할 수 있다. 일부 구현예에서, 중앙 디바이스 데이터 레이어는 API(예를 들어, 사설 API)를 사용하여 각 디바이스 컴포넌트와 통신할 수 있다.
예시적 모델 구성
일부 구현예에서 시스템 및 방법을 렌더링 파이프라인으로서 사용될 수 있다. 파이프라인은 렌더링 가능한 압축 파일(예: ZIP 파일)을 빌드하는데 필요한 모든 도구를 포함할 수 있는 소프트웨어 개발 키트(SDK)가 포함될 수 있다. 일부 구현예에서, 압축 파일(예: ZIP 파일)이 있는 소프트웨어 개발 키트는 다양한 플랫폼의 뷰어로 테스트될 수 있다. 소프트웨어 개발 키트로 구축하는 동안 생성된 소스 자산을 사용하여 스틸 이미지 또는 비디오를 증강할 수 있다.
소프트웨어 개발 키트는 서드파티에게 전송될 수 있다. 서드파티는 내부 렌더링 파이프라인을 빌드하고 미리 볼 수 있다. 파이프라인은 컴퓨터나 모바일 디바이스를 사용한 뷰티 제품 체험을 포함하되 이에 한정되지 않는 다양한 용도로 사용될 수 있다.
소프트웨어 개발 키트는 관련 바이너리가 포함된 스크립트, 미리 보기 도구 세트, 설명서 및 샘플 효과 세트를 포함할 수 있다. 스크립트 및 관련 바이너리는 제품 효과 소스를 렌더링 가능한 압축 파일로 컴파일하는데 사용될 수 있다. 렌더링된 결과를 시각화하는데 미리보기 도구 세트가 사용될 수 있다. 또한 미리보기 도구는 편집 및 미리보기를 위한 조인트 인터페이스 또는 둘 사이의 빠른 인터페이스 전환을 제공할 수 있다. 문서는 구축 프로세스를 돕기 위해 검토할 원시 HTML 또는 기타 형식의 문서를 포함할 수 있다. 샘플 효과 세트는 서드파티가 기준선을 제공하면서 소프트웨어 개발 키트를 이해하는 데 도움이 될 수 있다.
소프트웨어 개발 키트는 자급자족할 수 있고 이식하기 쉬우며 스톡 하드웨어에서 실행할 수 있고 빠르고 안전하도록 설계될 수 있다. 소프트웨어 개발 키트는 서드파티 또는 다른 생성자가 다른 애플리케이션에 의존하지 않고 소프트웨어 개발 키트를 사용하여 렌더링을 구축할 수 있도록 종속성 없이 실행되도록 설계될 수 있다. 백엔드는 소비자와 인터페이스하는 시스템에서 사용하는 백엔드를 미러링할 수 있다. 또한 포팅이 간편하여 서드파티가 최소한의 수정 또는 전혀 수정 없이 기존 쉐이더를 사용하게 할 수 있다. 또한 소프트웨어 개발 키트는 소프트웨어 개발 키트 외부에 소프트웨어를 설치할 필요 없이 다양한 운영 체제에서 실행되도록 설계될 수 있다. 일부 구현예에서 소프트웨어 개발 키트는 커스터마이징을 위해 렌더링 그래프 및 GPU 쉐이더를 열 수 있는 기능을 포함할 수 있다. 인터페이스는 소비자와 인터렉션하는 시스템에 서드파티 GPU 코드를 구현할 필요가 없으므로 사용자의 보안을 유지할 수 있다. 소프트웨어 개발 키트는 렌더링 계산기를 사용하여 들어오는 데이터를 나가는 데이터로 변환할 수 있다.
내향 증강 현실 효과 생성은 두 가지 컴포넌트를 포함할 수 있다. 제1 컴포넌트는 지각(perception)을 포함할 수 있다. 지각 컴포넌트는 이미지의 랜드마크(예: 얼굴의 입술)의 픽셀 좌표를 계산하고 출력할 수 있다. 제2 컴포넌트는 렌더링 컴포넌트를 포함할 수 있다. 렌더링 컴포넌트는 위치를 용이하게 하는 계산된 랜드마크와 함께 원래 수신된 프레임에 증강 현실 효과를 렌더링하는 것을 포함할 수 있다. 그런 다음 결과가 출력될 수 있다.
증강 현실 렌더링을 위한 그래프는 서드파티 서브그래프와 촉진자 서브그래프로 분할될 수 있다. 촉진자 서브그래프는 지각 서브그래프일 수 있고, 서드파티 서브그래프는 서드파티와 촉진자가 모두 편집할 수 있는 렌더링 서브그래프일 수 있다. 분리는 렌더링 서브그래프에 영향을 주지 않고 촉진자가 지각 서브그래프를 수정할 수 있게 한다. 또한 분리를 통해 여러 증강 현실 효과가 렌더링되는 경우에도 단일 인식 서브그래프가 사용될 수 있게 한다. 따라서 단일 인식 모델 프로세스의 계산으로 다수의 렌더링을 생성하기 위해 다수의 렌더링 서브그래프가 단일 인식 서브그래프에 계층화될 수 있다.
지각 서브그래프와 렌더링 서브그래프의 집합은 완전한 그래프 또는 증강 현실 미디어를 생성할 수 있다.
서드파티 효과 소스는 렌더링 서브그래프 파일과 서브그래프의 렌더링 계산기에 의해 소비되는 하나 이상의 자산 디렉토리를 포함할 수 있다.
일부 구현예에서 소프트웨어 개발 키트는 지각 모델을 포함할 수 있다. 소프트웨어 개발 키트는 번들 바이너리를 호출하여 각 유형의 소스 파일을 프로세싱된 형식으로 변환할 수 있고, 그러면 생성된 렌더링 가능한 압축 파일에서 입력의 디렉터리 구조를 보존할 수 있으며, 도중에 발생하는 모든 오류를 내보낼 수 있다. 그래프 프로토, 쉐이더 및 청사진과 같은 자산 파일은 소프트웨어 개발 키트에 포함될 수 있거나 효과 소스의 일부인 다른 파일을 참조할 수 있다. 텍스처는 변환을 커스터마이징하는 효과별 image_conversion.txt 파일에 기초하여 webp 형식으로 변환될 수 있다.
일부 구현예에서 소프트웨어 개발 키트로 구축된 제품 효과는 런타임 컴파일을 위해 사용자의 디바이스에 제공될 수 있는 GLSL 쉐이더를 포함할 수 있다. 이러한 쉐이더는 서드파티 기술 공급자의 귀중한 지적 재산을 나타낼 수 있다. 본 명세서에 개시된 시스템 및 방법은 정보 보호를 돕기 위해 쉐이더를 난독화할 수 있다. 난독화는 코멘트와 구문상 불필요한 공백을 제거한 다음 대부분의 예약되지 않은 기호의 이름을 체계적으로 변경하여 시맨틱을 모호하게 만드는 것을 포함할 수 있다. 일부 구현예에서 난독화된 기호는 파일 간에 균일하게 난독화될 수 있다. 난독화는 서드파티 파트너로부터 얻은 원본 쉐이더를 검사하고 테스트한 후에 발생할 수 있다.
시스템 및 방법은 메이크업 렌더링, 가구 렌더링, 의류 렌더링, 비디오 게임 렌더링 및 건물 구조 렌더링을 포함하지만 이에 제한되지 않는 다양한 증강 현실 렌더링에 적용될 수 있다.
도 2는 본 발명의 예시적 실시예에 따른 예시적 데이터 자산 취득 시스템(200)의 블록도를 도시한다. 일부 구현예에서, 데이터 자산 취득 시스템(200)은 증강 현실 렌더링 경험을 구축하기 위한 소프트웨어 개발 키트(212)를 전송하고, 소프트웨어 개발 키트(212)를 전송한 결과 서드파티로부터 템플릿 및 프리셋(228)을 수신하도록 트레이닝된다. 따라서, 일부 구현예에서, 데이터 취득 시스템(200)은 촉진자(210), 서드파티(220) 및 사용자(250)를 포함할 수 있다.
특히 도 2는 증강 현실 렌더링 경험을 생성하는데 사용하기 위한 데이터 자산 취득 시스템을 도시한다. 촉진자(210)는 서드파티(220)와 통신함으로써 증강 현실 렌더링을 위한 데이터 자산을 컴파일하기 위한 촉진 시스템일 수 있다. 촉진자(210)는 서버, 웹 애플리케이션 또는 촉진 컴퓨팅 시스템일 수 있다. 촉진자(210)가 데이터 자산을 수신한 경우, 촉진 시스템은 사용자(250)에게 증강 현실 렌더링 경험을 제공할 수 있다.
데이터 자산 취득은 서드파티(220)에게 전송되는 촉진자 내장 소프트웨어 개발 키트(SDK)(212)를 포함할 수 있다. 서드파티는 렌더링 경험을 구축하기 위해 소프트웨어 개발 키트(222)를 사용할 수 있다. 소프트웨어 개발 키트(222)는 데이터 자산(224)을 컴파일할 수 있고 생성된 렌더링 경험의 렌더링 프리뷰(226)를 허용할 수 있다.
서드파티(220)는 그들의 데이터 자산의 템플릿 및 프리셋(228)에 어떤 소스 수정(230)이 필요한지 결정하기 위해 렌더링 프리뷰를 사용할 수 있다. 구축, 테스트 및 미세 조정이 완료되면, 서드파티는 서드파티 메타데이터(232)와 함께 템플릿 및 프리셋(228)을 포함하여 데이터 자산을 촉진 시스템에 보낼 수 있다. 촉진 시스템(210)은 서드파티(220)에 의해 구축된 렌더링 효과를 포함할 수 있는 증강 현실 렌더링 경험을 나중에 제공하기 위해 효과(214)를 수집하고 저장할 수 있다. 촉진자는 사용자(250)로부터 사용자 데이터(252)를 받아들일 수 있고 증강 사용자 데이터에 렌더링 효과가 포함된 증강 사용자 데이터를 출력할 수 있다.
도 3은 본 발명의 예시적 실시예에 따른 예시적 난독화(300)의 블록도를 도시한다. 난독화(300)는 데이터 자산을 난독화하기 위해 도 2의 데이터 자산 취득 시스템(200)에 포함될 수 있다.
보다 구체적으로, 도 3은 난독화에 대한 세 갈래 접근 방식을 보여준다. 이 구현예에서, 원래 코드(302)는 난독화 시스템(304)으로 난독화되어 난독화된 코드(306)를 생성할 수 있다. 일부 구현예에서, 원래 코드(302)는 증강 현실 렌더링을 위한 데이터 자산 코드일 수 있다.
또한, 이 구현예에서, 난독화 시스템(304)은 기호 또는 용어의 이름 변경(308), 공백(310) 제거 및 시맨틱에 관한 코멘트(312) 제거를 포함할 수 있다.
이름 변경(308)은 원래 코드에서 기호 및 용어를 인덱싱하고, 원래 기호 및 용어를 할당된 기호 및 용어로 교체하는 것을 포함할 수 있다. 일부 구현예에서, 이름 변경(308)은 해싱 함수의 활용을 포함할 수 있다. 이름 변경은 다른 파일 전체에서 균일할 수 있다.
공백 제거(310)는 들여쓰기, 빈 줄 및 리턴 제거를 포함할 수 있다. 공백을 제거하면 코드의 논리적 형식이 흐려져 코드를 읽기가 더 어려워질 수 있다.
코멘트 제거(312)는 코드 시맨틱과 관련된 하나 이상의 코멘트를 제거하는 것을 포함할 수 있다. 난독화 시스템은 코드를 프로세싱하고 코멘트가 시맨틱 코멘트인지 결정할 수 있다. 만약 코멘트가 코드 시맨틱을 설명하는 역할을 하는 경우, 해당 코멘트는 제거될 수 있다.
이 세 가지 컴포넌트는 코드의 가독성을 떨어뜨리는 동시에 서드파티 기호와 용어를 숨길 수 있다.
도 4는 본 발명의 예시적 실시예에 따른 예시적 데이터 자산 취득 시스템(400)의 블록도를 도시한다. 데이터 자산 취득 시스템(400)은 데이터 자산 취득 시스템(400)이 뷰티 효과 렌더링을 위해 특별히 구성될 수 있다는 점을 제외하고는 도 2의 데이터 자산 취득 시스템(200)과 유사하다.
이 구현예에서, 뷰티 효과(402)는 메이크업 렌더링을 포함할 수 있다. 뷰티 효과는 다양한 데이터 세트를 포함할 수 있다. 데이터 세트는 청사진, GLSL 쉐이더(406), 텍스처 및 지오메트리 파일이 있는 렌더 엔터티(404) 데이터 세트를 포함할 수 있다. 뷰티 효과(402)는 렌더링 서브그래프, 쉐이더 유니폼 및 이미지 변환을 더 포함할 수 있다. 이러한 데이터 세트는 소프트웨어 개발 키트(408)에 입력되어 증강 현실 렌더링 경험을 구축할 수 있다. 소프트웨어 개발 키트(408)는 빌더가 새로 구축된 경험을 미리 보고 테스트할 수 있게 할 수 있다. 특히 뷰티 효과의 GLSL 쉐이더(406)는 소프트웨어 개발 키트 내부의 쉐이더 파이프라인으로 변환될 수 있다. 구축된 증강 현실 렌더링 경험은 소프트웨어 개발 키트(408) 외부의 이전에 존재하는 뷰티 효과(402) 렌더링 경험과 유사할 수 있다. 빌드가 완료되면 소프트웨어 개발 키트는 다른 디바이스에서 증강 현실 렌더링 경험을 재현하는데 사용하기 위해 렌더링 가능한 zip 파일(410)을 생성할 수 있다.
도 5는 본 발명의 예시적 실시예에 따른 예시적 증강 현실 렌더링 경험 모델(500)의 블록도를 도시한다. 증강 현실 렌더링 경험 모델(500)은 증강 현실 렌더링 경험 모델(500)이 메시 모델을 갖는 카메라 피드 및 생성된 데이터 자산을 사용하는 증강 모델을 갖는 증강 모델의 프로세싱을 더 포함한다는 점을 제외하고 도 2의 데이터 자산 획득 시스템(200)과 유사하다.
특히, 도 5는 렌더링된 이미지(510)를 생성하기 위해 카메라 피드(502)를 프로세싱하는데 사용되는 예시적인 지각 서브그래프(504) 및 예시적 렌더링 서브그래프(508)를 도시한다. 지각 서브그래프(504)는 메시 및 세그먼트 마스크를 생성하기 위해 메시 모델(506)로 카메라 피드(502)를 프로세싱할 수 있다. 메시 및 세그먼트 마스크는 렌더링 계산기(512)에 의해 프로세싱될 수 있다. 렌더링 계산기(512)는 렌더링 서브그래프(508)에 포함될 수 있고, 쉐이더에 의해 영향을 받을 수 있다. 메시, 세그먼트 마스크 및 카메라 피드(502)는 렌더링된 이미지를 생성하기 위해 렌더링 계산기(512)에 의해 프로세싱될 수 있다. 렌더링된 이미지는 증강 현실 렌더링을 포함할 수 있다. 렌더링은 소프트웨어 개발 키트를 사용하여 서드파티에 의해 생성된 렌더링일 수 있다. 더욱이, 일부 구현예에서, 렌더링은 메시 모델이 얼굴 추적기일 수 있고, 쉐이더는 립스틱 쉐이더, 텍스처 쉐이더, 유니폼 쉐이더 및/또는 필터링 쉐이더를 포함할 수 있는 메이크업 렌더링일 수 있다.
예시적 방법들
도 6은 본 발명의 예시적 실시예에 따라 수행하기 위한 예시적 방법의 흐름도를 도시한다. 도 6은 도시 및 설명을 위해 특정한 순서로 수행된 단계들을 도시하고 있지만, 본 발명의 방법은 특별히 설명된 순서 또는 구성에 한정되지 않는다. 방법(600)의 다양한 단계들은 본 발명의 범위를 벗어나지 않고 다양한 방식으로 생략, 재배열, 결합 및/또는 구성될 수 있다.
602에서 컴퓨팅 시스템은 소프트웨어 개발 키트를 전송할 수 있다. 일부 구현예에서, 소프트웨어 개발 키트는 하나 이상의 렌더링 효과 쉐이더를 구축하기 위한 템플릿을 포함할 수 있다. 소프트웨어 개발 키트는 소스 효과를 렌더링 가능한 파일로 컴파일하기 위한 스크립트 및 관련 바이너리를 포함할 수 있다. 소프트웨어 개발 키트는 미세 조정 및 테스트를 위해 빌드 동안에 렌더링 빌드를 미리 보기 위해 구성하는 서드파티를 위한 미리 보기 도구를 더 포함할 수 있다. 일부 구현예에서 소프트웨어 개발 키트는 소프트웨어 개발 키트로 효과를 구축하고 미세 조정하는 방법에 대해 서드파티를 지원하기 위한 문서 및 샘플 효과를 포함할 수 있다.
604에서 컴퓨팅 시스템은 데이터 자산을 수신할 수 있다. 일부 구현예에서, 데이터 자산은 소프트웨어 개발 키트를 사용하여 구축된 하나 이상의 렌더링 효과 쉐이더를 포함할 수 있다. 데이터 자산은 렌더링 가능한 파일(예: .ZIP 파일)의 형태로 수신될 수 있다. 데이터 자산은 서드파티가 판매하거나 제공하는 제품 또는 항목을 렌더링하기 위한 쉐이더 데이터를 포함할 수 있다. 제품은 화장품(예: 립스틱, 아이쉐도우 등) 가구 또는 기타 가정용품(예: 전자 장비, 조리기구, 유리 제품, 장식품, 식물 등), 의류, 페인트 색상, 자동차 또는 임의의 기타 아이템일 수 있다.
606에서 컴퓨팅 시스템은 데이터 자산을 저장할 수 있다. 데이터 자산은 서버, 사용자 컴퓨팅 디바이스 또는 촉진자 컴퓨팅 디바이스에 저장될 수 있다.
608에서 컴퓨팅 시스템은 증강 현실 렌더링 경험을 제공할 수 있다. 일부 구현예에서, 증강 현실 렌더링은 데이터 자산에 적어도 부분적으로 기초할 수 있다. 증강 현실 렌더링은 서드파티가 판매하는 제품의 제품 렌더링을 포함할 수 있다.
도 7은 본 발명의 예시적 실시예에 따라 수행하기 위한 예시적 방법의 흐름도를 도시한다. 도 7은 도시 및 설명을 위해 특정한 순서로 수행된 단계들을 도시하고 있지만, 본 발명의 방법은 특별히 설명된 순서 또는 구성에 한정되지 않는다. 방법(700)의 다양한 단계들은 본 발명의 범위를 벗어나지 않고 다양한 방식으로 생략, 재배열, 결합 및/또는 구성될 수 있다.
702에서 컴퓨팅 시스템은 소프트웨어 개발 키트를 수신할 수 있다. 소프트웨어 개발 키트는 증강 현실 경험을 생성하기 위한 템플릿을 포함할 수 있다. 소프트웨어 개발 키트는 사용자에게 제공할 렌더링 경험을 컴파일하기 위해 촉진 컴퓨팅 시스템 또는 중간 시스템에 의해 전송될 수 있다.
704에서 컴퓨팅 시스템은 소프트웨어 개발 키트를 수정하기 위한 입력을 수신할 수 있다. 소프트웨어 개발 키트를 수정하는 것은 템플릿을 수정하고 제품-특정 증강 현실 경험을 생성할 수 있다. 예를 들어, 메이크업 렌더링 효과를 생성하도록 소프트웨어 개발 키트가 구축 및 구성될 수 있다. 메이크업 렌더링 효과는 사용자가 개인 컴퓨팅 디바이스를 사용하여 제공되는 다양한 립스틱 색상 또는 유형을 "체험"할 수 있도록 증강 현실 렌더링 경험으로 구현될 수 있다.
706에서 컴퓨팅 시스템은 데이터 자산을 생성할 수 있다. 일부 구현예에서, 데이터 자산은은 수신된 입력에 적어도 부분적으로 기초하여 생성될 수 있다. 데이터 자산은 전송을 위해 렌더링 가능한 압축 파일로 변환될 수 있다.
708에서, 컴퓨팅 시스템은 데이터 자산을 제2 컴퓨팅 디바이스에 전송할 수 있다. 제2 컴퓨팅 디바이스는 소프트웨어 개발 키트의 전송자일 수 있다. 일부 구현예에서, 제2 컴퓨팅 디바이스는 사용자에게 증강 현실 렌더링 경험을 제공하기 위해 사용자와 인터렉션하는 중간 컴퓨팅 디바이스 또는 촉진 컴퓨팅 디바이스일 수 있다.
도 8은 본 발명의 예시적 실시예에 따라 수행하기 위한 예시적 방법의 흐름도를 도시한다. 도 8은 도시 및 설명을 위해 특정한 순서로 수행된 단계들을 도시하고 있지만, 본 발명의 방법은 특별히 설명된 순서 또는 구성에 한정되지 않는다. 방법(800)의 다양한 단계들은 본 발명의 범위를 벗어나지 않고 다양한 방식으로 생략, 재배열, 결합 및/또는 구성될 수 있다.
802에서 컴퓨팅 시스템은 소프트웨어 개발 키트를 전송할 수 있다. 일부 구현예에서, 소프트웨어 개발 키트는 하나 이상의 렌더링 효과 쉐이더를 구축하기 위한 템플릿을 포함할 수 있다. 기본 애플리케이션은 새로운 렌더링을 구축하거나 이전에 구축된 렌더링 효과를 변환하기 위한 예제 효과 및 안내가 있는 증강 현실 렌더링 애플리케이션일 수 있다.
804에서 컴퓨팅 시스템은 데이터 자산을 수신할 수 있다. 일부 구현예에서, 데이터 자산은 소프트웨어 개발 키트를 사용하여 구축된 하나 이상의 렌더링 효과 쉐이더를 포함할 수 있다. 데이터 자산은 렌더링 가능한 파일로서 수신될 수 있다.
806에서 컴퓨팅 시스템은 데이터 자산을 난독화할 수 있다. 데이터 자산 난독화는 코드에서 공백 제거, 코드 시맨틱에 관한 코멘트 제거, 기호 및 용어 이름 변경을 포함할 수 있다. 난독화는 코드 가독성을 감소시키고 용어나 코멘트에 포함된 가능한 독점 정보를 제거할 수 있다. 난독화는 서드파티 빌더를 보호하는데 도움이 될 수 있다.
808에서 컴퓨팅 시스템은 데이터 자산을 저장할 수 있다. 데이터 자산은 로컬로 또는 서버를 통해 저장될 수 있다. 데이터 자산은 웹 애플리케이션 또는 모바일 애플리케이션과 함께 사용하기 위해 쉽게 액세스할 수 있도록 저장될 수 있다.
810에서 컴퓨팅 시스템은 증강 현실 렌더링 경험을 제공할 수 있다. 일부 구현예에서, 증강 현실 렌더링은 데이터 자산에 적어도 부분적으로 기초할 수 있다. 증강 현실 렌더링 경험은 서드파티에 의해 구축된 렌더링 효과를 포함하도록 사용자 이미지 및 비디오를 증강시키는 경험을 제공하는 것을 포함할 수 있다. 렌더링 효과는 비디오 게임 또는 "라이브 체험" 경험의 일부일 수 있다. 또한 웹 애플리케이션, 모바일 애플리케이션 또는 매장 내 키오스크를 통해 증강 현실 렌더링 경험을 제공할 수 있다.
추가 개시
본 명세서에 논의된 기술은 서버, 데이터베이스, 소프트웨어 애플리케이션들 및 다른 컴퓨터 기반 시스템들 뿐만 아니라 취해진 액션들 및 상기 시스템으로 전송되거나 그로부터 전송된 정보를 참조할 수 있다. 컴퓨터 기반 시스템들의 내재적 유연성은 광범위한 가능한 구성들, 조합들 및 작업의 분할 및 컴포넌트들 간의 및 그로부터의 기능성을 허용함을 인식할 것이다. 예를 들어, 본 명세서에서 논의된 프로세스들은 단일의 디바이스 또는 컴포넌트 또는 조합으로 작동하는 다수의 디바이스들 또는 컴포넌트들을 사용하여 구현될 수 있다. 데이터베이스 및 애플리케이션들은 단일 시스템 또는 다수의 시스템들에 걸쳐 분산된 시스템에서 구현될 수 있다. 분산 컴포넌트들은 순차적으로 또는 병렬로 동작할 수 있다.
본 발명의 주제가 그 다양한 특정 예시적 실시예와 관련하여 상세히 설명되었지만, 각 예시는 본 발명의 설명을 위한 것이지 본 발명의 한정을 위한 것은 아니다. 통상의 기술자는 전술한 내용을 이해할 때 상기 실시예에 대한 변형, 변형 및 균등물을 용이하게 생성할 수 있다. 따라서, 본 발명은 통상의 기술자에게 쉽게 명백해질 수 있는 상기 수정, 변형 및/또는 본 발명에 대한 추가의 포함을 배제하지 않는다. 예를 들어, 일 실시예의 일부로서 도시되거나 기술된 구성들은 여전히 추가적 실시예를 만들어내기 위해 다른 실시예와 함께 사용될 수 있다. 따라서, 본 발명은 상기 수정들 및 변형들을 커버하도록 의도되었다.

Claims (20)

  1. 서드파티 데이터 자산을 클라이언트에게 제공하기 위한 컴퓨터로 구현되는 방법으로서, 상기 방법은:
    컴퓨팅 디바이스에 의해, 소프트웨어 개발 키트를 전송하는 단계, 상기 소프트웨어 개발 키트는 하나 이상의 렌더링 효과 쉐이더를 구축하기 위한 템플릿을 포함하며;
    컴퓨팅 디바이스에 의해, 데이터 자산을 수신하는 단계, 상기 데이터 자산은 소프트웨어 개발 키트를 사용하여 구축된 하나 이상의 렌더링 효과 쉐이더를 포함하며;
    컴퓨팅 디바이스에 의해, 데이터 자산을 저장하는 단계; 및
    컴퓨팅 디바이스에 의해, 증강 현실 렌더링 경험을 제공하는 단계를 포함하며, 상기 증강 현실 렌더링은 상기 데이터 자산에 적어도 부분적으로 기초하는, 방법.
  2. 임의의 선행하는 청구항에 있어서,
    컴퓨팅 디바이스에 의해, 데이터 자산을 난독화하는 단계를 더 포함하며, 상기 난독화하는 단계는:
    컴퓨팅 디바이스에 의해, 데이터 자산의 코드에서 공백을 제거하는 단계;
    컴퓨팅 디바이스에 의해, 데이터 자산의 코드에서 하나 이상의 코멘트를 제거하는 단계; 및
    컴퓨팅 디바이스에 의해, 데이터 자산의 코드에 있는 하나 이상의 용어의 이름을 변경하는 단계를 포함하는, 방법.
  3. 임의의 선행하는 청구항에 있어서, 상기 데이터 자산은 앵커링 랜드마크 데이터를 포함하는, 방법.
  4. 임의의 선행하는 청구항에 있어서, 상기 데이터 자산은 쉐이더 데이터를 포함하는, 방법.
  5. 청구항 4에 있어서, 상기 쉐이더 데이터는 립스틱 색상, 립스틱 광택 또는 립스틱 불투명도 중 적어도 하나를 기술하는, 방법.
  6. 청구항 4에 있어서, 상기 쉐이더 데이터는 아이쉐도우 색상을 기술하는, 방법.
  7. 임의의 선행하는 청구항에 있어서, 상기 데이터 자산은 서드파티로부터의 데이터를 포함하는, 방법.
  8. 임의의 선행하는 청구항에 있어서, 컴퓨팅 디바이스에 의해, 상기 데이터 자산을 난독화하는 단계는 컴퓨팅 디바이스에 의해, 증강 현실 렌더링 경험을 제공하는 단계 전에 발생하며, 상기 증강 현실 렌더링은 상기 데이터 자산에 적어도 부분적으로 기초하는, 방법.
  9. 임의의 선행하는 청구항에 있어서, 상기 증강 현실 렌더링은 메이크업 증강 현실 렌더링인, 방법.
  10. 임의의 선행하는 청구항에 있어서, 상기 증강 현실 렌더링은 가구 증강 현실 렌더링인, 방법.
  11. 임의의 선행하는 청구항에 있어서, 상기 증강 현실 렌더링은 비디오 게임 증강 현실 렌더링인, 방법.
  12. 임의의 선행하는 청구항에 있어서, 상기 데이터 자산은 서드파티에 의해 판매된 제품을 기술하는 제품 데이터를 포함하는, 방법.
  13. 임의의 선행하는 청구항에 있어서, 상기 증강 현실 렌더링은:
    컴퓨팅 디바이스에 의해, 사용자 데이터를 수신하는 것;
    컴퓨팅 디바이스에 의해, 사용자 메시를 생성하기 위해 인코더 모델로 사용자 데이터를 프로세싱하는 것; 및
    컴퓨팅 디바이스에 의해, 상기 증강 현실 렌더링을 생성하기 위해 증강 모델로 상기 사용자 메시를 프로세싱하는 것에 의해 생성되며, 상기 증강 모델은 상기 데이터 자산에 적어도 부분적으로 기초하는 쉐이더를 포함하는, 방법.
  14. 임의의 선행하는 청구항에 있어서, 상기 하나 이상의 코멘트는 코드 시맨틱을 기술하는 텍스트를 포함하는, 방법.
  15. 임의의 선행하는 청구항에 있어서, 컴퓨팅 디바이스에 의해, 데이터 자산의 코드에서 하나 이상의 용어의 이름을 변경하는 단계는 파일들에 걸쳐 균일한 이름 변경을 포함하는, 방법.
  16. 컴퓨팅 시스템으로서,
    하나 이상의 프로세서;
    명령어들을 집합적으로 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 매체를 포함하며, 상기 명령어들은 상기 하나 이상의 프로세서들에 의해 실행될 때, 컴퓨팅 시스템으로 하여금 동작들을 수행하게 하며, 상기 동작들은:
    증강 현실 경험을 생성하기 위한 템플릿을 포함하는 소프트웨어 개발 키트를 수신하는 동작;
    템플릿을 수정하기 위한 하나 이상의 입력을 수신하는 동작, 상기 소프트웨어 개발 키트를 수정하는 것은 제품-특정 증강 현실 경험을 생성하며;
    상기 하나 이상의 입력에 적어도 부분적으로 기초하여 데이터 자산을 생성하는 동작; 및
    상기 데이터 자산을 제2 컴퓨팅 디바이스로 전송하는 동작을 포함하는, 컴퓨팅 시스템.
  17. 청구항 16에 있어서, 상기 증강 현실 경험을 테스트하는 동작을 더 포함하는, 컴퓨팅 시스템.
  18. 청구항 16 또는 17에 있어서, 상기 증강 현실 경험을 테스트하는 동작은:
    트레이닝 데이터를 획득하는 동작;
    증강 현실 미디어를 생성하기 위해 증강 현실 경험으로 상기 트레이닝 데이터를 프로세싱하는 동작;
    상기 증강 현실 미디어와 실측 데이터 사이의 비교에 적어도 부분적으로 기초하여 손실 함수를 평가하는 동작; 및
    상기 손실 함수에 적어도 부분적으로 기초하여 하나 이상의 파라미터를 조정하는 동작을 포함하는, 컴퓨팅 시스템.
  19. 명령어들을 집합적으로 저장하는 하나 이상의 비일시적 컴퓨터 판독가능 매체를 포함하며, 상기 명령어들은 상기 하나 이상의 프로세서들에 의해 실행될 때, 컴퓨팅 시스템으로 하여금 동작들을 수행하게 하며, 상기 동작들은:
    컴퓨팅 디바이스에 의해, 소프트웨어 개발 키트를 전송하는 동작, 상기 소프트웨어 개발 키트는 하나 이상의 렌더링 효과 쉐이더를 구축하기 위한 템플릿을 포함하며;
    컴퓨팅 디바이스에 의해, 데이터 자산을 수신하는 동작, 상기 데이터 자산은 소프트웨어 개발 키트를 사용하여 구축된 하나 이상의 렌더링 효과 쉐이더를 포함하며;
    컴퓨팅 디바이스에 의해, 데이터 자산을 저장하는 동작; 및
    컴퓨팅 디바이스에 의해, 증강 현실 렌더링 경험을 제공하는 동작을 포함하며, 상기 증강 현실 렌더링은 상기 데이터 자산에 적어도 부분적으로 기초하는, 하나 이상의 비일시적 컴퓨터 판독가능 매체.
  20. 청구항 19에 있어서, 상기 소프트웨어 개발 키트는 지각(perception) 모델을 포함하는, 하나 이상의 비일시적 컴퓨터 판독 가능 매체.
KR1020237026574A 2021-01-07 2022-01-04 서드파티 자산으로 증강 현실 경험을 촉진하기 위한컴퓨팅 플랫폼 KR20230122172A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US17/144,002 US11521358B2 (en) 2021-01-07 2021-01-07 Computing platform for facilitating augmented reality experiences with third party assets
US17/144,002 2021-01-07
PCT/US2022/011064 WO2022150273A1 (en) 2021-01-07 2022-01-04 Computing platform for facilitating augmented reality experiences with third party assets

Publications (1)

Publication Number Publication Date
KR20230122172A true KR20230122172A (ko) 2023-08-22

Family

ID=80445765

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020237026574A KR20230122172A (ko) 2021-01-07 2022-01-04 서드파티 자산으로 증강 현실 경험을 촉진하기 위한컴퓨팅 플랫폼

Country Status (6)

Country Link
US (2) US11521358B2 (ko)
EP (1) EP4256447A1 (ko)
JP (1) JP7457211B2 (ko)
KR (1) KR20230122172A (ko)
CN (1) CN116868187A (ko)
WO (1) WO2022150273A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230343037A1 (en) * 2022-04-25 2023-10-26 Snap Inc. Persisting augmented reality experiences
US20240019979A1 (en) * 2022-07-15 2024-01-18 Lenovo (Singapore) Pte. Ltd. Conversion of 3d virtual actions into 2d actions

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150040074A1 (en) * 2011-08-18 2015-02-05 Layar B.V. Methods and systems for enabling creation of augmented reality content
US9262865B2 (en) 2013-03-15 2016-02-16 Daqri, Llc Content creation tool
GB2518589B (en) * 2013-07-30 2019-12-11 Holition Ltd Image processing
US20150082298A1 (en) * 2013-09-19 2015-03-19 Qiu Shi WANG Packaging and deploying hybrid applications
US10157593B2 (en) * 2014-02-24 2018-12-18 Microsoft Technology Licensing, Llc Cross-platform rendering engine
US9373223B1 (en) 2014-12-17 2016-06-21 Jackpot Rising Inc. Method and system for gaming revenue
US10169917B2 (en) * 2015-08-20 2019-01-01 Microsoft Technology Licensing, Llc Augmented reality
US10049500B2 (en) 2015-09-22 2018-08-14 3D Product Imaging Inc. Augmented reality e-commerce for home improvement
US20170206708A1 (en) * 2016-01-19 2017-07-20 Immersv, Inc. Generating a virtual reality environment for displaying content
CN107632824B (zh) 2016-07-18 2019-01-01 腾讯科技(深圳)有限公司 一种增强现实模块的生成方法、生成装置以及生成系统
CN110140144B (zh) * 2017-10-31 2023-08-08 谷歌有限责任公司 用于验证渲染的数据的图像处理系统
WO2020097573A1 (en) * 2018-11-08 2020-05-14 Appdome Ltd. Artificial intelligence mobile integration
US11449713B2 (en) * 2018-11-16 2022-09-20 Uatc, Llc Attention based feature compression and localization for autonomous devices
US10665011B1 (en) * 2019-05-31 2020-05-26 Adobe Inc. Dynamically estimating lighting parameters for positions within augmented-reality scenes based on global and local features

Also Published As

Publication number Publication date
CN116868187A (zh) 2023-10-10
US11521358B2 (en) 2022-12-06
JP2024504063A (ja) 2024-01-30
WO2022150273A1 (en) 2022-07-14
JP7457211B2 (ja) 2024-03-27
EP4256447A1 (en) 2023-10-11
US20230092068A1 (en) 2023-03-23
US20220215633A1 (en) 2022-07-07

Similar Documents

Publication Publication Date Title
US11670061B2 (en) Generating augmented reality prerenderings using template images
Gecer et al. Synthesizing coupled 3d face modalities by trunk-branch generative adversarial networks
Shiratuddin et al. Utilizing a 3D game engine to develop a virtual design review system
US20230092068A1 (en) Computing Platform for Facilitating Augmented Reality Experiences with Third Party Assets
Flotyński et al. Ontology‐Based Representation and Modelling of Synthetic 3D Content: A State‐of‐the‐Art Review
Stemasov et al. The road to ubiquitous personal fabrication: Modeling-free instead of increasingly simple
Zeng et al. 3D human body reshaping with anthropometric modeling
Shen et al. Clipgen: A deep generative model for clipart vectorization and synthesis
Flotyński et al. Customization of 3D content with semantic meta-scenes
Jaspe-Villanueva et al. Web-based exploration of annotated multi-layered relightable image models
Biella et al. Crowdsourcing and knowledge co-creation in virtual museums
CN113632147A (zh) 使用机器学习的产品设计、配置和决策系统
Vilchis et al. A survey on the pipeline evolution of facial capture and tracking for digital humans
Walczak et al. Inference-based creation of synthetic 3D content with ontologies
CN107492143A (zh) 控制图像合成中的补块使用
CN110276818A (zh) 用于自动合成内容感知填充的交互式系统
Fu et al. Interactive design and preview of colored snapshots of indoor scenes
JP2024061750A (ja) サードパーティ資産を用いて拡張現実体験を促進するためのコンピューティングプラットフォーム
Yang et al. Architectural sketch to 3D model: An experiment on simple-form houses
US20230281952A1 (en) Generating object images with different lighting conditions
US11869136B1 (en) User-context aware rendering dataset selection
US11972534B2 (en) Modifying materials of three-dimensional digital scenes utilizing a visual neural network
Camba et al. Computer-Aided Design, Computer-Aided Engineering, and Visualization
Robertson Visualizing spatial data: The problem of paradigms
Gillespie User-appropriate viewer for high resolution interactive engagement with 3D digital cultural artefacts.

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated examination
E902 Notification of reason for refusal