KR20140081729A - Location correction of virtual objects - Google Patents

Location correction of virtual objects Download PDF

Info

Publication number
KR20140081729A
KR20140081729A KR20130160293A KR20130160293A KR20140081729A KR 20140081729 A KR20140081729 A KR 20140081729A KR 20130160293 A KR20130160293 A KR 20130160293A KR 20130160293 A KR20130160293 A KR 20130160293A KR 20140081729 A KR20140081729 A KR 20140081729A
Authority
KR
South Korea
Prior art keywords
virtual
real
location
world
virtual object
Prior art date
Application number
KR20130160293A
Other languages
Korean (ko)
Inventor
우데이 패트레
Original Assignee
다솔 시스템즈 델미아 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 다솔 시스템즈 델미아 코포레이션 filed Critical 다솔 시스템즈 델미아 코포레이션
Publication of KR20140081729A publication Critical patent/KR20140081729A/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/20Editing of 3D images, e.g. changing shapes or colours, aligning objects or positioning parts
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T17/00Three dimensional [3D] modelling, e.g. data description of 3D objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2219/00Indexing scheme for manipulating 3D models or images for computer graphics
    • G06T2219/20Indexing scheme for editing of 3D models
    • G06T2219/2016Rotation, translation, scaling

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Architecture (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Geometry (AREA)
  • Processing Or Creating Images (AREA)

Abstract

A computer-implemented method is provided for use in location correction of virtual objects in a virtual model of a real-world scene. Location of an object consists of both position and orientation of the virtual object. The method includes generating the virtual model, including a virtual object, and acquiring at least one digital image of a real-world object within the real-world scene, wherein the real-world object corresponds to the virtual object. The method also includes calculating an image-based positional difference between at least one predefined point on the virtual object and at least one corresponding point on the real-world object, adjusting the position and/or the orientation of the virtual object based on this image positional difference, and adjusting the virtual model with respect to the corrected location of the virtual object.

Description

가상 오브젝트들의 로케이션 보정{LOCATION CORRECTION OF VIRTUAL OBJECTS}Location Correction of Virtual Objects {LOCATION CORRECTION OF VIRTUAL OBJECTS}

본원에서 설명하는 실시형태들은 일반적으로 현실 세계 오브젝트들 및/또는 장면들의 그래픽 표현들에 관한 것으로, 그리고 좀더 자세하게는, 3차원 (3D) 컴퓨터 그래픽 모델링 및 시뮬레이션, 및 현실 세계 오브젝트들을 나타내는 가상 오브젝트들의 레이아웃 및 로케이션 보정에 관한 것이다. 오브젝트의 로케이션은 오브젝트의 위치 및 방위 양자로 이루어진다.Embodiments described herein relate generally to graphical representations of real-world objects and / or scenes, and more particularly, to three-dimensional (3D) computer graphics modeling and simulation, and to virtual objects that represent real- Layout and location correction. The location of the object consists of both the position and orientation of the object.

제조 작업셀들의 3차원 컴퓨터 그래픽 시뮬레이션들이 제조 프로세스들을 시뮬레이션하는데 현재 사용되고 있다. 따라서, 프로그램들 또는 시뮬레이션 모델들이 산업 로봇들과 같은 리소스들을 구동하기 위해 작업 현장 상의 컴퓨터들로 다운로드된다. 이 프로세스의 일부분으로서, 제조 작업셀 (제조 프로세스에 사용되는 기계들, 고정물들, 및 작업 편들을 포함함) 의 가상 3D 모델은 작업 현장 상의 실제 작업셀에서 실제 위치 및 방위들을 매칭하기 위해, 시뮬레이트되는 작업셀에서 레이아웃이 조정되어야 한다. 이것은 시뮬레이트되는 제조 프로그램들이 도달가능성 (reachability) 및 충돌들과 같은 이슈들에 대한 프로세스를 검증가능하게 한다. 이것은 또한 공장에서의 산업 로봇들과 같은 제조 리소스들에 다운로드되는 오프라인 프로그램들의 올바른 동작을 가능하게 한다.Three dimensional computer graphics simulations of manufacturing work cells are now being used to simulate manufacturing processes. Thus, programs or simulation models are downloaded to computers on the job site to drive resources such as industrial robots. As part of this process, a virtual 3D model of the manufacturing workcell (including the machines, fixtures, and work pieces used in the manufacturing process) is simulated to match the actual position and orientation in the actual working cell on the job site The layout must be adjusted in the working cell. This enables the simulated manufacturing programs to verify processes for issues such as reachability and conflicts. This also enables correct operation of offline programs downloaded to manufacturing resources such as industrial robots at the factory.

시뮬레이션 모델에서 3D 로케이션 보정의 기지의 방법들은 좌표 측정 기계들, 세오돌라이트들 (theodolites), 및/또는 레이저 거리 측정기들과 같은 비싸고 복잡한 측정 장비를 이용한다. 그러나, 이런 장비는 공장에서 셋업되어야 한다. 공장으로부터 얻은 측정치 데이터가 그후 3D 시뮬레이션으로 임포트되어, 모델에 대한 조정들을 행하는데 사용된다. 따라서, 이런 기지의 방법들은 별도의 디바이스들이 구매되고 사용자들이 그들을 사용하기 위해 훈련을 받을 것을 필요로 한다. 더욱이, 이런 기지의 방법들은 상이한 로케이션들에서 다수의 단계들을 필요로 한다.The known methods of 3D location correction in the simulation model use expensive and complex measurement equipment such as coordinate measuring machines, theodolites, and / or laser range finders. However, such equipment must be set up at the factory. Measure data obtained from the factory is then imported into the 3D simulation and used to make adjustments to the model. Thus, these known methods require that separate devices be purchased and users trained to use them. Moreover, these known methods require multiple steps in different locations.

일 양태에서, 현실 세계 (real-world) 장면의 가상 모델의 로케이션 (location) 보정에 이용하기 위한 컴퓨터-구현 방법이 제공된다. 이 방법은 가상 오브젝트 (object) 를 포함한, 가상 모델을 발생시키는 단계, 및 현실 세계 장면 내에서 현실 세계 오브젝트의 적어도 하나의 디지털 이미지를 획득하는 단계를 포함하며, 상기 현실 세계 오브젝트는 가상 오브젝트에 대응한다. 이 방법은 또한 가상 오브젝트 상의 적어도 하나의 미리 정의된 지점과 현실 세계 오브젝트 상의 적어도 하나의 대응하는 지점 사이의 이미지-기반의 위치상의 차이를 계산하는 단계, 이미지 위치상의 차이에 기초하여 가상 오브젝트의 위치 (position) 및/또는 방위 (orientation) 를 조정하는 단계, 및 가상 오브젝트의 보정된 로케이션에 대해서 가상 모델을 조정하는 단계를 포함한다.In one aspect, a computer-implemented method is provided for use in location correction of a virtual model of a real-world scene. The method includes generating a virtual model, including a virtual object, and obtaining at least one digital image of a real world object within a real world scene, wherein the real world object corresponds to a virtual object do. The method also includes calculating a difference on an image-based position between at least one predefined point on the virtual object and at least one corresponding point on the real world object, determining a position of the virtual object based on the difference in image position adjusting the position and / or orientation of the virtual object, and adjusting the virtual model for the corrected location of the virtual object.

또 다른 양태에서, 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터가 제공된다. 컴퓨터는 가상 모델 및 그 가상 모델 내 가상 오브젝트를 저장하도록 구성된 메모리 영역을 포함한다. 컴퓨터는 또한 메모리 영역에 커플링된 프로세서를 포함한다. 프로세서는 가상 오브젝트를 포함한, 가상 모델을 발생시키고, 그리고 현실 세계 장면 내에서 현실 세계 오브젝트의 적어도 하나의 디지털 이미지를 획득하도록 구성되며, 상기 현실 세계 오브젝트는 가상 오브젝트에 대응한다. 프로세서는 또한 가상 오브젝트 상의 적어도 하나의 미리 정의된 지점과 현실 세계 오브젝트 상의 적어도 하나의 대응하는 지점 사이의 이미지-기반의 위치상의 차이를 계산하고, 이미지 위치상의 차이에 기초하여 가상 오브젝트의 위치 및/또는 방위를 조정하고, 그리고 가상 오브젝트의 보정된 로케이션에 대해서 가상 모델을 조정하도록 구성된다.In another aspect, a computer is provided for use in location correction of a virtual model of a real-world scene. The computer includes a virtual model and a memory area configured to store virtual objects in the virtual model. The computer also includes a processor coupled to the memory region. The processor is configured to generate a virtual model, including a virtual object, and to acquire at least one digital image of the real world object within the real world scene, wherein the real world object corresponds to the virtual object. The processor may also calculate a difference on an image-based position between at least one predefined point on the virtual object and at least one corresponding point on the real world object, and determine a position and / Or orientation, and to adjust the virtual model for the corrected location of the virtual object.

또 다른 양태에서, 컴퓨터 프로그램 제품은 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터-실행가능한 구성요소들 (components) 을 갖는 하나 이상의 비일시성 컴퓨터-판독가능 저장 매체들을 포함한다. 구성요소들은 프로세서로 하여금, 가상 오브젝트를 포함한 가상 모델을 발생시키도록 하는 발생 구성요소 (generation component); 및 프로세서로 하여금 현실 세계 장면 내에서 현실 세계 오브젝트의 적어도 하나의 디지털 이미지를 획득하도록 하는 획득 구성요소 (acquisition component) 를 포함하며, 상기 현실 세계 오브젝트는 가상 오브젝트에 대응한다. 구성요소들은 또한 프로세서로 하여금, 가상 오브젝트 상의 적어도 하나의 미리 정의된 지점과 현실 세계 오브젝트 상의 적어도 하나의 대응하는 지점 사이의 이미지-기반의 위치상의 차이를 계산하고, 이미지 위치상의 차이에 기초하여 가상 오브젝트의 위치 및/또는 방위를 조정하고, 그리고 가상 오브젝트의 보정된 로케이션에 대해서 가상 모델을 조정하도록 하는 보정 구성요소 (correction component) 를 포함한다.In another aspect, a computer program product comprises one or more non-temporal computer-readable storage media having computer-executable components for use in location correction of a virtual model of a real-world scene. The components include a generation component that causes the processor to generate a virtual model that includes a virtual object; And an acquisition component that causes the processor to acquire at least one digital image of a real-world object within the real-world scene, wherein the real-world object corresponds to a virtual object. The components can also be used by the processor to calculate a difference on an image-based position between at least one predefined point on the virtual object and at least one corresponding point on the real world object, And a correction component for adjusting the position and / or orientation of the object and for adjusting the virtual model for the corrected location of the virtual object.

도 1 은 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 예시적인 컴퓨터 시스템의 개략 블록도이다.
도 2 는 도 1 에 나타낸 컴퓨터 시스템의 동작을 예시하는 플로우차트이다.
도 3 은 도 1 에 나타낸 컴퓨터 시스템의 동작을 추가로 예시하는 플로우차트이다.
도 4a 내지 도 4g 는 도 1 에 나타낸 컴퓨터 시스템에 사용되는 클라이언트 디바이스의 예시적인 디스플레이의 예시들이다.
도 5 는 도 1 에 나타낸 서버 시스템 및/또는 클라이언트 디바이스들과 함께 사용하기 위한 예시적인 컴퓨터 아키텍처의 개략 블록도이다.
Figure 1 is a schematic block diagram of an exemplary computer system for use in location correction of a virtual model of a real-world scene.
2 is a flow chart illustrating the operation of the computer system shown in Fig.
3 is a flow chart further illustrating the operation of the computer system shown in Fig.
4A-4G are examples of exemplary displays of client devices used in the computer system shown in FIG.
5 is a schematic block diagram of an exemplary computer architecture for use with the server system and / or client devices shown in FIG.

본 발명의 예시적인 실시형태들의 설명이 뒤따른다.The description of exemplary embodiments of the present invention follows.

본원에서 인용된 모든 특허들, 공개된 출원 및 참조문헌들은 그들 전체로 참조에 의해 통합된다.All patents, published applications and references cited herein are incorporated by reference in their entirety.

현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한, 컴퓨터-구현 방법들, 컴퓨터 디바이스들 및 시스템들, 및 컴퓨터 프로그램 제품들의 예시적인 실시형태들이 본원에서 설명된다. 본원에서 설명하는 실시형태들은 예를 들어, 내장 디지털 카메라, 3D 그래픽 시뮬레이션 또는 가상 현실 소프트웨어를 가진 휴대형 태블릿 컴퓨터 및 원하는 공간 보정을 달성하는 방법을 이용하여, 컴퓨터 그래픽 모델들에서의 가상 오브젝트들에 대한 3D 로케이션 보정을 용이하게 할 수 있다. 본원에서 설명하는 실시형태들은 소프트웨어로부터의 3D 모델 이미지들의 수학적으로 엄밀한 렌더링과 함께, 이런 휴대형 태블릿 컴퓨터들에 내장되는 높은 해상도 사진적 및 계산 능력의 조합을 이용한다. 이 접근법은 사용자가 태블릿 컴퓨터 상의 작업셀 모델의 3D 가상 이미지의 상부 상에 중첩시켜 작업셀의 디지털 카메라 정지 이미지들의 작은 세트를 캡쳐하는 것과 함께, "매개된 현실 (mediated reality)" 의 형태를 포함한다. 그러나, 본원에서 설명하는 실시형태들은 가상 모델 상에 걸쳐서 이미지를 중첩할 필요가 없는 것으로 이해되어야 한다. 예를 들어, 본원에서 설명하는 실시형태들은 또한 컴퓨터 디바이스로 하여금, 이미지 및 가상 모델을 나란한 (side-by-side) 방법으로, 예를 들어, 위치적인 계산들 및 이동들이 각각의 애플리케이션에서 별개로 추적되도록, 디스플레이가능하게 한다. 아래에 상세히 설명하는 계산 접근법은 따라서 가상 모델에서의 가상 오브젝트들의 3D 로케이션들을 조정하여, 보정 문제를 해결한다.Exemplary embodiments of computer-implemented methods, computer devices and systems, and computer program products for use in location correction of a virtual model of a real-world scene are described herein. Embodiments described herein may be used for computing virtual objects in computer graphics models using, for example, a built-in digital camera, a portable tablet computer with 3D graphics simulation or virtual reality software, 3D location correction can be facilitated. The embodiments described herein utilize a combination of high resolution photographic and computational capabilities built into these portable tablet computers, along with mathematically rigorous rendering of 3D model images from software. This approach involves the form of "mediated reality" with the user superimposing on top of the 3D virtual image of the working cell model on the tablet computer to capture a small set of digital camera still images of the working cell do. It should be understood, however, that the embodiments described herein need not overlap images over a virtual model. For example, the embodiments described herein may also provide a computer device with a method for locating images and virtual models in a side-by-side manner, such as, for example, To be tracked. The computational approach described in detail below then adjusts the 3D locations of the virtual objects in the virtual model to solve the calibration problem.

더욱이, 본원에서 설명하는 실시형태들은 사용의 용이성, 절차의 속도, 및 측정 및 설치를 위한 비용 및 셋업 시간에서의 상당한 감소를 촉진한다. 게다가, 본원에서 설명하는 실시형태들은 3D 로케이션 조정 동안 태블릿 컴퓨터에 내장되는 디지털 카메라의 하드웨어-특정의 커스터마이제이션 또는 길이-표준 유형 보정에 대한 필요성을 제거하는 접근법을 포함한다. 더욱이, 본원에서 설명하는 실시형태들은 아래에서 설명하는 바와 같이 조정들의 미세 정확도로부터 거친 정확도 (coarse accuracy) 로 뿐만 아니라, 오브젝트들의 작은 치수로부터 큰 치수들로 스케일링가능하다.Moreover, the embodiments described herein facilitate ease of use, speed of procedure, and a significant reduction in cost and setup time for measurement and installation. In addition, the embodiments described herein include an approach that eliminates the need for hardware-specific customization or length-standard type correction of the digital camera that is embedded in the tablet computer during 3D location adjustments. Moreover, the embodiments described herein are scalable from small dimensions of objects to large dimensions, as well as from coarse accuracy to coarse accuracy of adjustments, as described below.

본원에서 설명하는 실시형태들이 산업 및/또는 제조 리소스들과 관련하여 설명되지만, 실시형태들은 이런 사용들에 한정되지 않는 것으로 이해되어야 한다. 예를 들어, 실시형태들은 또한 객실 내부를 리모델링하는 인테리어 설계 동안에 사용될 수도 있으며, 여기서 가구와 같은 기존 오브젝트들의 레이아웃의 3D 그래픽 모델은 재설계를 착수하기 전에 빌딩 객실 내부의 실제 레이아웃을 정확히 매칭하도록 조정될 것이다. 또 다른 예는 아키텍처이며, 여기서 가상 모델에 대략 로케이트된 빌딩들의 세트의 3D 모델은 태블릿 컴퓨터를 옥외로 가져가서, 그 부지 (grounds) 를 돌아다니면서 빌딩들의 디지털 이미지들을 캡쳐함으로써 실제 위치들에 대해 조정될 것이다.While the embodiments described herein are described in connection with industrial and / or manufacturing resources, it should be understood that the embodiments are not limited to such uses. For example, embodiments may also be used during interior design to remodel the interior of a room, wherein a 3D graphic model of the layout of existing objects, such as furniture, is adjusted to accurately match the actual layout inside the building room prior to undertaking the redesign will be. Another example is an architecture where a 3D model of a set of buildings roughly ranked in a virtual model takes a tablet computer outdoors and captures digital images of buildings while walking around its grounds, Will be adjusted.

도 1 은 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 및/또는 아래에서 설명하는 프로세스들을 수행하는데 사용하기 위한 예시적인 컴퓨터 시스템 (100) 및/또는 아래에서 설명되는 것들과 관련될 수도 있는 추가적인 프로세스들의 개략 블록도이다. 예시적인 실시형태에서, 메모리 영역 (102) 은 현실 세계 장면들의 시뮬레이션들에 관련되는 데이터와 같은 데이터를 저장하는데 사용하기 위한 하나 이상의 저장 디바이스들 (104) 을 포함한다. 저장 디바이스들 (104) 은 하나 이상의 데이터베이스들로서 구현될 수도 있거나 및/또는 단일 또는 다수의 지리적 사이트들에 로케이트될 수도 있다. 일부 실시형태들에서, 메모리 영역 (102) 은 서버 시스템 (106) 에 커플링된다. 대안적인 실시형태에서, 메모리 영역 (102) 은 서버 시스템 (106) 과 통합된다. 예시적인 실시형태에서, 서버 시스템 (106) 은 네트워크 (110) 를 통해서 하나 이상의 클라이언트 디바이스들 (108) 에 커플링된다. 클라이언트 디바이스들 (108) 은 랩탑 컴퓨터들, 태블릿 컴퓨터들, 및/또는 스마트폰들을 포함하지만 오직 이를 포함하는 것에만 한정되지 않는, 모바일 클라이언트 디바이스들을 포함할 수도 있다. 더욱이, 클라이언트 디바이스들 (108) 은 데스크탑 컴퓨터들 등과 같은 일반적으로 모바일이 아닌 정지된 클라이언트 디바이스들을 포함할 수도 있다.1 illustrates an exemplary computer system 100 for use in location correction of a virtual model of a real-world scene and / or for performing the processes described below and / or may be associated with those described below A schematic block diagram of additional processes. In an exemplary embodiment, the memory area 102 includes one or more storage devices 104 for use in storing data, such as data associated with simulations of real-world scenes. The storage devices 104 may be implemented as one or more databases and / or may be located in single or multiple geographic sites. In some embodiments, the memory area 102 is coupled to the server system 106. In an alternative embodiment, the memory area 102 is integrated with the server system 106. In an exemplary embodiment, server system 106 is coupled to one or more client devices 108 via network 110. The client devices 108 may include mobile client devices, including, but not limited to, laptop computers, tablet computers, and / or smart phones. Moreover, the client devices 108 may include non-mobile, non-mobile client devices such as desktop computers and the like.

주지하는 바와 같이, 네트워크 (110) 는 인터넷과 같은 공중 네트워크, 또는 LAN 또는 WAN 네트워크와 같은 사설 네트워크, 또는 이들의 임의의 조합일 수 있으며, 또한 PSTN 또는 ISDN 서브-네트워크들을 포함할 수 있다. 네트워크 (110) 는 또한 이더넷 네트워크와 같은 유선일 수 있거나, 또는 EDGE, 3G, 및 4G 또는 LTE 무선 셀룰러 시스템들을 포함한 셀룰러 네트워크와 같은 무선일 수 있다. 무선 네트워크는 또한 WiFi, Bluetooth, 또는 기지의 임의의 다른 무선 유형의 통신일 수 있다. 따라서, 네트워크 (110) 는 단지 예시적이며 본 향상들의 범위를 조금도 한정하지 않는다.As will be appreciated, the network 110 may be a public network, such as the Internet, or a private network, such as a LAN or WAN network, or any combination thereof, and may also include PSTN or ISDN sub-networks. The network 110 may also be wired, such as an Ethernet network, or wireless, such as a cellular network including EDGE, 3G, and 4G or LTE wireless cellular systems. The wireless network may also be WiFi, Bluetooth, or any other wireless type of communication known. Thus, the network 110 is merely illustrative and does not limit the scope of these enhancements in any way.

서버 시스템 (106) 및/또는 클라이언트 디바이스들 (108) 은 도 5 를 참조하여 아래에서 설명하는 것과 같은 임의의 적합한 컴퓨터 아키텍처, 또는 알려진 임의의 다른 컴퓨팅 아키텍처일 수 있다. 더욱이, 서버 시스템 (106) 은 위에서 설명한 프로세스들 및/또는 위에서 설명한 것들과 관련될 수도 있는 임의의 추가적인 프로세스들을 수행하도록 구성된 것으로 이해되어야 한다.The server system 106 and / or client devices 108 may be any suitable computer architecture, such as those described below with reference to Fig. 5, or any other computing architecture known in the art. Moreover, it should be understood that the server system 106 is configured to perform the above-described processes and / or any additional processes that may be associated with those described above.

일부 실시형태들에서, 서버 시스템 (106) 은 또한 클라이언트 디바이스들 (108) 이 위에서 설명한 프로세스들을 실행하도록, 클라이언트 디바이스들 (108) 에 필요로 하는 바에 따라 메모리 영역 (108) 으로부터 데이터를 제공할 수 있다. 이와 같이, 도 1 은 클라우드 컴퓨팅, 분산 컴퓨팅 등을 통한 컴퓨터 시스템 (100) 의 구현예들을 포함한다. 더욱이, 일부 실시형태들에서, 서버 시스템 (106) 은 아래에서 설명하는 프로세스들을 실행하는 컴퓨터-판독가능 명령들을 저장하고, 이들 명령들을 네트워크 (110) 를 통해서 클라이언트 디바이스들 (108) 에 제공한다. 이런 컴퓨터-판독가능 명령들은 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터-실행가능한 구성요소들을 가진 하나 이상의 비일시성 컴퓨터-판독가능 저장 매체들을 갖는 컴퓨터 프로그램 제품으로서 구현될 수도 있다. 아래에서 추가로 자세히 설명하는 바와 같이, 구성요소들은 프로세서로 하여금, 가상 오브젝트를 포함한 가상 모델을 발생시키도록 하는 발생 구성요소, 및 프로세서로 하여금 현실 세계 장면 내에서 현실 세계 오브젝트의 적어도 하나의 디지털 이미지를 획득하도록 하는 획득 구성요소를 포함하며, 여기서, 현실 세계 오브젝트는 가상 오브젝트에 대응한다. 구성요소들은 또한 프로세서로 하여금, 가상 오브젝트 상의 적어도 하나의 미리 정의된 지점과 현실 세계 오브젝트 상의 적어도 하나의 대응하는 지점 사이의 이미지 위치상의 차이에 기초하여 가상 오브젝트의 위치 및/또는 방위를 조정하고, 그리고 가상 오브젝트의 보정된 로케이션에 대해서 가상 모델을 조정하도록 하는 보정 구성요소를 포함한다.In some embodiments, the server system 106 may also provide data from the memory area 108 as needed by the client devices 108, such that the client devices 108 execute the processes described above. have. As such, FIG. 1 includes implementations of computer system 100 via cloud computing, distributed computing, and the like. Moreover, in some embodiments, the server system 106 stores computer-readable instructions for executing the processes described below and provides these instructions to the client devices 108 via the network 110. [ Such computer-readable instructions may be implemented as a computer program product having one or more non-transitory computer-readable storage media having computer-executable elements for use in location correction of a virtual model of a real-world scene. As will be described in further detail below, the components include a generating component that causes the processor to generate a virtual model that includes a virtual object, and a processor that causes the processor to generate at least one digital image of the real- , Wherein the real-world object corresponds to a virtual object. The components may also enable the processor to adjust the position and / or orientation of the virtual object based on a difference in image position between at least one predefined point on the virtual object and at least one corresponding point on the real world object, And a correction component that allows the virtual model to be adjusted for the corrected location of the virtual object.

도 2 는 도 1 에 나타낸 컴퓨터 시스템 (100) 의 동작을 예시하는 플로우차트 (200) 이다. 예시적인 실시형태에서, 도 1 및 도 2 양자를 참조하면, 서버 시스템 (106) 은 현실 세계 장면의 시뮬레이션 또는 가상 디스플레이에서 사용하기 위한 3D 모델과 같은, 현실 세계 장면 또는 작업셀의 가상 모델을 네트워크 (110) 를 통해서 클라이언트 디바이스 (108) 로 송신한다 (202). 클라이언트 디바이스 (108) 는 그 가상 모델을 시뮬레이션 또는 가상 현실 소프트웨어 모듈에 로드하고 (204), 사용자가 조정하기를 원하는 공간 로케이션들을 갖는 하나 이상의 가상 오브젝트들의 사용자 선택을 수신한다 (206). 클라이언트 디바이스 (108) 는 또한 가상 모델 내 참조 오브젝트 또는 참조 지점의 사용자 선택으로부터 수신한다 (208). 클라이언트 디바이스 (108) 는 그후 가상 3D 뷰 (view) 상에 중첩된 또는 가상 3D 뷰와 나란한 디지털 카메라 이미지를 디스플레이한다 (210). 클라이언트 디바이스 (108) 에서의 3D 뷰가 그후 3D 뷰를 그 중첩된 카메라 이미지에 대략 매칭하기 위해, 추가적인 사용자 입력에 기초하여, 가상 회전들 및 변환들, 가상 모델의 디스플레이에 의해 줌 및 방위의 관점에서 원하는 관찰 지점으로 조정된다 (212). 대응하는 3D 가상 뷰와 함께 디지털 이미지가 그후 클라이언트 디바이스 (108) 에 의해 획득되며 (214), 클라이언트 디바이스 (108) 및/또는 서버 (106) 에 저장된다.FIG. 2 is a flowchart 200 illustrating the operation of the computer system 100 shown in FIG. 1 and 2, the server system 106 may provide a virtual model of a real-world scene or work cell, such as a 3D model for use in simulation or virtual display of real-world scenes, (202) to the client device (108) via the network (110). The client device 108 loads (204) the virtual model into a simulation or virtual reality software module and receives (206) a user selection of one or more virtual objects having spatial locations the user desires to adjust. The client device 108 also receives 208 a user selection of a reference object or reference point in the virtual model. The client device 108 then displays (210) a digital camera image that is nested or parallel to the virtual 3D view on the virtual 3D view. Based on the additional user input, the 3D views at the client device 108 may then be used to generate virtual rotations and transforms, a view of the zoom and orientation by display of the virtual model, To a desired observation point (212). A digital image with the corresponding 3D virtual view is then acquired 214 by the client device 108 and stored in the client device 108 and / or the server 106.

예시적인 실시형태에서, 사용자가 그후 객실 레이아웃, 작업 현장, 또는 빌딩 부지와 같은 현실 세계 장면에서 클라이언트 디바이스 (108) 를 들고, 가상 모델 (210) 에 따라서 디지털 카메라 이미지의 디스플레이에서 상이한 관점을 획득하기 위해 클라이언트 디바이스 (108) 와 함께 돌아다닌다 (216). 예시적인 실시형태에서, 사용자는 가상 3D 뷰의 디스플레이를 반복적으로 조정하고 (212), 새로운 디지털 이미지를 그의 3D 뷰와 함께 매번 캡쳐한다 (214). 클라이언트 디바이스 (108) 및/또는 서버 시스템 (106) 은 그후 캡쳐된 디지털 이미지(들)을 이용하여, 아래 플로우차트 (300) 에서 자세히 설명하는 바와 같이, 대응하는 현실 세계 오브젝트에 비교하여 가상 오브젝트의 위치 및 방위를 식별하는 로케이션 보정 기능을 호출한다 (218). 클라이언트 디바이스 (108) 및/또는 서버 시스템 (106) 은 로케이션 보정 기능을 완료하며, 이것은 현실 세계 장면에서의 현실 세계 오브젝트에 대해 가상 모델에서의 가상 오브젝트의 로케이션 및 방위의 향상된 정확도를 초래한다. 결과적인 제조 시뮬레이션 또는 가상 디스플레이는 공간 및/또는 시간 에러들이 감소될 정도로 향상될 것이다. 일부 실시형태들에서, 클라이언트 디바이스 (108) 는 메모리 영역 (102) 에의 저장을 위해 가상 오브젝트의 새로운 위치 및/또는 방위와 같은 가상 오브젝트 및/또는 가상 모델의 성질들을 서버 시스템 (106) 로 송신한다. 이런 실시형태들에서, 그 저장된 데이터는 후속 시뮬레이션들을 위해 추후 액세스될 수 있다.In an exemplary embodiment, the user then takes the client device 108 in a real world scene, such as a room layout, a work site, or a building site, and obtains a different viewpoint from the display of the digital camera image in accordance with the virtual model 210 (216) with the client device (108). In an exemplary embodiment, the user repeatedly adjusts the display of the virtual 3D view (212) and captures (214) the new digital image each time with its 3D view. The client device 108 and / or the server system 106 may then use the captured digital image (s) to create a virtual object (s), as described in detail below in the flowchart 300, And calls a location correction function that identifies the location and orientation (218). The client device 108 and / or the server system 106 complete the location correction function, which results in improved accuracy of the location and orientation of the virtual object in the virtual model for the real world object in the real world scene. The resulting manufacturing simulation or virtual display will be enhanced to such an extent that space and / or time errors are reduced. In some embodiments, the client device 108 sends virtual objects and / or properties of the virtual model to the server system 106, such as the new location and / or orientation of the virtual object for storage in the memory area 102 . In such embodiments, the stored data may be accessed later for subsequent simulations.

도 3 은 도 1 에 나타낸 컴퓨터 시스템 (100) 의 동작을 추가로 예시하는 플로우차트 (300) 이다. 예시적인 실시형태에서, 도 1 및 도 3 의 양자를 참조하면, 서버 시스템 (106) 은 현실 세계 장면을 나타내는 가상 모델을 발생시킨다 (302). 서버 시스템 (106) 은 그 가상 모델을 네트워크 (110) 를 통해서 클라이언트 디바이스 (108) 로 송신한다 (304). 클라이언트 디바이스 (108) 는 그 가상 모델을 시뮬레이션 또는 가상 현실 소프트웨어 모듈에 로드한다 (306). 예시적인 실시형태에서, 클라이언트 디바이스 (108) 는 사용자 입력들을 수신하여 (308), 그 가상 모델에서 가상 오브젝트 및 참조 오브젝트를 식별한다. 가상 오브젝트는 사용자가 본원에서 설명되는 로케이션 보정 단계들을 수행하기를 원하는 가상 오브젝트이다. 참조 오브젝트는 로케이션 보정이 완료되는 것에 관련된 참조 오브젝트이다. 예를 들어, 도 4a 는 클라이언트 디바이스 (108) 의 예시적인 디스플레이 (400) 의 예시이다. 클라이언트 디바이스 (108) 는 가상 오브젝트 (402) 및 참조 오브젝트 (404) 를 디스플레이한다.FIG. 3 is a flowchart 300 further illustrating the operation of the computer system 100 shown in FIG. In an exemplary embodiment, with reference to both FIGS. 1 and 3, the server system 106 generates 302 a virtual model representing a real-world scene. The server system 106 transmits the virtual model to the client device 108 via the network 110 (304). The client device 108 loads 306 the virtual model into a simulation or virtual reality software module. In an exemplary embodiment, the client device 108 receives (308) user inputs to identify virtual objects and reference objects in the virtual model. A virtual object is a virtual object that the user desires to perform the location correction steps described herein. The reference object is a reference object related to the completion of the location correction. For example, FIG. 4A is an illustration of an exemplary display 400 of a client device 108. The client device 108 displays the virtual object 402 and the reference object 404.

일부 실시형태들에서, 클라이언트 디바이스 (108) 는 또한 사용자 입력들을 수신하여 (310), 가상 오브젝트 (402) 상의 하나 이상의 미리 정의된 비교 특성들 및 참조 오브젝트 (404) 상의 하나 이상의 대응하는 비교 특성들을 식별한다. 대안적인 실시형태에서, 비전 프로세싱 (vision processing) 및/또는 패턴 인식 알고리즘들이 가상 오브젝트 (402) 및 참조 오브젝트 (404) 상의 미리 정의된 특성들을 식별하는데 사용될 수도 있다. 도 4a 에 나타낸 바와 같이, 가상 오브젝트 (402) 의 3D 뷰는 정점 지점들 (vertex points; 406) 에서 3개의 미리 정의된 특성들을 가지며, 참조 오브젝트 (404) 의 유형은 정점 지점들 (408) 의 유형에서 3개의 대응하는 미리 정의된 특성들을 갖는다. 도 4b 는 클라이언트 디바이스에 내장된 카메라로부터의 디지털 이미지를 나타내는 클라이언트 디바이스 (108) 의 디스플레이 (400) 의 또 다른 예시이다. 도 4b 에 나타낸 바와 같이, 현실 세계 오브젝트 (410) 는 가상 오브젝트 (402) 상의 사용자-선택된 지점들 (406) 에 대응하는 3개의 지점들 (412) 을 갖는다. 현실 세계 참조 오브젝트 (414) 는 가상 참조 오브젝트 (404) 상의 사용자-선택된 지점들 (408) 에 대응하는 3개의 지점들 (416) 을 갖는다. 도 4a 및 도 4b 는 가상 오브젝트 (402), 가상 참조 오브젝트 (404), 현실 세계 오브젝트 (410), 및 현실 세계 참조 오브젝트 (414) 를 정육면체 오브젝트들로서 나타내지만, 본원에서 설명하는 실시형태들은 정육면체 오브젝트들과 함께 사용하는데 한정되지 않는 것으로 이해될 것이다. 더 정확히 말하면, 본원에서 설명하는 실시형태들은 지점들의 일부 식별가능한 세트의 선택을 가능하게 하는 임의의 형태의 오브젝트들과 함께 사용될 수도 있다. 더욱이, 미리 정의된 비교 특성들 (406, 408, 412, 및/또는 416) 은 도 4a 및 도 4b 에 나타낸 바와 같이, 정점들일 수도 있거나, 또는 라인들, 평면들, 또는 표면들일 수도 있다. 일부 실시형태들에서, 클라이언트 디바이스 (108) 는 식별되는 지점들의 좌표들과 같은, 식별되는 지점들 (406, 408, 412, 및/또는 416) 에 관련되는 데이터를 서버 시스템 (106) 으로 송신한다.In some embodiments, the client device 108 may also receive 310 user input (s) and compare one or more predefined comparison properties on the virtual object 402 and one or more corresponding comparison properties on the reference object 404 . In alternative embodiments, vision processing and / or pattern recognition algorithms may be used to identify predefined characteristics on virtual object 402 and reference object 404. 4A, the 3D view of the virtual object 402 has three predefined properties at vertex points 406, and the type of reference object 404 is the shape of the vertex points 408 Lt; RTI ID = 0.0 > predefined < / RTI > 4B is another illustration of a display 400 of a client device 108 that represents a digital image from a camera embedded in a client device. 4B, the real-world object 410 has three points 412 corresponding to the user-selected points 406 on the virtual object 402. As shown in Fig. The real world reference object 414 has three points 416 corresponding to the user-selected points 408 on the virtual reference object 404. [ Although FIGS. 4A and 4B illustrate virtual objects 402, virtual reference objects 404, real world objects 410, and real world reference objects 414 as cube objects, the embodiments described herein refer to cube objects But are not limited to use with < / RTI > More precisely, the embodiments described herein may be used with any type of objects that enable selection of some identifiable sets of points. Furthermore, the predefined comparison characteristics 406, 408, 412, and / or 416 may be vertices, or may be lines, planes, or surfaces, as shown in Figs. 4A and 4B. In some embodiments, client device 108 sends data to server system 106 associated with identified points 406, 408, 412, and / or 416, such as coordinates of identified points .

미리 정의된 지점들 (406 및/또는 408) 이 식별된 후, 클라이언트 디바이스 (108) 는 그 식별되는 지점들 (406 및/또는 408) 에 기초하여 로케이션 변환을 계산한다 (312). 가상 모델에서, 각각의 가상 오브젝트의 위치 및 방위는 6개의 파라미터들 (X, Y, Z, W, P, 및 R) 에 의해 정의된다. 첫번째 3개의 파라미터들 (X, Y, Z) 은 x-방향, y-방향, 및 z-방향에서 가상 오브젝트의 위치를 지정하는 거리들이다. 두번째 3개의 파라미터들 (W, P, R) 은 가상 오브젝트의 방위를 지정하는 각도들이며, 여기서, W 는 요 (yaw) 를 나타내며, P 는 피치를 나타내고, 그리고 R 은 롤 (roll) 을 나타낸다. 일괄하여, 이들 6개의 파라미터들은 가상 오브젝트의 로케이션 변환으로 지칭될 수 있다. 더욱이, 가상 오브젝트 (402) 의 로케이션 변환은 예컨대, 가상 참조 오브젝트 (404) 에 의해 암시되는 참조 좌표계에 대해 계산된다. 구체적으로 설명하면, 가상 오브젝트 (402) 의 로케이션 변환은 가상 오브젝트 (402) 상의 식별되는 지점들 (406) 및 참조 오브젝트 (404) 상의 식별되는 지점들 (408) 의 위치 (X, Y, Z) 에 기초하여 계산된다. 도 4a 에 나타낸 바와 같이, 가상 오브젝트 (402) 상의 지점들 (406) 은 로케이션 변환 (312) 을 계산하는데 사용되는 것들이다. 예시적인 실시형태에서, 참조 오브젝트 (404) 는 완료되는 로케이션 보정을 위해 참조 좌표계 및 치수적 길이 표준 양자를 제공한다. 그러므로, 참조 오브젝트 (404) 의 3D 모델은 그의 식별되는 지점들 (408) 의 로케이션의 관점에서 현실 세계 참조 오브젝트 (미도시) 에 거의 매칭한다. 즉, 가상 참조 오브젝트 (404) 의 식별되는 지점들 (408) 과 현실 세계 참조 오브젝트의 대응하는 지점들 사이의 각각의 거리들은 애플리케이션 의존적인 미리 정의된 허용오차 내에서 동일해야 한다.After the predefined points 406 and / or 408 are identified, the client device 108 computes 312 the location transformation based on the identified points 406 and / or 408. In the virtual model, the position and orientation of each virtual object is defined by six parameters (X, Y, Z, W, P, and R). The first three parameters (X, Y, Z) are distances that specify the location of the virtual object in the x-, y-, and z-directions. The second three parameters (W, P, R) are the angles that specify the orientation of the virtual object, where W represents yaw, P represents pitch, and R represents roll. Collectively, these six parameters may be referred to as the location transformation of the virtual object. Furthermore, the location transformation of the virtual object 402 is computed, for example, for the reference coordinate system implied by the virtual reference object 404. Specifically, the location transformation of the virtual object 402 determines the location (X, Y, Z) of the identified points 406 on the virtual object 402 and the identified points 408 on the reference object 404, . As shown in FIG. 4A, points 406 on the virtual object 402 are those used to compute the location transform 312. In an exemplary embodiment, the reference object 404 provides both a reference coordinate system and a dimensional length standard for complete location correction. Therefore, the 3D model of the reference object 404 almost matches the real world reference object (not shown) in terms of the location of its identified points 408. That is, the respective distances between the identified points 408 of the fictitious reference object 404 and corresponding points of the real world reference object must be the same within an application-dependent predefined tolerance.

로케이션 변환이 계산된 후, 클라이언트 디바이스 (108) 에서의 카메라 디바이스는 도 2 의 210 내지 214 에서 설명한 바와 같이 그들의 3D 가상 뷰들과 함께 현실 세계 장면들의 디지털 이미지들을 획득한다 (314). 더욱이, 도 2 를 다시 참조하면, 클라이언트 디바이스 (108) 는 사용자 입력들을 가상 참조 오브젝트 (404) 의 조작들의 형태로 수신한다 (212). 예를 들어, 사용자는 터치 스크린을 이용하여, 가상 오브젝트 (402) 및 참조 오브젝트 (404) 가 현실 세계 오브젝트 (410) 및 참조 오브젝트 (414) 와 거의 정렬되도록, 예컨대 회전, 평행이동, 및/또는 줌 동작들을 이용하여, 재위치시킬 수도 있다. 도 4c 및 도 4d 는 클라이언트 디바이스 (108) 의 디스플레이 (400) 의 추가적인 예시들이다. 구체적으로 설명하면, 도 4c 는 가상 모델을 가상 오브젝트 (402) 및 그의 대응하는 현실 세계 오브젝트 (410) 뿐만 아니라, 참조 오브젝트 (404) 및 그의 대응하는 현실 세계 참조 오브젝트 (414) 를 포함한, 현실 세계 장면과 오버레이하여 또는 동시에 디스플레이하는 클라이언트 디바이스 (108) 를 예시한다. 도 4c 에 도시된 상황들은 사용자가 현실 세계 이미지와 거의 정렬하도록 3D 가상 뷰를 조정한 (212) 후 의 결과들이다. 클라이언트 디바이스 (108) 및/또는 서버 (106) 는 그후 참조 오브젝트 (404) 상의 미리 정의된 지점들 (408) 을 현실 세계 참조 오브젝트 (414) 상의 지점들 (416) 과 거의 매칭시키기 위해, 뷰잉 회전, 변환 및/또는 줌의 미세 변경들에 의해 3D 가상 뷰의 프로그램적 조정 (316) 을 시작한다. 이 프로그램적인 뷰 조정이 현실 세계 장면의 상이한 관점들로부터 획득된 (314) 이미지들의 각각에 대해 이루어진다. 도 4d 는 가상 참조 오브젝트 (404) 가 현실 세계 참조 오브젝트 (414) 와 일치하도록 하는 단계 (316) 이후의 결과적인 상황을 나타낸다. 구체적으로 설명하면, 참조 오브젝트 (404) 의 지점들 (408) 은 현실 세계 참조 오브젝트 (414) 의 대응하는 지점들 (416) 과 실질적으로 정렬된다. 더욱이, 임의의 하드웨어 특정의 카메라 보정에 대한 필요성을 제거하고 참조 오브젝트 (404) 의 치수들에 의해 암시되는 길이 표준이 다음 로케이션 보정에서 자동적으로 고려되는 것을 보장하는 이 프로그램적 조정 (316) 이다.After the location transformation is calculated, the camera devices at the client device 108 acquire 314 digital images of real-world scenes with their 3D virtual views as described in 210-214 of FIG. 2, the client device 108 receives 212 user inputs in the form of manipulations of the fictitious reference object 404. For example, the user may use the touch screen to rotate the virtual object 402 and the reference object 404 such that the virtual object 402 and the reference object 404 are substantially aligned with the real world object 410 and the reference object 414, Using the zooming operations. 4C and 4D are additional illustrations of the display 400 of the client device 108. FIG. Specifically, FIG. 4C illustrates a virtual world 402, including its virtual world 402 and its corresponding real world object 410, as well as a real world world 402, including a reference object 404 and its corresponding real world reference object 414 Lt; / RTI > illustrates a client device 108 that overlay or simultaneously displays a scene. The situations shown in Figure 4c are the results after 212 the 3D virtual view is adjusted so that the user is almost aligned with the real world image. The client device 108 and / or the server 106 may then use the viewing rotation 404 to substantially match the predefined points 408 on the reference object 404 with the points 416 on the real world reference object 414. [ , And initiates the programmatic adjustment (316) of the 3D virtual view by fine-tuning of the transformation and / or zoom. This programmatic view adjustment is made for each of the images 314 obtained from different views of the real world scene. 4D illustrates the resulting situation after step 316 such that the fictitious reference object 404 coincides with the real world reference object 414. Specifically, the points 408 of the reference object 404 are substantially aligned with corresponding points 416 of the real world reference object 414. Furthermore, this is a programmatic adjustment 316 that eliminates the need for any hardware-specific camera correction and ensures that the length standard implied by the dimensions of the reference object 404 is automatically considered in the next location correction.

참조 오브젝트 (404) 가 프로그램적 조정 (316) 에 의해 현실 세계 참조 오브젝트 (414) 와 실질적으로 정렬될 때, 클라이언트 디바이스 (108) 및/또는 서버 시스템 (106) 은 이제 가상 오브젝트 지점들 (406) 과 현실 세계 오브젝트 (410) 상의 대응하는 지점들 (412) 사이의 불일치를 결정한다. 구체적으로 설명하면, 클라이언트 디바이스 (108) 및/또는 서버 시스템 (106) 은 가상 오브젝트 (402) 상의 지점들 (406) 과 현실 세계 오브젝트 (410) 상의 대응하는 지점들 (412) 사이의 이미지-기반의 위치상의 차이를 계산한다 (318). 예시적인 실시형태에서, 차이가 X 및 Y 방향들의 각각에서의 픽셀들에서 계산된다. 도 4e 는 클라이언트 디바이스 (108) 의 디스플레이 (400) 의 또 다른 예시이다. 구체적으로 설명하면, 도 4e 은 현실 세계 오브젝트 (410) 의 대응하는 지점 (412) 및 가상 오브젝트 (402) 의 지점들 (406) 중 하나에 대해 X-방향 (DeltaX) 의 각각에서 그리고 Y-방향 (DeltaY) 에서 거리를 나타낸다. 예시적인 실시형태에서, 그러나, 클라이언트 디바이스 (108) 및/또는 서버 시스템 (106) 은 식별되는 지점들 (406 및 412) 의 모든 쌍들에 대해 차이를 계산한다 (318). 예시적인 실시형태에서, 차이들이 메모리 영역 (102) 에 저장된다. 클라이언트 디바이스 (108) 및/또는 서버 시스템 (106) 은 현실 세계 장면의 상이한 관점들로부터 획득된 (314) 이미지들의 각각에 대해 이 이미지 위치상의 차이를 계산한다. 도 4f 는 클라이언트 디바이스 (108) 의 디스플레이의 또 다른 예시이다. 구체적으로 설명하면, 도 4f 는 참조 오브젝트 (404) 가 현실 세계 참조 오브젝트 (414) 와 실질적으로 재정렬된 후 현실 세계 장면의 대안적인 관점으로부터 또 다른 캡쳐를 위한 이미지 위치상의 차이 계산을 나타낸다.The client device 108 and / or the server system 106 are now in virtual object locations 406 when the reference object 404 is substantially aligned with the real world reference object 414 by programmatic adjustment 316. [ And the corresponding points 412 on the real world object 410. [ More specifically, the client device 108 and / or the server system 106 may provide an image-based (or object-based) interface between the points 406 on the virtual object 402 and corresponding points 412 on the real- (318). ≪ / RTI > In an exemplary embodiment, the difference is calculated in the pixels in each of the X and Y directions. Figure 4E is another illustration of the display 400 of the client device 108. [ More specifically, FIG. 4E shows the position of the virtual object 402 in each of the X-direction (DeltaX) and in the Y-direction (DeltaX) with respect to one of the corresponding points 412 and 406 of the real- (DeltaY). In an exemplary embodiment, however, the client device 108 and / or the server system 106 calculates (318) the difference for every pair of identified points 406 and 412. In an exemplary embodiment, the differences are stored in the memory area 102. The client device 108 and / or the server system 106 calculates the difference on this image location for each of the images 314 obtained from different views of the real world scene. 4F is another illustration of the display of the client device 108. FIG. 4F illustrates a difference calculation on the image location for another capture from an alternative view of the real world scene after the reference object 404 has been substantially reordered with the real world reference object 414. [

클라이언트 디바이스 (108) 및/또는 서버 시스템 (106) 은 그후 가상 오브젝트 (402) 와 현실 세계 오브젝트 (410) 사이의 모든 이미지 위치상의 차이들의 조합을 최소화하기 위해, 가상 오브젝트 (402) 의 로케이션 변환을 반복한다 (320). 일 실시형태에서, 클라이언트 디바이스 (108) 및/또는 서버 시스템 (106) 은 변수 파라미터들의 세트를 조정함으로써 비용 함수 (cost function) 를 최소화하는 표준 비선형 회귀 (standard non-linear regression) 를 이용한다. 예시적인 실시형태에서, 이 비용 함수는 그 계산된 DeltaX 및 DeltaY 차이들의 모두에 대한 자승 평균 평방근 (RMS) 오차의 합계이다. 변수 파라미터들은 가상 오브젝트 (402) 의 (X, Y, Z, W, P, 및 R) 값들, 즉, 가상 오브젝트 (402) 의 계산된 로케이션 변환일 것이다. 이 최소화 단계 (320) 의 결과들에 기초하여, 클라이언트 디바이스 (108) 및/또는 서버 시스템 (106) 은 가상 오브젝트 (402) 의 위치 및/또는 방위를 조정하고 (322), 가상 오브젝트 (402) 의 보정된 로케이션에 대해서 가상 모델을 조정한다 (324). 도 4g 는 클라이언트 디바이스 (108) 의 디스플레이의 또 다른 예시이다. 구체적으로 설명하면, 도 4g 는 전체적으로 가상 모델 및 가상 오브젝트 (402) 의 재배향 (reorientation) 및/또는 재위치결정 (repositioning) 에 관한 최종 결과를 나타낸다.The client device 108 and / or the server system 106 may then perform a location transformation of the virtual object 402 to minimize the combination of differences in all image locations between the virtual object 402 and the real world object 410 (320). In one embodiment, the client device 108 and / or the server system 106 utilizes a standard non-linear regression that minimizes the cost function by adjusting a set of variable parameters. In an exemplary embodiment, this cost function is the sum of square root mean square (RMS) errors for all of the calculated DeltaX and DeltaY differences. The variable parameters may be the computed location transform of the (X, Y, Z, W, P, and R) values of the virtual object 402, Based on the results of this minimization step 320, the client device 108 and / or the server system 106 adjusts the position and / or orientation of the virtual object 402 (322) The virtual model is adjusted (324) for the corrected location of the virtual model. 4G is another illustration of the display of the client device 108. FIG. More specifically, FIG. 4G shows the end result regarding reorientation and / or repositioning of the virtual model and virtual object 402 as a whole.

상기 단계들은 오직 단일 가상 오브젝트의 위치를 조정하는 것에 기초하여 가상 모델을 조정하는 것을 기술하지만, 본원에서 설명하는 실시형태들은 다수의 가상 오브젝트들의 위치들을, 한번에 한번 이상 조정하는 것을 고려하는 것으로 이해되어야 한다. 예시적인 실시형태에서, 각각의 가상 모델 조정은 동일한 참조 오브젝트를 이용한다. 그러나, 일부 실시형태들에서, 참조 오브젝트는 상이한 가상 오브젝트들에 대해 상이할 수도 있거나 및/또는 단순히 오브젝트들보다는, 공간에서의 참조 지점들일 수도 있다.Although the steps describe adjusting the virtual model based on adjusting only the position of a single virtual object, the embodiments described herein should be understood to consider adjusting the positions of multiple virtual objects more than once at a time do. In an exemplary embodiment, each virtual model adjustment uses the same reference object. However, in some embodiments, the reference object may be different for different virtual objects and / or may be reference points in space, rather than simply objects.

도 5 는 서버 시스템 (106) 및/또는 클라이언트 디바이스들 (108) (각각 도 1 에 도시됨) 과 함께 사용하기 위한 예시적인 컴퓨터 아키텍처 (500) 의 개략 블록도이다.5 is a schematic block diagram of an exemplary computer architecture 500 for use with server system 106 and / or client devices 108 (each shown in FIG. 1).

예시적인 실시형태에서, 컴퓨터 아키텍처 (500) 는 위에서 설명한 프로세스들 및/또는 위에서 설명한 것들과 관련될 수도 있는 임의의 추가적인 프로세스들을 수행하는 하나 이상의 프로세서들 (502) (CPU) 을 포함한다. 용어 "프로세서" 는 일반적으로 시스템들 및 마이크로제어기들, 축소 명령 세트 회로들 (RISC), 주문형 집적 회로들 (ASIC), 프로그래밍가능 로직 회로들, 및/또는 본원에서 설명한 기능들을 수행할 수 있는 임의의 다른 회로 또는 프로세서를 포함하는 임의의 프로그래밍가능 시스템을 지칭하는 것으로 이해되어야 한다. 상기 예들은 단지 예시적이며, 따라서, 어떤 방법으로든 용어 "프로세서" 의 정의 및/또는 의미를 한정하려고 의도된 것이 아니다.In an exemplary embodiment, the computer architecture 500 includes one or more processors 502 (CPU) that perform the above-described processes and / or any additional processes that may be associated with those described above. The term "processor" generally refers to systems and microcontrollers, reduced instruction set circuits (RISC), application specific integrated circuits (ASIC), programmable logic circuits, and / or any of those capable of performing the functions Or any other circuitry or processor of the system. The examples are illustrative only and are not intended to limit the definition and / or meaning of the term "processor" in any way.

위에서 설명한 프로세스들 및/또는 위에서 설명한 것들과 관련될 수도 있는 임의의 추가적인 프로세스들의 단계들은 예를 들어, 시스템 버스 (506) 에 의해 프로세서 (502) 에 동작가능하게 및/또는 통신가능하게 커플링된 메모리 영역 (504) 에, 컴퓨터-실행가능한 명령들로서 저장될 수도 있다. "메모리 영역" 은, 본원에서 사용할 때, 일반적으로 현실 세계 장면의 가상 모델의 로케이션 보정을 돕기 위해, 및/또는 위에서 설명한 프로세스들 및/또는 위에서 설명한 것들과 관련될 수도 있는 추가적인 프로세스들을 수행하는데 사용하기 위해, 하나 이상의 프로세서들에 의해 실행가능한 비일시성 프로그램 코드 및 명령들을 저장하는 임의의 수단을 지칭한다. 메모리 영역 (504) 은 하나 또는 하나 보다 많은 형태들의 메모리를 포함할 수도 있다. 예를 들어, 메모리 영역 (504) 은 랜덤-액세스 메모리 (RAM) (508) 를 포함할 수도 있으며, 이 RAM 은 비-휘발성 RAM, 자기 RAM, 강유전체 RAM, 및/또는 RAM 의 다른 형태들을 포함할 수 있다. 메모리 영역 (504) 은 또한 판독 전용 메모리 (ROM) (510) 및/또는 플래시 메모리 및/또는 전기적으로-프로그래밍가능 판독 전용 메모리 (EEPROM) 를 포함할 수도 있다. 하드-디스크 드라이브 (HDD) (512) 와 같은, 임의의 다른 적합한 자기, 광학, 및/또는 반도체 메모리가, 단독으로 또는 다른 형태들의 메모리와 조합하여, 메모리 영역 (504) 에 포함될 수도 있다. HDD (512) 는 또한 메시지들을 프로세서 (502) 로 송신하고 프로세서 (502) 로부터 수신하는데 사용하기 위해 디스크 제어기 (514) 에 커플링될 수도 있다. 더욱이, 메모리 영역 (504) 은 또한 적합한 카트리지 디스크, CD-ROM, DVD, 또는 USB 메모리와 같은, 탈부착가능한 또는 착탈식 메모리 (516) 이거나, 이들을 포함할 수도 있다. 상기 예들은 단지 예시적이며, 따라서, 어떤 방법으로든 용어 "메모리 영역" 의 정의 및/또는 의미를 한정하려고 의도된 것은 아니다.The steps described above and / or any additional processes that may be associated with those described above may be performed, for example, by a system bus 506 to enable the processor 502 to be operably and / May be stored in the memory area 504 as computer-executable instructions. "Memory region ", when used herein, is generally used to assist in location correction of a virtual model of a real-world scene, and / or to perform additional processes that may be associated with the processes described above and / Refers to any means for storing non-trivial program code and instructions executable by one or more processors. Memory region 504 may include one or more than one type of memory. For example, memory region 504 may include random-access memory (RAM) 508, which may include other forms of non-volatile RAM, magnetic RAM, ferroelectric RAM, and / . Memory region 504 may also include read only memory (ROM) 510 and / or flash memory and / or electrically-programmable read only memory (EEPROM). Any other suitable magnetic, optical, and / or semiconductor memory, such as a hard-disk drive (HDD) 512, may be included in the memory area 504, either alone or in combination with other types of memory. The HDD 512 may also be coupled to the disk controller 514 for use in sending and receiving messages to and from the processor 502. [ Moreover, the memory area 504 may also be or include removable or removable memory 516, such as a suitable cartridge disc, CD-ROM, DVD, or USB memory. The examples are illustrative only and are not intended to limit the definition and / or meaning of the term "memory area" in any way.

컴퓨터 아키텍처 (500) 는 또한 디스플레이 제어기 (520) 에 커플링된, 예컨대, 동작가능하게 커플링된 디스플레이 디바이스 (518) 를 포함한다. 디스플레이 제어기 (520) 는 디스플레이 디바이스 (518) 에 의한 디스플레이를 위해 시스템 버스 (506) 를 경유해서 데이터를 수신한다. 디스플레이 디바이스 (518) 는, 비제한적으로, 모니터, 텔레비전 디스플레이, 플라즈마 디스플레이, 액정 디스플레이 (LCD), 발광 다이오드들 (LED) 에 기초한 디스플레이, 유기 LEDs (OLED) 에 기초한 디스플레이, 폴리머 LEDs 에 기초한 디스플레이, 표면-전도 전자 에미터들에 기초한 디스플레이, 투사된 및/또는 반사되는 이미지를 포함하는 디스플레이, 또는 임의의 다른 적합한 전자 디바이스 또는 디스플레이 메커니즘일 수도 있다. 더욱이, 디스플레이 디바이스 (518) 는 터치스크린 제어기 (524) 와 연관되는 터치스크린 (522) 을 포함할 수도 있다. 상기 예들은 단지 예시적이며, 따라서, 어떤 방법으로든 용어 "디스플레이 디바이스" 의 정의 및/또는 의미를 한정하려고 의도된 것이 아니다.Computer architecture 500 also includes a display device 518 coupled to, e.g., operably coupled to, display controller 520. The display controller 520 receives data via the system bus 506 for display by the display device 518. The display device 518 may include, but is not limited to, a monitor, a television display, a plasma display, a liquid crystal display (LCD), a display based on light emitting diodes (LED), a display based on organic LEDs (OLED) A display based on surface-conducting electron emitters, a display comprising projected and / or reflected images, or any other suitable electronic device or display mechanism. Moreover, the display device 518 may include a touch screen 522 associated with the touch screen controller 524. The examples are illustrative only and are not intended to limit the definition and / or meaning of the term "display device " in any way.

또한, 컴퓨터 아키텍처 (500) 는 네트워크 (도 5 에 미도시) 와 통신하는데 사용하기 위해 네트워크 인터페이스 (526) 를 포함한다. 더욱이, 컴퓨터 아키텍처 (500) 는 키보드 (528) 와 같은 하나 이상의 입력 디바이스들, 및/또는 롤러 볼, 마우스, 터치패드 등과 같은 포인팅 디바이스 (530) 를 포함한다. 터치스크린 (522) 및 그의 제어기 (524) 는 또한 통합된 키보드 (528) 및/또는 포인팅 디바이스 (530) 로서 간주될 수도 있다. 입력 디바이스들은 입력/출력 (I/O) 인터페이스 (532) 에 커플링되어 그에 의해 제어되며, 이 인터페이스는 시스템 버스 (506) 에 추가로 커플링된다. 컴퓨터 아키텍처 (500) 는 또한 그의 연관되는 디지털 카메라 제어기 (536) 를 가진 적어도 하나의 디지털 카메라 (534) 를 포함한다.In addition, the computer architecture 500 includes a network interface 526 for use in communicating with a network (not shown in FIG. 5). Moreover, the computer architecture 500 includes one or more input devices, such as a keyboard 528, and / or a pointing device 530, such as a roller ball, a mouse, a touchpad, The touch screen 522 and its controller 524 may also be regarded as an integrated keyboard 528 and / or a pointing device 530. The input devices are coupled to and controlled by an input / output (I / O) interface 532, which is further coupled to the system bus 506. The computer architecture 500 also includes at least one digital camera 534 with its associated digital camera controller 536. [

디스플레이 디바이스 (518), 키보드 (528), 포인팅 디바이스 (530) 뿐만 아니라, 디스플레이 제어기 (520), 디스크 제어기 (514), 네트워크 인터페이스 (526), 및 I/O 인터페이스 (532) 의 일반적인 특성들 및 기능의 설명은, 이들 특성들이 알려져 있으므로, 간결성을 위해 본원에서 생략된다.General characteristics of the display controller 520, the disk controller 514, the network interface 526, and the I / O interface 532 as well as the display device 518, the keyboard 528, the pointing device 530, The description of the function is omitted here for the sake of brevity since these characteristics are known.

동작 동안, 도 2 내지 도 5 를 참조하면, 프로세서 (502) 는 현실 세계 장면을 나타내는 가상 모델을 발생시키고 그 가상 모델을 시뮬레이션 또는 가상 현실 소프트웨어 모듈에 로드한다. 예시적인 실시형태에서, 프로세서 (502) 는 예를 들어, 가상 모델에서 가상 오브젝트 및 참조 오브젝트를 식별하기 위해, 터치스크린 (522) 을 통해서 사용자 입력들을 수신한다. 가상 오브젝트는 사용자가 본원에서 설명되는 로케이션 보정 단계들을 수행하기를 원하는 가상 오브젝트이다. 참조 오브젝트는 그것에 대비하여 로케이션 보정이 완료되는 것이다.2-5, processor 502 generates a virtual model representing a real-world scene and loads the virtual model into a simulation or virtual reality software module. In an exemplary embodiment, the processor 502 receives user inputs via the touch screen 522, for example, to identify virtual objects and reference objects in a virtual model. A virtual object is a virtual object that the user desires to perform the location correction steps described herein. And the reference object is completed to compensate for this.

일부 실시형태들에서, 프로세서 (502) 는 또한 가상 오브젝트 상의 하나 이상의 미리 정의된 지점들 및 참조 오브젝트 상의 하나 이상의 대응하는 지점들을 식별하기 위해 사용자 입력들을 수신한다. 미리 정의된 지점들이 식별된 후, 프로세서 (502) 는 그 식별된 지점들에 기초하여 로케이션 변환을 계산한다. 더욱이, 가상 오브젝트의 로케이션 변환은 참조 오브젝트와 같은 참조 지점에 대해 계산된다. 로케이션 변환이 계산된 후, 카메라 디바이스 (534) 는 현실 세계 장면 내에서 현실 세계 오브젝트의 디지털 이미지를 획득하며, 여기서, 현실 세계 오브젝트는 가상 오브젝트에 대응한다. 더욱이, 이미지 획득 동안, 프로세서 (502) 는 사용자 입력들을 조작들 3D 가상 뷰의 형태로 수신한다. 예를 들어, 사용자는 터치스크린 (522) 을 이용하여, 참조 오브젝트가 현실 세계 참조 오브젝트와 거의 정렬되도록, 예컨대 회전, 평행이동, 및/또는 줌 동작들을 이용하여, 재위치시킬 수도 있다. 이 근사적 정렬 이후, 프로세서 (502) 는 참조 오브젝트 지점들을 현실 세계 참조 오브젝트 지점들과 실질적으로 매칭시키기 위해, 뷰잉 회전, 변환, 및/또는 줌의 미세 변경들에 의해 3D 가상 뷰의 프로그램적 조정을 행한다.In some embodiments, the processor 502 also receives user inputs to identify one or more predefined points on the virtual object and one or more corresponding points on the reference object. After the predefined points are identified, the processor 502 calculates the location transformation based on the identified points. Furthermore, the location transformation of the virtual object is calculated for the same reference point as the reference object. After the location transformation is calculated, the camera device 534 obtains a digital image of the real world object within the real world scene, where the real world object corresponds to the virtual object. Moreover, during image acquisition, the processor 502 receives user inputs in the form of operations 3D virtual views. For example, the user may reposition the reference object using the touch screen 522, e.g., using rotation, translation, and / or zooming operations so that the reference object is substantially aligned with the real world reference object. After this approximate alignment, the processor 502 may perform a programmatic adjustment of the 3D virtual view by fine alterations of the viewing rotation, transformation, and / or zoom to substantially match the reference object points with the real world reference object points. .

참조 오브젝트가 현실 세계 참조 오브젝트와 실질적으로 정렬될 때, 프로세서 (502) 는 가상 오브젝트 지점들과 현실 세계 오브젝트 상의 대응하는 지점들 사이의 불일치를 결정한다. 구체적으로 설명하면, 프로세서 (502) 는 가상 오브젝트 상의 지점들과 현실 세계 오브젝트 상의 대응하는 지점들 사이의 이미지-기반의 위치상의 차이를 계산한다. 예시적인 실시형태에서, 차이가 X 및 Y 방향들의 각각에서의 픽셀들에서 계산된다. 프로세서 (502) 는 현실 세계 장면의 상이한 관점들로부터 획득된 이미지들의 각각에 대해 이 이미지-기반의 위치상의 차이를 계산한다.When the reference object is substantially aligned with the real world reference object, the processor 502 determines the mismatch between the virtual object points and corresponding points on the real world object. Specifically, the processor 502 calculates the difference in image-based position between points on the virtual object and corresponding points on the real world object. In an exemplary embodiment, the difference is calculated in the pixels in each of the X and Y directions. The processor 502 calculates the difference on this image-based location for each of the images obtained from different views of the real-world scene.

프로세서 (502) 는 그후 모든 이미지 위치상의 차이들의 결합을 최소화하기 위해 가상 오브젝트의 로케이션 변환을 반복한다. 구체적으로 설명하면, 프로세서 (502) 는 변수 파라미터들의 세트를 조정함으로써 비용 함수 (cost function) 를 최소화하는 표준 비선형 회귀 (standard non-linear regression) 를 이용한다. 최소화 단계에 기초하여, 프로세서 (502) 는 가상 오브젝트의 위치 및/또는 방위를 조정하고, 가상 오브젝트의 보정된 로케이션에 대해 가상 모델을 조정한다.Processor 502 then repeats the location transformation of the virtual object to minimize the combination of differences on all image locations. Specifically, processor 502 utilizes a standard non-linear regression that minimizes the cost function by adjusting the set of variable parameters. Based on the minimization step, the processor 502 adjusts the position and / or orientation of the virtual object and adjusts the virtual model for the corrected location of the virtual object.

현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한, 컴퓨터 시스템들, 컴퓨터 디바이스들, 컴퓨터-구현 방법들, 및 컴퓨터-프로그램 제품들의 예시적인 실시형태들이 위에서 자세히 설명되었다. 이들 실시형태들은 본원에서 설명하는 특정의 실시형태들에 한정되지 않으며, 더 정확히 말하면, 방법들의 동작들 및/또는 시스템 및/또는 장치의 구성요소들은 본원에서 설명하는 다른 동작들 및/또는 구성요소들로부터 독립적으로 그리고 별개로 이용될 수도 있다. 또, 설명되는 동작들 및/또는 구성요소들은 또한 다른 시스템들, 방법들, 및/또는 장치 내에 한정되거나, 또는 이와 조합하여 사용될 수도 있으며, 오직 본원에서 설명하는 바와 같은, 시스템들, 방법들, 및 저장 매체들과 함께 실시하는 것에 한정되지 않는다.Exemplary embodiments of computer systems, computer devices, computer-implemented methods, and computer-program products for use in location correction of a virtual model of a real-world scene have been described in detail above. These embodiments are not limited to the specific embodiments described herein, and more precisely, that the operations of the methods and / or the components of the system and / or apparatus may be performed by other acts and / And may be used independently and separately. It should also be understood that the operations and / or components described may also be used in other systems, methods, and / or apparatuses, and / or in combination, And < / RTI > storage media.

컴퓨터 디바이스, 예컨대 본원에서 설명되는 컴퓨터 아키텍처를 갖는 컴퓨터 디바이스는 적어도 하나의 프로세서 또는 프로세싱 유닛 및 시스템 메모리를 포함한다. 컴퓨터 디바이스는 일반적으로 적어도 몇몇 형태의 컴퓨터 판독가능 매체들을 갖는다. 일 예로서 한정 없이, 컴퓨터 판독가능 매체들은 컴퓨터 저장 매체들 및 통신 매체들을 포함한다. 컴퓨터 저장 매체들은 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터와 같은 정보의 저장을 위해 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 착탈식 및 비-착탈식 매체들을 포함한다. 통신 매체들은 일반적으로 컴퓨터 판독가능 명령들, 데이터 구조들, 프로그램 모듈들, 또는 다른 데이터를 반송파 또는 다른 전송 메커니즘과 같은 변조된 데이터 신호로 구현하며, 임의의 정보 전달 매체들을 포함한다. 당업자들은 그의 특성들 세트 중 하나 이상을 가지거나 또는 그 신호에서의 정보를 인코딩하는 방법으로 변경되는 그 변조된 데이터 신호를 잘 알고 있다. 상기 중 임의의 것들의 조합들이 또한 컴퓨터 판독가능 매체들의 범위 내에 포함된다.A computer device, e.g., a computer device having a computer architecture as described herein, includes at least one processor or processing unit and system memory. Computer devices generally have at least some form of computer readable media. By way of example and not limitation, computer readable media include computer storage media and communication media. Computer storage media includes volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules, or other data . Communication media generally embodies computer readable instructions, data structures, program modules, or other data in a modulated data signal, such as a carrier wave or other transport mechanism, and includes any information delivery media. Those skilled in the art are familiar with the modulated data signal that has one or more of its set of characteristics or that is modified in such a way as to encode information in the signal. Combinations of any of the above are also encompassed within the scope of computer readable media.

더욱이, 본 발명의 실시형태들은 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터-실행가능한 구성요소들을 갖는 하나 이상의 비일시성 컴퓨터-판독가능 저장 매체들을 갖는 컴퓨터 프로그램 제품으로서 구현될 수도 있다. 구성요소들은 프로세서에 의해 실행될 때 프로세서로 하여금 가상 오브젝트를 포함한, 가상 모델을 발생시키도록 하는 발생 구성요소를 포함한다. 발생 구성요소는 또한 프로세서로 하여금, 복수의 식별가능한 지점들 중 적어도 일부분의 사용자 선택을 수신하고, 가상 오브젝트 상의 복수의 식별가능한 지점들에 기초하여 가상 오브젝트에 대한 로케이션 변환을 계산하도록 한다. 더욱이, 발생 구성요소는 프로세서로 하여금 가상 오브젝트 및 대응하는 참조 오브젝트를 식별하고, 가상 오브젝트 상의 적어도 하나의 미리 정의된 지점 및 참조 오브젝트 상의 대응하는 지점을 식별하도록 한다.Moreover, embodiments of the present invention may be implemented as a computer program product having one or more non-temporal computer-readable storage media having computer-executable components for use in location correction of a virtual model of a real-world scene. The components include an originating component that, when executed by a processor, causes the processor to generate a virtual model, including a virtual object. The generating component also causes the processor to receive a user selection of at least a portion of the plurality of identifiable points and to calculate a location transformation for the virtual object based on the plurality of identifiable points on the virtual object. Moreover, the generating component allows the processor to identify the virtual object and the corresponding reference object, and identify at least one predefined point on the virtual object and a corresponding point on the reference object.

구성요소들은 또한 프로세서에 의해 실행될 때 프로세서로 하여금, 현실 세계 장면 내에서 현실 세계 오브젝트의 적어도 하나의 디지털 이미지를 획득하도록 하는 획득 구성요소를 포함하며, 여기서, 현실 세계 오브젝트는 가상 오브젝트에 대응한다. 더욱이, 구성요소들은 프로세서에 의해 실행될 때 프로세서로 하여금, 가상 오브젝트 상의 적어도 하나의 미리 정의된 지점과 현실 세계 오브젝트 상의 적어도 하나의 대응하는 지점 사이의 이미지-기반의 위치상의 차이를 계산하고, 이미지 위치상의 차이에 기초하여 가상 오브젝트의 위치 및/또는 방위를 조정하고, 그리고 가상 오브젝트의 보정된 로케이션에 대해서 가상 모델을 조정하도록 하는 보정 구성요소를 포함한다. 보정 구성요소는 또한 프로세서로 하여금, 참조 오브젝트 지점들을 현실 세계 참조 오브젝트 지점들과 실질적으로 매칭시키기 위해, 뷰잉 회전, 변환, 및/또는 줌의 미세 변경들에 의해 3D 가상 뷰의 프로그램적 조정을 행하도록 한다. 보정 구성요소는 그후 프로세서로 하여금, 참조 오브젝트 상의 적어도 하나의 미리 정의된 지점과 현실 세계 참조 오브젝트 상의 적어도 하나의 대응하는 지점 사이의 이미지-기반의 위치상의 차이를 계산하도록 한다. 일부 실시형태들에서, 보정 구성요소는 프로세서로 하여금, 모든 이미지 위치상의 차이들의 결합을 최소화하기 위해, 가상 오브젝트의 로케이션 변환을 반복하도록 한다.The components also include an acquisition component that when executed by the processor causes the processor to acquire at least one digital image of a real-world object within a real-world scene, wherein the real-world object corresponds to a virtual object. Moreover, the components, when executed by a processor, may cause the processor to calculate a difference on an image-based position between at least one predefined point on the virtual object and at least one corresponding point on the real-world object, Adjust the position and / or orientation of the virtual object based on the difference in the virtual object, and adjust the virtual model for the corrected location of the virtual object. The correction component may also enable the processor to make programmatic adjustments of the 3D virtual view by fine changes in viewing rotation, transformation, and / or zoom to substantially match the reference object points with the real world reference object points . The correction component then causes the processor to calculate a difference on the image-based position between at least one predefined point on the reference object and at least one corresponding point on the real-world reference object. In some embodiments, the correction component causes the processor to repeat the location transformation of the virtual object to minimize the combination of differences on all image locations.

본 발명은 예시적인 컴퓨터 시스템 환경과 관련하여 설명되지만, 본 발명의 실시형태들은 매우 많은 다른 범용 또는 특수 목적 컴퓨터 시스템 환경들 또는 구성들과 함께 동작가능하다. 컴퓨터 시스템 환경은 본 발명의 임의의 양태의 사용 범위 또는 기능에 관한 임의의 제한을 암시하려고 의도된 것이 아니다. 더욱이, 컴퓨터 시스템 환경은 예시적인 동작 환경에 예시된 구성요소들 중 임의의 하나 또는 조합에 관한 임의의 의존성 또는 요구사항을 갖는 것으로 해석되어서는 안된다. 본 발명의 양태들과 함께 사용하기에 적합할 수도 있는 널리 공지된 컴퓨터 시스템들, 환경들, 및/또는 구성들의 예들은, 개인용 컴퓨터들, 서버 컴퓨터들, 휴대용 또는 랩탑 디바이스들, 멀티프로세서 시스템들, 마이크로프로세서-기반의 시스템들, 셋탑 박스들, 프로그래밍가능 가전제품, 모바일 전화기들, 네트워크 PCs, 미니컴퓨터들, 메인프레임 컴퓨터들, 상기 시스템들 또는 디바이스들 중 임의의 것을 포함하는 분산 컴퓨팅 환경들 등을 포함하지만 이에 한정되지 않는다.While the invention has been described in connection with an exemplary computer system environment, embodiments of the invention are interoperable with numerous other general purpose or special purpose computer system environments or configurations. The computer system environment is not intended to imply any limitation as to the scope of use or functionality of any aspect of the present invention. Moreover, the computer system environment should not be construed as having any dependency or requirement relating to any one or combination of components illustrated in the exemplary operating environment. Examples of well-known computer systems, environments, and / or configurations that may be suitable for use with aspects of the present invention include, but are not limited to, personal computers, server computers, portable or laptop devices, , Distributed computing environments that include any of the above systems or devices, microprocessor-based systems, set top boxes, programmable consumer electronics, mobile telephones, network PCs, minicomputers, mainframe computers, And the like.

본 발명의 실시형태들은 프로그램 구성요소들 또는 모듈들과 같은, 하나 이상의 컴퓨터들 또는 다른 디바이스들에 의해 실행되는 컴퓨터-실행가능한 명령들의 일반적인 컨텍스트 (general context) 로 설명될 수도 있다. 본 발명의 양태들은 임의의 수 및 구조의 구성요소들 또는 모듈들로 구현될 수도 있다. 예를 들어, 본 발명의 양태들은 도면들 및 설명되는 본원에서 예시된 특정의 컴퓨터-실행가능한 명령들 또는 특정의 구성요소들 또는 모듈들에 한정되지 않는다. 본 발명의 대안적인 실시형태들은 본원에서 예시된 및 설명되는 것보다 더 많거나 더 적은 기능을 갖는 상이한 컴퓨터-실행가능한 명령들 또는 구성요소들을 포함할 수도 있다.Embodiments of the invention may be described in the general context of computer-executable instructions that are executed by one or more computers or other devices, such as program components or modules. Aspects of the present invention may be implemented with any number and structure of components or modules. For example, aspects of the invention are not limited to the specific computer-executable instructions or specific components or modules illustrated in the drawings and described herein. Alternate embodiments of the present invention may include different computer-executable instructions or components having more or less functionality than those illustrated and described herein.

본원에서 예시되고 설명되는 본 발명의 실시형태들에서 동작들의 실행 또는 수행의 순서는 달리 규정하지 않는 한, 필수적인 것은 아니다. 즉, 동작들은 달리 규정하지 않는 한, 임의의 순서로 수행될 수도 있으며, 본 발명의 실시형태들은 본원에서 개시된 동작들보다 추가적인 또는 더 적은 동작들을 포함할 수도 있다. 예를 들어, 또 다른 동작 이전, 동시에, 또는 이후에 특정의 동작을 실행하거나 또는 수행하는 것은 본 발명의 양태들의 범위 내인 것으로 고려된다.The order of execution or performance of operations in the embodiments of the present invention illustrated and described herein is not essential, unless otherwise specified. That is, operations may be performed in any order, unless otherwise specified, and embodiments of the present invention may include additional or fewer operations than those disclosed herein. For example, it is contemplated that performing or performing a particular operation before, concurrently with, or after another operation is within the scope of aspects of the present invention.

본 발명 또는 그의 실시형태들의 양태들의 엘리먼트들을 도입할 때, 관사들 "하나의 (a)", "한 (an)", "그 (the)", 및 "상기 (said)" 는 엘리먼트들 중 하나 이상인 것을 의미하도록 의도된다. 용어들 "포함하는 (comprising)", "포함한 (including)", 및 "갖는 (having)" 은 포괄적인 것으로 의도되며, 리스트된 엘리먼트들 이외의 추가적인 엘리먼트들일 수도 있다는 것을 의미하도록 의도된다.When introducing elements of aspects of the present invention or aspects of the embodiments thereof, the articles "a", "an", "the" and "said" It is intended to mean more than one. The terms " comprising, "" including, " and" having "are intended to be inclusive and may mean additional elements other than the listed elements.

이 서면 설명은 예들을 이용하여 최상의 모드를 포함하여 본 발명을 개시하며, 또한 임의의 당업자로 하여금, 임의의 디바이스들 또는 시스템들을 제조하고 이용하는 것 및 임의의 포함된 방법들을 수행하는 것을 포함하여, 본 발명을 실시가능하게 한다. 본 발명의 특허의 범위는 청구항들에 의해 정의되며, 당업자들에게 떠오르는 다른 예들을 포함할 수도 있다. 이런 다른 예들은, 청구항들의 문자적 언어 (literal language) 와는 상이하지 않은 구조적 엘리먼트들을 가지면, 또는 청구항들의 문자적 언어와는 크지 않은 차이들을 가진 균등의 구조적 엘리먼트들을 포함하면, 청구항들의 범위 내인 것으로 의도된다.This written description discloses the invention, including the best mode, using examples, and is provided to enable any person skilled in the art to make and use any devices or systems, including performing any of the contained methods, Thereby enabling the present invention to be practiced. The scope of the patent of the present invention is defined by the claims, and may include other examples that come to those skilled in the art. These other examples, if they include structural elements that do not differ from the literal language of the claims, or even structural elements that are not significantly different from the literal language of the claims, are intended to be within the scope of the claims, do.

본 발명은 특히 그의 예시적인 실시형태들을 참조하여 도시하고 설명되었지만, 당업자들에 의해, 형상 및 세부 사항들에서의 여러 변화들이 첨부된 청구항들에 의해 포괄되는, 본 발명의 범위로부터 일탈함이 없이, 이루어질 수도 있는 것으로 이해될 것이다.While the invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention, which is encompassed by the appended claims. , ≪ / RTI >

Claims (20)

현실 세계 (real-world) 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터-구현 방법으로서,
가상 오브젝트를 포함한, 상기 가상 모델을 발생시키는 단계;
상기 현실 세계 장면 내에서 현실 세계 오브젝트의 적어도 하나의 디지털 이미지를 획득하는 단계로서, 상기 현실 세계 오브젝트는 상기 가상 오브젝트에 대응하는, 상기 디지털 이미지를 획득하는 단계;
상기 가상 오브젝트 상의 적어도 하나의 미리 정의된 지점과 상기 현실 세계 오브젝트 상의 적어도 하나의 대응하는 지점 사이의 이미지-기반의 위치상의 차이를 계산하는 단계;
상기 이미지 위치상의 차이에 기초하여 상기 가상 오브젝트의 위치 및 방위 중 적어도 하나를 조정하는 단계; 및
상기 가상 모델을 상기 가상 오브젝트의 보정된 상기 로케이션에 대해서 조정하는 단계를 포함하는, 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터-구현 방법.
A computer-implemented method for use in location correction of a virtual model of a real-world scene,
Generating the virtual model including a virtual object;
Obtaining at least one digital image of a real-world object within the real-world scene, the real-world object corresponding to the virtual object;
Computing a difference on an image-based location between at least one predefined point on the virtual object and at least one corresponding point on the real-world object;
Adjusting at least one of a position and an orientation of the virtual object based on a difference on the image position; And
And adjusting the virtual model with respect to the corrected location of the virtual object. ≪ Desc / Clms Page number 19 >
제 1 항에 있어서,
상기 가상 모델을 발생시키는 단계는, 상기 가상 오브젝트 상의 복수의 식별가능한 지점들에 기초하여 상기 가상 오브젝트에 대한 로케이션 변환을 계산하는 단계를 포함하는, 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터-구현 방법.
The method according to claim 1,
Wherein generating the virtual model comprises computing a location transformation for the virtual object based on a plurality of identifiable points on the virtual object. Computer-implemented method.
제 2 항에 있어서,
상기 로케이션 변환을 계산하는 단계는, 상기 복수의 식별가능한 지점들의 적어도 일부분의 사용자 선택을 수신하는 단계를 포함하는, 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터-구현 방법.
3. The method of claim 2,
Wherein computing the location transformation comprises receiving a user selection of at least a portion of the plurality of identifiable points.
제 1 항에 있어서,
상기 가상 모델을 발생시키는 단계는,
상기 가상 오브젝트 및 대응하는 참조 오브젝트를 식별하는 단계; 및
상기 가상 오브젝트 상의 상기 적어도 하나의 미리 정의된 지점 및 상기 참조 오브젝트 상의 대응하는 지점을 식별하는 단계를 포함하는, 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터-구현 방법.
The method according to claim 1,
Wherein generating the virtual model comprises:
Identifying the virtual object and a corresponding reference object; And
Identifying the at least one predefined point on the virtual object and a corresponding point on the reference object for use in location correction of a virtual model of a real-world scene.
제 4 항에 있어서,
상기 참조 오브젝트 상의 상기 미리 정의된 지점들을 대응하는 현실 세계 참조 오브젝트 상의 상기 지점들과 실질적으로 매칭시키기 위한 가상 뷰의 프로그램적 조정 (programmatic adjustment) 을 더 포함하는, 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터-구현 방법.
5. The method of claim 4,
Further comprising a programmatic adjustment of a virtual view for substantially matching the predefined points on the reference object with the points on a corresponding real world reference object, For a computer-implemented method.
제 4 항에 있어서,
가상 뷰의 프로그램적 조정; 및
획득된 상기 디지털 이미지의 각각에 대해 상기 가상 오브젝트 상의 상기 적어도 하나의 미리 정의된 지점과 상기 현실 세계 오브젝트 상의 상기 적어도 하나의 대응하는 지점 사이의 상기 이미지-기반의 위치상의 차이를 계산하는 것을 더 포함하는, 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터-구현 방법.
5. The method of claim 4,
Programmatic adjustment of virtual views; And
Computing a difference on the image-based location between the at least one predefined point on the virtual object and the at least one corresponding point on the real-world object for each of the acquired digital images A computer-implemented method for use in a location correction of a virtual model of a real-world scene.
제 6 항에 있어서,
상기 가상 오브젝트의 로케이션 변환을 반복함으로써 상기 이미지 위치상의 차이를 최소화하는 단계를 더 포함하는, 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터-구현 방법.
The method according to claim 6,
Further comprising minimizing a difference on the image location by repeating the location transformation of the virtual object. ≪ Desc / Clms Page number 21 >
현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터로서,
상기 가상 모델 및 상기 가상 모델의 가상 오브젝트를 저장하도록 구성된 메모리 영역; 및
상기 메모리 영역에 커플링된 프로세서를 포함하며,
상기 프로세서는,
상기 가상 오브젝트를 포함한, 상기 가상 모델을 발생시키고;
상기 현실 세계 장면 내에서, 상기 가상 오브젝트에 대응하는 현실 세계 오브젝트의 적어도 하나의 디지털 이미지를 획득하고;
상기 가상 오브젝트 상의 적어도 하나의 미리 정의된 지점과 상기 현실 세계 오브젝트 상의 적어도 하나의 대응하는 지점 사이의 이미지-기반의 위치상의 차이를 계산하고;
상기 이미지 위치상의 차이에 기초하여 상기 가상 오브젝트의 위치 및 방위 중 적어도 하나를 조정하고; 그리고
상기 가상 모델을 상기 가상 오브젝트의 보정된 상기 로케이션에 대해서 조정하도록 구성되는, 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터.
A computer for use in location correction of a virtual model of a real-world scene,
A memory area configured to store virtual models of the virtual model and the virtual model; And
A processor coupled to the memory region,
The processor comprising:
Generate the virtual model including the virtual object;
Within the real-world scene, obtaining at least one digital image of a real-world object corresponding to the virtual object;
Calculating a difference on an image-based location between at least one predefined point on the virtual object and at least one corresponding point on the real-world object;
Adjust at least one of a position and an orientation of the virtual object based on a difference on the image position; And
And to adjust the virtual model for the corrected location of the virtual object.
제 8 항에 있어서,
상기 프로세서는 상기 가상 오브젝트 상의 복수의 식별가능한 지점들에 기초하여 상기 가상 오브젝트에 대한 로케이션 변환을 계산하도록 추가로 구성되는, 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터.
9. The method of claim 8,
Wherein the processor is further configured to calculate a location transformation for the virtual object based on a plurality of identifiable points on the virtual object.
제 9 항에 있어서,
상기 프로세서는 상기 복수의 식별가능한 지점들의 적어도 일부분의 사용자 선택을 수신하도록 추가로 구성되는, 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터.
10. The method of claim 9,
Wherein the processor is further configured to receive a user selection of at least a portion of the plurality of identifiable points.
제 8 항에 있어서,
상기 프로세서는,
상기 가상 오브젝트 및 대응하는 참조 오브젝트를 식별하고; 그리고
상기 가상 오브젝트 상의 상기 적어도 하나의 미리 정의된 지점 및 상기 참조 오브젝트 상의 대응하는 지점을 식별하도록 추가로 구성되는, 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터.
9. The method of claim 8,
The processor comprising:
Identify the virtual object and a corresponding reference object; And
Wherein the computer is further configured to identify the at least one predefined point on the virtual object and a corresponding point on the reference object.
제 11 항에 있어서,
상기 프로세서는 상기 참조 오브젝트 상의 상기 미리 정의된 지점들을 대응하는 현실 세계 참조 오브젝트 상의 상기 지점들과 실질적으로 매칭시키기 위해 가상 뷰를 프로그램적으로 조정하도록 추가로 구성되는, 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터.
12. The method of claim 11,
Wherein the processor is further configured to programmatically adjust the virtual view to substantially match the predefined points on the reference object with the points on the corresponding real world reference object, Computer for use in calibration.
제 11 항에 있어서,
상기 프로세서는,
상기 참조 오브젝트 상의 상기 미리 정의된 지점들을 대응하는 현실 세계 참조 오브젝트 상의 상기 지점들과 실질적으로 매칭시키기 위해 가상 뷰를 프로그램적으로 조정하고; 그리고
획득된 상기 디지털 이미지의 각각에 대해 상기 가상 오브젝트 상의 상기 적어도 하나의 미리 정의된 지점과 상기 현실 세계 오브젝트 상의 상기 적어도 하나의 대응하는 지점 사이의 상기 이미지-기반의 위치상의 차이를 계산하도록 추가로 구성되는, 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터.
12. The method of claim 11,
The processor comprising:
Programmatically adjusting a virtual view to substantially match the predefined points on the reference object with the points on a corresponding real-world reference object; And
For each of the acquired digital images, a difference on the image-based location between the at least one predefined point on the virtual object and the at least one corresponding point on the real world object A computer for use in location correction of a virtual model of a real world scene.
제 13 항에 있어서,
상기 프로세서는 상기 가상 오브젝트의 로케이션 변환을 반복함으로써 상기 이미지 위치상의 차이를 최소화하도록 추가로 구성되는, 현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터.
14. The method of claim 13,
Wherein the processor is further configured to minimize a difference on the image location by repeating the location transformation of the virtual object.
컴퓨터 프로그램 제품으로서,
현실 세계 장면의 가상 모델의 로케이션 보정에 이용하기 위한 컴퓨터-실행가능한 구성요소들을 갖는 하나 이상의 비일시성 컴퓨터-판독가능 저장 매체들을 포함하며,
상기 구성요소들은,
프로세서에 의해 실행될 때 상기 프로세서로 하여금, 가상 오브젝트를 포함한, 상기 가상 모델을 발생시키도록 하는 발생 구성요소;
프로세서에 의해 실행될 때 상기 프로세서로 하여금, 상기 현실 세계 장면 내에서 현실 세계 오브젝트의 적어도 하나의 디지털 이미지를 획득하도록 하는 획득 구성요소로서, 상기 현실 세계 오브젝트는 상기 가상 오브젝트에 대응하는, 상기 획득 구성요소; 및
프로세서에 의해 실행될 때 상기 프로세서로 하여금, 상기 가상 오브젝트 상의 적어도 하나의 미리 정의된 지점과 상기 현실 세계 오브젝트 상의 적어도 하나의 대응하는 지점 사이의 이미지-기반의 위치상의 차이를 계산하고; 상기 이미지 위치상의 차이에 기초하여 상기 가상 오브젝트의 위치 및 방위 중 적어도 하나를 조정하고; 그리고 상기 가상 모델을 상기 가상 오브젝트의 보정된 상기 로케이션에 대해서 조정하도록 하는 보정 구성요소를 포함하는, 컴퓨터 프로그램 제품.
As a computer program product,
Readable storage medium having computer-executable components for use in location correction of a virtual model of a real-world scene,
The components,
An execution component that, when executed by a processor, causes the processor to generate the virtual model, including a virtual object;
An acquisition component that, when executed by a processor, causes the processor to acquire at least one digital image of a real-world object within the real-world scene, the real-world object corresponding to the virtual object, ; And
Calculating a difference on an image-based position between at least one predefined point on the virtual object and at least one corresponding point on the real-world object when executed by the processor; Adjust at least one of a position and an orientation of the virtual object based on a difference on the image position; And a calibration component for causing the virtual model to adjust for the corrected location of the virtual object.
제 15 항에 있어서,
상기 발생 구성요소는 추가로 상기 프로세서로 하여금,
복수의 식별가능한 지점들의 적어도 일부분의 사용자 선택을 수신하고; 그리고
상기 가상 오브젝트 상의 복수의 식별가능한 지점들에 기초하여 상기 가상 오브젝트에 대한 로케이션 변환을 계산하도록 하는, 컴퓨터 프로그램 제품.
16. The method of claim 15,
The generating component may further cause the processor to:
Receiving a user selection of at least a portion of a plurality of identifiable points; And
And calculate a location transformation for the virtual object based on a plurality of identifiable points on the virtual object.
제 15 항에 있어서,
상기 발생 구성요소는 추가로 상기 프로세서로 하여금,
상기 가상 오브젝트 및 대응하는 참조 오브젝트를 식별하고; 그리고
상기 가상 오브젝트 상의 상기 적어도 하나의 미리 정의된 지점 및 상기 참조 오브젝트 상의 대응하는 지점을 식별하도록 하는, 컴퓨터 프로그램 제품.
16. The method of claim 15,
The generating component may further cause the processor to:
Identify the virtual object and a corresponding reference object; And
Identify the at least one predefined point on the virtual object and a corresponding point on the reference object.
제 15 항에 있어서,
상기 보정 구성요소는 추가로 상기 프로세서로 하여금, 상기 참조 오브젝트 상의 상기 미리 정의된 지점들을 대응하는 현실 세계 참조 오브젝트 상의 상기 지점들과 실질적으로 매칭시키기 위해 가상 뷰를 프로그램적으로 조정하도록 하는, 컴퓨터 프로그램 제품.
16. The method of claim 15,
Wherein the correction component further causes the processor to programmatically adjust the virtual view to substantially match the predefined points on the reference object with the points on the corresponding real world reference object, product.
제 15 항에 있어서,
상기 보정 구성요소는 추가로 상기 프로세서로 하여금,
가상 뷰를 프로그램적으로 조정하고; 그리고
획득된 상기 디지털 이미지의 각각에 대해 상기 참조 오브젝트 상의 상기 적어도 하나의 미리 정의된 지점과 상기 현실 세계 참조 오브젝트 상의 상기 적어도 하나의 대응하는 지점 사이의 상기 이미지-기반의 위치상의 차이를 계산하도록 하는, 컴퓨터 프로그램 제품.
16. The method of claim 15,
The correction component may further cause the processor to:
Adjust the virtual view programmatically; And
Based position between the at least one predefined point on the reference object and the at least one corresponding point on the real world reference object for each of the acquired digital images, Computer program products.
제 19 항에 있어서,
상기 보정 구성요소는 추가로 상기 프로세서로 하여금, 상기 가상 오브젝트의 로케이션 변환을 반복함으로써 상기 이미지 위치상의 차이를 최소화하도록 하는, 컴퓨터 프로그램 제품.
20. The method of claim 19,
Wherein the correction component further causes the processor to minimize a difference on the image location by repeating the location transformation of the virtual object.
KR20130160293A 2012-12-21 2013-12-20 Location correction of virtual objects KR20140081729A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/725,994 US9058693B2 (en) 2012-12-21 2012-12-21 Location correction of virtual objects
US13/725,994 2012-12-21

Publications (1)

Publication Number Publication Date
KR20140081729A true KR20140081729A (en) 2014-07-01

Family

ID=49943113

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20130160293A KR20140081729A (en) 2012-12-21 2013-12-20 Location correction of virtual objects

Country Status (5)

Country Link
US (1) US9058693B2 (en)
EP (1) EP2747034B1 (en)
JP (1) JP6335505B2 (en)
KR (1) KR20140081729A (en)
CN (1) CN103886124A (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019118599A3 (en) * 2017-12-13 2019-07-25 Lowe's Companies, Inc. Virtualizing objects using object models and object position data
KR20210023232A (en) * 2019-08-22 2021-03-04 동의대학교 산학협력단 3d modeling process based on photo scanning technology
WO2022211391A1 (en) * 2021-04-02 2022-10-06 삼성전자 주식회사 Electronic device and operating method therefor
WO2023095937A1 (en) * 2021-11-24 2023-06-01 심용수 Method for identifying error in drawing, and apparatus therefor
US11875396B2 (en) 2016-05-10 2024-01-16 Lowe's Companies, Inc. Systems and methods for displaying a simulated room and portions thereof

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9671566B2 (en) 2012-06-11 2017-06-06 Magic Leap, Inc. Planar waveguide apparatus with diffraction element(s) and system employing same
CA2817497C (en) 2013-01-31 2021-05-25 Dirtt Environmental Solutions, Ltd. Method and system for efficient modeling of specular reflection
JP6138566B2 (en) * 2013-04-24 2017-05-31 川崎重工業株式会社 Component mounting work support system and component mounting method
WO2014193415A1 (en) 2013-05-31 2014-12-04 Dirtt Environmental Solutions Inc. Associating computer-executable objects with three-dimensional spaces within an architectural design environment
US20160117419A1 (en) * 2013-05-31 2016-04-28 Dirtt Environmental Solutions, Ltd. Automatically incorporating third party features into a computer design schematic
WO2015006784A2 (en) 2013-07-12 2015-01-15 Magic Leap, Inc. Planar waveguide apparatus with diffraction element(s) and system employing same
US10228242B2 (en) 2013-07-12 2019-03-12 Magic Leap, Inc. Method and system for determining user input based on gesture
US9256072B2 (en) * 2013-10-02 2016-02-09 Philip Scott Lyren Wearable electronic glasses that detect movement of a real object copies movement of a virtual object
GB2583848B (en) * 2014-05-21 2021-03-24 Tangible Play Inc Virtualization of tangible interface objects
WO2015191112A1 (en) 2014-06-09 2015-12-17 Dirtt Environmental Solutions Inc. Associating computer-executable objects with timber frames within an architectural design environment
CN104143212A (en) * 2014-07-02 2014-11-12 惠州Tcl移动通信有限公司 Reality augmenting method and system based on wearable device
US9858720B2 (en) 2014-07-25 2018-01-02 Microsoft Technology Licensing, Llc Three-dimensional mixed-reality viewport
US10311638B2 (en) 2014-07-25 2019-06-04 Microsoft Technology Licensing, Llc Anti-trip when immersed in a virtual reality environment
US9865089B2 (en) 2014-07-25 2018-01-09 Microsoft Technology Licensing, Llc Virtual reality environment with real world objects
US9766460B2 (en) 2014-07-25 2017-09-19 Microsoft Technology Licensing, Llc Ground plane adjustment in a virtual reality environment
US10451875B2 (en) 2014-07-25 2019-10-22 Microsoft Technology Licensing, Llc Smart transparency for virtual objects
US9904055B2 (en) 2014-07-25 2018-02-27 Microsoft Technology Licensing, Llc Smart placement of virtual objects to stay in the field of view of a head mounted display
US10416760B2 (en) 2014-07-25 2019-09-17 Microsoft Technology Licensing, Llc Gaze-based object placement within a virtual reality environment
KR102358548B1 (en) * 2014-10-15 2022-02-04 삼성전자주식회사 Method and appratus for processing screen using device
WO2016157247A1 (en) * 2015-03-30 2016-10-06 株式会社カプコン Virtual three-dimensional space generating method, image system, control method for same, and storage medium readable by computer device
US10007413B2 (en) 2015-04-27 2018-06-26 Microsoft Technology Licensing, Llc Mixed environment display of attached control elements
US9713871B2 (en) 2015-04-27 2017-07-25 Microsoft Technology Licensing, Llc Enhanced configuration and control of robots
KR101835434B1 (en) * 2015-07-08 2018-03-09 고려대학교 산학협력단 Method and Apparatus for generating a protection image, Method for mapping between image pixel and depth value
PL3131064T3 (en) * 2015-08-13 2018-03-30 Nokia Technologies Oy Searching image content
WO2017039348A1 (en) * 2015-09-01 2017-03-09 Samsung Electronics Co., Ltd. Image capturing apparatus and operating method thereof
WO2017055910A1 (en) * 2015-09-30 2017-04-06 Sony Interactive Entertainment Inc. Methods for optimizing positioning of content on a screen of a head mounted display
EP3417307A4 (en) 2016-02-18 2019-09-11 Edx Technologies, Inc. Systems and methods for augmented reality representations of networks
US10628537B2 (en) * 2016-04-12 2020-04-21 Dassault Systemes Simulia Corp. Simulation augmented reality system for emergent behavior
US10607405B2 (en) * 2016-05-27 2020-03-31 Rakuten, Inc. 3D model generating system, 3D model generating method, and program
US20170351415A1 (en) * 2016-06-06 2017-12-07 Jonathan K. Cheng System and interfaces for an interactive system
US10599879B2 (en) * 2016-06-17 2020-03-24 Dassault Systemes Simulia Corp. Optimal pressure-projection method for incompressible transient and steady-state navier-stokes equations
US10380762B2 (en) * 2016-10-07 2019-08-13 Vangogh Imaging, Inc. Real-time remote collaboration and virtual presence using simultaneous localization and mapping to construct a 3D model and update a scene based on sparse data
JP6866616B2 (en) * 2016-11-17 2021-04-28 富士通株式会社 Superimposed image generation program, superimposed image generation method, and information processing device
US11037321B2 (en) * 2016-12-02 2021-06-15 Koninklijke Kpn N.V. Determining size of virtual object
CN106582012B (en) * 2016-12-07 2018-12-11 腾讯科技(深圳)有限公司 Climbing operation processing method and device under a kind of VR scene
US10777018B2 (en) * 2017-05-17 2020-09-15 Bespoke, Inc. Systems and methods for determining the scale of human anatomy from images
FR3067842B1 (en) * 2017-06-19 2020-09-25 SOCIéTé BIC AUGMENTED REALITY TEXTURE APPLICATION PROCESS, SYSTEM AND CORRESPONDING KITS
JP7003617B2 (en) * 2017-12-12 2022-01-20 富士通株式会社 Estimator, estimation method, and estimation program
JP2019185475A (en) * 2018-04-12 2019-10-24 富士通株式会社 Specification program, specification method, and information processing device
JP7063165B2 (en) * 2018-07-26 2022-05-09 富士通株式会社 Measuring equipment, measuring method and measuring program
JP7098473B2 (en) * 2018-08-06 2022-07-11 東芝プラントシステム株式会社 Image processing device and image processing method
CN110874868A (en) * 2018-09-03 2020-03-10 广东虚拟现实科技有限公司 Data processing method and device, terminal equipment and storage medium
CN109274886B (en) * 2018-09-18 2020-09-25 成都泰盟软件有限公司 OpenVR-based mixed reality video recording method
CN109814434B (en) * 2018-12-20 2020-02-21 北京华航唯实机器人科技股份有限公司 Calibration method and device of control program
CN109801341B (en) * 2019-01-30 2020-11-03 北京经纬恒润科技有限公司 Calibration target position calibration method and device
CN111626803A (en) * 2019-02-28 2020-09-04 北京京东尚科信息技术有限公司 Method and device for customizing article virtualization and storage medium thereof
JP7245713B2 (en) * 2019-05-24 2023-03-24 鹿島建設株式会社 image display device
CN110427227B (en) * 2019-06-28 2023-01-06 广东虚拟现实科技有限公司 Virtual scene generation method and device, electronic equipment and storage medium
US20210006730A1 (en) 2019-07-07 2021-01-07 Tangible Play, Inc. Computing device
USD907032S1 (en) 2019-07-07 2021-01-05 Tangible Play, Inc. Virtualization device
US11113528B2 (en) * 2019-09-26 2021-09-07 Vgis Inc. System and method for validating geospatial data collection with mediated reality
CN112153319B (en) * 2020-09-02 2023-02-24 芋头科技(杭州)有限公司 AR information display method and device based on video communication technology
FR3118252B1 (en) * 2020-12-22 2023-07-07 Fond B Com Method for constructing a three-dimensional marker and three-dimensional marker thus obtained
CN112714337A (en) * 2020-12-22 2021-04-27 北京百度网讯科技有限公司 Video processing method and device, electronic equipment and storage medium
CN113362476B (en) * 2021-04-26 2023-07-18 福建数博讯信息科技有限公司 Correction method and device of floor type scaffold based on computer graphics
CN117546458A (en) 2021-06-30 2024-02-09 索尼集团公司 Information processing device, information processing method, and program
US20230057822A1 (en) * 2021-08-17 2023-02-23 Clo Virtual Fashion Inc. Generating enhanced exploded view for design object
CN114385002B (en) * 2021-12-07 2023-05-12 达闼机器人股份有限公司 Intelligent device control method, intelligent device control device, server and storage medium

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4115117B2 (en) * 2001-10-31 2008-07-09 キヤノン株式会社 Information processing apparatus and method
JP2004126870A (en) * 2002-10-01 2004-04-22 Canon Inc Composite realty feeling providing device and system, and method therefor
US7369101B2 (en) * 2003-06-12 2008-05-06 Siemens Medical Solutions Usa, Inc. Calibrating real and virtual views
JP4356983B2 (en) * 2004-02-10 2009-11-04 キヤノン株式会社 Image processing method and image processing apparatus
CA2556082A1 (en) * 2004-03-12 2005-09-29 Bracco Imaging S.P.A. Accuracy evaluation of video-based augmented reality enhanced surgical navigation systems
US20080259073A1 (en) * 2004-09-23 2008-10-23 Conversion Works, Inc. System and method for processing video images
WO2007011306A2 (en) * 2005-07-20 2007-01-25 Bracco Imaging S.P.A. A method of and apparatus for mapping a virtual model of an object to the object
US20070236514A1 (en) * 2006-03-29 2007-10-11 Bracco Imaging Spa Methods and Apparatuses for Stereoscopic Image Guided Surgical Navigation
DE102007059478B4 (en) * 2007-12-11 2014-06-26 Kuka Laboratories Gmbh Method and system for aligning a virtual model with a real object
US20110190774A1 (en) * 2009-11-18 2011-08-04 Julian Nikolchev Methods and apparatus for performing an arthroscopic procedure using surgical navigation
US20130063560A1 (en) * 2011-09-12 2013-03-14 Palo Alto Research Center Incorporated Combined stereo camera and stereo display interaction
US9508146B2 (en) * 2012-10-31 2016-11-29 The Boeing Company Automated frame of reference calibration for augmented reality

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11875396B2 (en) 2016-05-10 2024-01-16 Lowe's Companies, Inc. Systems and methods for displaying a simulated room and portions thereof
WO2019118599A3 (en) * 2017-12-13 2019-07-25 Lowe's Companies, Inc. Virtualizing objects using object models and object position data
US11062139B2 (en) 2017-12-13 2021-07-13 Lowe's Conpanies, Inc. Virtualizing objects using object models and object position data
US11615619B2 (en) 2017-12-13 2023-03-28 Lowe's Companies, Inc. Virtualizing objects using object models and object position data
KR20210023232A (en) * 2019-08-22 2021-03-04 동의대학교 산학협력단 3d modeling process based on photo scanning technology
WO2022211391A1 (en) * 2021-04-02 2022-10-06 삼성전자 주식회사 Electronic device and operating method therefor
WO2023095937A1 (en) * 2021-11-24 2023-06-01 심용수 Method for identifying error in drawing, and apparatus therefor

Also Published As

Publication number Publication date
JP2014123376A (en) 2014-07-03
EP2747034B1 (en) 2021-06-23
US9058693B2 (en) 2015-06-16
EP2747034A3 (en) 2018-01-24
CN103886124A (en) 2014-06-25
EP2747034A2 (en) 2014-06-25
US20140176530A1 (en) 2014-06-26
JP6335505B2 (en) 2018-05-30

Similar Documents

Publication Publication Date Title
US9058693B2 (en) Location correction of virtual objects
CN110383343B (en) Inconsistency detection system, mixed reality system, program, and inconsistency detection method
KR102110123B1 (en) Automated frame of reference calibration for augmented reality
CN109313814B (en) Camera calibration system
JP4492654B2 (en) 3D measuring method and 3D measuring apparatus
KR20210146353A (en) Shape-segmentation of triangular 3D mesh using modified shape from shading (SFS) method
JP2013539147A5 (en)
US20120105446A1 (en) Building controllable clairvoyance device in virtual world
CN113240769B (en) Spatial link relation identification method and device and storage medium
JPWO2020188799A1 (en) Camera calibration device, camera calibration method, and program
TW201617944A (en) System and method for analyzing graphic data of product
CN116109684B (en) Online video monitoring two-dimensional and three-dimensional data mapping method and device for variable electric field station
CN110322539B (en) Three-dimensional model cutting process display method and device of three-dimensional object and electronic equipment
CN114782646A (en) House model modeling method and device, electronic equipment and readable storage medium
JP6295296B2 (en) Complex system and target marker
US9256348B2 (en) Posture creation with tool pickup
Guo et al. Optimization design of non-coplanar target for pose measurement with monocular vision system
KR20140098592A (en) An apparatus and method for deciding and changing inner and outer surfaces of meshes on the time of surface generation
CN110378948B (en) 3D model reconstruction method and device and electronic equipment
CN115880448B (en) Three-dimensional measurement method and device based on binocular imaging
CN109242941B (en) Three-dimensional object synthesis using visual guidance as part of a two-dimensional digital image
JP7024405B2 (en) Information processing equipment, programs and information processing methods
JP5728399B2 (en) Measuring device, method and program
CN115131507A (en) Image processing method, image processing apparatus, and three-dimensional reconstruction method of metauniverse
CN114820980A (en) Three-dimensional reconstruction method and device, electronic equipment and readable storage medium

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid