Nothing Special   »   [go: up one dir, main page]

KR102489927B1 - Method and Apparatus for entity tracking based on feature data independent of augmented reality engine - Google Patents

Method and Apparatus for entity tracking based on feature data independent of augmented reality engine Download PDF

Info

Publication number
KR102489927B1
KR102489927B1 KR1020210111237A KR20210111237A KR102489927B1 KR 102489927 B1 KR102489927 B1 KR 102489927B1 KR 1020210111237 A KR1020210111237 A KR 1020210111237A KR 20210111237 A KR20210111237 A KR 20210111237A KR 102489927 B1 KR102489927 B1 KR 102489927B1
Authority
KR
South Korea
Prior art keywords
entity
feature data
uri
engine
augmented reality
Prior art date
Application number
KR1020210111237A
Other languages
Korean (ko)
Other versions
KR20220106661A (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 to CN202111610866.0A priority Critical patent/CN114782655A/en
Priority to US17/565,455 priority patent/US11880948B2/en
Publication of KR20220106661A publication Critical patent/KR20220106661A/en
Application granted granted Critical
Publication of KR102489927B1 publication Critical patent/KR102489927B1/en

Links

Images

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
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/246Analysis of motion using feature-based methods, e.g. the tracking of corners or segments

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Multimedia (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Processing Or Creating Images (AREA)

Abstract

증강현실 엔진에 독립적인 피처 데이터 기반의 엔터티 추적 방법 및 장치에 관한 것으로, 엔터티의 네임과 AR 엔진의 네임의 조합으로부터 엔터티의 피처 데이터에 대한 URI를 생성하고, 이 URI를 이용하여 엔터티의 특징을 AR 엔진에서 처리 가능한 포맷으로 나타낸 엔터티의 피처 데이터를 획득하고, 이와 같이 획득된 피처 데이터를 기반으로 AR 엔진을 실행함으로써 증강현실 공간에서의 엔터티의 추적을 수행할 수 있음에 따라 증강현실 엔진에 독립적인 피처 데이터 기반의 엔터티 추적이 가능하게 된다.It relates to a method and apparatus for tracking an entity based on feature data independent of an augmented reality engine, which generates a URI for feature data of an entity from a combination of a name of the entity and a name of an AR engine, and uses the URI to determine the characteristics of the entity. It is independent of the augmented reality engine as it is possible to track the entity in the augmented reality space by acquiring the feature data of the entity represented in a format that can be processed by the AR engine and executing the AR engine based on the acquired feature data. Entity tracking based on in-feature data becomes possible.

Description

증강현실 엔진에 독립적인 피처 데이터 기반의 엔터티 추적 방법 및 장치 {Method and Apparatus for entity tracking based on feature data independent of augmented reality engine}Method and Apparatus for entity tracking based on feature data independent of augmented reality engine

증강현실 공간에서 엔터티를 추적하는 방법 및 장치에 관한 것이다. It relates to a method and apparatus for tracking entities in an augmented reality space.

증강현실(AR : Augmented Reality)은 현실 공간의 이미지에 가상 이미지를 오버랩하여 하나의 이미지로 보여주는 기술로, 현실 공간에 대응되는 증강현실 공간에는 가상 이미지가 오버랩되어 표시되어야 할 적어도 하나의 엔터티가 존재한다. 현실 공간에서의 엔터티의 움직임이 증강현실 공간에 반영되어야 하기 때문에 엔터티 추적 기술은 증강현실 어플리케이션이 제공하는 대표적인 기술이다. 이러한 엔터티 추적은 증강현실 어플리케이션이 호출하여 사용하는 증강현실 엔진에 의해 수행된다. 이하에서는 증강현실 엔진을 간략하게 "AR 엔진"으로 호칭하기로 한다.Augmented Reality (AR) is a technology that overlaps a virtual image on an image of a real space and displays it as a single image. In the augmented reality space corresponding to the real space, there is at least one entity to be displayed by overlapping the virtual image. do. Entity tracking technology is a representative technology provided by augmented reality applications because the movement of entities in the real space must be reflected in the augmented reality space. This entity tracking is performed by an augmented reality engine called and used by an augmented reality application. Hereinafter, the augmented reality engine will be simply referred to as an "AR engine".

엔터티 추적 기술은 2차원 이미지를 추적하는 기술과 3차원 객체를 추적하는 기술로 분류될 수 있다. 엔터티가 2차원 이미지에 해당하는 경우, AR 엔진은 2차원 이미지로부터 그 2차원 이미지의 특징을 나타내는 피처 데이터를 생성하고 피처 데이터를 이용하여 증강현실 공간에서 엔터티를 추적하게 된다. 엔터티가 3차원 객체에 해당하는 경우, AR 엔진은 3차원 객체를 나타내는 복수의 이미지로부터 그 3차원 객체의 특징을 나타내는 피처 데이터를 생성하고 피처 데이터를 이용하여 증강현실 공간에서 엔터티를 추적하게 된다. 이와 같이, 2차원 이미지 추적 또는 3차원 객체 추적인지에 따라 피처 데이터를 생성하는 알고리즘이 달라지게 된다.Entity tracking technology can be classified into a 2D image tracking technology and a 3D object tracking technology. When the entity corresponds to a 2D image, the AR engine generates feature data representing characteristics of the 2D image from the 2D image and tracks the entity in the augmented reality space using the feature data. When the entity corresponds to a 3D object, the AR engine generates feature data representing characteristics of the 3D object from a plurality of images representing the 3D object and tracks the entity in the augmented reality space using the feature data. In this way, the algorithm for generating feature data is different depending on whether it is 2D image tracking or 3D object tracking.

증강현실 어플리케이션은 네이티브(native) 어플리케이션과 웹(web) 어플리케이션으로 분류된다. 네이티브 어플리케이션은 구글 컴퍼니의 안드로이드, iOS 등과 같은 플랫폼에서 제공하는 SDK(Software Development Kit)를 기반으로 개발된 어플리케이션으로 그 SDK가 지원하는 플랫폼에서만 실행 가능하다. 웹 어플리케이션은 HTML(Hypertext Markup Language), CSS(Client Side Script), JS(Java Script) 등과 같은 웹 언어로 작성된 어플리케이션으로 안드로이드, iOS 둘 다에서 실행 가능하다.Augmented reality applications are classified into native applications and web applications. A native application is an application developed based on a software development kit (SDK) provided by a platform such as Google Company's Android or iOS, and can be executed only on a platform supported by the SDK. A web application is an application written in a web language such as HTML (Hypertext Markup Language), CSS (Client Side Script), JS (Java Script), etc., and can be executed on both Android and iOS.

이러한 여러 종류의 증강현실 어플리케이션은 서로 다른 AR 엔진을 사용하고 있고, AR 엔진마다 그것이 사용하는 피처 데이터의 포맷이 다르기 때문에 각 증강현실 어플리케이션은 그것이 사용하는 AR 엔진에 적합한 포맷의 피처 데이터를 생성하여야 한다. 이에 따라, 종래의 증강현실 어플리케이션은 증강현실 엔진에 종속적인 피처 데이터 생성 알고리즘을 포함하고 있다.Since these various types of augmented reality applications use different AR engines, and the format of feature data used by each AR engine is different, each augmented reality application must create feature data in a format suitable for the AR engine it uses. . Accordingly, a conventional augmented reality application includes a feature data generation algorithm dependent on an augmented reality engine.

AR 엔진 별로 피처 데이터를 생성하는 알고리즘, 피처 매칭 알고리즘이 다르기 때문에 어떤 AR 엔진이 다른 AR 엔진에 비해 2차원 이미지에 대한 뛰어난 추적 성능을 보이거나 엔터티의 특정 형상에 대해 뛰어난 추적 성능을 보이는 반면, 3차원 객체 등 엔터티의 다른 타입 및 형상에 대해서는 낮은 추적 성능을 보일 수 있다. 이에 따라, 여러 타입의 AR 엔진을 사용하는 증강현실 어플리케이션에 대한 개발이 시도되고 있으나 증강현실 어플리케이션은 그것이 사용하는 모든 AR 엔진에 대한 복수의 피처 데이터 생성 알고리즘을 포함하고 있어야 함에 따라 증강현실 어플리케이션의 개발이 점점 더 어려워지고, 증강현실 어플리케이션의 사이즈가 증가된다는 문제가 있었다. Because each AR engine has a different feature data generation algorithm and feature matching algorithm, some AR engines show superior tracking performance for 2D images or superior tracking performance for specific shapes of entities compared to other AR engines. It may show low tracking performance for other types and shapes of entities such as dimensional objects. Accordingly, development of augmented reality applications using various types of AR engines is being attempted, but augmented reality applications must include a plurality of feature data generation algorithms for all AR engines that are used, so development of augmented reality applications This becomes increasingly difficult, and there is a problem that the size of the augmented reality application increases.

증강현실 엔진에 종속적인 피처 데이터 생성 알고리즘을 사용하지 않고, 증강현실 엔진에 독립적으로 피처 데이터를 획득하여 AR 엔진을 실행함으로써 증강현실 공간에서의 엔터티의 추적을 수행할 수 있는 증강현실 엔진에 독립적인 피처 데이터 기반의 엔터티 추적 방법 및 장치를 제공하는 데에 있다. 또한, 상기된 엔터티 추적 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 데에 있다. 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 이하의 설명으로부터 또 다른 기술적 과제가 도출될 수도 있다. It is independent of the augmented reality engine that can perform entity tracking in the augmented reality space by acquiring feature data independently of the augmented reality engine and executing the AR engine without using a feature data generation algorithm dependent on the augmented reality engine. An object of the present invention is to provide a feature data-based entity tracking method and apparatus. Another object of the present invention is to provide a computer-readable recording medium on which a program for executing the above-described entity tracking method is recorded on a computer. It is not limited to the technical problems as described above, and another technical problem may be derived from the following description.

본 발명의 일 측면에 따른 증강현실 엔진에 독립적인 피처 데이터 기반의 엔터티 추적 방법은 제 1 엔터티의 네임과 제 1 AR 엔진의 네임의 조합으로부터 상기 제 1 엔터티의 피처 데이터에 대한 URI(Uniform Resource Identifier)를 생성하는 단계; 상기 제 1 엔터티의 피처 데이터에 대한 URI를 이용하여 상기 제 1 엔터티의 특징을 상기 제 1 AR 엔진에서 처리 가능한 포맷으로 나타낸 제 1 엔터티의 피처 데이터를 획득하는 단계; 및 상기 획득된 제 1 엔터티의 피처 데이터를 기반으로 상기 제 1 AR 엔진을 실행함으로써 증강현실 공간에서의 상기 제 1 엔터티의 추적을 수행하는 단계를 포함한다.According to an aspect of the present invention, a method for tracking entities based on feature data independent of an augmented reality engine includes a uniform resource identifier (URI) for feature data of a first entity from a combination of a name of a first entity and a name of a first AR engine. ) generating; acquiring feature data of the first entity representing the feature of the first entity in a format processable by the first AR engine by using a URI of the feature data of the first entity; and performing tracking of the first entity in an augmented reality space by executing the first AR engine based on the acquired feature data of the first entity.

상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성하는 단계는 리소스 서버의 호스트 네임, 상기 제 1 엔터티의 네임, 및 상기 제 1 AR 엔진의 네임의 조합으로부터 상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성하고, 상기 제 1 엔터티의 피처 데이터를 획득하는 단계는 상기 제 1 엔터티의 피처 데이터에 대한 URI를 이용하여 상기 제 1 엔터티의 피처 데이터에 대한 URI의 호스트에 해당하는 리소스 서버에 상기 제 1 엔터티의 피처 데이터를 요청함으로써 상기 리소스 서버로부터 상기 제 1 엔터티의 피처 데이터를 획득할 수 있다.The generating of the URI for feature data of the first entity may include generating a URI for feature data of the first entity from a combination of a host name of a resource server, a name of the first entity, and a name of the first AR engine. Generating and obtaining feature data of the first entity may include sending the first entity to a resource server corresponding to a host of the URI for feature data of the first entity using the URI for feature data of the first entity. Feature data of the first entity may be obtained from the resource server by requesting feature data of the first entity.

상기 엔터티 추적 방법은 상기 리소스 서버의 호스트 네임과 상기 제 1 엔터티의 네임의 조합으로부터 상기 제 1 엔터티의 URI를 생성하는 단계; 및 상기 복수 타입의 AR 엔진 중에서 상기 제 1 엔터티의 추적에 사용될 제 1 AR 엔진을 검출하는 단계를 더 포함하고, 상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성하는 단계는 상기 생성된 제 1 엔터티의 URI에 상기 검출된 제 1 AR 엔진의 네임을 부가함으로써 상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성할 수 있다.The entity tracking method may include generating a URI of the first entity from a combination of a host name of the resource server and a name of the first entity; and detecting a first AR engine to be used for tracking the first entity from among the plurality of types of AR engines, wherein generating a URI for feature data of the first entity A URI for feature data of the first entity may be generated by adding the name of the detected first AR engine to the URI of the first entity.

상기 엔터티 추적 방법은 상기 제 1 엔터티에 대해 상기 제 1 AR 엔진이 사용하고자 하는 엔터티 추적 방법을 검출하는 단계를 더 포함하고, 상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성하는 단계는 상기 생성된 제 1 엔터티의 URI에 상기 검출된 제 1 AR 엔진의 네임과 상기 검출된 엔터티 추적 방법의 네임을 부가함으로써 상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성할 수 있다.The entity tracking method further includes detecting an entity tracking method to be used by the first AR engine for the first entity, and generating a URI for feature data of the first entity. A URI for feature data of the first entity may be generated by adding the name of the detected first AR engine and the name of the detected entity tracking method to the URI of the first entity.

상기 엔터티 추적 방법을 검출하는 단계는 상기 제 1 엔터티가 2차원 이미지 또는 3차원 객체 중 어느 것에 해당되는가에 따라 상기 제 1 엔터티에 대해 상기 제 1 AR 엔진이 사용하고자 하는 엔터티 추적 방법을 검출할 수 있다. The detecting of the entity tracking method may include detecting an entity tracking method to be used by the first AR engine for the first entity according to whether the first entity corresponds to a 2D image or a 3D object. there is.

상기 엔터티 추적 방법은 증강현실 컨텐츠로부터 상기 증강현실 컨텐츠가 나타내는 증강현실 공간에서의 적어도 하나의 엔터티를 검출하는 단계를 더 포함하고, 상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성하는 단계는 상기 검출된 적어도 하나의 엔터티 중 상기 제 1 엔터티의 네임, 및 상기 제 1 AR 엔진의 네임의 조합으로부터 상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성할 수 있다.The entity tracking method further includes detecting at least one entity in an augmented reality space represented by the augmented reality content from augmented reality content, and generating a URI for feature data of the first entity comprises the detection A URI for feature data of the first entity may be generated from a combination of a name of the first entity among at least one entity and a name of the first AR engine.

상기 엔터티 추적 방법은 제 2 엔터티의 네임과 제 2 AR 엔진의 네임의 조합으로부터 상기 제 2 엔터티의 피처 데이터에 대한 URI를 생성하는 단계; 상기 제 2 엔터티의 피처 데이터에 대한 URI를 이용하여 상기 제 2 엔터티의 특징을 상기 제 2 AR 엔진에서 처리 가능한 포맷으로 나타낸 제 2 엔터티의 피처 데이터를 획득하는 단계; 및 상기 획득된 제 2 엔터티의 피처 데이터를 기반으로 상기 제 2 AR 엔진을 실행함으로써 증강현실 공간에서 상기 제 2 엔터티의 추적을 수행하는 단계를 포함할 수 있다.The entity tracking method may further include generating a URI for feature data of the second entity from a combination of a name of the second entity and a name of a second AR engine; acquiring feature data of a second entity representing features of the second entity in a format processable by the second AR engine by using a URI of the feature data of the second entity; and performing tracking of the second entity in an augmented reality space by executing the second AR engine based on the acquired feature data of the second entity.

상기 엔터티 추적 방법은 상기 제 1 AR 엔진이 상기 제 1 엔터티의 추적을 위해 상기 제 1 엔터티의 피처 데이터 또는 원본 이미지 중 어느 것을 필요로 하는가를 확인하는 단계를 더 포함하고, 상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성하는 단계는 상기 제 1 AR 엔진이 상기 제 1 엔터티의 피처 데이터를 필요로 하는 것으로 확인되면, 상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성할 수 있다.The entity tracking method may further include determining whether the first AR engine requires feature data or an original image of the first entity to track the first entity, and In the generating of the URI for data, if it is determined that the first AR engine requires the feature data of the first entity, a URI for the feature data of the first entity may be generated.

상기 엔터티 추적 방법은 상기 제 1 AR 엔진이 상기 제 1 엔터티의 원본 이미지를 필요로 하는 것으로 확인되면, 리소스 서버의 호스트 네임과 상기 제 1 엔터티의 네임의 조합으로부터 상기 제 1 엔터티의 원본 이미지에 대한 URI를 생성하는 단계; 상기 제 1 엔터티의 원본 이미지에 대한 URI를 이용하여 상기 제 1 엔터티의 원본 이미지를 획득하는 단계; 및 상기 획득된 제 1 엔터티의 원본 이미지를 기반으로 상기 제 1 AR 엔진을 실행함으로써 상기 증강현실 공간에서 상기 제 1 엔터티의 추적을 수행하는 단계를 더 포함할 수 있다.In the entity tracking method, when it is determined that the first AR engine requires the original image of the first entity, information about the original image of the first entity is obtained from a combination of the host name of the resource server and the name of the first entity. generating a URI; acquiring an original image of the first entity by using a URI of the original image of the first entity; and performing tracking of the first entity in the augmented reality space by executing the first AR engine based on the obtained original image of the first entity.

본 발명의 다른 측면에 따라 상기 엔터티 추적 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체가 제공된다. According to another aspect of the present invention, a computer-readable recording medium recording a program for executing the entity tracking method on a computer is provided.

본 발명의 또 다른 측면에 따른 증강현실 엔진에 독립적인 피처 데이터 기반의 엔터티 추적 장치는 제 1 엔터티의 네임과 제 1 AR 엔진의 네임의 조합으로부터 제 1 엔터티의 피처 데이터에 대한 URI를 생성하는 URI 처리부; 및 상기 제 1 엔터티의 피처 데이터에 대한 URI를 이용하여 상기 제 1 엔터티의 특징을 상기 제 1 AR 엔진에서 처리 가능한 포맷으로 나타낸 제 1 엔터티의 피처 데이터를 획득하고, 상기 획득된 제 1 엔터티의 피처 데이터를 기반으로 상기 제 1 AR 엔진을 실행함으로써 증강현실 공간에서 상기 제 1 엔터티의 추적을 수행하는 AR 처리부를 포함한다.According to another aspect of the present invention, an entity tracking device based on feature data independent of an augmented reality engine generates a URI for feature data of a first entity from a combination of a name of a first entity and a name of a first AR engine. processing unit; and obtaining feature data of the first entity in which a feature of the first entity is expressed in a format processable by the first AR engine using a URI of the feature data of the first entity, and the acquired feature of the first entity and an AR processing unit performing tracking of the first entity in an augmented reality space by executing the first AR engine based on data.

엔터티의 네임과 AR 엔진의 네임의 조합으로부터 엔터티의 피처 데이터에 대한 URI를 생성하고, 이 URI를 이용하여 엔터티의 특징을 AR 엔진에서 처리 가능한 포맷으로 나타낸 엔터티의 피처 데이터를 획득하고, 이와 같이 획득된 피처 데이터를 기반으로 AR 엔진을 실행함으로써 증강현실 공간에서의 엔터티의 추적을 수행할 수 있음에 따라 증강현실 엔진에 독립적인 피처 데이터 기반의 엔터티 추적이 가능하게 된다.A URI for the feature data of the entity is generated from the combination of the name of the entity and the name of the AR engine, and the feature data of the entity in which the feature of the entity is expressed in a format that can be processed by the AR engine is obtained using the URI, and obtained in this manner. As it is possible to track an entity in an augmented reality space by executing an AR engine based on the acquired feature data, it is possible to track an entity based on feature data independent of the augmented reality engine.

이와 같이, 증강현실 엔진에 독립적으로 URI를 이용하여 엔터티의 피처 데이터를 획득하고, 그 피처 데이터를 기반으로 AR 엔진을 실행함으로써 증강현실 공간에서의 엔터티의 추적을 수행할 수 있음에 따라 증강현실 어플리케이션은 증강현실 엔진에 종속적인 피처 데이터 생성 알고리즘을 포함할 필요가 없게 된다. 즉, 증강현실 어플리케이션은 증강현실 엔진에 독립적인 피처 데이터 획득 알고리즘을 포함하고 있기 때문에 증강현실 엔진에 종속적인 피처 데이터 생성 알고리즘을 포함할 필요가 없게 된다.In this way, the augmented reality application can perform tracking of the entity in the augmented reality space by obtaining the feature data of the entity using the URI independently of the augmented reality engine and executing the AR engine based on the feature data. eliminates the need to include feature data generation algorithms that are dependent on the augmented reality engine. That is, since the augmented reality application includes a feature data acquisition algorithm independent of the augmented reality engine, there is no need to include a feature data generation algorithm dependent on the augmented reality engine.

증강현실 어플리케이션이 복수의 AR 엔진을 사용할 경우에 AR 엔진 별로 엔터티의 원본 이미지로부터 피처 데이터를 생성하는 여러 알고리즘을 포함할 필요가 없게 되어 효율적인 증강현실 어플리케이션의 개발이 가능하게 된다. 본 발명에 따른 증강현실 공간에서의 엔터티 추적은 엔터티의 피처 데이터에 대한 URI를 이용하여 엔터티의 피처 데이터를 획득하고, 그 피처 데이터를 기반으로 AR 엔진을 호출하여 실행하는 것만으로 이루어질 수 있기 때문에 AR 엔진에 종속적인 피처 데이터 생성 알고리즘을 포함하지 않는 범용적인 증강현실 어플리케이션의 제공이 가능하게 된다.When an augmented reality application uses a plurality of AR engines, it is not necessary to include several algorithms for generating feature data from an original image of an entity for each AR engine, enabling the development of an efficient augmented reality application. Entity tracking in the augmented reality space according to the present invention can be achieved only by obtaining the feature data of the entity using the URI for the feature data of the entity, and calling and executing the AR engine based on the feature data. It is possible to provide a general-purpose augmented reality application that does not include an engine-dependent feature data generation algorithm.

증강현실 어플리케이션이 AR 엔진 별로 피처 데이터 생성 알고리즘을 포함할 필요가 없게 됨에 따라 증강현실 어플리케이션의 사이즈가 감소되어 증강현실 어플리케이션 개발에 요구되는 작업량이 감소될 수 있다. 어떤 증강현실 어플리케이션을 개발할 경우, 기존 증강현실 어플리케이션에서 엔터티의 피처 데이터에 대한 URI를 이용하여 엔터티의 피처 데이터를 획득하는 알고리즘 등 대부분의 알고리즘을 그대로 재사용할 수 있게 되어 증강현실 어플리케이션의 개발이 매우 용이해진다. As the augmented reality application does not need to include a feature data generating algorithm for each AR engine, the size of the augmented reality application can be reduced, and thus the amount of work required to develop the augmented reality application can be reduced. When developing an augmented reality application, it is very easy to develop an augmented reality application because most of the algorithms, such as the algorithm for obtaining feature data of an entity by using the URI of the entity's feature data, can be reused as they are in the existing augmented reality application. It happens.

도 1은 본 발명의 일 실시예에 따른 AR 클라이언트(1)의 구성도이다.
도 2는 2차원 이미지에 대한 피처 데이터의 일례를 도시한 도면이다.
도 3은 3차원 객체에 대한 피처 데이터의 일례를 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 엔터티 추적 방법의 흐름도이다.
도 5는 도 1에 도시된 AR 클라이언트(1)의 피처 데이터 획득 과정의 일례를 도시한 도면이다.
도 6은 본 발명의 다른 실시예에 따른 복수의 증강현실 어플리케이션의 실행 예를 도시한 도면이다.
도 7은 도 1에 도시된 리소스 서버(2)에 저장되어 있는 URI 테이블의 일례를 도시한 도면이다.
1 is a configuration diagram of an AR client 1 according to an embodiment of the present invention.
2 is a diagram showing an example of feature data for a two-dimensional image.
3 is a diagram illustrating an example of feature data for a 3D object.
4 is a flowchart of an entity tracking method according to an embodiment of the present invention.
FIG. 5 is a diagram showing an example of a process of acquiring feature data of the AR client 1 shown in FIG. 1 .
6 is a diagram illustrating an example of execution of a plurality of augmented reality applications according to another embodiment of the present invention.
FIG. 7 is a diagram showing an example of a URI table stored in the resource server 2 shown in FIG. 1 .

이하에서는 도면을 참조하여 본 발명의 실시예를 상세히 설명한다. 이하에서 설명되는 본 발명의 실시예는 증강현실 엔진에 종속적인 피처 데이터 생성 알고리즘을 사용하지 않고, 증강현실 엔진에 독립적으로 피처 데이터를 획득하여 AR 엔진을 실행함으로써 증강현실 공간에서의 엔터티의 추적을 수행할 수 있는 증강현실 엔진에 독립적인 피처 데이터 기반의 엔터티 추적 방법 및 장치에 관한 것이다.Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings. Embodiments of the present invention to be described below do not use a feature data generation algorithm dependent on the augmented reality engine, but acquire feature data independently of the augmented reality engine and execute the AR engine to track entities in the augmented reality space. A method and apparatus for tracking an entity based on feature data independent of an augmented reality engine that can be performed.

이하에서 증강현실 엔진에 독립적인 피처 데이터 기반의 엔터티 추적 방법 은 간략하게 "엔터티 추적 방법"으로 호칭될 수 있고, 증강현실 엔진에 독립적인 피처 데이터 기반의 엔터티 추적 장치는 간략하게 "엔터티 추적 장치" 또는 "AR 클라이언트"로 호칭될 수 있다. 이하에서 "증강현실(Augmented Reality)" 용어는 간략하게 "AR"로 호칭될 수 있고 "URI"는 "Uniform Resource Identifier"의 약어이다. Hereinafter, the augmented reality engine-independent feature data-based entity tracking method may be briefly referred to as "entity tracking method", and the augmented reality engine-independent feature data-based entity tracking device may be briefly referred to as "entity tracking device". Or it may be called an "AR client". Hereinafter, the term "Augmented Reality" may be briefly referred to as "AR" and "URI" is an abbreviation of "Uniform Resource Identifier".

도 1은 본 발명의 일 실시예에 따른 AR 클라이언트(1)의 구성도이다. 도 1을 참조하면, 본 실시예에 따른 AR 클라이언트(1)는 메인프로세서(11), AR 처리부(12), URI 처리부(13), 통신모듈(14), 입력모듈(15), 출력모듈(16), 카메라모듈(17), 센서모듈(18), 스토리지(19), 및 버스(20)로 구성된다. 본 실시예에 따른 AR 클라이언트(1)는 증강현실 공간에 존재하는 적어도 하나의 엔터티를 추적하고 이와 같이 추적된 엔터티에 가상 이미지를 오버랩하여 표시한다. 따라서, 본 실시예에 따른 AR 클라이언트(1)는 엔터티 추적 장치로 호칭될 수도 있다.1 is a configuration diagram of an AR client 1 according to an embodiment of the present invention. Referring to FIG. 1, the AR client 1 according to this embodiment includes a main processor 11, an AR processing unit 12, a URI processing unit 13, a communication module 14, an input module 15, and an output module ( 16), a camera module 17, a sensor module 18, a storage 19, and a bus 20. The AR client 1 according to the present embodiment tracks at least one entity existing in the augmented reality space, and overlaps and displays a virtual image on the tracked entity. Therefore, the AR client 1 according to this embodiment may be called an entity tracking device.

메인프로세서(11)는 어떤 어플리케이션을 실행하고, 그 어플리케이션의 프로그램 코드에 따라 AR 처리부(12), URI 처리부(13), 입력모듈(15), 출력모듈(16), 통신모듈(14), 카메라모듈(17), 센서모듈(18)을 제어하고, 스토리지(19)로부터 데이터를 읽거나 스토리지(19)에 데이터를 저장한다. 특히, 본 실시예의 메인프로세서(11)는 이하에서 설명되는 증강현실 어플리케이션을 실행한다. 메인프로세서(11)의 예로는 CPU(Central Processing Unit), AP(Application Processor) 등을 들 수 있다. The main processor 11 executes a certain application, and according to the program code of the application, the AR processing unit 12, the URI processing unit 13, the input module 15, the output module 16, the communication module 14, and the camera It controls the module 17 and the sensor module 18, and reads data from the storage 19 or stores data in the storage 19. In particular, the main processor 11 of this embodiment executes an augmented reality application described below. Examples of the main processor 11 include a central processing unit (CPU) and an application processor (AP).

AR 처리부(12)는 증강현실 어플리케이션의 실행에 따라 증강현실 컨텐츠를 획득, 해석, 렌더링한다. URI 처리부(13)는 증강현실 어플리케이션의 실행에 따라 각 엔터티별 URI, 어떤 엔터티의 피처 데이터에 대한 URI, 및 어떤 엔터티의 원본 이미지에 대한 URI를 생성한다. 본 실시예에서 어떤 엔터티의 원본 이미지는 그 엔터티의 2차원 이미지 또는 3차원 이미지를 나타내는 데이터를 의미한다. AR 처리부(12), URI 처리부(13)는 증강현실 어플리케이션의 실행에 따라 동작하는 프로세서로서 메인프로세서(11)와 물리적으로 동일한 프로세서일 수도 있고, GPU(Graphics Processing Unit) 등과 같이 메인프로세서(11)에 의해 사용되는 별개의 전용 프로세서일 수도 있다. The AR processing unit 12 acquires, interprets, and renders augmented reality content according to the execution of an augmented reality application. The URI processing unit 13 generates a URI for each entity, a URI for feature data of a certain entity, and a URI for an original image of a certain entity according to the execution of the augmented reality application. In this embodiment, an original image of an entity means data representing a 2D image or a 3D image of the entity. The AR processing unit 12 and the URI processing unit 13 are processors that operate according to the execution of the augmented reality application, and may be physically the same processor as the main processor 11, or the main processor 11, such as a graphics processing unit (GPU). It may also be a separate dedicated processor used by

통신모듈(14)은 인터넷 등과 같은 네트워크를 통하여 리소스 서버(2) 또는 다른 서버와의 통신을 수행한다. 통신모듈(14)은 LTE(Long Term Evolution), 와이파이(WiFi) 등 다양한 통신 방식에 따라 리소스 서버(2) 또는 다른 서버와의 통신을 수행할 수 있다. 입력모듈(15)은 사용자의 명령, 선택, 정보 등을 입력받는다. 입력모듈(15)의 예로는 터치패널, 키보드, 마우스 등을 예로 들 수 있다. 출력모듈(16)은 디스플레이패널과 같은 이미지출력장치와 스피커와 같은 오디오출력장치의 조합으로 구성되어 사용자에게 시청각적인 출력을 제공한다. The communication module 14 performs communication with the resource server 2 or other servers through a network such as the Internet. The communication module 14 may perform communication with the resource server 2 or other servers according to various communication methods such as Long Term Evolution (LTE) and Wi-Fi. The input module 15 receives a user's command, selection, information, and the like. Examples of the input module 15 include a touch panel, a keyboard, and a mouse. The output module 16 is composed of a combination of an image output device such as a display panel and an audio output device such as a speaker to provide audio-visual output to the user.

카메라모듈(17)은 AR 클라이언트(1)가 현재 위치하고 있는 공간을 촬영함으로써 현실 공간의 이미지를 생성한다. 센서모듈(18)은 AR 클라이언트(1)에 내장된 자이로스코프(gyroscope), 가속도계(accelerometer), GPS(Global Positioning System) 센서 등을 이용하여 AR 클라이언트(1)의 현재 위치와 자세를 검출함으로써 AR 클라이언트(1)의 현재 위치와 자세 정보를 생성한다. AR 클라이언트(1)의 위치 정보는 3차원 좌표계에 해당하는 증강현실 공간에서의 x, y, z의 3차원 좌표값으로 표현될 수 있다. AR 클라이언트(1)의 자세 정보는 x축 방향의 회전 각도를 나타내는 롤(roll) 값, y축 방향의 회전 각도를 나타내는 피치(pitch) 값, z축 방향의 회전 각도를 나타내는 요(yaw) 값으로 표현될 수 있다. The camera module 17 creates an image of a real space by capturing a space where the AR client 1 is currently located. The sensor module 18 detects the current position and posture of the AR client 1 using a gyroscope, accelerometer, GPS (Global Positioning System) sensor, etc. The current location and attitude information of the client 1 are generated. The location information of the AR client 1 may be expressed as three-dimensional coordinate values of x, y, and z in the augmented reality space corresponding to the three-dimensional coordinate system. The posture information of the AR client 1 includes a roll value representing the rotation angle in the x-axis direction, a pitch value representing the rotation angle in the y-axis direction, and a yaw value representing the rotation angle in the z-axis direction. can be expressed as

스토리지(19)에는 증강현실 어플리케이션과 이것의 실행 과정에서 사용되는 데이터 등이 저장된다. 도 1에 도시된 예에 따르면, 스토리지(19)에는 증강현실 어플리케이션 A, AR 엔진 A, AR 엔진 B, 증강현실 컨텐츠 등이 저장된다. 각 AR 엔진은 증강현실 어플리케이션에 의해 호출되어 엔터티 추적을 수행하는 함수 프로그램이다. 버스(20)는 메인프로세서(11), AR 처리부(12), URI 처리부(13) 등 상기된 여러 구성요소간에 데이터를 전달하는 역할을 한다.The storage 19 stores augmented reality applications and data used in their execution process. According to the example shown in FIG. 1 , the storage 19 stores augmented reality application A, AR engine A, AR engine B, augmented reality content, and the like. Each AR engine is a function program that is called by an augmented reality application to perform entity tracking. The bus 20 plays a role of transferring data between the above-described various components such as the main processor 11, the AR processing unit 12, and the URI processing unit 13.

리소스 서버(2)는 URI 체계를 이용하여 복수의 엔터티, 복수의 AR 엔진, 복수의 엔터티 추적 방법 별로 계층화되어 저장된 피처데이터의 데이터베이스를 보유하고 있으며, 어떤 URI를 수신하면 그것에 해당하는 피처 데이터를 제공한다. The resource server 2 has a database of feature data layered and stored according to a plurality of entities, a plurality of AR engines, and a plurality of entity tracking methods using a URI scheme, and when a certain URI is received, corresponding feature data is provided. do.

도 2는 2차원 이미지에 대한 피처 데이터의 일례를 도시한 도면이다. 도 2의 (a)에는 어떤 주택의 2차원 이미지가 도시되어 있고, 도 2의 (b)에는 도 2의 (a)에 도시된 2차원 이미지에 대한 피처 데이터가 도시되어 있다. 도 2의 (b)에 표시된 십자점들이 도 2의 (a)에 도시된 2차원 이미지의 특징 점들에 해당한다. 2차원 이미지에 대한 피처 데이터는 이러한 특징 점들을 나타내는 바이너리 데이터이다. 도 2의 (b)는 2차원 이미지의 피처 데이터에 대한 이해를 돕기 위해 이러한 바이너리 데이터를 시각화하여 나타낸 것이다. 각 AR 엔진은 카메라모듈(17)로부터 연속적으로 입력되는 복수의 현실공간 이미지 각각에서 2차원 이미지의 피처 데이터에 해당하는 부분을 검출하고, 복수의 현실공간 이미지가 나타내는 현실 공간에서의 검출 부분의 변화 추이로부터 현실 공간에 대응되는 증강현실 공간에서의 각 엔터티를 추적할 수 있다. 2 is a diagram showing an example of feature data for a two-dimensional image. 2(a) shows a 2D image of a certain house, and FIG. 2(b) shows feature data for the 2D image shown in FIG. 2(a). Cross dots indicated in (b) of FIG. 2 correspond to feature points of the 2D image shown in (a) of FIG. 2 . Feature data for a 2D image is binary data representing these feature points. (b) of FIG. 2 shows binary data visualized to help understand feature data of a 2D image. Each AR engine detects a part corresponding to the feature data of the 2D image in each of a plurality of real space images continuously input from the camera module 17, and changes in the detected part in the real space represented by the plurality of real space images. From the trend, each entity in the augmented reality space corresponding to the real space can be tracked.

도 3은 3차원 객체에 대한 피처 데이터의 일례를 도시한 도면이다. 도 3의 (a)에는 3차원 객체에 해당하는 고양이 인형의 복수의 2차원 이미지 중 어느 하나가 도시되어 있다. 3차원 객체를 표현하기 위해서는 다양한 각도에서 촬영된 고양이 인형의 복수의 2차원 이미지가 요구된다. 도 3의 (b)에는 고양이 인형의 복수의 2차원 이미지로부터 생성된 피처 데이터가 도시되어 있다. 도 3의 (b)에 표시된 3차원 좌표계의 점들이 3차원 객체에 해당하는 고양이 인형의 특징 점들에 해당한다. 3차원 객체에 대한 피처 데이터는 이러한 특징 점들을 나타내는 바이너리 데이터이다. 도 3의 (b)는 3차원 객체의 피처 데이터에 대한 이해를 돕기 위해 이러한 바이너리 데이터를 시각화하여 나타낸 것이다. 각 AR 엔진은 카메라모듈(17)로부터 연속적으로 입력되는 복수의 현실공간 이미지 각각에서 3차원 객체의 피처 데이터에 해당하는 부분을 검출하고, 복수의 현실공간 이미지가 나타내는 현실 공간에서의 검출 부분의 변화 추이로부터 현실 공간에 대응되는 증강현실 공간에서의 각 엔터티를 추적할 수 있다. 3 is a diagram illustrating an example of feature data for a 3D object. In (a) of FIG. 3, any one of a plurality of two-dimensional images of a cat doll corresponding to a three-dimensional object is shown. In order to express a 3D object, a plurality of 2D images of a cat doll photographed from various angles are required. 3(b) shows feature data generated from a plurality of two-dimensional images of a cat doll. The points of the 3D coordinate system shown in (b) of FIG. 3 correspond to the feature points of the cat doll corresponding to the 3D object. Feature data for a 3D object is binary data representing these feature points. (b) of FIG. 3 shows binary data visualized to help understand feature data of a 3D object. Each AR engine detects a portion corresponding to the feature data of a 3D object in each of a plurality of real space images continuously input from the camera module 17, and changes in the detected portion in the real space represented by the plurality of real space images. From the trend, each entity in the augmented reality space corresponding to the real space can be tracked.

도 4는 본 발명의 일 실시예에 따른 엔터티 추적 방법의 흐름도이다. 도 4를 참조하면, 본 실시예에 따른 엔터티 추적 방법은 도 1에 도시된 AR 클라이언트(1)에서 시계열적으로 처리되는 단계들로 구성된다. 따라서, 이하 생략된 내용이라 하더라도 도 1에 도시된 AR 클라이언트(1)에 관하여 이상에서 기술된 내용은 이하에서 기술될 엔터티 추적 방법에도 적용된다. 본 실시예에 따른 엔터티 추적 방법은 증강현실 어플리케이션으로 구현될 수 있고, AR 클라이언트(1)의 메인프로세서(11), AR 처리부(12), URI 처리부(13) 등에 의해 실행된다. 이하에서는 도 4를 참조하면서 AR 클라이언트(1)의 메인프로세서(11), AR 처리부(12), URI 처리부(13) 등 각 구성요소에 대해 상세하게 설명하기로 한다.4 is a flowchart of an entity tracking method according to an embodiment of the present invention. Referring to FIG. 4 , the entity tracking method according to the present embodiment is composed of steps sequentially processed by the AR client 1 shown in FIG. 1 . Therefore, even if the content is omitted below, the content described above regarding the AR client 1 shown in FIG. 1 is also applied to the entity tracking method to be described below. The entity tracking method according to the present embodiment can be implemented as an augmented reality application, and is executed by the main processor 11, the AR processing unit 12, the URI processing unit 13, and the like of the AR client 1. Hereinafter, each component such as the main processor 11, the AR processing unit 12, and the URI processing unit 13 of the AR client 1 will be described in detail with reference to FIG. 4 .

41 단계에서 AR 클라이언트(1)의 메인프로세서(11)는 입력모듈(15)을 통해 사용자로부터 본 실시예에 따른 증강현실 어플리케이션 A를 실행하라는 명령을 입력받으면, 증강현실 어플리케이션 A를 실행한다. 증강현실 어플리케이션 A는 그것의 실행 전에 리소스 서버(2) 또는 다른 서버로부터 다운로드되어 AR 클라이언트(1)에 설치되어 있다. 증강현실 어플리케이션 A는 리소스 서버(2)가 제공할 수도 있고, 다른 서버가 제공할 수도 있다. 이러한 증강현실 어플리케이션 A는 자바(java) 등과 같은 컴퓨터 프로그래밍 언어로 작성될 수 있다. 이하의 단계들은 증강현실 어플리케이션 A의 실행에 따라 AR 처리부(12), URI 처리부(13)에 의해 수행되는 단계들이다.In step 41, the main processor 11 of the AR client 1 executes the augmented reality application A when receiving a command to execute the augmented reality application A according to the present embodiment from the user through the input module 15. Augmented reality application A is downloaded from the resource server 2 or another server and installed in the AR client 1 before its execution. Augmented reality application A may be provided by the resource server 2 or may be provided by another server. The augmented reality application A may be written in a computer programming language such as Java. The following steps are performed by the AR processing unit 12 and the URI processing unit 13 according to the execution of the augmented reality application A.

42 단계에서 AR 클라이언트(1)의 AR 처리부(12)는 출력모듈(16)을 통해 사용자에게 증강현실 어플리케이션 A가 제공 가능한 여러 종류의 증강현실 컨텐츠에 대한 정보를 표시한다. 사용자는 이와 같이 표시된 정보가 나타내는 여러 종류의 증강현실 컨텐츠 중 사용자가 체험하고 싶은 어느 하나의 증강현실 컨텐츠를 선택한다. AR 처리부(12)는 입력모듈(15)을 통해 증강현실 어플리케이션 A가 제공 가능한 적어도 하나의 증강현실 컨텐츠 중 어느 하나에 대한 사용자 선택 정보를 입력받으면, 사용자 선택 정보가 나타내는 어느 하나의 증강현실 컨텐츠를 통신모듈(14)을 통해 리소스 서버(2) 또는 다른 서버로부터 획득한다. 증강현실 컨텐츠는 리소스 서버(2)가 제공할 수도 있고, 다른 서버가 제공할 수도 있다. 통신모듈(14)은 네트워크를 통하여 리소스 서버(2) 또는 다른 서버에 AR 처리부(12)의 증강현실 컨텐츠 요청을 송신하고, 리소스 서버(2) 또는 다른 서버로부터 증강현실 컨텐츠를 수신하여 AR 처리부(12)로 전달하는 역할을 한다. In step 42, the AR processing unit 12 of the AR client 1 displays information on various types of augmented reality content that can be provided by the augmented reality application A to the user through the output module 16. The user selects any one augmented reality content that the user wants to experience among several types of augmented reality content indicated by the displayed information. When the AR processing unit 12 receives user selection information for any one of at least one augmented reality content that can be provided by the augmented reality application A through the input module 15, any one augmented reality content indicated by the user selection information is displayed. It is acquired from the resource server 2 or other servers through the communication module 14. The augmented reality content may be provided by the resource server 2 or other servers. The communication module 14 transmits a request for augmented reality content of the AR processing unit 12 to the resource server 2 or other server through the network, and receives the augmented reality content from the resource server 2 or other server to the AR processing unit ( 12) plays a role in transmitting.

43 단계에서 AR 클라이언트(1)의 AR 처리부(12)는 44 단계에서 수신된 증강현실 컨텐츠를 해석함으로써 증강현실 컨텐츠로부터 증강현실 컨텐츠가 나타내는 증강현실 공간에서의 적어도 하나의 엔터티를 검출한다. 증강현실 컨텐츠는 현실 공간의 이미지에 적어도 하나의 가상 이미지가 오버랩되어 표현되는 증강현실 공간의 각 신(scene)을 구조화된 형식으로 나타낸 컨텐츠로서 증강현실 공간에 존재하는 적어도 하나의 엔터티의 정보, 예를 들어 각 엔터티의 네임을 포함하고 있다. 이와 같이, AR 처리부(12)는 증강현실 컨텐츠를 해석함으로써 증강현실 공간에서의 각 엔터티의 네임을 검출할 수 있다. In step 43, the AR processing unit 12 of the AR client 1 analyzes the augmented reality content received in step 44 to detect at least one entity in the augmented reality space represented by the augmented reality content from the augmented reality content. Augmented reality content is content that represents each scene of the augmented reality space in a structured format, in which at least one virtual image is overlapped with an image of the real space, and includes information on at least one entity existing in the augmented reality space, e.g. For example, it contains the name of each entity. In this way, the AR processing unit 12 may detect the name of each entity in the augmented reality space by interpreting the augmented reality content.

증강현실 공간에 존재하는 각 엔터티는 각 엔터티에 대응하는 가상 이미지가 오버랩되어 표시되는 요소로서 2차원 이미지 또는 3차원 객체로 분류될 수 있다. 증강현실 공간에 존재하는 각 엔터티는 그것의 현재 위치에 가상 이미지가 표시되기 때문에 그 위치가 추적되어야 한다. 어떤 엔터티가 3차원 객체인 경우, 그것의 현재 자세에 따라 가상 이미지가 달리 표시될 수 있기 때문에 그것의 위치와 함께 자세도 추적될 수도 있다. 본 실시예에서 엔터티의 추적을 수행한다는 것은 엔터티의 위치를 추적하거나 엔터티의 위치와 자세를 추적한다는 것을 의미한다. Each entity existing in the augmented reality space is an element in which a virtual image corresponding to each entity is overlapped and displayed, and may be classified as a 2D image or a 3D object. Each entity existing in the augmented reality space must be tracked because a virtual image is displayed at its current location. If an entity is a 3D object, its position and posture may also be tracked because a virtual image may be differently displayed according to its current posture. In this embodiment, tracking an entity means tracking the position of an entity or tracking the position and posture of an entity.

이러한 증강현실 컨텐츠는 XML(eXtensible Markup Language) 등과 같은 마크업(markup) 언어로 작성될 수 있다. 본 실시예의 증강현실 컨텐츠는 단일 프레임의 이미지를 나타낼 수도 있고, 복수 프레임의 영상을 나타낼 수도 있다. 본 실시예의 증강현실 컨텐츠는 렌더링 모드에 따라 증강현실 이미지로 표시되거나 가상현실 이미지로 표시되는 혼합현실 컨텐츠일 수도 있다. Such augmented reality content may be written in a markup language such as XML (eXtensible Markup Language). The augmented reality content of this embodiment may represent an image of a single frame or an image of multiple frames. The augmented reality content of this embodiment may be mixed reality content displayed as an augmented reality image or a virtual reality image according to a rendering mode.

44 단계에서 URI 처리부(13)는 리소스 서버(2)의 호스트 네임과 43 단계에서 검출된 각 엔터티의 네임의 조합으로부터 각 엔터티별 URI(Uniform Resource Identifier)를 생성한다. URI 처리부(13)는 리소스 서버(2)의 호스트 네임에 42 단계에서 검출된 각 엔터티의 네임을 부가함으로써 각 엔터티별 URI를 생성할 수 있다. 어떤 현실 공간에 존재하는 주택에 그 주택의 주소를 나타내는 가상 이미지를 오버랩하여 표시하기 위한 증강현실 컨텐츠를 예로 들면, URI 처리부(13)는 리소스 서버(2)의 호스트 네임 "server.com"에 엔터티의 네임 "house"을 부가함으로써 그 엔터티의 URI "http://server.com/house"를 생성할 수 있다. In step 44, the URI processing unit 13 generates a Uniform Resource Identifier (URI) for each entity from a combination of the host name of the resource server 2 and the name of each entity detected in step 43. The URI processor 13 may generate a URI for each entity by adding the name of each entity detected in step 42 to the host name of the resource server 2. Taking augmented reality content for displaying by overlapping a virtual image representing the address of a house existing in a certain real space as an example, the URI processing unit 13 assigns an entity to the host name "server.com" of the resource server 2. By adding the name "house" of the entity, the URI "http://server.com/house" can be created.

어떤 현실 공간에 존재하는 고양이 인형의 얼굴에 그 현실 공간의 날씨에 따라 표정 변화를 나타내는 가상 이미지를 오버랩하여 표시하기 위한 증강현실 컨텐츠를 예로 들면, URI 처리부(13)는 리소스 서버(2)의 호스트 네임 "server.com"에 엔터티의 네임 "cat"을 부가함으로써 그 엔터티의 URI "http://server.com/cat"를 생성할 수 있다. 리소스 서버(2)의 호스트 네임 "server.com"은 증강현실 어플리케이션에 포함되어 있을 수 있고, 증강현실 컨텐츠에 포함되어 있을 수도 있다.Taking augmented reality content for overlapping and displaying a virtual image representing a facial expression change according to the weather of the real space on the face of a cat doll existing in a certain real space as an example, the URI processing unit 13 is the host of the resource server 2 The entity's URI "http://server.com/cat" can be created by adding the entity's name "cat" to the name "server.com". The host name "server.com" of the resource server 2 may be included in augmented reality applications and may also be included in augmented reality content.

45 단계에서 AR 처리부(12)는 복수 타입의 AR 엔진 중에서 41 단계에서 검출된 각 엔터티의 추적에 사용될 AR 엔진을 검출한다. AR 처리부(12)는 증강현실 어플리케이션 A의 설정 정보 또는 43 단계에서의 증강현실 컨텐츠의 해석 결과로부터 엔터티의 추적에 사용될 AR 엔진의 네임을 검출할 수 있다. 증강현실 컨텐츠는 그것이 나타내는 증강현실 공간에서 존재하는 각 엔터티의 추적에 가장 적합한 AR 엔진의 네임을 포함하고 있을 수 있다. 증강현실 어플리케이션 A는 사용자가 복수 타입의 AR 엔진 중 어느 하나를 선택할 수 있도록 설계될 수 있다. 이 경우, 사용자는 증강현실 어플리케이션 A의 실행 환경을 설정하는 과정에서 복수 타입의 AR 엔진 중 어느 하나를 선택할 수 있다. In step 45, the AR processing unit 12 detects an AR engine to be used for tracking each entity detected in step 41 from among a plurality of types of AR engines. The AR processing unit 12 may detect the name of the AR engine to be used for tracking the entity from the setting information of the augmented reality application A or the result of analyzing the augmented reality content in step 43 . Augmented reality content may include the name of an AR engine that is most suitable for tracking each entity that exists in the augmented reality space it represents. Augmented reality application A may be designed so that a user can select any one of multiple types of AR engines. In this case, the user may select one of a plurality of types of AR engines in the process of setting the execution environment of the augmented reality application A.

46 단계에서 AR 처리부(12)는 45 단계에서 검출된 AR 엔진의 속성에 기초하여 45 단계에서 검출된 AR 엔진이 43 단계에서 검출된 엔터티의 추적을 위해 그 엔터티의 피처 데이터와 원본 이미지 중 어느 것을 필요로 하는가를 확인한다. 46 단계에서 AR 엔진이 엔터티의 피처 데이터를 필요로 하는 것으로 확인되면 47 단계로 진행된다. 46 단계에서 AR 엔진이 엔터티의 원본 이미지를 필요로 하는 것으로 확인되면 410 단계로 진행된다. 예를 들어, AR 엔진 A의 속성이 2차원 이미지를 추적하기 전에 2차원 이미지로부터 그것의 피처 데이터를 생성하는 과정을 항상 수행하도록 설정되어 있다면 AR 엔진 A는 그 피처 데이터가 아닌, 2차원 이미지 데이터를 필요로 한다.In step 46, the AR processing unit 12 determines which of the feature data and original image of the entity for tracking the entity detected in step 43 by the AR engine detected in step 45 based on the attribute of the AR engine detected in step 45. check if you need it In step 46, if it is determined that the AR engine requires feature data of an entity, step 47 is performed. In step 46, if it is determined that the AR engine requires the original image of the entity, step 410 is performed. For example, if the properties of AR engine A are set to always perform the process of generating its feature data from a 2D image before tracking the 2D image, then AR engine A will use the 2D image data, not the feature data. need

47 단계에서 AR 처리부(12)는 43 단계에서 검출된 각 엔터티에 대해 45 단계에서 검출된 AR 엔진이 사용하고자 하는 엔터티 추적 방법을 검출한다. 보다 상세하게 설명하면, AR 처리부(12)는 43 단계에서 검출된 각 엔터티가 2차원 이미지 또는 3차원 객체 중 어느 것에 해당되는가에 따라 43 단계에서 검출된 각 엔터티에 대해 45 단계에서 검출된 AR 엔진이 사용하고자 하는 엔터티 추적 방법을 검출할 수 있다. 증강현실 공간에서의 2차원 이미지 추적 방법과 3차원 객체 추적 방법은 2차원 이미지와 3차원 객체간의 데이터 포맷이 다름에 따라 서로 다르게 된다. In step 47, the AR processor 12 detects an entity tracking method to be used by the AR engine detected in step 45 for each entity detected in step 43. More specifically, the AR processing unit 12 determines whether each entity detected in step 43 corresponds to a 2D image or a 3D object, and the AR engine detected in step 45 for each entity detected in step 43. The entity tracking method to be used can be detected. The 2D image tracking method and the 3D object tracking method in the augmented reality space are different depending on the data format between the 2D image and the 3D object.

48 단계에서 URI 처리부(13)는 44 단계에서 생성된 각 엔터티별 URI에 45 단계에서 검출된 AR 엔진의 네임과 47 단계에서 검출된 엔터티 추적 방법의 네임을 부가함으로써 43 단계에서 검출된 각 엔터티의 피처 데이터에 대한 URI를 생성한다. 이와 같이, URI 처리부(13)는 리소스 서버(2)의 호스트 네임, 43 단계에서 검출된 각 엔터티의 네임, 45 단계에서 검출된 AR 엔진의 네임, 및 47 단계에서 검출된 엔터티 추적 방법의 네임의 조합으로부터 43 단계에서 검출된 각 엔터티의 피처 데이터에 대한 URI를 생성한다.In step 48, the URI processing unit 13 adds the name of the AR engine detected in step 45 and the name of the entity tracking method detected in step 47 to the URI for each entity generated in step 44, so that each entity detected in step 43 Create URIs for feature data. In this way, the URI processing unit 13 determines the host name of the resource server 2, the name of each entity detected in step 43, the name of the AR engine detected in step 45, and the name of the entity tracking method detected in step 47. From the combination, a URI for feature data of each entity detected in step 43 is generated.

도 5는 도 1에 도시된 AR 클라이언트(1)의 피처 데이터 획득 과정의 일례를 도시한 도면이다. 예를 들어, 43 단계에서 검출된 엔터티의 네임이 도 2에 도시된 2차원 이미지의 네임 "house"이고, 45 단계에서 검출된 AR 엔진의 네임이 "AREngineA", 및 47 단계에서 검출된 엔터티 추적 방법의 네임이 "ImageTracking"이라면 도 2에 도시된 2차원 이미지 엔터티의 피처 데이터에 대한 URI는 "http://server.com/house/AREngineA/ImageTracking"가 된다. 예를 들어, 43 단계에서 검출된 엔터티의 네임이 도 3에 도시된 3차원 객체의 네임 "cat"이고, 45 단계에서 검출된 AR 엔진의 네임이 "AREngineB", 및 47 단계에서 검출된 엔터티 추적 방법의 네임이 "ObjectTracking"이라면 도 3에 도시된 3차원 객체 엔터티의 피처 데이터에 대한 URI는 "http://server.com/house/AREngineB/ObjectTracking"이 된다.FIG. 5 is a diagram showing an example of a process of acquiring feature data of the AR client 1 shown in FIG. 1 . For example, the name of the entity detected in step 43 is the name "house" of the 2D image shown in FIG. 2, the name of the AR engine detected in step 45 is "AREngineA", and the entity tracking detected in step 47. If the name of the method is “ImageTracking”, the URI for feature data of the 2D image entity shown in FIG. 2 becomes “http://server.com/house/AREngineA/ImageTracking”. For example, the name of the entity detected in step 43 is the name "cat" of the 3D object shown in FIG. 3, the name of the AR engine detected in step 45 is "AREngineB", and the entity tracking detected in step 47. If the name of the method is “ObjectTracking”, the URI for the feature data of the 3D object entity shown in FIG. 3 becomes “http://server.com/house/AREngineB/ObjectTracking”.

AR 처리부(12), URI 처리부(13)는 증강현실 어플리케이션의 실행에 따라 동작하는 프로세서로서 증강현실 어플리케이션의 프로그램 코드에 따라 동작하므로 본 실시예의 이해를 돕기 위해 증강현실 어플리케이션이 URI를 제공하고 피처 데이터를 획득하는 형태로 도시되어 있다. The AR processing unit 12 and the URI processing unit 13 are processors that operate according to the execution of the augmented reality application and operate according to the program code of the augmented reality application, so the augmented reality application provides a URI and feature data to help understanding of the present embodiment. It is shown in the form of obtaining.

49 단계에서 AR 처리부(12)는 49 단계에서 생성된 각 엔터티의 피처 데이터에 대한 URI를 이용하여 각 엔터티의 특징을 45 단계에서 검출된 AR 엔진에서 처리 가능한 포맷으로 나타낸 각 엔터티의 피처 데이터를 획득한다. AR 처리부(12)는 49 단계에서 생성된 각 엔터티에 대한 피처 데이터에 대한 URI를 이용하여 그 URI의 호스트에 해당하는 리소스 서버(2)에 접속하여 각 엔터티의 특징을 나타내는 각 엔터티의 피처 데이터를 요청하고, 그 요청에 대한 응답으로서 리소스 서버(2)로부터 각 엔터티의 피처 데이터를 획득하게 된다. 통신모듈(14)은 네트워크를 통하여 리소스 서버(2)에 이러한 AR 처리부(12)의 요청을 송신하고, 리소스 서버(2)로부터 그 요청에 대한 응답을 수신하여 AR 처리부(12)로 전달하는 역할을 한다. In step 49, the AR processing unit 12 obtains feature data of each entity in which the characteristics of each entity are expressed in a format processable by the AR engine detected in step 45 using the URI of the feature data of each entity generated in step 49. do. The AR processing unit 12 accesses the resource server 2 corresponding to the host of the URI using the URI for the feature data for each entity generated in step 49, and retrieves the feature data of each entity representing the characteristics of each entity. request, and feature data of each entity is obtained from the resource server 2 as a response to the request. The communication module 14 transmits a request of the AR processing unit 12 to the resource server 2 through the network, receives a response to the request from the resource server 2, and transmits it to the AR processing unit 12. do

도 5에 도시된 바와 같이, 도 2에 도시된 2차원 이미지 엔터티의 피처 데이터에 대한 URI가 "http://server.com/house/AREngineA/ImageTracking"라면 AR 클라이언트(1)는 이 URI를 이용하여 리소스 서버(2)에 접속하여 리소스 서버(2)로부터 도 2에 도시된 2차원 이미지 엔터티의 피처 데이터를 획득할 수 있다. 도 5에 도시된 바와 같이, 도 3에 도시된 3차원 객체 엔터티의 피처 데이터에 대한 URI가 "http://server.com/house/AREngineB/ObjectTracking"라면 AR 클라이언트(1)는 이 URI를 이용하여 리소스 서버(2)에 접속하여 리소스 서버(2)로부터 도 3에 도시된 3차원 객체 엔터티의 피처 데이터를 획득할 수 있다.As shown in FIG. 5, if the URI for the feature data of the 2D image entity shown in FIG. 2 is "http://server.com/house/AREngineA/ImageTracking", the AR client 1 uses this URI. By accessing the resource server 2, the feature data of the 2D image entity shown in FIG. 2 may be obtained from the resource server 2. As shown in FIG. 5, if the URI for the feature data of the 3D object entity shown in FIG. 3 is "http://server.com/house/AREngineB/ObjectTracking", the AR client 1 uses this URI. By accessing the resource server 2, the feature data of the 3D object entity shown in FIG. 3 may be acquired from the resource server 2.

410 단계에서 URI 처리부(13)는 44 단계에서 생성된 각 엔터티별 URI에 "originalImage"를 부가함으로써 43 단계에서 검출된 각 엔터티의 원본 이미지에 대한 URI를 생성한다. 여기에서, 각 엔터티의 원본 이미지는 각 엔터티의 2차원 이미지 또는 3차원 이미지를 나타내는 데이터를 의미한다. 각 엔터티의 피처 데이터는 각 엔터티의 원본 이미지에 비해 데이터 크기가 매우 작기 때문에 엔터티 추적이 효율적으로 이루어질 수 있다. In step 410, the URI processing unit 13 adds “originalImage” to the URI for each entity generated in step 44, thereby generating a URI for an original image of each entity detected in step 43. Here, the original image of each entity means data representing a 2D image or a 3D image of each entity. Since the feature data of each entity has a very small data size compared to the original image of each entity, entity tracking can be performed efficiently.

411 단계에서 AR 처리부(12)는 49 단계에서 생성된 각 엔터티의 원본 이미지에 대한 URI를 이용하여 43 단계에서 검출된 각 엔터티의 원본 이미지를 획득한다. AR 처리부(12)는 49 단계에서 생성된 각 엔터티에 대한 원본 이미지에 대한 URI를 이용하여 리소스 서버(2)에 접속하여 각 엔터티의 원본 이미지를 요청하고, 그 요청에 대한 응답으로서 리소스 서버(2)로부터 각 엔터티의 원본 이미지를 획득하게 된다. 통신모듈(14)은 네트워크를 통하여 리소스 서버(2)에 이러한 AR 처리부(12)의 요청을 송신하고, 리소스 서버(2)로부터 그 요청에 대한 응답을 수신하여 AR 처리부(12)로 전달하는 역할을 한다. 여기에서, 각 엔터티의 원본 이미지는 각 엔터티의 2차원 이미지를 나타내는 데이터를 의미한다.In step 411, the AR processor 12 acquires the original image of each entity detected in step 43 using the URI of the original image of each entity generated in step 49. The AR processing unit 12 accesses the resource server 2 using the URI for the original image for each entity generated in step 49, requests the original image of each entity, and as a response to the request, the resource server 2 ) to obtain the original image of each entity. The communication module 14 transmits a request of the AR processing unit 12 to the resource server 2 through the network, receives a response to the request from the resource server 2, and transmits it to the AR processing unit 12. do Here, the original image of each entity means data representing a two-dimensional image of each entity.

412 단계에서 AR 처리부(12)는 49 단계에서 획득된 피처 데이터 또는 411 단계에서 획득된 원본 이미지를 기반으로 45 단계에서 검출된 AR 엔진을 실행함으로써 42 단계에서 수신된 증강현실 컨텐츠가 나타내는 증강현실 공간에서 각 엔터티의 추적을 수행한다. 411 단계에서 획득된 원본 이미지를 기반으로 45 단계에서 검출된 AR 엔진이 실행되는 경우, AR 엔진은 그 원본 이미지로부터 그 원본 이미지의 피처 데이터를 생성한다. 증강현실 공간은 AR 클라이언트(1)가 현재 위치하고 있는 현실 공간에서 증강현실 컨텐츠에 의해 가상 이미지를 이용하여 증강되어 표현될 공간을 의미하며, 현실 공간의 전체 또는 일부일 수 있다. In step 412, the AR processing unit 12 executes the AR engine detected in step 45 based on the feature data obtained in step 49 or the original image obtained in step 411 to augment the augmented reality space represented by the augmented reality content received in step 42. performs tracking of each entity in When the AR engine detected in step 45 is executed based on the original image obtained in step 411, the AR engine generates feature data of the original image from the original image. The augmented reality space means a space to be expressed by augmenting the augmented reality content using a virtual image in the real space where the AR client 1 is currently located, and may be all or part of the real space.

AR 처리부(12)는 카메라모듈(17)로부터 연속적으로 입력되는 복수의 현실공간 이미지 각각에서 각 엔터티의 피처 데이터에 해당하는 부분을 검출하고, 카메라모듈(17)로부터 연속적으로 입력되는 복수의 현실공간 이미지가 나타내는 현실 공간에서의 검출 부분의 위치 변화 추이로부터 증강현실 공간에서의 각 엔터티의 위치를 추적할 수 있다. AR 처리부(12)는 카메라모듈(17)로부터 연속적으로 입력되는 복수의 이미지가 나타내는 현실 공간에서의 검출 부분의 자세 변화 추이로부터 증강현실 공간에서의 각 엔터티의 자세도 추적할 수 있다. The AR processing unit 12 detects a portion corresponding to feature data of each entity in each of a plurality of real space images continuously input from the camera module 17, and detects a plurality of real space images continuously input from the camera module 17. The position of each entity in the augmented reality space can be tracked from the change in position of the detection part in the real space represented by the image. The AR processing unit 12 may also track the posture of each entity in the augmented reality space from the posture change trend of the detection part in the real space represented by a plurality of images continuously input from the camera module 17 .

이어서, AR 처리부(12)는 42 단계에서 수신된 증강현실 컨텐츠를 렌더링함으로써 카메라모듈(17)로부터 실시간으로 입력되는 복수의 현실공간 이미지 각각에 대하여 412 단계에서 추적된 각 엔터티의 위치에 각 엔터티의 가상 이미지를 오버랩한 증강현실 이미지를 생성한다. AR 처리부(12)는 복수의 현실공간 이미지 각각에 대하여 412 단계에서 추적된 각 엔터티의 위치와 함께 자세도 참조하여 각 엔터티의 자세 변화에 따라 각 엔터티의 가상 이미지를 회전시켜 오버랩할 수도 있다. 출력모듈(16)은 이와 같이 생성된 증강현실 이미지를 디스플레이한다. 도 4에 도시된 실시예는 엔터티 추적 방법에 관한 것이기 때문에 도 4에는 이 단계가 생략되어 있다. Subsequently, the AR processing unit 12 renders the augmented reality content received in step 42, and places each entity at the position of each entity tracked in step 412 for each of a plurality of real space images input in real time from the camera module 17. Create an augmented reality image that overlaps the virtual image. The AR processing unit 12 may refer to the position and posture of each entity tracked in step 412 for each of the plurality of real space images, and rotate the virtual image of each entity according to the change in the posture of each entity so as to overlap the virtual images. The output module 16 displays the augmented reality image thus generated. Since the embodiment shown in FIG. 4 relates to an entity tracking method, this step is omitted in FIG. 4 .

도 6은 본 발명의 다른 실시예에 따른 복수의 증강현실 어플리케이션의 실행 예를 도시한 도면이다. 도 6에 도시된 예에 따르면, 복수의 증강현실 어플리케이션과 복수 타입의 AR 엔진은 서로 일대일로 대응된다. 다른 예에서는 하나의 증강현실 어플리케이션이 복수 타입의 AR 엔진을 사용할 수도 있고, 또 다른 예에서는 복수의 증강현실 어플리케이션이 한 타입의 AR 엔진을 사용할 수도 있다. 복수의 증강현실 어플리케이션은 하나의 AR 클라이언트(1)에 설치되어 있을 수도 있고, 그 각각이 복수 개의 AR 클라이언트(1) 각각에 설치되어 있을 수도 있다.6 is a diagram illustrating an example of execution of a plurality of augmented reality applications according to another embodiment of the present invention. According to the example shown in FIG. 6 , a plurality of augmented reality applications and a plurality of types of AR engines correspond to each other on a one-to-one basis. In another example, one augmented reality application may use multiple types of AR engines, and in another example, multiple augmented reality applications may use one type of AR engine. A plurality of augmented reality applications may be installed in one AR client 1, and each may be installed in each of the plurality of AR clients 1.

증강현실 어플리케이션 A가 실행되어 검출된 엔터티가 "엔터티 A"이고, AR 엔진 A의 속성이 엔터티 A의 피처 데이터를 기반으로 실행되도록 설정되어 있는 경우라면, 41~49, 412 단계가 수행됨으로써 엔터티 A의 추적이 이루어지게 된다. 즉, URI 처리부(13)는 리소스 서버(2)의 호스트 네임, 43 단계에서 검출된 적어도 하나의 엔터티 중 엔터티 A의 네임, 45 단계에서 검출된 AR 엔진 A의 네임, 및 47 단계에서 검출된 엔터티 추적 방법의 네임의 조합으로부터 엔터티 A의 피처 데이터에 대한 URI를 생성한다. 이어서, AR 처리부(12)는 이 URI를 이용하여 엔터티 A의 특징을 AR 엔진 A에서 처리 가능한 포맷으로 나타낸 피처 데이터를 획득한다.When the augmented reality application A is executed and the detected entity is "entity A", and the properties of AR engine A are set to be executed based on the feature data of entity A, steps 41 to 49 and 412 are performed and the entity A tracking is done. That is, the URI processing unit 13 includes the host name of the resource server 2, the name of entity A among at least one entity detected in step 43, the name of AR engine A detected in step 45, and the entity detected in step 47. A URI for the feature data of entity A is generated from the combination of names of tracking methods. Next, the AR processing unit 12 obtains feature data representing the characteristics of entity A in a format processable by AR engine A using this URI.

이어서, AR 처리부(12)는 이와 같이 획득된 피처 데이터를 기반으로 AR 엔진 A를 실행함으로써 증강현실 공간에서 엔터티 A의 추적을 수행한다. AR 처리부(12), URI 처리부(13)는 증강현실 어플리케이션의 실행에 따라 동작하는 프로세서로서 증강현실 어플리케이션의 프로그램 코드에 따라 동작하므로 본 실시예의 이해를 돕기 위해 증강현실 어플리케이션이 URI를 제공하고 피처 데이터를 획득하는 형태로 도시되어 있다. Next, the AR processing unit 12 executes the AR engine A based on the feature data obtained in this way to track the entity A in the augmented reality space. The AR processing unit 12 and the URI processing unit 13 are processors that operate according to the execution of the augmented reality application and operate according to the program code of the augmented reality application, so the augmented reality application provides a URI and feature data to help understanding of the present embodiment. It is shown in the form of obtaining.

상술한 바와 같이, 각 AR 엔진은 증강현실 어플리케이션에 독립적으로 엔터티 추적을 수행하는 함수 프로그램의 일종으로 AR 처리부(12)가 AR 엔진 A를 호출하여 그것에 엔터티 A의 피처 데이터를 입력하고 AR 엔진 A를 실행한다. 이어서, AR 엔진 A는 AR 처리부(12)에 그 AR 엔진 A에 의한 엔터티 추적 결과, 예를 들어 엔터티 A의 위치를 AR 처리부(12)에 반환한다. 이어서, AR 처리부(12)는 카메라모듈(17)로부터 실시간으로 입력되는 복수의 현실공간 이미지 각각에 대하여 엔터티 A의 위치에 각 엔터티 A의 가상 이미지를 오버랩함으로써 각 현실공간 이미지에 대한 증강현실 이미지를 생성한다.As described above, each AR engine is a kind of function program that performs entity tracking independently of an augmented reality application, and the AR processing unit 12 calls the AR engine A, inputs feature data of the entity A, and converts the AR engine A to the AR engine A. run Subsequently, the AR engine A returns to the AR processing unit 12 the result of tracking the entity by the AR engine A, for example, the location of the entity A, to the AR processing unit 12. Next, the AR processing unit 12 overlaps the virtual image of each entity A at the position of entity A with respect to each of a plurality of real space images input from the camera module 17 in real time, thereby generating an augmented reality image for each real space image. generate

증강현실 어플리케이션 B가 실행되어 검출된 엔터티가 "엔터티 B"이고, AR 엔진 B의 속성이 엔터티 B의 피처 데이터를 기반으로 실행되도록 설정되어 있는 경우라면, 41~49, 412 단계가 수행됨으로써 엔터티 B의 추적이 이루어지게 된다. 즉, URI 처리부(13)는 리소스 서버(2)의 호스트 네임, 43 단계에서 검출된 적어도 하나의 엔터티 중 엔터티 B의 네임, 45 단계에서 검출된 AR 엔진 B의 네임, 및 47 단계에서 검출된 엔터티 추적 방법의 네임의 조합으로부터 엔터티 B의 피처 데이터에 대한 URI를 생성한다. 이어서, AR 처리부(12)는 이 URI를 이용하여 엔터티 B의 특징을 AR 엔진 B에서 처리 가능한 포맷으로 나타낸 피처 데이터를 획득한다.When the augmented reality application B is executed and the detected entity is "entity B", and the properties of AR engine B are set to be executed based on the feature data of entity B, steps 41 to 49 and 412 are performed and the entity B tracking is done. That is, the URI processing unit 13 includes the host name of the resource server 2, the name of entity B among at least one entity detected in step 43, the name of AR engine B detected in step 45, and the entity detected in step 47. A URI for feature data of entity B is generated from the combination of names of tracking methods. Subsequently, the AR processing unit 12 obtains feature data representing the characteristics of entity B in a format processable by the AR engine B using this URI.

이어서, AR 처리부(12)는 이와 같이 획득된 피처 데이터를 기반으로 AR 엔진 B를 실행함으로써 증강현실 공간에서 엔터티 B의 추적을 수행한다. 보다 상세하게 설명하면, AR 처리부(12)가 AR 엔진 B를 호출하여 그것에 엔터티 B의 피처 데이터를 입력하고 AR 엔진 B를 실행한다. 이어서, AR 엔진 B는 AR 처리부(12)에 그 AR 엔진 B에 의한 엔터티 추적 결과, 예를 들어 엔터티 B의 위치를 AR 처리부(12)에 반환한다. 이어서, AR 처리부(12)는 카메라모듈(17)로부터 실시간으로 입력되는 복수의 현실공간 이미지 각각에 대하여 엔터티 B의 위치에 각 엔터티 B의 가상 이미지를 오버랩함으로써 각 현실공간 이미지에 대한 증강현실 이미지를 생성한다.Subsequently, the AR processing unit 12 executes the AR engine B based on the feature data obtained in this way to track the entity B in the augmented reality space. More specifically, the AR processing unit 12 calls AR engine B, inputs feature data of entity B into it, and executes AR engine B. Subsequently, the AR engine B returns to the AR processing unit 12 the result of tracking the entity by the AR engine B, for example, the location of the entity B to the AR processing unit 12 . Next, the AR processing unit 12 overlaps the virtual image of each entity B at the position of entity B with respect to each of a plurality of real space images input from the camera module 17 in real time, thereby generating an augmented reality image for each real space image. generate

증강현실 어플리케이션 N이 실행되어 검출된 엔터티가 "엔터티 N"이고, AR 엔진 N의 속성이 엔터티 N의 원본 이미지를 기반으로 실행되도록 설정되어 있는 경우라면, 41~46, 410~412 단계가 수행됨으로써 엔터티 N의 추적이 이루어지게 된다. 즉, URI 처리부(13)는 리소스 서버(2)의 호스트 네임, 43 단계에서 검출된 적어도 하나의 엔터티 중 엔터티 N의 네임의 조합으로부터 엔터티 N의 원본 이미지에 대한 URI를 생성한다. 이어서, AR 처리부(12)는 이 URI를 이용하여 엔터티 N의 원본 이미지를 획득한다.When the augmented reality application N is executed and the detected entity is “entity N” and the properties of the AR engine N are set to be executed based on the original image of the entity N, steps 41 to 46 and 410 to 412 are performed. Entity N is tracked. That is, the URI processor 13 generates a URI for an original image of entity N from a combination of the host name of the resource server 2 and the name of entity N among at least one entity detected in step 43 . Subsequently, the AR processing unit 12 acquires the original image of entity N using this URI.

이어서, AR 처리부(12)는 이와 같이 획득된 원본 이미지를 기반으로 AR 엔진 N을 실행함으로써 증강현실 공간에서 엔터티 N의 추적을 수행한다. 보다 상세하게 설명하면, AR 처리부(12)가 AR 엔진 N을 호출하여 그것에 엔터티 N의 원본 이미지를 입력하고 AR 엔진 N을 실행한다. 이어서, AR 엔진 N은 AR 처리부(12)에 그 AR 엔진 N에 의한 엔터티 추적 결과, 예를 들어 엔터티 N의 위치를 AR 처리부(12)에 반환한다. 이어서, AR 처리부(12)는 카메라모듈(17)로부터 실시간으로 입력되는 복수의 현실공간 이미지 각각에 대하여 엔터티 N의 위치에 각 엔터티 N의 가상 이미지를 오버랩함으로써 각 현실공간 이미지에 대한 증강현실 이미지를 생성한다. 다른 증강현실 어플리케이션의 실행 과정도 상기된 두 가지 예 중 어느 하나에 따라 이루어지게 된다. Next, the AR processing unit 12 executes the AR engine N based on the original image obtained in this way to track the entity N in the augmented reality space. More specifically, the AR processing unit 12 calls AR engine N, inputs the original image of entity N into it, and executes AR engine N. Subsequently, the AR engine N returns to the AR processing unit 12 the entity tracking result by the AR engine N, for example, the location of the entity N, to the AR processing unit 12. Then, the AR processing unit 12 overlaps the virtual image of each entity N at the position of the entity N with respect to each of a plurality of real space images input from the camera module 17 in real time, thereby generating an augmented reality image for each real space image. generate The execution process of other augmented reality applications is also performed according to any one of the above two examples.

도 7은 도 1에 도시된 리소스 서버(2)에 저장되어 있는 URI 테이블의 일례를 도시한 도면이다. 도 7에 도시된 URI 테이블은 URI 체계를 이용하여 복수의 엔터티, 복수의 AR 엔진, 복수의 엔터티 추적 방법 별로 계층화되어 저장된 피처데이터의 데이터베이스로서 이것에 대한 이해를 돕기 위해 시각화하여 나타낸 것이다. 도 7에 도시된 URI 테이블의 각 URI는 엔터티의 피처 데이터 또는 원본 이미지가 리소스 서버(2)의 데이터베이스의 어느 위치에 저장되어 있는가를 나타내기 때문에 AR 클라이언트(1)는 신속하게 각 엔터티의 피처 데이터 또는 원본 이미지를 획득할 수 있다. 도 7에 도시된 URI 테이블에 따르면, 복수 타입의 AR 엔진은 "ARCore", "ARKit", "Vuforia", "Wikitude"으로 분류된다. FIG. 7 is a diagram showing an example of a URI table stored in the resource server 2 shown in FIG. 1 . The URI table shown in FIG. 7 is a database of feature data layered and stored according to a plurality of entities, a plurality of AR engines, and a plurality of entity tracking methods using a URI scheme, and is visualized to aid understanding. Since each URI of the URI table shown in FIG. 7 indicates where in the database of the resource server 2 the feature data or original image of an entity is stored, the AR client 1 quickly provides the feature data or original image of each entity. The original image can be obtained. According to the URI table shown in FIG. 7 , multiple types of AR engines are classified into "ARCore", "ARKit", "Vuforia", and "Wikitude".

상술한 바와 같이, 어떤 AR 엔진의 속성이 엔터티를 추적하기 전에 엔터티의 원본 이미지로부터 그것의 피처 데이터를 생성하는 과정을 항상 수행하도록 설정되어 있다면 그 AR 엔진은 피처 데이터가 아닌 원본 이미지를 필요로 한다. 이 경우, 43 단계에서 검출된 엔터티의 네임이 "house"라면 이 엔터티의 원본 이미지에 대한 URI는 "http://server.com/outdoor/house/OriginalImage"가 될 수 있다. 43 단계에서 검출된 엔터티의 네임이 "cat"라면 이 엔터티의 원본 이미지에 대한 URI는 "http://server.com/indoor/cat/OriginalImage"가 될 수 있다. As mentioned above, if an AR engine's properties are set to always perform the process of generating its feature data from an entity's original image before tracking it, then that AR engine will require the original image, not the feature data. . In this case, if the name of the entity detected in step 43 is "house", the URI for the original image of this entity may be "http://server.com/outdoor/house/OriginalImage". If the name of the entity detected in step 43 is "cat", the URI for the original image of this entity may be "http://server.com/indoor/cat/OriginalImage".

각 AR 엔진의 타입에 관계없이 어떤 엔터티의 원본 이미지는 동일하므로 이와 같이 각 엔터티별로 원본 이미지에 대한 URI를 단일화하는 것이 리소스 서버(2)의 데이터 저장 공간의 효율적 사용 측면에서 바람직하다. 리소스 서버(2)가 관리하는 엔터티의 개수가 매우 많아질 경우, 각 엔터티의 피처 데이터 또는 원본 이미지의 저장 위치에 대한 빠른 접근을 위해 각 엔터티별 URI는 여러 엔터티를 그룹핑함으로써 계층적으로 정의될 수 있다. 즉, 어떤 엔터티의 URI는 그 엔터티가 속하는 그룹의 네임에 엔터티 네임을 부가하는 방식으로 생성될 수 있다. Since the original image of an entity is the same regardless of the type of each AR engine, it is preferable to unify the URI for the original image for each entity in terms of efficient use of the data storage space of the resource server 2. When the number of entities managed by the resource server 2 becomes very large, the URI for each entity can be hierarchically defined by grouping several entities for quick access to the storage location of each entity's feature data or original image. there is. That is, the URI of an entity may be generated by adding the entity name to the name of a group to which the entity belongs.

"ARCore"는 구글 컴퍼니의 안드로이드 플랫폼에서만 실행 가능한 네이티브 AR 엔진으로 현실 공간에서의 카메라 위치를 추정하는 "Motion tracking" 기능, 현실 공간의 지오메트리를 추정하는 "Environment understanding" 기능, 2차원 이미지를 추적하는 "Augmented images" 기능 등을 제공하고 있다. "ARCore"는 3차원 객체를 추적하는 기능을 제공하지 않는다. "ARCore" is a native AR engine that can only run on the Google Company's Android platform. It has a "Motion tracking" function that estimates the camera position in real space, an "Environment understanding" function that estimates the geometry of the real space, and a two-dimensional image tracking function. It provides "Augmented images" function, etc. "ARCore" does not provide the ability to track 3D objects.

도 2에 도시된 2차원 이미지가 43 단계에서 검출된 엔터티라고 한다면, 44 단계에서 생성된 엔터티의 URI는 "http://server.com/outdoor/house"가 된다. 45 단계에서 검출된 AR 엔진의 네임이 "ARCore"이고, 47 단계에서 검출된 엔터티 추적 방법의 네임이 "AugmentedImages"라면, 48 단계에서 생성된 피처 데이터의 URI는 "http://server.com/outdoor/house/ARCore/AugmentedImages"가 된다. 이 예는 "ARCore"의 속성이 엔터티의 피처 데이터를 기반으로 실행되는 것으로 설정된 경우에 해당된다. 만약, "ARCore"의 속성이 엔터티의 원본 이미지를 기반으로 실행되는 것으로 설정된 경우라면 상술한 바에 같은 원본 이미지의 URI가 사용될 수 있다. If the 2D image shown in FIG. 2 is the entity detected in step 43, the URI of the entity created in step 44 becomes "http://server.com/outdoor/house". If the name of the AR engine detected in step 45 is "ARCore" and the name of the entity tracking method detected in step 47 is "AugmentedImages", the URI of the feature data generated in step 48 is "http://server.com/ outdoor/house/ARCore/AugmentedImages". This example applies when the property of "ARCore" is set to run based on the entity's feature data. If the "ARCore" property is set to be executed based on the original image of the entity, the URI of the original image as described above may be used.

"ARKit"는 애플 컴퍼니의 iOS 플랫폼에서만 실행 가능한 네이티브 AR 엔진으로 현실 공간에서의 카메라 위치를 추정하는 "ARWorldTrackingConfiguration" 기능, GPS를 이용하여 카메라 위치를 추정하는 "ARGeoTrackingConfiguration" 기능, 2차원 이미지를 추적하는 "ARImageTrackingConfiguration" 기능, 3차원 객체를 추적하는 "ARObjectScanningConfiguration" 기능 등을 제공하고 있다. "ARKit" is a native AR engine that can only run on Apple Company's iOS platform. "ARWorldTrackingConfiguration" function to estimate camera position in real space, "ARGeoTrackingConfiguration" function to estimate camera position using GPS, and 2D image tracking function It provides "ARImageTrackingConfiguration" function and "ARObjectScanningConfiguration" function that tracks 3D objects.

도 2에 도시된 2차원 이미지가 43 단계에서 검출된 엔터티라고 한다면, 44 단계에서 생성된 엔터티의 URI는 "http://server.com/outdoor/house"가 된다. 45 단계에서 검출된 AR 엔진의 네임이 "ARKit"이고, 47 단계에서 검출된 엔터티 추적 방법의 네임이 "ARImageTracking"이라면, 48 단계에서 생성된 피처 데이터의 URI는 "http://server.com/outdoor/house/ARKit/ARImageTracking"이 된다. If the 2D image shown in FIG. 2 is the entity detected in step 43, the URI of the entity created in step 44 becomes "http://server.com/outdoor/house". If the name of the AR engine detected in step 45 is "ARKit" and the name of the entity tracking method detected in step 47 is "ARImageTracking", the URI of the feature data generated in step 48 is "http://server.com/ outdoor/house/ARKit/ARImageTracking".

도 3에 도시된 3차원 객체가 43 단계에서 검출된 엔터티라고 한다면, 44 단계에서 생성된 엔터티의 URI는 "http://server.com/indoor/cat"가 된다. 45 단계에서 검출된 AR 엔진의 네임이 "ARKit"이고, 47 단계에서 검출된 엔터티 추적 방법의 네임이 "ARObjectScanning"이라면, 48 단계에서 생성된 피처 데이터의 URI는 "http://server.com/indoor/cat/ARKit/ARObjectScanning"이 된다. 이 두 예는"ARKit"의 속성이 엔터티의 피처 데이터를 기반으로 실행되는 것으로 설정된 경우에 해당된다. 만약, "ARKit"의 속성이 엔터티의 원본 이미지를 기반으로 실행되는 것으로 설정된 경우라면 상술한 바에 같은 원본 이미지의 URI가 사용될 수 있다.If the 3D object shown in FIG. 3 is the entity detected in step 43, the URI of the entity created in step 44 becomes "http://server.com/indoor/cat". If the name of the AR engine detected in step 45 is "ARKit" and the name of the entity tracking method detected in step 47 is "ARObjectScanning", the URI of the feature data generated in step 48 is "http://server.com/ indoor/cat/ARKit/ARObjectScanning". These two examples correspond to cases in which the property of "ARKit" is set to run based on the entity's feature data. If the property of "ARKit" is set to be executed based on the original image of the entity, the URI of the original image as described above may be used.

"Vuforia"는 안드로이드와 iOS 둘 다에서 실행 가능한 PTC 컴퍼니의 AR 엔진으로 현실 공간에서의 카메라 위치를 추정하는 "Area Targets" 기능, 2차원 이미지를 추적하는 "Image Targets" 기능, 3차원 객체를 추적하는 "Model Targets" 기능 등을 제공하고 있다. "Vuforia" is PTC Company's AR engine running on both Android and iOS. "Area Targets" function to estimate camera position in real space, "Image Targets" function to track 2D images, 3D object tracking It provides "Model Targets" function, etc.

도 2에 도시된 2차원 이미지가 43 단계에서 검출된 엔터티라고 한다면, 44 단계에서 생성된 엔터티의 URI는 "http://server.com/outdoor/house"가 된다. 45 단계에서 검출된 AR 엔진의 네임이 "Vuforia"이고, 47 단계에서 검출된 엔터티 추적 방법의 네임이 "ImageTargets"이라면, 48 단계에서 생성된 피처 데이터의 URI는 "http://server.com/outdoor/house/Vuforia/Image Targets"가 된다. If the 2D image shown in FIG. 2 is the entity detected in step 43, the URI of the entity created in step 44 becomes "http://server.com/outdoor/house". If the name of the AR engine detected in step 45 is "Vuforia" and the name of the entity tracking method detected in step 47 is "ImageTargets", the URI of the feature data generated in step 48 is "http://server.com/ outdoor/house/Vuforia/Image Targets".

도 3에 도시된 3차원 객체가 43 단계에서 검출된 엔터티라고 한다면, 44 단계에서 생성된 엔터티의 URI는 "http://server.com/indoor/cat"가 된다. 45 단계에서 검출된 AR 엔진의 네임이 "Vuforia"이고, 47 단계에서 검출된 엔터티 추적 방법의 네임이 "Model Targets"라면, 48 단계에서 생성된 피처 데이터의 URI는 "http://server.com/indoor/cat/Vuforia/ModelTargets"가 된다. 이 두 예는 "Vuforia"의 속성이 엔터티의 피처 데이터를 기반으로 실행되는 것으로 설정된 경우에 해당된다. 만약, "Vuforia"의 속성이 엔터티의 원본 이미지를 기반으로 실행되는 것으로 설정된 경우라면 상술한 바에 같은 원본 이미지의 URI가 사용될 수 있다.If the 3D object shown in FIG. 3 is the entity detected in step 43, the URI of the entity created in step 44 becomes "http://server.com/indoor/cat". If the name of the AR engine detected in step 45 is "Vuforia" and the name of the entity tracking method detected in step 47 is "Model Targets", the URI of the feature data generated in step 48 is "http://server.com". /indoor/cat/Vuforia/ModelTargets". These two examples correspond to the case where the property of "Vuforia" is set to run based on the entity's feature data. If the property of "Vuforia" is set to be executed based on the original image of the entity, the URI of the original image as described above may be used.

"Wikitude"는 안드로이드와 iOS 둘 다에서 실행 가능한 위키튜드(Wikitude) 컴퍼니의 AR 엔진으로 현실 공간에서의 카메라 위치를 추정하는 "Scene Tracking" 기능, 평면을 인식하여 가상 이미지를 오버랩할 수 있는 "Instant Tracking" 기능, 2차원 이미지를 추적하는 "Image Tracking" 기능, 3차원 객체를 추적하는 "Object Tracking" 기능 등을 제공하고 있다. "Wikitude" is the Wikitude company's AR engine that runs on both Android and iOS. It has a "Scene Tracking" function that estimates the camera position in real space, and "Instant" that can overlap virtual images by recognizing planes. Tracking" function, "Image Tracking" function for tracking 2D images, and "Object Tracking" function for tracking 3D objects are provided.

도 2에 도시된 2차원 이미지가 43 단계에서 검출된 엔터티라고 한다면, 44 단계에서 생성된 엔터티의 URI는 "http://server.com/outdoor/house"가 된다. 45 단계에서 검출된 AR 엔진의 네임이 "Wikitude"이고, 47 단계에서 검출된 엔터티 추적 방법의 네임이 "ImageTracking"이라면, 48 단계에서 생성된 피처 데이터의 URI는 "http://server.com/outdoor/house/Wikitude/ImageTracking"이 된다. If the 2D image shown in FIG. 2 is the entity detected in step 43, the URI of the entity created in step 44 becomes "http://server.com/outdoor/house". If the name of the AR engine detected in step 45 is "Wikitude" and the name of the entity tracking method detected in step 47 is "ImageTracking", the URI of the feature data generated in step 48 is "http://server.com/ outdoor/house/Wikitude/ImageTracking".

도 3에 도시된 3차원 객체가 43 단계에서 검출된 엔터티라고 한다면, 44 단계에서 생성된 엔터티의 URI는 "http://server.com/indoor/cat"가 된다. 45 단계에서 검출된 AR 엔진의 네임이 "Wikitude"이고, 47 단계에서 검출된 엔터티 추적 방법의 네임이 "ObjectTracking"라면, 48 단계에서 생성된 피처 데이터의 URI는 "http://server.com/indoor/cat/Wikitude/ObjectTracking"이 된다. 이 두 예는 "Wikitude"의 속성이 엔터티의 피처 데이터를 기반으로 실행되는 것으로 설정된 경우에 해당된다. 만약, "Wikitude"의 속성이 엔터티의 원본 이미지를 기반으로 실행되는 것으로 설정된 경우라면 상술한 바에 같은 원본 이미지의 URI가 사용될 수 있다.If the 3D object shown in FIG. 3 is the entity detected in step 43, the URI of the entity created in step 44 becomes "http://server.com/indoor/cat". If the name of the AR engine detected in step 45 is "Wikitude" and the name of the entity tracking method detected in step 47 is "ObjectTracking", the URI of the feature data generated in step 48 is "http://server.com/ indoor/cat/Wikitude/ObjectTracking". These two examples are when the property of "Wikitude" is set to run based on the entity's feature data. If the property of "Wikitude" is set to be executed based on the original image of the entity, the URI of the original image as described above may be used.

상술한 바와 같이, 각 AR 엔진의 타입에 따라 그것이 제공하는 기능이 다를 뿐만 아니라 엔터티가 2차원 이미지 또는 3차원 객체 중 어느 것에 해당되는가에 각 AR 엔진의 엔터티 추적 성능이 다르며, 엔터티의 형상에 따라서도 각 AR 엔진의 엔터티 추적 성능이 다르게 나타난다. 따라서, 증강현실 컨텐츠가 사용자에게 어떤 증강현실 서비스를 제공하는가에 따라 그것에 적합한 AR 엔진이 사용되도록 증강현실 어플리케이션이 설계될 필요가 있다. 증강현실 어플리케이션이 고품질의 증강현실 서비스를 제공하기 위해 서로 다른 복수의 AR 엔진을 사용할 수도 있다. 특히, "ARCore", "ARKit"은 그것의 전용 플랫폼에서만 실행 가능하기 때문에 동일한 증강현실 서비스에 대해서 별개의 증강현실 어플리케이션이 설계될 필요가 있다. As described above, not only does the function provided differ according to the type of each AR engine, but also the entity tracking performance of each AR engine differs depending on whether the entity corresponds to a 2D image or a 3D object, and depending on the shape of the entity. Also, the entity tracking performance of each AR engine is different. Therefore, it is necessary to design an augmented reality application so that an AR engine suitable for augmented reality content is provided to the user according to what kind of augmented reality service is provided. Augmented reality applications may use a plurality of different AR engines to provide high-quality augmented reality services. In particular, since “ARCore” and “ARKit” can be executed only on their dedicated platforms, separate augmented reality applications need to be designed for the same augmented reality service.

본 실시예에 따르면, AR 엔진 및 엔터티 추적 방법에 독립적으로 엔터티의 피처 데이터에 대한 URI를 이용하여 리소스 서버(2)로부터 그 엔터티의 피처 데이터를 획득하고, 이와 같이 획득된 피처 데이터를 기반으로 AR 엔진을 실행하기 때문에 증강현실 어플리케이션은 AR 엔진 및 엔터티 추적 방법 별로 엔터티의 원본 이미지로부터 피처 데이터를 생성하는 여러 알고리즘을 포함할 필요가 없게 되어 효율적인 증강현실 어플리케이션의 개발이 가능하게 된다.According to the present embodiment, the feature data of the entity is obtained from the resource server 2 using the URI for the feature data of the entity independently of the AR engine and the entity tracking method, and AR is performed based on the feature data obtained in this way. Since the engine runs, the augmented reality application does not need to include various algorithms that generate feature data from the original image of the entity for each AR engine and entity tracking method, enabling the development of an efficient augmented reality application.

본 실시예에 따른 증강현실 공간에서의 엔터티 추적은 엔터티의 피처 데이터에 대한 URI를 이용하여 리소스 서버(2)로부터 그 엔터티의 피처 데이터를 획득하고, AR 엔진을 호출하여 실행하는 것만으로 이루어질 수 있기 때문에 AR 엔진 및 엔터티 추적 방법에 의존적인 피처 데이터 생성 알고리즘을 포함하지 않는 범용적인 증강현실 어플리케이션의 제공이 가능하게 된다. Entity tracking in the augmented reality space according to the present embodiment can be achieved only by obtaining the entity's feature data from the resource server 2 using the URI for the entity's feature data, and calling and executing the AR engine. Therefore, it is possible to provide a general-purpose augmented reality application that does not include an AR engine and a feature data generating algorithm dependent on an entity tracking method.

증강현실 어플리케이션이 AR 엔진 및 엔터티 추적 방법 별로 피처 데이터 생성 알고리즘을 포함할 필요가 없게 됨에 따라 증강현실 어플리케이션의 사이즈가 감소되어 증강현실 어플리케이션 개발에 요구되는 작업량이 감소될 수 있다. 어떤 증강현실 어플리케이션을 개발할 경우, 기존 증강현실 어플리케이션에서 엔터티의 피처 데이터에 대한 URI를 이용하여 리소스 서버(2)로부터 그 엔터티의 피처 데이터를 획득하는 알고리즘 등 대부분의 알고리즘을 그대로 재사용할 수 있게 되어 증강현실 어플리케이션의 개발이 매우 용이해진다. As the augmented reality application does not need to include feature data generating algorithms for each AR engine and entity tracking method, the size of the augmented reality application can be reduced, and thus the amount of work required to develop the augmented reality application can be reduced. When developing any augmented reality application, most of the algorithms, such as the algorithm for obtaining feature data of the entity from the resource server (2) using the URI of the entity's feature data in the existing augmented reality application, can be reused as they are. Development of real-world applications becomes very easy.

한편, 상술한 바와 같은 본 발명의 일 실시예에 따른 엔터티 추적 방법은 컴퓨터의 프로세서에서 실행 가능한 프로그램으로 작성 가능하고, 이 프로그램을 컴퓨터로 읽을 수 있는 기록매체에 기록하여 실행시키는 컴퓨터에서 구현될 수 있다. 컴퓨터는 데스크탑 컴퓨터, 노트북 컴퓨터, 스마트폰, 임베디드 타입의 컴퓨터 등 프로그램을 실행시킬 수 있는 모든 타입의 컴퓨터를 포함한다. 또한, 상술한 본 발명의 일 실시예에서 사용된 데이터의 구조는 컴퓨터로 읽을 수 있는 기록매체에 여러 수단을 통하여 기록될 수 있다. 컴퓨터로 읽을 수 있는 기록매체는 램(RAM), 롬(ROM), 마그네틱 저장매체(예를 들면, 플로피 디스크, 하드디스크 등), 광학적 판독 매체(예를 들면, 시디롬, 디브이디 등)와 같은 저장매체를 포함한다.Meanwhile, the entity tracking method according to an embodiment of the present invention as described above can be written as a program executable on a computer processor, and can be implemented on a computer that records and executes the program on a computer-readable recording medium. there is. The computer includes all types of computers capable of executing programs, such as desktop computers, notebook computers, smart phones, and embedded-type computers. In addition, the structure of data used in one embodiment of the present invention described above can be recorded on a computer-readable recording medium through various means. Computer-readable recording media include storage such as RAM, ROM, magnetic storage media (eg, floppy disk, hard disk, etc.), optical reading media (eg, CD-ROM, DVD, etc.) includes media

이제까지 본 발명에 대하여 그 바람직한 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far, the present invention has been looked at with respect to its preferred embodiments. Those skilled in the art to which the present invention pertains will be able to understand that the present invention can be implemented in a modified form without departing from the essential characteristics of the present invention. Therefore, the disclosed embodiments should be considered from an illustrative rather than a limiting point of view. The scope of the present invention is shown in the claims rather than the foregoing description, and all differences within the equivalent scope will be construed as being included in the present invention.

1 ... AR 클라이언트
11 ... 메인프로세서
12 ... AR 처리부
13 ... URI 처리부
14 ... 통신모듈
15 ... 입력모듈)
16 ... 출력모듈
17 ... 카메라모듈
18 ... 센서모듈
19 ... 스토리지
20 ... 버스
2 ... 리소스 서버
1 ... AR client
11 ... main processor
12 ... AR processing unit
13 ... URI processing unit
14 ... communication module
15 ... input module)
16 ... output module
17 ... camera module
18 ... sensor module
19 ... Storage
20 ... bus
2 ... resource server

Claims (11)

증강현실 엔진에 독립적인 피처 데이터 기반의 엔터티 추적 방법에 있어서,
제 1 엔터티의 네임과 제 1 AR 엔진의 네임의 조합으로부터 상기 제 1 엔터티의 피처 데이터에 대한 URI(Uniform Resource Identifier)를 생성하는 단계;
상기 제 1 엔터티의 피처 데이터에 대한 URI를 이용하여 상기 제 1 엔터티의 피처 데이터에 대한 URI의 호스트에 해당하는 리소스 서버에 상기 제 1 엔터티의 특징을 상기 제 1 AR 엔진에서 처리 가능한 포맷으로 나타낸 제 1 엔터티의 피처 데이터를 요청함으로써 상기 리소스 서버로부터 상기 제 1 엔터티의 피처 데이터를 획득하는 단계; 및
상기 획득된 제 1 엔터티의 피처 데이터를 기반으로 상기 제 1 AR 엔진을 실행함으로써 증강현실 공간에서의 상기 제 1 엔터티의 추적을 수행하는 단계를 포함하는 것을 특징으로 하는 엔터티 추적 방법.
In the feature data-based entity tracking method independent of the augmented reality engine,
generating a Uniform Resource Identifier (URI) for feature data of the first entity from a combination of a name of the first entity and a name of the first AR engine;
Displaying features of the first entity in a format processable by the first AR engine to a resource server corresponding to a host of the URI for feature data of the first entity using the URI for feature data of the first entity. obtaining feature data of the first entity from the resource server by requesting feature data of the first entity; and
and performing tracking of the first entity in an augmented reality space by executing the first AR engine based on the acquired feature data of the first entity.
제 1 항에 있어서,
상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성하는 단계는 상기 리소스 서버의 호스트 네임, 상기 제 1 엔터티의 네임, 및 상기 제 1 AR 엔진의 네임의 조합으로부터 상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성하는 것을 특징으로 하는 엔터티 추적 방법.
According to claim 1,
The generating of the URI for feature data of the first entity may include a URI for feature data of the first entity from a combination of the host name of the resource server, the name of the first entity, and the name of the first AR engine. Entity tracking method characterized in that for generating.
제 2 항에 있어서,
상기 리소스 서버의 호스트 네임과 상기 제 1 엔터티의 네임의 조합으로부터 상기 제 1 엔터티의 URI를 생성하는 단계; 및
복수 타입의 AR 엔진 중에서 상기 제 1 엔터티의 추적에 사용될 제 1 AR 엔진을 검출하는 단계를 더 포함하고,
상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성하는 단계는 상기 생성된 제 1 엔터티의 URI에 상기 검출된 제 1 AR 엔진의 네임을 부가함으로써 상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성하는 것을 특징으로 하는 엔터티 추적 방법.
According to claim 2,
generating a URI of the first entity from a combination of the host name of the resource server and the name of the first entity; and
Further comprising detecting a first AR engine to be used for tracking the first entity from among multiple types of AR engines;
The generating of the URI for the feature data of the first entity includes generating the URI for the feature data of the first entity by adding the name of the detected first AR engine to the generated URI of the first entity. Characterized entity tracking method.
제 3 항에 있어서,
상기 제 1 엔터티에 대해 상기 제 1 AR 엔진이 사용하고자 하는 엔터티 추적 방법을 검출하는 단계를 더 포함하고,
상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성하는 단계는 상기 생성된 제 1 엔터티의 URI에 상기 검출된 제 1 AR 엔진의 네임과 상기 검출된 엔터티 추적 방법의 네임을 부가함으로써 상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성하는 것을 특징으로 하는 엔터티 추적 방법.
According to claim 3,
Further comprising detecting an entity tracking method to be used by the first AR engine for the first entity;
The generating of the URI for the feature data of the first entity may include adding the name of the detected first AR engine and the name of the detected entity tracking method to the URI of the first entity to obtain information about the first entity. An entity tracking method characterized by generating a URI for feature data.
제 1 항에 있어서,
상기 엔터티 추적 방법을 검출하는 단계는 상기 제 1 엔터티가 2차원 이미지 또는 3차원 객체 중 어느 것에 해당되는가에 따라 상기 제 1 엔터티에 대해 상기 제 1 AR 엔진이 사용하고자 하는 엔터티 추적 방법을 검출하는 것을 특징으로 하는 엔터티 추적 방법.
According to claim 1,
The detecting of the entity tracking method includes detecting an entity tracking method to be used by the first AR engine for the first entity according to whether the first entity corresponds to a 2D image or a 3D object. Characterized entity tracking method.
제 1 항에 있어서,
증강현실 컨텐츠로부터 상기 증강현실 컨텐츠가 나타내는 증강현실 공간에서의 적어도 하나의 엔터티를 검출하는 단계를 더 포함하고,
상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성하는 단계는 상기 검출된 적어도 하나의 엔터티 중 상기 제 1 엔터티의 네임, 및 상기 제 1 AR 엔진의 네임의 조합으로부터 상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성하는 것을 특징으로 하는 엔터티 추적 방법.
According to claim 1,
Further comprising the step of detecting at least one entity in the augmented reality space represented by the augmented reality content from the augmented reality content,
In the generating of the URI for the feature data of the first entity, the URI for the feature data of the first entity is obtained from a combination of a name of the first entity among the detected at least one entity and a name of the first AR engine. An entity tracking method characterized by generating a URI.
제 1 항에 있어서,
제 2 엔터티의 네임과 제 2 AR 엔진의 네임의 조합으로부터 상기 제 2 엔터티의 피처 데이터에 대한 URI를 생성하는 단계;
상기 제 2 엔터티의 피처 데이터에 대한 URI를 이용하여 상기 제 2 엔터티의 특징을 상기 제 2 AR 엔진에서 처리 가능한 포맷으로 나타낸 제 2 엔터티의 피처 데이터를 획득하는 단계; 및
상기 획득된 제 2 엔터티의 피처 데이터를 기반으로 상기 제 2 AR 엔진을 실행함으로써 증강현실 공간에서 상기 제 2 엔터티의 추적을 수행하는 단계를 포함하는 것을 특징으로 하는 엔터티 추적 방법.
According to claim 1,
generating a URI for feature data of a second entity from a combination of a name of a second entity and a name of a second AR engine;
acquiring feature data of a second entity representing features of the second entity in a format processable by the second AR engine by using a URI of the feature data of the second entity; and
and performing tracking of the second entity in an augmented reality space by executing the second AR engine based on the acquired feature data of the second entity.
제 2 항에 있어서,
상기 제 1 AR 엔진이 상기 제 1 엔터티의 추적을 위해 상기 제 1 엔터티의 피처 데이터 또는 원본 이미지 중 어느 것을 필요로 하는가를 확인하는 단계를 더 포함하고,
상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성하는 단계는 상기 제 1 AR 엔진이 상기 제 1 엔터티의 피처 데이터를 필요로 하는 것으로 확인되면, 상기 제 1 엔터티의 피처 데이터에 대한 URI를 생성하는 것을 특징으로 하는 엔터티 추적 방법.
According to claim 2,
The first AR engine may further include determining which of feature data or an original image of the first entity is required for tracking the first entity,
The generating of the URI for the feature data of the first entity includes generating a URI for the feature data of the first entity if it is determined that the first AR engine requires the feature data of the first entity. Characterized entity tracking method.
제 8 항에 있어서,
상기 제 1 AR 엔진이 상기 제 1 엔터티의 원본 이미지를 필요로 하는 것으로 확인되면, 리소스 서버의 호스트 네임과 상기 제 1 엔터티의 네임의 조합으로부터 상기 제 1 엔터티의 원본 이미지에 대한 URI를 생성하는 단계;
상기 제 1 엔터티의 원본 이미지에 대한 URI를 이용하여 상기 제 1 엔터티의 원본 이미지를 획득하는 단계; 및
상기 획득된 제 1 엔터티의 원본 이미지를 기반으로 상기 제 1 AR 엔진을 실행함으로써 상기 증강현실 공간에서 상기 제 1 엔터티의 추적을 수행하는 단계를 더 포함하는 것을 특징으로 하는 엔터티 추적 방법.
According to claim 8,
If it is determined that the first AR engine requires the original image of the first entity, generating a URI for the original image of the first entity from a combination of a host name of a resource server and the name of the first entity. ;
acquiring an original image of the first entity by using a URI of the original image of the first entity; and
and performing tracking of the first entity in the augmented reality space by executing the first AR engine based on the acquired original image of the first entity.
제 1 항 내지 제 9 항 중에 어느 한 항의 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체. A computer-readable recording medium recording a program for executing the method of any one of claims 1 to 9 in a computer. 증강현실 엔진에 독립적인 피처 데이터 기반의 엔터티 추적 장치에 있어서,
제 1 엔터티의 네임과 제 1 AR 엔진의 네임의 조합으로부터 제 1 엔터티의 피처 데이터에 대한 URI를 생성하는 URI 처리부; 및
상기 제 1 엔터티의 피처 데이터에 대한 URI를 이용하여 상기 제 1 엔터티의 피처 데이터에 대한 URI의 호스트에 해당하는 리소스 서버에 상기 제 1 엔터티의 특징을 상기 제 1 AR 엔진에서 처리 가능한 포맷으로 나타낸 제 1 엔터티의 피처 데이터를 요청함으로써 상기 리소스 서버로부터 상기 제 1 엔터티의 피처 데이터를 획득하고, 상기 획득된 제 1 엔터티의 피처 데이터를 기반으로 상기 제 1 AR 엔진을 실행함으로써 증강현실 공간에서 상기 제 1 엔터티의 추적을 수행하는 AR 처리부를 포함하는 것을 특징으로 하는 엔터티 추적 장치.
In the feature data-based entity tracking device independent of the augmented reality engine,
a URI processor generating a URI for feature data of the first entity from a combination of the name of the first entity and the name of the first AR engine; and
Displaying features of the first entity in a format processable by the first AR engine to a resource server corresponding to a host of the URI for feature data of the first entity using the URI for feature data of the first entity. The feature data of the first entity is acquired from the resource server by requesting feature data of the first entity, and the first AR engine is executed based on the obtained feature data of the first entity to obtain the first entity in the augmented reality space. An entity tracking device comprising an AR processor that tracks an entity.
KR1020210111237A 2021-01-22 2021-08-23 Method and Apparatus for entity tracking based on feature data independent of augmented reality engine KR102489927B1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202111610866.0A CN114782655A (en) 2021-01-22 2021-12-27 Entity tracking method and device based on independent feature data
US17/565,455 US11880948B2 (en) 2021-01-22 2021-12-30 Method and apparatus for tracking entity based on feature data independent of augmented reality engine

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020210009217 2021-01-22
KR20210009217 2021-01-22

Publications (2)

Publication Number Publication Date
KR20220106661A KR20220106661A (en) 2022-07-29
KR102489927B1 true KR102489927B1 (en) 2023-01-18

Family

ID=82606523

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210111237A KR102489927B1 (en) 2021-01-22 2021-08-23 Method and Apparatus for entity tracking based on feature data independent of augmented reality engine

Country Status (1)

Country Link
KR (1) KR102489927B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101556579B1 (en) * 2011-11-29 2015-10-01 퀄컴 인코포레이티드 Tracking three-dimensional objects

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2554633B (en) * 2016-06-24 2020-01-22 Imperial College Sci Tech & Medicine Detecting objects in video data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101556579B1 (en) * 2011-11-29 2015-10-01 퀄컴 인코포레이티드 Tracking three-dimensional objects

Also Published As

Publication number Publication date
KR20220106661A (en) 2022-07-29

Similar Documents

Publication Publication Date Title
US20200250889A1 (en) Augmented reality system
US9904664B2 (en) Apparatus and method providing augmented reality contents based on web information structure
US8243061B2 (en) Image processing apparatus and method of controlling operation of same
US11475636B2 (en) Augmented reality and virtual reality engine for virtual desktop infrastucture
US20200193679A1 (en) Two-part context based rendering solution for high fidelity augmented reality in virtualized environment
CN109725724B (en) Gesture control method and device for screen equipment
CN111354063A (en) Three-dimensional element rendering method, desktop cloud server and desktop cloud system
KR20200118677A (en) Method and system for updating map for pose estimation based on images
US12062134B2 (en) Location based augmented-reality system
US9645983B1 (en) Modifying a document at a script processing server using a client device's state information
CN111597466A (en) Display method and device and electronic equipment
CN110825383B (en) Video interaction method and device and computer readable storage medium
Nitika et al. A study of Augmented Reality performance in web browsers (WebAR)
CN112465971B (en) Method and device for guiding point positions in model, storage medium and electronic equipment
KR102489927B1 (en) Method and Apparatus for entity tracking based on feature data independent of augmented reality engine
US11880948B2 (en) Method and apparatus for tracking entity based on feature data independent of augmented reality engine
US10621768B2 (en) Augmented reality and virtual reality engine at the object level for virtual desktop infrastucture
CN115018975A (en) Data set generation method and device, electronic equipment and storage medium
WO2016107457A1 (en) Information presentation method and apparatus
JP2018077816A (en) Customized map generation with real-time messages and locations from concurrent users
CN115004293A (en) Video-based 3D gesture and mesh estimation based on time-aware self-supervised learning
US12047465B1 (en) Optimized discovery system to support embedded webpages
CN115238258B (en) Interactive verification method and device, electronic equipment and storage medium
KR102726348B1 (en) Location based augmented-reality system
KR102243138B1 (en) Mixed reality device support apparatus using environment information capture and method thereof

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right