BR102013027358A2 - AUTOMATED REFERENCE REFERENCE CALIBRATION STRUCTURE FOR INCREASED REALITY - Google Patents

AUTOMATED REFERENCE REFERENCE CALIBRATION STRUCTURE FOR INCREASED REALITY Download PDF

Info

Publication number
BR102013027358A2
BR102013027358A2 BRBR102013027358-9A BR102013027358A BR102013027358A2 BR 102013027358 A2 BR102013027358 A2 BR 102013027358A2 BR 102013027358 A BR102013027358 A BR 102013027358A BR 102013027358 A2 BR102013027358 A2 BR 102013027358A2
Authority
BR
Brazil
Prior art keywords
virtual
tracking system
camera
real
orientation
Prior art date
Application number
BRBR102013027358-9A
Other languages
Portuguese (pt)
Other versions
BR102013027358B1 (en
Inventor
Paul R Davies
David K Lee
Original Assignee
Boeing Co
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 Boeing Co filed Critical Boeing Co
Publication of BR102013027358A2 publication Critical patent/BR102013027358A2/en
Publication of BR102013027358B1 publication Critical patent/BR102013027358B1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • 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
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformation in the plane of the image
    • G06T3/60Rotation of a whole image or part thereof
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras
    • G06T7/73Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/74Determining position or orientation of objects or cameras using feature-based methods involving reference images or patches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/80Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30204Marker
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/30Subject of image; Context of image processing
    • G06T2207/30244Camera pose

Abstract

RESUMO Patente de Invenção: "ESTRUTURA AUTOMATIZADA DE CALIBRAÇÃO DE REFERÊNCIA PARA REALIDADE AUMENTADA". A presente invenção refere-se a um ou mais sistemas, métodos, rotinas e/ou técnicas para estrutura automatizada de calibração de referência para realidade aumentada (100). Um ou mais sistemas, métodos, rotinas e/ou técnicas podem permitir a calibração de um sistema de Realidade Aumentada (AR) (100), por exemplo, automaticamente calibrando as estruturas de referência de objetos virtuais e/ou uma câmera (102). Um exemplo de rotina e/ou técnica de calibração pode determinar e/ou calcular um mapeamento ou transformação de uma estrutura de referência de um objeto virtual (112) (por exemplo, um modelo CAD) para uma estrutura de câmera (204) associada com o sistema de rastreamento (108). Um outro exemplo de rotina e/ou técnica de calibração pode determinar e/ou calcular um mapeamento ou transformação de uma estrutura de referência de lente de câmera (102) para uma estrutura de referência da câmera (102) toda como determinado por um sistema de rastreamento (108). Essas rotinas ou técnicas podem calibrar um sistema de AR (100) para fornecer alinhamento rápido e preciso entre o conteúdo virtual e uma visão na câmera (102) ao vivo de uma cena real.ABSTRACT Patent of Invention: "AUTOMATED REFERENCE CALIBRATION STRUCTURE FOR AUGMENTED REALITY". The present invention relates to one or more systems, methods, routines and / or techniques for automated reference calibration structure for augmented reality (100). One or more systems, methods, routines and / or techniques can allow the calibration of an Augmented Reality (AR) system (100), for example, automatically calibrating the reference structures of virtual objects and / or a camera (102). An example of a calibration routine and / or technique can determine and / or calculate a mapping or transformation from a reference structure of a virtual object (112) (for example, a CAD model) to a camera structure (204) associated with the tracking system (108). Another example of a routine and / or calibration technique can determine and / or calculate a mapping or transformation from a camera lens reference structure (102) to a camera reference structure (102) all as determined by a calibration system. tracking (108). These routines or techniques can calibrate an AR system (100) to provide fast and accurate alignment between virtual content and a live view on the camera (102) of a real scene.

Description

Relatório Descritivo da Patente de Invenção para "ESTRUTURA AUTOMATIZADA DE CALIBRAÇÃO DE REFERÊNCIA PARA REALIDADE AUMENTADA".Report of the Invention Patent for "AUTOMATED REFERENCE REFERENCE CALIBRATION STRUCTURE".

CAMPOFIELD

A presente descrição refere-se à realidade aumentada e, maisThe present description refers to augmented reality and, more

particularmente, a um ou mais sistemas, métodos, rotinas e/ou técnicas para estrutura aumentada de calibração de referência para realidade aumentada.particularly one or more systems, methods, routines and / or techniques for augmented reality reference calibration enhanced structure.

ANTECEDENTESBACKGROUND

Aumentos ou adições para Realidade Aumentada (AR) para a 10 percepção de uma visão do mundo real, por exemplo, uma alimentação de vídeo ao vivo, sobrepondo objetos virtuais ou meios na visão do mundo real. A Realidade Aumentada possibilita informação artificial ou simulada relacionada ao mundo real e seus objetivos a serem sobrepostos na visão do mundo real. A realidade aumentada é relacionada a, mas diferente da, realidade 15 virtual (VR), que substitui uma visão do mundo real com uma visão artificial ou simulada. A Realidade Aumentada foi usada em aplicações tais como entretenimentos, vídeo games, esportes e aplicações em telefone celular.Augmented Reality (AR) increases or additions to the perception of a real world view, for example, a live video feed, superimposing virtual objects or media on the real world view. Augmented Reality enables artificial or simulated information related to the real world and its goals to be superimposed on the real world view. Augmented reality is related to, but different from, virtual reality (VR), which replaces a real-world view with an artificial or simulated view. Augmented Reality has been used in applications such as entertainment, video games, sports and mobile phone applications.

Adicionais limitações e desvantagens de abordagens convencionais e tradicionais se tornarão aparente para alguém versado na técnica, através de comparação de tais sistemas com alguns aspectos da presente invenção como estabelecido no restante do presente pedido e com referência aos desenhos.Additional limitations and disadvantages of conventional and traditional approaches will become apparent to one skilled in the art by comparing such systems with some aspects of the present invention as set forth in the remainder of the present application and with reference to the drawings.

SUMÁRIOSUMMARY

A presente descrição apresenta um ou mais sistemas, métodos, 25 rotinas e/ou técnicas para estrutura automatizada de calibração de referência para realidade aumentada. Um ou mais sistemas, métodos, rotinas e/ou técnicas podem possibilitar uma calibração simples e rápida de um sistema de Realidade Aumentada (AR), por exemplo, automaticamente calibrando as estruturas de referência de objetos virtuais e/ou uma câmera.The present disclosure discloses one or more systems, methods, routines and / or techniques for automated augmented reality reference calibration framework. One or more systems, methods, routines and / or techniques may enable simple and rapid calibration of an Augmented Reality (AR) system, for example by automatically calibrating virtual object reference structures and / or a camera.

Uma ou mais modalidades da presente descrição descrevem umOne or more embodiments of the present disclosure describe a

método para realidade aumentada, por exemplo, executada por um sistema de processamento de dados tendo pelo menos um processador. O método pode incluir receber ou estabelecer uma estrutura coordenada do sistema de rastreamento associada com um sistema de rastreamento do objeto. A estrutura coordenada do sistema de rastreamento pode ser alinhada com um espaço real em 3D. O sistema de rastreamento pode rastrear a posição e ori5 entação em um espaço real em 3D de um objeto real e de uma câmera. O método pode incluir receber do sistema de rastreamento uma primeira estrutura de referência de objeto real para o objeto real. A primeira estrutura de referência de objeto real pode indicar uma posição e orientação do objeto real com relação à estrutura coordenada do sistema de rastreamento. O mé10 todo pode incluir determinar uma segunda estrutura de referência de objeto real para o objeto real. A segunda estrutura de referência de objeto real pode indicar uma posição e orientação do objeto real com relação à estrutura coordenada do sistema de rastreamento. O método pode incluir receber uma primeira estrutura de referência de objeto virtual para um objeto virtual. O 15 objeto virtual pode ser modelado depois do objeto real. A primeira estrutura de referência de objeto virtual pode ser não relacionada à estrutura coordenada do sistema de rastreamento. O método pode incluir determinar uma segunda estrutura de referência de objeto virtual para o objeto virtual. A segunda estrutura de referência de objeto virtual pode indicar uma posição e 20 orientação do objeto virtual com relação à estrutura coordenada do sistema de rastreamento. O método pode incluir determinar um mapeamento do objeto virtual entre a primeira estrutura de referência de objeto virtual e a estrutura coordenada do sistema de rastreamento. O método pode incluir mostrar uma cena aumentada incluindo uma visão do espaço real em 3D, uma visão 25 do objeto real e um ou mais itens virtuais sobrepostos. O mapeamento do objeto virtual pode ser usado para colocar o um ou mais itens virtuais sobrepostos na cena aumentada de modo que o um ou mais itens virtuais sejam alinhados com o objeto real.augmented reality method, for example, performed by a data processing system having at least one processor. The method may include receiving or establishing a coordinate tracking system structure associated with an object tracking system. The coordinate structure of the tracking system can be aligned with real 3D space. The tracking system can track the position and orientation in real 3D space of a real object and a camera. The method may include receiving from the tracking system a first real object reference structure for the real object. The first real object reference structure can indicate a position and orientation of the real object with respect to the coordinate structure of the tracking system. The method may include determining a second real object reference structure for the real object. The second real object reference structure may indicate a position and orientation of the real object with respect to the coordinate structure of the tracking system. The method may include receiving a first virtual object reference structure for a virtual object. The virtual object can be modeled after the real object. The first virtual object reference structure may be unrelated to the coordinate structure of the tracking system. The method may include determining a second virtual object reference structure for the virtual object. The second virtual object reference structure may indicate a position and orientation of the virtual object with respect to the coordinate structure of the tracking system. The method may include determining a virtual object mapping between the first virtual object reference structure and the coordinate structure of the tracking system. The method may include showing an enlarged scene including a 3D real space view, a real object view, and one or more overlapping virtual items. Virtual object mapping can be used to place one or more overlapping virtual items in the enlarged scene so that one or more virtual items align with the actual object.

Uma ou mais modalidades da presente descrição descrevem um método para a realidade aumentada, por exemplo, executada por um sistema de processamento de dados tendo pelo menos um processador. O método pode incluir ou estabelecer uma estrutura coordenada do sistema de rastreamento associada com um sistema de rastreamento de objeto. A estrutura coordenada do sistema de rastreamento pode rastrear a posição e orientação em um espaço real em 3D de uma câmera que capture o espaço real em 3D e um marcador impresso. O método pode incluir receber do sis5 tema de rastreamento uma estrutura de referência da câmera para a câmera. A estrutura de referência da câmera pode indicar uma porção e orientação da câmara com relação à estrutura coordenada do sistema de rastreamento. O método pode incluir receber ou estabelecer uma estrutura coordenada de marcador impresso associada com o marcador impresso. A estrutu10 ra coordenada de marcador impresso pode ser alinhada com o espaço real em 3D. A estrutura coordenada de marcador impresso pode ser alinhada com a estrutura coordenada do sistema de rastreamento. O método pode incluir determinar uma estrutura de referência de lente da câmera para a lente da câmera. A estrutura de referência de lente da câmera pode indicar uma 15 posição e orientação da câmera com relação à estrutura coordenada de marcador impresso. O método pode incluir determinar um mapeamento de lente da câmera entre a estrutura de referência da câmera e a estrutura de referência da câmera. O método pode incluir mostrar uma cena aumentada incluindo uma visão do espaço real em 3D e um ou mais itens virtuais. O 20 mapeamento de lente da câmera pode ser usado para alterar ou distorcer um ou mais itens virtuais na cena aumentada.One or more embodiments of the present disclosure describe an augmented reality method, for example, performed by a data processing system having at least one processor. The method may include or establish a coordinate tracking system structure associated with an object tracking system. The coordinate structure of the tracking system can track the position and orientation in real 3D space of a camera that captures real 3D space and a printed marker. The method may include receiving from the tracking system a frame of reference from camera to camera. The camera reference frame may indicate a portion and orientation of the camera with respect to the coordinate structure of the tracking system. The method may include receiving or establishing a coordinated printed marker structure associated with the printed marker. The coordinate structure of the printed marker can be aligned with real 3D space. The coordinate structure of the printed marker can be aligned with the coordinate structure of the tracking system. The method may include determining a camera lens reference structure for the camera lens. The camera lens reference frame can indicate a camera position and orientation relative to the printed marker coordinate frame. The method may include determining a camera lens mapping between the camera reference frame and the camera reference frame. The method may include showing an enlarged scene including a real 3D space view and one or more virtual items. Camera lens mapping can be used to alter or distort one or more virtual items in the enlarged scene.

Uma ou mais modalidades da presente descrição descrevem um sistema. O sistema pode incluir uma câmera que captura uma visão de um espaço real em 3D incluindo um objeto real. O sistema pode incluir um sis25 tema de rastreamento que rastreia a posição e orientação em um espaço real em 3D do objeto real e da câmera. O sistema de rastreamento pode ser configurado para estabelecer uma estrutura coordenada do sistema de rastreamento associada com o sistema de rastreamento, e a estrutura coordenada do sistema de rastreamento pode ser alinhada com o espaço real em 30 3D. O sistema pode incluir um computador acoplado à câmera e ao sistema de rastreamento, e o computador pode incluir uma ou mais unidades de memória. O computador pode ser configurado com um modelador virtual. O modelador virtual pode ser configurado para receber do sistema de rastreamento uma primeira estrutura de referência de objeto real para o objeto real, onde a primeira estrutura de referência de objeto real pode indicar uma posição e orientação do objeto real com relação à estrutura coordenada do sis5 tema de rastreamento. O modelador virtual pode ser adicionalmente configurado para computar uma segunda estrutura de referência de objeto real para o objeto real, onde a segunda estrutura de referência de objeto real pode indicar uma posição e orientação do objeto real com relação à estrutura coordenada do sistema de rastreamento. O modelador virtual pode ser ainda 10 configurado para receber de uma ou mais unidades de memória uma primeira estrutura de referência de objeto virtual de um objeto virtual, onde o objeto virtual pode ser modelado depois do objeto real, e onde a primeira estrutura de referência de objeto virtual pode não ser relacionada à estrutura coordenada do sistema de rastreamento. O modelador virtual pode adicionalmente 15 configurar para computar uma segunda estrutura de referência de objeto virtual para o objeto virtual, onde a segunda estrutura de referência de objeto virtual pode indicar uma posição e orientação do objeto virtual com relação à estrutura coordenada do sistema de rastreamento. O modelador virtual pode ser adicionalmente configurado para computar um mapeamento do objeto 20 virtual entre a primeira estrutura de referência de objeto virtual e a estrutura coordenada do sistema de rastreamento. O modelador virtual pode ser ainda configurado para gerar e armazenar em uma ou mais unidades de memória uma cena aumentada incluindo uma visão do espaço real em 3D, uma visão do objeto real e um ou mais itens virtuais sobrepostos. O mapeamento do 25 objeto virtual pode ser usado para colocar o um ou mais itens virtuais sobrepostos na cena aumentada de modo que o um ou mais itens virtuais estejam alinhados com o objeto real.One or more embodiments of the present disclosure describe a system. The system may include a camera that captures a view of a real 3D space including a real object. The system may include a tracking system that tracks the position and orientation in real 3D space of the actual object and camera. The tracking system can be configured to establish a coordinate structure of the tracking system associated with the tracking system, and the coordinate structure of the tracking system can be aligned with actual 3D space. The system may include a computer attached to the camera and tracking system, and the computer may include one or more memory units. The computer can be configured with a virtual modeler. The virtual modeler can be configured to receive from the tracking system a first real object reference structure for the real object, where the first real object reference structure can indicate a position and orientation of the real object with respect to the sis5 coordinate structure. Tracking theme. The virtual modeler may be further configured to compute a second real object reference structure for the real object, where the second real object reference structure may indicate a position and orientation of the real object with respect to the coordinate structure of the tracking system. The virtual modeler may further be configured to receive from one or more memory units a first virtual object reference structure of a virtual object, where the virtual object may be modeled after the real object, and where the first reference structure of virtual object may not be related to the coordinate structure of the tracking system. The virtual modeler may further configure to compute a second virtual object reference structure for the virtual object, where the second virtual object reference structure may indicate a position and orientation of the virtual object with respect to the coordinate structure of the tracking system. The virtual modeler may be further configured to compute a virtual object mapping between the first virtual object reference structure and the coordinate structure of the tracking system. The virtual modeler may further be configured to generate and store in one or more memory units an enlarged scene including a 3D real space view, a real object view and one or more overlapping virtual items. Virtual object mapping can be used to place one or more overlapping virtual items in the enlarged scene so that one or more virtual items are aligned with the actual object.

Uma ou mais modalidades da presente descrição descrevem um sistema de processamento de dados que inclui uma ou mais unidades de memória que armazenam código do computador e uma ou mais unidades do processador acopladas a uma ou mais unidades de memória. A uma ou mais unidades do processador podem executar o código do computador armazenado na uma ou mais unidades de memória para receber ou estabelecer uma estrutura coordenada do sistema de rastreamento associada com um sistema de rastreamento de objeto. A estrutura coordenada do sistema de rastreamento pode ser alinhada com um espaço real em 3D. O sistema 5 de rastreamento pode rastrear a posição e orientação em um espaço real em 3D de uma câmera que captura o espaço real em 3D e um marcador impresso. A uma ou mais unidades do processador podem executar o código do computador armazenado na uma ou mais unidades de memória para receber do sistema de rastreamento uma estrutura de referência da câmera 10 para a câmera. A estrutura de referência da câmera pode indicar uma posição e orientação da câmera com relação à estrutura coordenada do sistema de rastreamento. A uma ou mais unidades do processador podem executar o código do computador armazenado na uma ou mais unidades de memória para receber ou estabelecer uma estrutura coordenada de marcador impres15 so associada com o marcador impresso. A estrutura coordenada de marcador impresso pode ser alinhada com o espaço real em 3D, e a estrutura coordenada de marcador impresso pode ser alinhada com a estrutura coordenada do sistema de rastreamento. A uma ou mais unidades do processador podem executar o código do computador armazenado na uma ou mais uni20 dades de memória para determinar uma estrutura de referência de lente da câmera para a lente da câmera. A estrutura de referência de lente da câmera pode indicar uma posição e orientação da lente da câmera com relação à estrutura coordenada de marcador impresso. A uma ou mais unidades do processador podem executar o código do computador armazenado na uma 25 ou mais unidades de memória para determinar um mapeamento de lente da câmera entre a estrutura de referência da câmera e a estrutura de referência de lente da câmera. A uma ou mais unidades do processador podem executar o código do computador armazenado na uma ou mais unidades de memória para mostrar uma cena aumentada incluindo uma visão do espaço 30 real em 3D e um ou mais itens virtuais. O mapeamento de lente da câmera pode ser usado para alterar ou distorcer o um ou mais itens virtuais na cena aumentada. Essas e outras vantagens, aspectos e novas características da presente descrição, bem como detalhes de uma modalidade ilustrada dela, serão mais completamente compreendidos a partir da seguinte descrição e desenhos. É para ser entendido que as já mencionadas descrições gerais 5 são somente exemplares e explanatórias e não são restritivas da descrição como reivindicado.One or more embodiments of the present disclosure describe a data processing system that includes one or more memory units that store computer code and one or more processor units coupled to one or more memory units. One or more processor units may execute computer code stored in one or more memory units to receive or establish a coordinate tracking system structure associated with an object tracking system. The coordinate structure of the tracking system can be aligned with real 3D space. The tracking system 5 can track the position and orientation in real 3D space of a camera that captures real 3D space and a printed marker. One or more processor units may execute computer code stored in one or more memory units to receive from the tracking system a frame of reference from camera 10 to camera. The camera reference frame may indicate a camera position and orientation with respect to the coordinate structure of the tracking system. One or more processor units may execute computer code stored in one or more memory units to receive or establish a coordinate printed marker structure associated with the printed marker. The coordinate structure of the printed marker can be aligned with the actual 3D space, and the coordinate structure of the printed marker can be aligned with the coordinate structure of the tracking system. One or more processor units may execute computer code stored in one or more memory units to determine a camera lens reference structure for the camera lens. The camera lens reference frame may indicate a position and orientation of the camera lens relative to the printed marker coordinate frame. One or more processor units may execute computer code stored in one or more 25 memory units to determine a camera lens mapping between the camera reference frame and the camera lens reference frame. One or more processor units may execute computer code stored in one or more memory units to show an enlarged scene including a view of real 3D space and one or more virtual items. Camera lens mapping can be used to alter or distort one or more virtual items in the enlarged scene. These and other advantages, aspects and novel features of the present disclosure, as well as details of an illustrated embodiment thereof, will be more fully understood from the following description and drawings. It is to be understood that the aforementioned general descriptions 5 are exemplary and explanatory only and are not restrictive of the description as claimed.

BREVE DESCRIÇÃO DOS DESENHOSBRIEF DESCRIPTION OF DRAWINGS

Diversas características e vantagens são descritas na seguinte descrição, em que diversas modalidades são explicadas, usando os seguintes desenhos como exemplos.Several features and advantages are described in the following description, in which various embodiments are explained, using the following drawings as examples.

A FIG. 1 descreve um diagrama em bloco mostrando exemplo de dispositivos, componentes, software e interações de um sistema de realidade aumentada (AR), de acordo com uma ou mais modalidades da presente descrição, onde a estrutura automatizada de técnicas de calibração de referência discutidas aqui pode ser útil em tal sistema de AR.FIG. 1 depicts a block diagram showing exemplary devices, components, software, and interactions of an augmented reality (AR) system according to one or more embodiments of the present disclosure, where the automated structure of reference calibration techniques discussed herein may be useful in such an RA system.

A FIG. 2 descreve um diagrama em bloco mostrando um exemplo de técnica de calibração, de acordo com uma ou mais modalidades da presente descrição.FIG. 2 depicts a block diagram showing an example of calibration technique according to one or more embodiments of the present disclosure.

A FIG. 3 descreve uma ilustração de uma ferramenta ou vara usada por várias razões por um sistema de rastreamento, de acordo com uma ou mais modalidades da presente descrição.FIG. 3 depicts an illustration of a tool or stick used for various reasons by a tracking system according to one or more embodiments of the present disclosure.

A FIG. 4A descreve uma ilustração de um exemplo de objeto real com um número de marcadores de rastreamento anexado a ou colocado no objeto real, de acordo com uma ou mais modalidades da presente descrição.FIG. 4A depicts an illustration of an example real object with a number of tracking markers attached to or placed on the real object according to one or more embodiments of the present disclosure.

A FIG. 4B descreve uma ilustração de como um sistema de rastreamento pode criar e colocar uma representação de um objeto real, de acordo com uma ou mais modalidades da presente descrição.FIG. 4B depicts an illustration of how a tracking system can create and place a representation of a real object according to one or more embodiments of the present disclosure.

A FIG. 5 descreve uma ilustração de como um software de modelagem virtual pode estabelecer uma nova estrutura de referência para um objeto real, de acordo com uma ou mais modalidades da presente descrição.FIG. 5 depicts an illustration of how virtual modeling software can establish a new frame of reference for a real object according to one or more embodiments of the present disclosure.

A FIG. 6 descreve uma ilustração de como um software de modelagem virtual pode estabelecer uma nova estrutura de referência para um objeto virtual, de acordo com uma ou mais modalidades da presente descrição.FIG. 6 depicts an illustration of how virtual modeling software can establish a new reference structure for a virtual object according to one or more embodiments of the present disclosure.

A FIG. 7 descreve um diagrama em bloco mostrando um exempio de técnica de calibração, de acordo com uma ou mais modalidades da presente descrição.FIG. 7 depicts a block diagram showing an example of calibration technique according to one or more embodiments of the present disclosure.

A FIG. 8A descreve uma ilustração de um exemplo da câmera e estrutura da câmera, de acordo com uma ou mais modalidades da presente descrição.FIG. 8A depicts an illustration of an example camera and camera structure according to one or more embodiments of the present disclosure.

A FIG. 8B descreve uma ilustração de como um sistema de rasFIG. 8B describes an illustration of how a ras system

treamento pode criar e colocar uma representação de uma câmera, de acordo com uma ou mais modalidades da presente descrição.You may create and place a representation of a camera according to one or more embodiments of the present disclosure.

A FIG. 8C descreve uma ilustração de um computador pessoal com uma câmera integrada, de acordo com uma ou mais modalidades da presente descrição.FIG. 8C depicts an illustration of a personal computer with an integrated camera according to one or more embodiments of the present disclosure.

As FIGURAS 9A e 9B descrevem ilustrações de como um marcador impresso pode possibilitar a determinação de uma estrutura de referência de uma lente da câmera.FIGURES 9A and 9B describe illustrations of how a printed marker can make it possible to determine a reference frame of a camera lens.

A FIG. 10A descreve uma ilustração de um exemplo de cena aumentada que pode ser produzida de acordo com uma ou mais modalidades da presente descrição.FIG. 10A depicts an illustration of an example enlarged scene that can be produced according to one or more embodiments of the present disclosure.

A FIG. 10B descreve uma ilustração de um exemplo de cena aumentada que pode ser produzida de acordo com uma ou mais modalidades da presente descrição.FIG. 10B depicts an illustration of an example enlarged scene that can be produced according to one or more embodiments of the present disclosure.

A FIG. 11 descreve um fluxograma que mostra exemplo de etaFIG. 11 depicts a flowchart showing an example of eta

pas em um método para estrutura automatizada de calibração de referência para realidade aumentada, de acordo com uma ou mais modalidades da presente descrição.in a method for automated augmented reality reference calibration structure according to one or more embodiments of the present disclosure.

A FIG. 12 descreve um fluxograma que mostra exemplo de etapas em um método para estrutura automatizada de calibração de referência para realidade aumentada, de acordo com uma ou mais modalidades da presente descrição. A FIG. 13 descreve um diagrama em bloco de um exemplo de sistema de processamento de dados que pode ser usado para implementar uma ou mais modalidades da presente descrição.FIG. 12 depicts a flowchart showing example steps in a method for automated augmented reality reference calibration structure according to one or more embodiments of the present disclosure. FIG. 13 depicts a block diagram of an example data processing system that may be used to implement one or more embodiments of the present disclosure.

DESCRIÇÃO DETALHADA Em vários sistemas de AR um sistema de rastreamento pode serDETAILED DESCRIPTION In many RA systems a tracking system may be

usado para rastrear a posição e orientação de uma câmera e vários objetos do mundo real em um espaço em 3D. Por exemplo, um sistema de rastreamento pode rastrear uma câmera e uma peça de maquinário que a câmara está visualizando/capturando. Vários sistemas de AR podem tentar criar uma 10 cena aumentada que inclua uma cena do mundo real como capturado pela câmera (incluindo vários objetos do mundo real) e meios e/ou objetos virtuais sobrepostos. Para criar a cena aumentada, o sistema de rastreamento pode estabelecer uma estrutura coordenada virtual e pode rastrear ou "colocar" representações dos objetos do mundo real nessa estrutura coordenada. 15 Vários sistemas de AR podem tentar "colocar" vários objetos virtuais (por exemplo, modelos/objetos CAD) na estrutura coordenada de modo a criar uma cena aumentada. Os objetos/modelos virtuais podem ter sua própria estrutura de referência padrão ou arbitrária (por exemplo, posição e orientação 3D) e, por conseguinte, colocar um objeto virtual na estrutura coordena20 da do sistema de rastreamento, um mapeamento ou transformação deve ser determinado entre a estrutura coordenada do sistema de rastreamento e a estrutura de referência do objeto virtual. Adicionalmente, se a câmera (por exemplo, a câmera capturar a cena do mundo real) se move, um sistema de AR pode tentar alterar a visão dos objetos virtuais. De modo a fazer isso 25 com precisão, um sistema de AR pode necessitar rastrear a posição e a orientação da lente da câmera. No entanto, um sistema de rastreamento pode somente rastrear a posição e orientação da câmera toda. Vários programas de software (por exemplo, em conjunção com outras partes) podem ser usados para determinar uma estrutura de referência para a lente da câmera em 30 uma estrutura coordenada, mas esses programas de software de lente podem rastrear a lente em uma estrutura coordenada estabelecida pelo programa de software de lente. Por isso, para colocar a lente da câmera na estrutura coordenada do sistema de rastreamento, um mapeamento ou transformação deve ser determinado entre a estrutura coordenada do sistema de rastreamento e a estrutura de referência da lente. Determinar esses mapeamentos e/ou transformações (por exemplo, para os objetos virtuais e/ou 5 para a lente da câmera) pode ser referido como sistema de calibração de AR ou estruturas de referência de calibração.Used to track the position and orientation of a camera and various real world objects in a 3D space. For example, a tracking system may track a camera and a piece of machinery that the camera is viewing / capturing. Various RA systems may attempt to create an enlarged scene that includes a real-world scene as captured by the camera (including various real-world objects) and overlapping media and / or virtual objects. To create the enlarged scene, the tracking system can establish a virtual coordinate structure and can track or "place" representations of real world objects in that coordinate structure. Several RA systems may attempt to "place" multiple virtual objects (for example, CAD models / objects) into the coordinate structure to create an enlarged scene. Virtual objects / models can have their own standard or arbitrary reference structure (eg, 3D position and orientation) and therefore, placing a virtual object in the coordinate structure of the tracking system, a mapping or transformation must be determined between the coordinate structure of the tracking system and the reference structure of the virtual object. Additionally, if the camera (for example, the camera captures the real world scene) moves, an AR system may attempt to change the view of virtual objects. In order to do this accurately, an RA system may need to track the position and orientation of the camera lens. However, a tracking system can only track the position and orientation of the entire camera. Several software programs (for example, in conjunction with other parts) may be used to determine a reference frame for the camera lens in a coordinated frame, but these lens software programs may track the lens into an established coordinate frame. by the lens software program. Therefore, to place the camera lens in the coordinate structure of the tracking system, a mapping or transformation must be determined between the coordinate structure of the tracking system and the reference frame of the lens. Determining these mappings and / or transformations (for example, for virtual objects and / or 5 for the camera lens) can be referred to as the AR calibration system or calibration reference frameworks.

Deve ser entendido que os termos "estrutura coordenada", "estrutura de referência" e "pose" podem ser usados por toda essa descrição e podem ser estreitamente relacionados. O termo "estrutura coordenada" pode se referir a uma representação em 3D de um espaço 3D, onde a estrutura coordenada inclui três planos ou eixos (por exemplo, um eixo X, um eixo Y, um eixo Z) e uma origem (por exemplo, um ponto onde os três eixos intersectam). O termo "estrutura de referência" pode se referir a uma localização em 3D e orientação em 3D de um objeto ou ponto, por exemplo, em uma estrutura coordenada. A estrutura de referência de um objeto pode incluir uma origem (por exemplo, um centro aproximado de massa) para o objeto e uma orientação do objeto (por exemplo, 3 eixos estabelecidos com relação ao objeto). O termo "pose" é abreviação de "posição e orientação" e pode se referir a uma posição em 3D (por exemplo, coordenadas X, Y, Z) e uma orientação em 3D (por exemplo, cilindro, passo, guinada) de um objeto em espaço em 3D.It should be understood that the terms "coordinate structure", "reference structure" and "pose" may be used throughout this description and may be closely related. The term "coordinate structure" may refer to a 3D representation of a 3D space, where the coordinate structure includes three planes or axes (for example, an X axis, a Y axis, a Z axis) and an origin (for example). , a point where the three axes intersect). The term "reference structure" may refer to a 3D location and 3D orientation of an object or point, for example, in a coordinate structure. An object's reference structure can include an origin (for example, an approximate center of mass) for the object and an object orientation (for example, 3 axes established relative to the object). The term "pose" is short for "position and orientation" and can refer to a 3D position (eg, X, Y, Z coordinates) and a 3D orientation (eg, cylinder, pitch, yaw) of a 3D space object.

Vários sistemas de AR podem executar calibração do sistema de AR através de um processo manual ou de ensaio e erro, por exemplo, aproximando a estrutura de referência do modelo virtual e/ou a lente da câmera 25 com relação à estrutura coordenada do sistema de rastreamento e então testando a cena aumentada para determinar se a aproximação foi uma aproximação boa. Por exemplo, um técnico pode simplesmente olhar nos objetos virtuais sobrepostos na cena aumentada e fazer uma determinação com respeito a se eles parecem estar na sua localização correta de várias Iocali30 zações e orientações da câmera. Esse processo de calibração manual pode exigir manipulação de doze parâmetros, por exemplo, seis parâmetros para um objeto virtual (por exemplo, coordenadas X, Y, Z e cilindro, passo, guinada) e seis parâmetros para uma lente de câmera (por exemplo, coordenadas X, Y, Z e cilindro, passo, guinada). Esse processo pode ser caro e/ou intensivo em tempo, por exemplo, tomando muitas horas (por exemplo, mais do que 8 horas) para completar. Mesmo quando o processo de calibração ma5 nual está completo, ainda pode não resultar em uma solução/calibração precisa. Por exemplo, um objeto virtual que parece ser apropriadamente de uma pose da câmera pode não parecer ser apropriadamente colocado de diferentes poses. Pequenos erros na colocação de objeto virtual podem levar a grandes erros em objetos do mundo real maiores. Adicionalmente, cada 10 momento do sistema de AR é ajustado em um novo ambiente ou por um novo objeto ou câmera real, o sistema de AR deve ser manualmente calibrado.Several RA systems may perform RA system calibration through a manual or trial and error process, for example by approximating the virtual model reference frame and / or the camera lens 25 with respect to the coordinate structure of the tracking system. and then testing the enlarged scene to determine if the approach was a good one. For example, a technician can simply look at the overlapping virtual objects in the enlarged scene and make a determination as to whether they appear to be in their correct location in various camera locations and orientations. This manual calibration process may require manipulating twelve parameters, for example, six parameters for a virtual object (for example, X, Y, Z and cylinder coordinates, pitch, yaw) and six parameters for a camera lens (for example, X, Y, Z coordinates and cylinder, pitch, yaw). This process can be expensive and / or time intensive, for example, taking many hours (eg, more than 8 hours) to complete. Even when the manual calibration process is complete, it may still not result in an accurate solution / calibration. For example, a virtual object that appears to be appropriately from one camera pose may not appear to be properly placed from different poses. Minor errors in virtual object placement can lead to large errors in larger real-world objects. Additionally, every 10 minutes of the AR system is adjusted in a new environment or by a new real object or camera, the AR system must be manually calibrated.

A presente descrição descreve um ou mais sistemas, métodos, rotinas e/ou técnicas para estrutura automatizada de calibração de referência para realidade aumentada. Um ou mais sistemas, métodos, rotinas e/ou 15 técnicas podem possibilitar calibração simples e rápida de um sistema de Realidade Aumentada (AR), por exemplo, através de automaticamente calibrar as estruturas de referência de objetos virtuais e/ou de uma câmera. Um ou mais sistemas, métodos, rotinas e/ou técnicas podem possibilitar ajuste do sistema de AR em um novo ambiente ou em um novo objeto real (por 20 exemplo, uma peça de maquinário) em uma quantidade de tempo relativamente curto (por exemplo, menos de 15 minutos) e podem possibilitar alinhamento preciso de conteúdo virtual sobreposto com uma cena do mundo real. O alinhamento preciso de conteúdo virtual pode ser crítico se o sistema de AR está sendo usado para instruir um técnico a executar uma tarefa pre25 cisa, por exemplo, perfurar um pequeno orifício em um local preciso. Um ou mais sistemas, métodos, rotinas e/ou técnicas podem determinar e/ou computar mapeamentos ou transformações entre várias estruturas de referência (por exemplo, a estrutura coordenada do sistema de rastreamento, a estrutura de referência de um objeto virtual e a estrutura de referência de uma lente 30 da câmera). A presente descrição pode descrever duas ou mais rotinas de calibração e/ou técnicas. A primeira rotina e/ou técnica de calibração pode determinar e/ou calcular um mapeamento ou transformação entre uma estrutura de referência de um objeto virtual (por exemplo, um modelo CAD) e uma estrutura coordenada associada com o sistema de rastreamento. A segunda rotina e/ou técnica de calibração pode determinar e/ou calcular um mapeamento ou transformação entre uma estrutura de referência de lente da câme5 ra e uma estrutura de referência da câmera toda por um sistema de rastreamento. Essas rotinas e/ou técnicas podem calibrar um sistema de AR para fornecer alinhamento rápido, preciso, entre conteúdo virtual e uma visão da câmera ao vivo de uma cena real.The present disclosure describes one or more systems, methods, routines and / or techniques for automated augmented reality reference calibration framework. One or more systems, methods, routines and / or techniques may enable simple and rapid calibration of an Augmented Reality (AR) system, for example by automatically calibrating the reference structures of virtual objects and / or a camera. One or more systems, methods, routines and / or techniques may enable the AR system to be adjusted in a new environment or new real object (eg, a piece of machinery) in a relatively short amount of time (eg. less than 15 minutes) and can enable precise alignment of overlapping virtual content with a real-world scene. Accurate alignment of virtual content can be critical if the RA system is being used to instruct a technician to perform a precise task, such as drilling a small hole in a precise location. One or more systems, methods, routines, and / or techniques may determine and / or compute mappings or transformations between various reference structures (for example, the coordinate structure of the tracking system, the reference structure of a virtual object, and the structure of camera lens reference 30). The present disclosure may describe two or more calibration and / or technical routines. The first routine and / or calibration technique may determine and / or calculate a mapping or transformation between a reference structure of a virtual object (for example, a CAD model) and a coordinate structure associated with the tracking system. The second routine and / or calibration technique may determine and / or calculate a mapping or transformation between a camera lens reference frame and an entire camera reference frame by a tracking system. These routines and / or techniques can calibrate an AR system to provide fast, accurate alignment between virtual content and a live camera view of a real scene.

A FIG. 1 descreve um diagrama em bloco mostrando exemplo de dispositivos, componentes, software e interações de um sistema de realidade aumentada (AR) 100, de acordo com uma ou mais modalidades da presente descrição, onde a estrutura automatizada de técnicas de calibração de referência discutidas aqui pode ser útil em tal sistema de AR. O sistema de AR 100 pode incluir uma câmera 102 que pode capturar e/ou transmitir uma alimentação de vídeo ao vivo de uma cena do mundo real. A cena do mundo real pode incluir um ou mais objetos reais, por exemplo, objeto real (RO) 104. O RO 104 pode ser um de vários objetos, por exemplo, uma ferramenta, uma peça de maquinário, um grande satélite, uma caixa de controle, um painel de controle ou vários outros objetos. A câmera 102 pode estar em comunicação com um computador 106, onde o computador pode interpretar e/ou processar informação (por exemplo, vídeo de transmissão ao vivo) enviado da câmera relacionada a cenas do mundo real e/ou objetos capturados pela câmera.FIG. 1 depicts a block diagram showing exemplary devices, components, software, and interactions of an augmented reality (AR) system 100 according to one or more embodiments of the present disclosure, where the automated structure of reference calibration techniques discussed herein. may be useful in such an RA system. The AR 100 system may include a camera 102 that can capture and / or transmit a live video feed of a real world scene. The real world scene can include one or more real objects, for example real object (RO) 104. RO 104 can be one of several objects, for example a tool, a piece of machinery, a large satellite, a box control panel, control panel, or various other objects. Camera 102 may be in communication with a computer 106, where the computer may interpret and / or process information (e.g., live broadcast video) sent from the camera related to real world scenes and / or objects captured by the camera.

O sistema de AR 100 pode incluir um sistema de rastreamento 25 108. O sistema de rastreamento 108 pode rastrear a "pose" (posição e orientação em espaço em 3D) do objeto real 104 e da câmera 102, e pode transmitir esta informação (por exemplo, em tempo real) para um computador (por exemplo, computador 106) ou outro componente. O sistema de rastreamento 108 pode incluir vários componentes, por exemplo, um número de marcado30 res de rastreamento, um número de dispositivos de detecção para detectar os marcadores de rastreamento e um dispositivo de computação de base que pode operar associado ao software do sistema de rastreamento. Em um exemplo, cada marcador pode ser uma esfera pequena (por exemplo, uma esfera de 10 mm) com um revestimento refletivo que é projetado para refletir certos comprimentos de onda de luz. Nesse exemplo, os marcadores podem ser colocados em vários lugares e/ou em vários objetos no espaço do mun5 do real de modo que o sistema de rastreamento 108 possa rastrear a posição e/ou orientação de certos pontos e/ou objetos em espaço em 3D. Por exemplo, um número (por exemplo, três ou mais) de marcadores de rastreamento podem ser colocados no objeto real 104, e um número (por exemplo, três ou mais) de marcadores de rastreamento pode ser colocado na câmera 10 102.The AR 100 system may include a tracking system 108 108. The tracking system 108 can track the "pose" (position and orientation in 3D space) of the actual object 104 and camera 102, and can transmit this information (for example). example, in real time) to a computer (for example, computer 106) or another component. The tracking system 108 may include various components, for example, a number of tracking markers, a number of detection devices for detecting tracking markers, and a base computing device that may operate in association with the tracking system software. . In one example, each marker may be a small sphere (for example, a 10 mm sphere) with a reflective coating that is designed to reflect certain wavelengths of light. In this example, markers may be placed in various places and / or on various objects in real world space so that tracking system 108 can track the position and / or orientation of certain points and / or objects in 3D space. . For example, a number (for example, three or more) of tracking markers may be placed on the actual object 104, and a number (for example, three or more) of tracking markers may be placed on camera 10 102.

Os dispositivos de detecção do sistema de rastreamento 108 podem ser câmeras que são projetadas para detectar a localização em espaço em 3D dos marcadores de rastreamento. Por exemplo, cada câmera pode ser uma câmera com infravermelho que é projetada para detectar re15 flexões de vários marcadores de rastreamento (por exemplo, marcadores de rastreamento colocados na câmera 102 e no objeto real 104). Os vários dispositivos de detecção (por exemplo, câmeras com infravermelho) podem ser colocados e/ou montados em vários locais em torno do espaço em 3D, por exemplo, um número (por exemplo, oito ou mais) de câmeras pode ser mon20 tado em paredes de uma área ou laboratório, por exemplo, montado em um arranjo de modo que o espaço em 3D de interesse seja amplamente coberto por faixas de visão das várias câmeras. Os vários dispositivos de detecção do sistema de rastreamento 108 podem estar em comunicação (por exemplo, por um link de comunicação em tempo real tal como Ethernet, Wi-Fi ou o 25 similar) com um dispositivo de computação de base, onde o dispositivo de computação de base pode operar associado ao software do sistema de rastreamento. O software do sistema de rastreamento pode processar dados dos vários dispositivos de detecção. O sistema de rastreamento 108 pode estar em comunicação (por exemplo, por um link de comunicação em tempo 30 real tal como Ethernet, Wi-Fi ou o similar) com um computador 106. O computador pode ser o computador que está em comunicação com a câmera 102. Em algumas modalidades, o dispositivo de computação de base do sistema de rastreamento 108 pode ser o mesmo dispositivo de computação que o computador 106.Tracking system detection devices 108 may be cameras that are designed to detect the 3D space location of tracking markers. For example, each camera may be an infrared camera that is designed to detect flexions of various tracking markers (for example, tracking markers placed on camera 102 and real object 104). The various detection devices (eg infrared cameras) can be placed and / or mounted at various locations around 3D space, for example, a number (eg eight or more) cameras can be mounted on walls of an area or laboratory, for example, mounted in an arrangement so that the 3D space of interest is largely covered by the viewing ranges of the various cameras. The various detection devices of the tracking system 108 may be in communication (for example, over a real time communication link such as Ethernet, Wi-Fi or the like) with a base computing device, where the scanning device Basic computing can operate associated with tracking system software. Tracking system software can process data from various detection devices. Tracking system 108 may be in communication (e.g., by a real time communication link 30 such as Ethernet, Wi-Fi or the like) with a computer 106. The computer may be the computer that is in communication with the camera 102. In some embodiments, the base computing device of the tracking system 108 may be the same computing device as the computer 106.

Em algumas modalidades, a câmera 102 pode ser integrada no computador 106. Em alguns exemplos, o computador 106 pode ser um dispositivo móvel, por exemplo, um computador pessoal, smartphone, PDA ou o similar. Como um exemplo específico, um computador 106 pode ser um computador pessoal (vide FIG. 7C, por um exemplo) com uma câmera integrada. Um dispositivo móvel com uma câmera integrada pode fornecer flexibilidade e liberdade de movimento a um usuário. Por exemplo, um usuário poderia ver uma cena aumentada que inclui um objeto real (por exemplo, uma peça de maquinário real), e o usuário poderia caminhar em torno do objeto real, visualizando diferentes partes ou ângulos do objeto real. Adicionalmente, o usuário pode ver o conteúdo virtual na tela da mesa que auxilia o usuário a executar uma tarefa, por exemplo, o conteúdo virtual pode incluir instruções, setas, hardware, ferramentas ou o similar que pode instruir o usuário como trabalhar no ou com o objeto real. O computador pessoal nesse exemplo (por exemplo, um computador 106) pode incluir o software de modelagem virtual 110. O calibração de referência nesse exemplo, pode estar em comunicação (por exemplo, por um link de comunicação em tempo real tal como Ethernet, Wi-Fi ou o similar) com o sistema de rastreamento 108 (por exemplo, o dispositivo de computação de base do sistema de rastreamento).In some embodiments, camera 102 may be integrated into computer 106. In some examples, computer 106 may be a mobile device, for example, a personal computer, smartphone, PDA or the like. As a specific example, a computer 106 may be a personal computer (see FIG. 7C, for example) with an integrated camera. A mobile device with an integrated camera can provide flexibility and freedom of movement for a user. For example, a user might see an enlarged scene that includes a real object (for example, a real piece of machinery), and the user could walk around the real object, viewing different parts or angles of the real object. Additionally, the user can view virtual content on the desk screen that assists the user in performing a task, for example, virtual content may include instructions, arrows, hardware, tools or the like that may instruct the user how to work on or with the real object. The personal computer in this example (for example, a computer 106) may include virtual modeling software 110. The reference calibration in this example may be in communication (for example, by a real time communication link such as Ethernet, Wi-Fi). -Fi or the like) with the tracking system 108 (for example, the base computing device of the tracking system).

O computador 106 pode incluir um software de modelagem virtual 110. O software de modelagem virtual pode acessar ou carregar vários 25 objetos virtuais, por exemplo, o objeto virtual (VO) 112. Os objetos virtuais (por exemplo, VO 112) podem ser projetados em uma de várias maneiras conhecidas para criar objetos virtuais e/ou projeto auxiliado por computador (CAD) e/ou modelos. Os objetos virtuais/CAD/modelos podem ser criados usando o software CAD, por exemplo, o software que usa vetor com base 30 em gráficos ou o similar para descrever um objeto, por exemplo, um objeto modelado depois de um objeto do mundo real. Os objetos virtuais/CAD/modelos podem ser objetos em 3D que são responsáveis por, em detalhes, as várias características em 3D do objeto do mundo real. O objeto virtual 112 pode ser uma representação virtual do objeto real 104. O computador 106 pode acessar ou carregar vários outros objetos virtuais além de exatamente objetos virtuais que representam objetos reais no espaço do 5 mundo real. Como um exemplo, o objeto real 104 pode ser uma peça de maquinário, e o objeto virtual 112 pode ser uma representação virtual da mesma peça de maquinário. Adicionalmente, outros objetos virtuais não podem ter contraparte no espaço do mundo real, por exemplo, os objetos virtuais poderiam representar parafusos hipotéticos, ferramentas, fios e o similar 10 que mostram a um técnico como interagir com o objeto real 104.Computer 106 may include virtual modeling software 110. Virtual modeling software may access or load several 25 virtual objects, for example, virtual object (VO) 112. Virtual objects (for example, VO 112) may be designed in one of several known ways to create virtual objects and / or computer aided design (CAD) and / or models. Virtual objects / CAD / models can be created using CAD software, for example, software that uses graph-based vector or the like to describe an object, for example, an object modeled after a real-world object. Virtual objects / CAD / models can be 3D objects that are responsible for, in detail, the various 3D features of the real world object. Virtual object 112 may be a virtual representation of real object 104. Computer 106 can access or load various other virtual objects in addition to exactly virtual objects representing real objects in real world space. As an example, the actual object 104 may be a piece of machinery, and the virtual object 112 may be a virtual representation of the same piece of machinery. Additionally, other virtual objects cannot have real-world counterparts, for example, virtual objects could represent hypothetical screws, tools, wires, and the like 10 that show a technician how to interact with the real object 104.

O software de modelagem virtual 110 pode receber dados (por exemplo, dados de tempo real simultâneos) do sistema de rastreamento 108, por exemplo, o sistema coordenado estabelecido pelo sistema de rastreamento, a estrutura de referência da câmera 102 e a estrutura de referên15 cia de um objeto real 104. O software de modelagem virtual 110 pode executar várias rotinas, técnicas e o similar descritos aqui para criar uma cena aumentada (por exemplo, cena aumentada 114), por exemplo, uma visão em tempo real do espaço do mundo real como capturado pela câmera 102 aumentada e/ou sobreposta com objetos virtuais. O software de modelagem 20 virtual 110 pode executar várias rotinas e/ou técnicas de calibração como descrito aqui para alinhar as estruturas coordenadas e uma lente da câmera com a estrutura coordenada associada com o sistema de rastreamento. Uma vez a calibração seja alcançada, o software de modelagem virtual 110 pode manter correlação e/ou alinhamento entre vários objetos virtuais e uma cena 25 do mundo real ao vivo. O computador 106 pode incluir ou estar em comunicação com um mostrador 116 que pode mostrar a cena aumentada 114 a um usuário. O software de modelagem virtual 110 pode produzir uma cena aumentada 114 (mostrada no mostrador 116) que mostra objetos virtuais colocados em uma alimentação de vídeo ao vivo. O software de modelagem 30 virtual 110 pode, apropriadamente, deformar (por exemplo, alterar localização em 3D, orientação em 3D e/ou tamanho em 3D) objetos virtuais na cena aumentada, por exemplo, dependendo da pose da câmera 102 relativa e/ou a pose do objeto real 104. Por exemplo, se a câmera 102 se move adicionalmente para longe do objeto real 104, um ou mais objetos virtuais na cena aumentada podem encolher. Como um outro exemplo, se a câmera 102 se move mais perto do objeto real 104, um ou mais objetos virtuais podem alar5 gar. Como um outro exemplo, se a câmera 102 se move em um ângulo relativo ao objeto real 104, um ou mais objetos virtuais girariam apropriadamente.Virtual modeling software 110 may receive data (e.g., simultaneous real time data) from tracking system 108, for example, the coordinate system established by the tracking system, camera reference frame 102 and reference frame 15 of a real object 104. Virtual modeling software 110 can perform various routines, techniques, and the like described herein to create an enlarged scene (e.g., enlarged scene 114), for example, a real-time view of real world space. as captured by camera 102 enlarged and / or overlaid with virtual objects. Virtual modeling software 110 may perform various routines and / or calibration techniques as described herein to align coordinate structures and a camera lens with the coordinate structure associated with the tracking system. Once calibration is achieved, virtual modeling software 110 can maintain correlation and / or alignment between multiple virtual objects and a live real-world scene. The computer 106 may include or be in communication with a display 116 which may show the enlarged scene 114 to a user. Virtual modeling software 110 can produce an enlarged scene 114 (shown on display 116) showing virtual objects placed on a live video feed. Virtual modeling software 110 may appropriately deform (e.g., change 3D location, 3D orientation, and / or 3D size) virtual objects in the enlarged scene, for example, depending on the relative camera pose 102 and / or the pose of the real object 104. For example, if camera 102 moves further away from the real object 104, one or more virtual objects in the enlarged scene may shrink. As another example, if camera 102 moves closer to the actual object 104, one or more virtual objects may widen. As another example, if camera 102 moves at an angle relative to the actual object 104, one or more virtual objects would rotate appropriately.

A FIG. 2 descreve um diagrama em bloco mostrando um exemplo de técnica de calibração, de acordo com uma ou mais modalidades da presente descrição. Mais especificamente, a FIG. 2 mostra uma estrutura de referência automatizada de técnica de calibração que pode ser usada para determinar e/ou calcular um mapeamento ou transformar entre a estruturas de referência de objetos virtuais (por exemplo, objetos virtuais adicionados a uma cena aumentada) e a estrutura de referência associada com o sistema de rastreamento. Como pode ser visto na FIG. 2, um sistema de rastreamento 202 (por exemplo, similar ao sistema de rastreamento 108 da FIG. 1) pode estabelecer uma estrutura coordenada 204, por exemplo, como parte de um ajuste de sistema de rastreamento executado por um técnico. A estrutura coordenada do sistema de rastreamento pode incluir três eixos (por exempio, eixo X, eixo Y, eixo Z) e uma origem onde os três eixos intersectam. O sistema de rastreamento pode "colocar" ou associar a origem da estrutura coordenada com um ponto particular em um espaço do mundo real em 3D e pode orientar a estrutura coordenada com relação ao espaço do mundo real. O sistema de rastreamento pode utilizar uma ferramenta ou vara para estabelecer sua estrutura coordenada, por exemplo, uma vara similar à vara 300 mostrada na FIG. 3. Com referência à FIG. 3, a vara 300 pode assemelharse com a letra "T" e pode incluir um primeiro membro estendido (por exemplo, membro 302) que pode designar um primeiro eixo (por exemplo, eixo X) e pode incluir um segundo membro estendido (por exemplo, membro 304) que pode designar um segundo eixo (por exemplo, eixo Z). A vara 300 pode também designar uma origem no ponto 306 onde o primeiro membro 302/eixo e o segundo membro 304/eixo intersectam. Um terceiro eixo imaginário (por exemplo, eixo Y) pode operar através do ponto de origem 300. Como um exemplo, a vara 300 pode ser colocada no piso de uma área ou laboratório, e a máquina de rastreamento pode estabelecer sua estrutura coordenada detectando a vara e/ou marcadores de rastreamento (por exem5 pio, marcadores de rastreamento 308, 310, 312, 314, 316) anexados à vara. O sistema de rastreamento pode estabelecer uma origem virtual e três eixos virtuais que se associam com a origem e eixos como designado pela vara 300. Uma vez que o sistema coordenado do sistema de rastreamento é estabelecido, o sistema de rastreamento pode rastrear um objeto real (por e10 xemplo, equipado com três ou mais marcadores de rastreamento) na área ou laboratório e determinar sua pose dentro da estrutura coordenada e determinar a orientação do objeto com respeito aos três eixos.FIG. 2 depicts a block diagram showing an example of calibration technique according to one or more embodiments of the present disclosure. More specifically, FIG. 2 shows an automated calibration technique reference structure that can be used to determine and / or calculate a mapping or transform between virtual object reference structures (for example, virtual objects added to an enlarged scene) and the reference structure. associated with the tracking system. As can be seen from FIG. 2, a tracking system 202 (e.g., similar to tracking system 108 of FIG. 1) may establish a coordinate structure 204, for example as part of a tracking system adjustment performed by a technician. The coordinate structure of the tracking system may include three axes (eg, X axis, Y axis, Z axis) and an origin where the three axes intersect. The tracking system can "place" or associate the origin of the coordinate structure with a particular point in a real world 3D space and can orient the coordinate structure with respect to the real world space. The tracking system may utilize a tool or stick to establish its coordinate structure, for example, a stick similar to stick 300 shown in FIG. 3. With reference to FIG. 3, rod 300 may resemble the letter "T" and may include a first extended member (e.g., member 302) which may designate a first axis (e.g., X axis) and may include a second extended member (e.g. , member 304) which may designate a second axis (e.g., Z axis). Rod 300 may also designate an origin at point 306 where first member 302 / axis and second member 304 / axis intersect. A third imaginary axis (for example, Y axis) may operate through the origin point 300. As an example, the rod 300 may be placed on the floor of an area or laboratory, and the tracking machine may establish its coordinate structure by detecting the tracking stick and / or markers (e.g., tracking markers 308, 310, 312, 314, 316) attached to the stick. The tracking system can establish a virtual origin and three virtual axes that associate with the origin and axes as designated by stick 300. Once the coordinate system of the tracking system is established, the tracking system can track an actual object ( for example, equipped with three or more tracking markers) in the area or laboratory and determine its pose within the coordinate structure and determine the orientation of the object with respect to the three axes.

Com referência outra vez à FIG. 2, o sistema de rastreamento 202 pode determinar uma estrutura de referência 206 para um objeto real. Em outras palavras, o sistema de rastreamento 202 pode rastrear o objeto real. O objeto real pode ser similar ao objeto real 104 da FIG. 1, por exemplo. O objeto real (RO) pode ser um de vários objetos, por exemplo, uma ferramenta, uma peça de maquinário, um grande satélite, uma caixa de controle, um painel de controle ou vários outros objetos. A FIG. 4A mostra um exemplo de um objeto real 400 - uma ferramenta afiadora para perfurador. De modo ao sistema de rastreamento rastrear (isto é, determinar uma estrutura de referência) o objeto real 400, um número (por exemplo, três ou mais) de marcadores de rastreamento 402, 404, 406) pode ser anexado a ou colocado no objeto real 400. Para rastreamento apropriado, os marcadores de rastreamento podem ter que ser colocados apropriadamente no objeto real 400, por exemplo, em um arranjo não colinear, não simétrico. Três ou mais pontos são ditos serem colineares se eles estão em uma linha reta única. Por conseguinte, um arranjo não colinear de marcadores de rastreamento significa que os marcadores de rastreamento são arranjos de modo que os marcadores não estejam todos em uma linha reta. Para rastreamento apropriado, pelo menos três marcadores de rastreamento não colineares podem ser colocados no objeto real. Mais de três marcadores de rastreamento podem ser colocados no objeto real, por exemplo, para aperfeiçoar a confiabilidade e/ou precisão de cálculos, por exemplo, no caso da visão de um dos marcadores de rastreamento estar obstruída.Referring again to FIG. 2, tracking system 202 may determine a frame of reference 206 for a real object. In other words, tracking system 202 can track the actual object. The actual object may be similar to the actual object 104 of FIG. 1, for example. The actual object (RO) can be one of several objects, for example, a tool, a machinery part, a large satellite, a control box, a control panel, or various other objects. FIG. 4A shows an example of a real object 400 - a punch sharpening tool. In order for the tracking system to track (i.e. determine a frame of reference) the actual object 400, a number (e.g. three or more) of tracking markers 402, 404, 406) may be attached to or placed on the object. For proper tracking, tracking markers may have to be placed properly on the actual object 400, for example, in a non-collinear, non-symmetrical arrangement. Three or more points are said to be collinear if they are in a single straight line. Therefore, a non-collinear arrangement of tracking markers means that tracking markers are arrangements so that markers are not all in a straight line. For proper tracking, at least three non-collinear tracking markers can be placed on the actual object. More than three tracking markers can be placed on the real object, for example, to improve the reliability and / or accuracy of calculations, for example if the view of one of the tracking markers is obstructed.

O sistema de rastreamento (por exemplo, incluindo um número da câmeras com infravermelho) pode detectar os marcadores de rastreamento e criar e colocar uma representação do objeto real na estrutura coordenada estabilizada pelo sistema de rastreamento. A FIG. 4B mostra uma ilustração de como um sistema de rastreamento pode criar e colocar uma representação de um objeto real. O sistema de rastreamento pode detectar a localização dos marcadores de rastreamento (por exemplo, marcadores 402, 404, 408 e talvez mais marcadores não mostrados na FIG. 4A) e pode criar e colocar pontos (por exemplo, pontos 452, 454, 456 e 458), respectivamente associados com os marcadores de rastreamento, na estrutura coordenada do sistema de rastreamento. Desses pontos (por exemplo, pontos 452, 454, 456 e 458), o sistema de rastreamento pode determinar uma origem (por exemplo, ponto 460) e uma orientação (vide linhas de cubo e de orientação que circundam o ponto 460) para a representação do objeto real. A origem pode ser determinada pelo cálculo de um centroide (por exemplo, um centro de massa) dos pontos 452, 454, 456 e 458. A orientação pode ser ajustada para corresponder (ou relacionada) à orientação do sistema coordenado do sistema de rastreamento. Uma vez que o sistema de rastreamento determina uma estrutura de referência (por exemplo, uma origem/localização e orientação associadas com a estrutura coordenada do sistema de rastreamento) para o objeto real (RO), o sistema de rastreamento pode transmitir informação sobre a pose do objeto real para o software de modelagem virtual. A transmissão de informação de pose sobre o objeto real pode atualizar em tempo real conforme o objeto real pode se mover e/ou girar.The tracking system (for example, including a number of infrared cameras) can detect tracking markers and create and place a representation of the actual object in the coordinate structure stabilized by the tracking system. FIG. 4B shows an illustration of how a tracking system can create and place a representation of a real object. The tracking system can detect the location of tracking markers (e.g. markers 402, 404, 408 and perhaps more markers not shown in FIG. 4A) and can create and place points (e.g., points 452, 454, 456 and 458), respectively associated with the tracking markers, in the coordinate structure of the tracking system. From these points (for example, points 452, 454, 456, and 458), the tracking system can determine an origin (for example, point 460) and an orientation (see cube and guidance lines surrounding point 460) for the representation of the real object. The origin can be determined by calculating a centroid (for example, a center of mass) of points 452, 454, 456, and 458. The orientation can be adjusted to match (or relate to) the orientation of the tracking system coordinate system. Since the tracking system determines a frame of reference (for example, an origin / location and orientation associated with the tracking system's coordinate structure) for the actual object (RO), the tracking system can transmit pose information. from the real object to the virtual modeling software. Transmission of pose information about the real object can update in real time as the real object can move and / or rotate.

Com referência outra vez à FIG. 2, o software de modelagem virtual 210 pode estabelecer uma nova estrutura de referência 212 para o objeto real (RO). O software de modelagem virtual 210 pode ser similar ao software de modelagem virtual 110 da FIG. 1, por exemplo. O software de modelagem virtual 210 pode usar a mesma estrutura coordenada que a uma associada com o sistema de rastreamento. A nova estrutura de referenciado RO 212 pode especificar diferentes (quando comparado à estrutura de referência de RO 206) pontos de referência no objeto real e pode determinar e/ou calcular uma diferente origem. Estabelecer uma nova estrutura de refe5 rência do RO pode permitir que o software de modelagem virtual escolha os pontos de referência no objeto real que são os mesmos (ou muito próximos a) pontos de referência em um objeto virtual (por exemplo, um modelo CAD) que é associado com o objeto real.Referring again to FIG. 2, virtual modeling software 210 may establish a new reference structure 212 for the real object (RO). Virtual modeling software 210 may be similar to virtual modeling software 110 of FIG. 1, for example. Virtual modeling software 210 may use the same coordinate structure as one associated with the tracking system. The new RO 212 referenced structure can specify different (when compared to the RO 206 reference structure) reference points in the actual object and can determine and / or calculate a different origin. Establishing a new RO reference framework can allow virtual modeling software to choose reference points in the real object that are the same (or very close to) reference points in a virtual object (for example, a CAD model). which is associated with the actual object.

A FIG. 5 mostra uma ilustração de como o software de modelagem virtual pode estabelecer uma nova estrutura de referência para um objeto real, por exemplo, objeto real 500. Um número de pontos de referência (por exemplo, pontos 502, 504, 506) pode ser indicado no objeto real 500. Esses pontos de referência podem ser indicados, por exemplo, por um técnico usando uma ferramenta ou vara, por exemplo, uma vara similar à vara 300 da FIG. 3. A ferramenta ou vara pode ser rastreável pelo sistema de rastreamento, por exemplo, a posição entre os marcadores de rastreamento anexados à vara com relação um ao outro pode ser determinada pelo sistema de rastreamento, possibilitando coleta de ponto precisa. O software de modelagem virtual pode usar dados do sistema de rastreamento sobre a posição da vara para registrar pontos de referência no objeto real. Como um exemplo, o software de modelagem virtual pode reconhecer um ponto na vara como um "apontador" (por exemplo, uma ponta de um membro de extensão da vara). Um técnico pode tocar o apontador em vários pontos no objeto real (pontos 502, 504, 506), e via a vara e o sistema de rastreamento, o software de modelagem virtual pode capturar ou registrar esses pontos e colocá-los na estrutura coordenada associada com o sistema de rastreamento. Para determinar a nova estrutura de referência, os pontos de referência podem ter que ser colocados apropriadamente no objeto real 500, por exemplo, em um arranjo não colinear. Pelo menos três pontos de referência não colineares podem ser colocados no objeto real. Mais do que três pontos de referência podem ser colocados no objeto real, por exemplo, para aperfeiçoar a confiabilidade e/ou precisão dos cálculos. Desses pontos de referência (por exemplo, pontos 502, 504, 506), o software de modelagem virtual pode determinar uma origem (por exemplo, ponto 508) e uma orientação (vide linhas de eixo se estendendo do ponto 508) para o objeto real. A origem pode ser determinada pelo cálculo de um centroide (por exemplo, um 5 centro de massa) dos pontos 502, 504, 506. Uma orientação para o objeto real pode ser determinada pela colocação de dois eixos (por exemplo, eixo X, eixo Z) que se estendem da origem no plano criado pelos pontos 502, 504, 506.FIG. 5 shows an illustration of how virtual modeling software can establish a new reference structure for a real object, for example real object 500. A number of reference points (for example points 502, 504, 506) can be indicated. on the actual object 500. These reference points may be indicated, for example, by a technician using a tool or stick, for example a stick similar to stick 300 of FIG. 3. The tool or stick may be traceable by the tracking system, for example, the position between the tracking markers attached to the stick with respect to each other may be determined by the tracking system, enabling accurate point collection. Virtual modeling software can use tracking system position data to record landmarks on the real object. As an example, virtual modeling software may recognize a point on the stick as a "pointer" (for example, a tip of a stick extension member). A technician can touch the pointer at various points on the actual object (points 502, 504, 506), and via the stick and tracking system, virtual modeling software can capture or record these points and place them in the associated coordinate structure. with the tracking system. To determine the new reference structure, the reference points may have to be placed properly on the real object 500, for example, in a non-collinear arrangement. At least three non-collinear reference points can be placed on the real object. More than three reference points can be placed on the real object, for example, to improve the reliability and / or accuracy of calculations. From these reference points (eg points 502, 504, 506), virtual modeling software can determine an origin (eg point 508) and an orientation (see axis lines extending from point 508) to the real object. . The origin can be determined by calculating a centroid (for example, a 5 center of mass) of points 502, 504, 506. An orientation to the real object can be determined by placing two axes (for example, X axis, axis). Z) extending from the origin in the plane created by points 502, 504, 506.

Com referência outra vez à FIG. 2, uma vez que a nova estrutura de referência 212 do RO é estabelecida, o software de modelagem virtual 210 pode calcular diferenças translacionais e/ou rotacionais entre a nova estrutura de referência 212 do RO e a estrutura de referência 206 de RO determinadas pelo sistema de rastreamento.Referring again to FIG. 2, once the new RO reference frame 212 is established, virtual modeling software 210 can calculate translational and / or rotational differences between the new RO reference frame 212 and the system-determined RO reference frame 206 Tracking

Com referência à FIG. 2, o software de modelagem virtual 210 pode acessar ou carregar vários objetos virtuais, por exemplo, modelos CAD pré-designados. O software de modelagem virtual 210 pode colocar os objetos virtuais na estrutura coordenada associada com o sistema de rastreamento, mas o sistema de AR pode necessitar ser calibrado antes que uma colocação apropriada opere. Um objeto virtual (por exemplo, um modelo CAD) pode ter sua própria estrutura de referência (por exemplo, uma origem e três eixos de orientação), por exemplo, como especificado quando o objeto virtual foi designado. Pode ser o caso (por exemplo, para um ambiente particular) que todos os objetos virtuais referenciados pelo software de modelagem virtual possam compartilhar a mesma estrutura de referência (por exemplo, estrutura de referência de VO 214). Para colocar objetos virtuais na estrutura coordenada associada com o sistema de rastreamento, o software de modelagem virtual 210 pode determinar um mapeamento ou transformação entre a estrutura de referência de VO 214 dos objetos virtuais e a estrutura coordenada 204 associada com o sistema de rastreamento. Para calibrar o sistema de AR (por exemplo, determinar o mapeamento ou transformação), o software de modelagem virtual 210 pode usar um objeto virtual (por exemplo, objeto virtual 112 da FIG. 1) que corresponde a um objeto real (por exemplo, objeto real 104 da FIG. 1) que a câmera (por exemplo, câmera 102 da FIG. 1) do sistema de AR está capturando. Esse objeto virtual pode ter uma estrutura de referência de VO 214.With reference to FIG. 2, virtual modeling software 210 can access or load various virtual objects, for example, pre-designed CAD models. Virtual modeling software 210 may place the virtual objects in the coordinate structure associated with the tracking system, but the RA system may need to be calibrated before proper placement operates. A virtual object (for example, a CAD model) can have its own reference structure (for example, an origin and three orientation axes), for example, as specified when the virtual object was assigned. It may be the case (for example, for a particular environment) that all virtual objects referenced by the virtual modeling software may share the same reference structure (eg VO 214 reference structure). To place virtual objects in the coordinate structure associated with the tracking system, virtual modeling software 210 can determine a mapping or transformation between the VO 214 reference frame of the virtual objects and the coordinate structure 204 associated with the tracking system. To calibrate the RA system (e.g., determine mapping or transformation), virtual modeling software 210 may use a virtual object (e.g. virtual object 112 of FIG. 1) that corresponds to a real object (e.g., real object 104 of FIG. 1) that the camera (e.g., camera 102 of FIG. 1) of the AR system is capturing. This virtual object can have a VO 214 reference structure.

O software de modelagem virtual 210 pode estabelecer uma nova estrutura de referência de VO 216 para o objeto virtual real. O software de modelagem virtual 210 pode usar a mesma estrutura coordenada que a uma associada com o sistema de rastreamento. A nova estrutura de referência de VO 216 pode ter uma diferente origem e orientação, quando comparada à estrutura de referência de VO 214. Estabelecer uma nova estrutura de referência de VO pode permitir que o software de modelagem virtual escolha pontos de referência no objeto virtual que são os mesmos (ou muito próximos a) pontos de referência como foi indicado (como explicado acima) com respeito ao objeto real correspondente, e pode possibilitar alinhamento (vide geralmente o ponto 218) entre a nova estrutura de referência de RO 212 e a nova estrutura de referência de VO 216. O alinhamento entre a nova estrutura de referência de RO 212 (associada com o objeto real) e a nova estrutura de referência de VO 216 (associada com o objeto virtual) pode ser alcançado, por exemplo, escolhendo os mesmos pontos de referência tanto no objeto real quanto no objeto virtual e executando o mesmo cálculo de origem e orientação para cada.Virtual modeling software 210 can establish a new VO 216 reference structure for the actual virtual object. Virtual modeling software 210 may use the same coordinate structure as one associated with the tracking system. The new VO 216 reference frame may have a different origin and orientation when compared to the VO 214 reference frame. Establishing a new VO reference frame may allow virtual modeling software to choose reference points in the virtual object that same (or very close to) reference points as indicated (as explained above) with respect to the corresponding real object, and may enable alignment (see generally paragraph 218) between the new reference structure of RO 212 and the new VO 216 reference frame. Alignment between the new RO 212 reference frame (associated with the actual object) and the new VO 216 reference frame (associated with the virtual object) can be achieved, for example, by choosing the same reference points in both the real object and the virtual object and performing the same source and orientation calculation for each.

A FIG. 6 mostra uma ilustração de como o software de modelagem virtual pode estabelecer uma nova estrutura de referência de VO para o objeto virtual, por exemplo, objeto virtual 600. Perceba que, para propósitos de calibração, o objeto virtual 600 pode ser um objeto virtual modelado de25 pois de um objeto real associado com a câmera do sistema de AR estar capturando, por exemplo, o objeto real 500 da FIG. 5. Um número de pontos de referência (por exemplo, pontos 602, 604, 606) pode ser selecionado no objeto virtual 600. Esses pontos de referência podem corresponder (por exemplo, estar na mesma posição relativa como) aos pontos de referência que 30 foram escolhidos, indicados e/ou registrados para criar a nova estrutura de referência de RO (vide FIG. 5 e discussão relacionada). Como com a determinação da estrutura de referência de RO, os pontos de referência para determinar a nova estrutura de referência de VO podem ser uns arranjos não colineares, e pelo menos três pontos de referência colineares podem ser selecionados no objeto virtual. A partir desses pontos de referência (por exemplo, pontos 602, 604, 606), o software de modelagem virtual pode de5 terminar uma origem (por exemplo, ponto 608) e uma orientação (vide linhas de eixos se estendendo do ponto 608) para o objeto virtual. A origem pode ser determinada calculando um centroide (por exemplo, um centro de massa) dos pontos 602, 604, 606. Uma orientação para o objeto virtual pode ser determinada colocando dois eixos (por exemplo, eixo X, eixo Z) que se es10 tendem da origem no plano criado pelos pontos 602, 604, 606.FIG. 6 shows an illustration of how virtual modeling software can establish a new VO reference structure for the virtual object, for example virtual object 600. Note that for calibration purposes, virtual object 600 can be a modeled virtual object. 25 because a real object associated with the AR system camera is capturing, for example, the real object 500 of FIG. 5. A number of waypoints (for example, points 602, 604, 606) can be selected in virtual object 600. These waypoints can correspond (for example, be in the same relative position as) to waypoints that are 30 were chosen, nominated and / or registered to create the new RO reference framework (see FIG. 5 and related discussion). As with determining the RO reference structure, the reference points for determining the new VO reference structure can be non-collinear arrays, and at least three collinear reference points can be selected in the virtual object. From these reference points (e.g., points 602, 604, 606), virtual modeling software can terminate an origin (e.g., point 608) and an orientation (see extending axis lines from point 608) to the virtual object. The origin can be determined by calculating a centroid (for example, a center of mass) of points 602, 604, 606. An orientation for the virtual object can be determined by placing two axes (for example, X axis, Z axis) that are 10 they tend to originate from the plane created by points 602, 604, 606.

Com referência outra vez à FIG. 2, uma vez que a nova estrutura de referência de VO 216 é estabelecida, o software de modelagem virtual 210 pode calcular diferenças translacionais e/ou rotacionais entre a nova estrutura de referência de VO 216 e a estrutura de referência de VO 214 associadas com o objeto virtual.Referring again to FIG. 2, once the new VO 216 reference framework is established, virtual modeling software 210 can calculate translational and / or rotational differences between the new VO 216 reference framework and the VO 214 reference framework associated with the virtual object

Como explicado acima, um objeto virtual, que é modelado depois de um objeto real associado no espaço em 3D, pode ser exigido para calibrar o sistema de AR, por exemplo, para determinar uma nova estrutura de referência de VO 216 que pode ser alinhada com a nova estrutura de re20 ferência de RO 212. No entanto, uma vez que a calibração está completa, deve ser entendido que vários outros objetos virtuais podem ser colocados (por exemplo, pelo software de modelagem virtual) na estrutura coordenada associada com o sistema de rastreamento. Com referência à FIG. 2, pode ser visto porque esse posicionamento funciona. Para colocar um objeto vir25 tual na estrutura da câmera associada com o sistema de rastreamento, um mapeamento ou transformação (por exemplo, a Transformação M4 mostrada na FIG. 2) deve ser determinado entre a estrutura de referência do objeto virtual 214 (por exemplo, uma origem e orientação) e a estrutura coordenada 204 associada com o sistema de rastreamento. A transformação M4 pode 30 não ser conhecida antes do processo de calibração estar completo. O processo de calibração, como explicado acima, pode determinar vários outros mapeamentos ou transformações que são relacionados à transformação M4. Como mostrado na FIG. 2, o processo de calibração pode determinar a Transformação M1 (isto é, onde o sistema de rastreamento coloca o objeto real rastreado na sua estrutura coordenada), a Transformação M2 (isto é, as diferenças translacionais e rotacionais entre a estrutura de referência de RO 5 206 e a nova estrutura de referência de RO 212) e a Transformação M3 (isto é, diferenças translacionais e rotacionais entre a estrutura de referência de VO 214 e a nova estrutura de referência de VO 216). Uma vez que as transformações M1, M2 e M3 são conhecidas, a transformação M4 pode ser calculada. Uma vez que a transformação M4 é conhecida, vários objetos virtu10 ais podem ser colocados na estrutura coordenada associada com o sistema de rastreamento. Adicionalmente, como a informação (por exemplo, pose do objeto real) do sistema de rastreamento é transmitida ao software de modelagem virtual, se a transformação M1 muda (isto é, a pose do objeto real no espaço 3D), a transformação M4 pode atualizar, por exemplo, em tempo re15 al. Nesse aspecto, os objetos virtuais podem se sobrepor em uma cena do mundo real, e a aparência dos objetos virtuais pode mudar apropriadamente, por exemplo, como um objeto real associado nos movimentos da cena.As explained above, a virtual object, which is modeled after an associated real object in 3D space, may be required to calibrate the AR system, for example to determine a new VO 216 reference structure that can be aligned with However, once calibration is complete, it should be understood that several other virtual objects can be placed (for example, by virtual modeling software) in the coordinate structure associated with the system. tracking. With reference to FIG. 2, can be seen why this positioning works. To place a virtual object in the camera frame associated with the tracking system, a mapping or transformation (for example, Transformation M4 shown in FIG. 2) must be determined between the reference frame of virtual object 214 (for example, origin and orientation) and the coordinate structure 204 associated with the tracking system. Transformation M4 may not be known before the calibration process is complete. The calibration process, as explained above, can determine several other mappings or transformations that are related to the M4 transformation. As shown in FIG. 2, the calibration process can determine Transformation M1 (ie where the tracking system places the actual object tracked in its coordinate structure), Transformation M2 (ie the translational and rotational differences between the RO reference structure). 5 206 and the new RO 212 reference structure) and the M3 Transformation (i.e., translational and rotational differences between the VO 214 reference structure and the new VO 216 reference structure). Once the transformations M1, M2 and M3 are known, the transformation M4 can be calculated. Once the M4 transformation is known, several virtual objects can be placed in the coordinate structure associated with the tracking system. Additionally, since the information (for example, real object pose) of the tracking system is transmitted to the virtual modeling software, if the transformation M1 changes (ie, the real object pose in 3D space), the M4 transformation can update. , for example, at time re15 al. In this respect, virtual objects may overlap in a real-world scene, and the appearance of virtual objects may change appropriately, for example, as an associated real object in scene movements.

transformação M4, como mostrado na FIG. 2. As várias transformações (M1, 20 M2, M3, M4) como mostrado na FIG. 2 podem, cada uma, ser representadas como uma matriz de transformação, por exemplo, uma matriz de transformação 4x4 como é comumente usada nos gráficos de computado em 3D. A transformação M1 pode ser representada como a transformação M4 mostrada na Eq. 1 abaixo. A transformação M2 pode ser representada como a ma25 triz de transformação mostrada na Eq. 2 abaixo. A transformação M3 pode ser representada como a matriz de transformação mostrada na Eq. 3 abaixo.M4 transformation as shown in FIG. 2. The various transformations (M1, 20 M2, M3, M4) as shown in FIG. 2 may each be represented as a transformation matrix, for example, a 4x4 transformation matrix as commonly used in 3D computer graphics. The transformation M1 can be represented as the transformation M4 shown in Eq. 1 below. The transformation M2 can be represented as the transformation matrix shown in Eq. 2 below. Transformation M3 can be represented as the transformation matrix shown in Eq. 3 below.

O seguinte explica um exemplo da técnica para computar a M. M.The following explains an example of the technique for computing M. M.

DCBi1 V1]DCBi1 V1]

. OOO li. OOO li

'DCM^ v^}'DCM ^ v ^}

, DO0~ 11, DO0 ~ 11

(Eq. 1)(Eq. 1)

(Eq. 2)(Eq. 2)

(Eq. 3) Cada matriz de transformação pode incluir um componente rotacional ou de orientação (DCMn ou "Matriz de Cosseno de Direção") e um componente translacional ou de locação (Vn). Por exemplo, o DCMn representa a matriz giratória para a transformação Mn, e Vn representa o vetor 5 translacional para a transformação Mn. O componente rotacional (DCMn) pode ser uma matriz 3x3 que representa uma mudança em orientação entre dois objetos. O componente DCMn pode representar três valores - uma mudança no cilindro (por exemplo, rotação em torno de um eixo Y), e uma mudança em guinada (por exemplo, rotação em torno do eixo Z). Esses três 10 valores podem ser expandidos em uma matriz de DCMn 3x3 para ajustar apropriadamente na matriz de transformação 4x4 Mn. Uma pessoa familiar com multiplicação de matrizes e matriz de transformação perceberá que uma matriz de transformação deve ser populosa em uma maneira apropriada de modo que a multiplicação de uma matriz pelas outras resulta na transforma15 ção desejada. O componente translacional (Vn) pode ser uma matriz 1x3 (isto é, 3 números em uma coluna vertical) que representa a mudança na localização de dois objetos (por exemplo, mudança na localização entre origens de dois objetos). O componente translacional (Vn) pode incluir três valores - uma mudança em localização em 3D com relação ao eixo X, uma 20 mudança em localização em 3D com relação ao eixo Z. Quando o componente rotacional (DCMn) e o componente translacional (Vn) são adicionados à matriz de transformação (Mn) e preenchidos com "0001" na série de fundo (para fazer o trabalho de multiplicação de matriz), a matriz de transformação está completa.(Eq. 3) Each transformation matrix can include either a rotational or orientation component (DCMn or "Direction Cosine Array") and a translational or location component (Vn). For example, DCMn represents the rotary matrix for the Mn transformation, and Vn represents the translational vector 5 for the Mn transformation. The rotational component (DCMn) can be a 3x3 matrix that represents a change in orientation between two objects. The DCMn component can represent three values - a change in the cylinder (for example, rotation about a Y axis), and a change in yaw (for example, rotation around a Z axis). These three 10 values can be expanded into a 3x3 DCMn matrix to fit properly into the 4x4 Mn transformation matrix. A familiar person with matrix multiplication and transformation matrix will realize that a transformation matrix must be populous in an appropriate manner so that multiplication of one matrix by the others results in the desired transformation. The translational component (Vn) can be a 1x3 matrix (that is, 3 numbers in a vertical column) that represents the change in the location of two objects (for example, the change in location between two object origins). The translational component (Vn) can include three values - a change in 3D location relative to the X axis, a change in 3D location relative to the Z axis. When the rotational component (DCMn) and the translational component (Vn) are added to the transformation matrix (Mn) and filled with "0001" in the background series (to do the matrix multiplication work), the transformation matrix is complete.

A transformação M4 pode então ser calculada como mostradoThe M4 transformation can then be calculated as shown.

na Eq. 4 abaixo, resultando na transformação M4 mostrada na Eq. 5 abaixo.in Eq. 4 below, resulting in the M4 transformation shown in Eq. 5 below.

Em algumas modalidades, uma vez que a transformação M4 éIn some embodiments, since the M4 transformation is

PCM1 V1PCM1 V1

L õõo íLõõo í

SCM4 v*SCM4 v *

000 1000 1

DCM2 ΐ?,] pCM3 v.DCM2 ΐ ?,] pCM3 v.

L 000 li i SOO ÜL 000 li and SOO Ü

(Eq. 4) (Eq. 5) calculada, permanece a mesma. Como pode ser visto na FIG. 2, uma vez que a transformação M4 é calculada, ela pode representar a transformação de uma estrutura de referência do objeto virtual para a Estrutura de Referência RO determinada por TS. A transformação M4 pode ser usada para colo5 car vários objetos virtuais em uma estrutura coordenada associada com o sistema de rastreamento, por exemplo, colocada com uma pose que é relacionada à Estrutura de Referência RO determinada por TS. Conforme a informação (por exemplo, pose do objeto real) do sistema de rastreamento é transmitida ao software de modelagem virtual, se a transformação M1 muda 10 (isto é, a pose do objeto real no espaço de 3D), a pose de vários objetos virtuais pode se atualizar, por exemplo, em tempo real.(Eq. 4) (Eq. 5) calculated, remains the same. As can be seen from FIG. 2, since the M4 transformation is calculated, it can represent the transformation from a virtual object reference structure to the TS-determined RO Reference Structure. The M4 transformation can be used to place multiple virtual objects in a coordinate structure associated with the tracking system, for example, placed with a pose that is related to the TS Reference Structure RO. As the information (for example, real object pose) of the tracking system is transmitted to the virtual modeling software, if the M1 transformation changes 10 (ie the real object pose in 3D space), the multiple object pose can update, for example, in real time.

Outra vez com referência à FIG. 1, a câmera 102 pode também necessitar ser calibrada antes do sistema de AR poder deformar com precisão, alterar ou alinhar objetos virtuais conforme a câmera 102 se move. Os desafios e soluções associados com a calibração da câmera 102 podem ser similares àqueles associados com calibração de objetos virtuais com relação à estrutura coordenada associada com o sistema de rastreamento, como descrito acima. Para alcançar o alinhamento preciso entre os objetos virtuais e uma cena do mundo real (como capturado pela câmera 102), o software de modelagem virtual pode necessitar rastrear a pose das lentes da câmera 102, não exatamente o corpo da câmera como um todo. Vários métodos para calibrar câmeras envolviam um processo de ensaio e erro prolongado (por exemplo, tomando diversas horas) para manualmente manipular seis parâmetros (por exemplo, X, Y, Z, cilindro, passo, guinada) associados com a lente da câmera. Com esses métodos manuais, uma colocação da câmera não é assegurada, mesmo depois da calibração estar completa.Again with reference to FIG. 1, camera 102 may also need to be calibrated before the AR system can accurately deform, alter or align virtual objects as camera 102 moves. The challenges and solutions associated with camera 102 calibration can be similar to those associated with virtual object calibration with respect to the coordinate structure associated with the tracking system, as described above. To achieve accurate alignment between virtual objects and a real-world scene (as captured by camera 102), virtual modeling software may need to track the camera lens pose 102, not exactly the camera body as a whole. Several methods for calibrating cameras involved a lengthy trial and error process (eg taking several hours) to manually manipulate six parameters (eg X, Y, Z, cylinder, pitch, yaw) associated with the camera lens. With these manual methods, camera placement is not assured even after calibration is complete.

A FIG. 7 descreve um diagrama em bloco mostrando um exemplo de técnica de calibração, de acordo com uma ou mais modalidades da presente descrição. Mais especificamente, a FIG. 7 mostra uma estrutura 30 automatizada de técnica de calibração de referência que pode ser usada para determinar e/ou calcular um mapeamento e/ou transformação entre a estrutura de referência de uma câmera conforme rastreada por um sistema de rastreamento e a estrutura de referência da lente da câmera. Como pode ser visto na FIG. 7, um sistema de rastreamento 702 (por exemplo, similar ao sistema de rastreamento sistema de rastreamento 108 da FIG. 1) pode estabelecer uma estrutura coordenada 704, por exemplo, como parte de um 5 ajuste do sistema de rastreamento executado por um técnico (explicado em detalhes acima). O sistema de rastreamento 702 pode determinar uma estrutura de referência 706 para uma câmera. Em outras palavras, o sistema de rastreamento 702 pode rastrear a câmera. A câmera pode ser similar à câmera 102 da FIG. 1, por exemplo. A câmera pode ser uma câmera indepen10 dente ou pode ser incorporada em um computador, por exemplo, o computador que opera o software de modelagem virtual. A FIG. 8A mostra uma ilustração de um exemplo da câmera 800. Para que o sistema de rastreamento rastreie (isto é, determine uma estrutura de referência para) a câmera 800, um número (por exemplo, três ou mais) de marcadores de rastreamento 15 (por exemplo, marcadores de rastreamento 802, 804, 806) pode ser anexado ou substituído na câmera 800. Em algumas modalidades, os marcadores de rastreamento podem ser anexados ao próprio corpo da câmera. Em outras modalidades, os marcadores de rastreamento podem ser anexados a uma estrutura 801 que contém ou suporta a câmera 800, como mostrado no e20 xemplo da FIG. 8A. Para rastreamento apropriado, os marcadores de rastreamento podem ter que ser colocados apropriadamente na câmera 800, por exemplo, em um arranjo não colinear. Para rastreamento apropriado, pelo menos três marcadores de rastreamento não colineares podem ser colocados na câmera (ou estrutura da câmera). Mais do que três marcadores de 25 rastreamento podem ser colocados na câmera, por exemplo, para aperfeiçoar a confiabilidade e/ou precisão de cálculos, por exemplo, no caso da visão de um dos marcadores de rastreamento estar obstruída.FIG. 7 depicts a block diagram showing an example of calibration technique according to one or more embodiments of the present disclosure. More specifically, FIG. 7 shows an automated frame of reference calibration technique that can be used to determine and / or calculate a mapping and / or transformation between a camera's reference frame as tracked by a tracking system and the lens reference frame. from the camera. As can be seen from FIG. 7, a tracking system 702 (for example, similar to tracking system tracking system 108 of FIG. 1) may establish a coordinate structure 704, for example as part of a tracking system adjustment performed by a technician ( explained in detail above). Tracking system 702 may determine a frame of reference 706 for a camera. In other words, tracking system 702 can track the camera. The camera may be similar to camera 102 of FIG. 1, for example. The camera may be a standalone camera or may be incorporated into a computer, for example, the computer operating virtual modeling software. FIG. 8A shows an illustration of an example of camera 800. For the tracking system to track (i.e. determine a frame of reference for) camera 800, a number (for example, three or more) of tracking markers 15 (e.g. (eg tracking markers 802, 804, 806) can be attached or replaced on camera 800. In some embodiments, tracking markers may be attached to the camera body itself. In other embodiments, tracking markers may be attached to a frame 801 containing or supporting camera 800, as shown in the example of FIG. 8A. For proper tracking, tracking markers may have to be placed properly on camera 800, for example, in a non-collinear arrangement. For proper tracking, at least three non-collinear tracking markers can be placed on the camera (or camera frame). More than three tracking markers may be placed in the camera, for example, to improve the reliability and / or accuracy of calculations, for example, if vision of one of the tracking markers is obstructed.

O sistema de rastreamento (por exemplo, incluindo um número da câmeras com infravermelho) pode detectar os marcadores de rastreamento na câmera (ou estrutura da câmera) e pode criar e colocar uma representação da câmera na estrutura coordenada estabelecida pelo sistema de rastreamento. A FIG. 8B mostra uma ilustração de como um sistema de rastreamento pode criar e colocar uma representação de uma câmera. O sistema de rastreamento pode detectar a localização dos marcadores de rastreamento (por exemplo, marcadores 802, 804, 806 e talvez vários outros marcadores) e pode criar e colocar pontos (por exemplo, pontos 852, 854, 856 e talvez vários outros), respectivamente associados com os marcadores de rastreamento, na estrutura coordenada do sistema de rastreamento. A partir desses pontos (por exemplo, pontos 852, 854, 856 e talvez vários outros), o sistema de rastreamento pode determinar uma origem (por exemplo, ponto 860) e uma orientação (vide linhas de cubo e de orientação que circundam o ponto 860) para a representação do objeto real. A origem pode ser determinada calculando um centroide (por exemplo, um centro de massa) dos pontos 852, 854, 856 e talvez vários outros. A orientação pode ser determinada para corresponder (ou ser relacionada) à orientação do sistema coordenado do sistema de rastreamento. Uma vez que o sistema de rastreamento determina uma estrutura de referência (por exemplo, uma origem/localização e orientação associadas com a estrutura coordenada do sistema de rastreamento) para a câmera, o sistema de rastreamento pode transmitir informação sobre a pose da câmera do software de modelagem virtual. A informação de transmissão da pose sobre a câmera pode se atualizar em tempo real conforme a câmera pode se mover e/ou girar.The tracking system (for example, including a number of infrared cameras) can detect tracking markers on the camera (or camera frame) and can create and place a camera representation on the coordinate frame established by the tracking system. FIG. 8B shows an illustration of how a tracking system can create and place a representation of a camera. The tracking system can detect the location of tracking markers (for example, 802, 804, 806 markers, and perhaps several other markers) and can create and place points (for example, points 852, 854, 856, and perhaps several others), associated with the tracking markers, in the coordinate structure of the tracking system. From these points (for example, points 852, 854, 856, and perhaps several others), the tracking system can determine an origin (for example, point 860) and an orientation (see cube and guidance lines surrounding the point). 860) for the representation of the real object. The origin can be determined by calculating a centroid (for example, a center of mass) of points 852, 854, 856 and perhaps several others. The orientation may be determined to match (or be related to) the orientation of the tracking system coordinate system. Since the tracking system determines a frame of reference (for example, a source / location and orientation associated with the tracking system's coordinate structure) to the camera, the tracking system can transmit information about the software camera pose. of virtual modeling. Pose transmission information about the camera can update in real time as the camera moves and / or rotates.

Em algumas modalidades da presente descrição, a câmera pode ser incorporada em um computador, por exemplo, o computador que opera o software de modelagem virtual. Como um exemplo específico, o computador pode ser um computador pessoal com uma câmera integrada. A FIG. 8C 25 mostra uma ilustração de um exemplo de computador pessoal 870 com uma câmera integrada. Por exemplo, um primeiro lado 874 do computador pessoal 870 pode facear um usuário 872, e um segundo lado 876 pode facear para longe do usuário 872. A câmera pode ser montada no segundo lado 876, de modo que a câmera possa capturar um objeto real (por exemplo, 30 objeto real 880). Se o sistema de AR é apropriadamente calibrado, o usuário 872 pode ver uma cena do mundo real (incluindo uma visão 881 do objeto real 880) na tela do computador pessoal 870. A tela pode também mostrar conteúdo virtual (por exemplo, conteúdo virtual 882), sobreposto no topo da cena do mundo real/objeto real. Para um sistema de rastreamento rastrear a câmera (por exemplo, incorporada no computador pessoal 870), um número de marcadores de rastreamento (por exemplo, marcadores de rastreamento 5 884, 886, 888) pode ser montado no computador pessoal 870. Então, o rastreamento da câmera pode ser feito em um método similar àquele explicado acima.In some embodiments of the present disclosure, the camera may be incorporated into a computer, for example, the computer operating virtual modeling software. As a specific example, the computer may be a personal computer with an integrated camera. FIG. 8C 25 shows an illustration of an example 870 personal computer with an integrated camera. For example, a first side 874 of the personal computer 870 can face a user 872, and a second side 876 can face away from user 872. The camera can be mounted on the second side 876 so that the camera can capture a real object. (e.g. 30 real object 880). If the AR system is properly calibrated, user 872 can see a real world scene (including a view 881 of the real object 880) on the personal computer screen 870. The screen can also show virtual content (for example, virtual content 882 ), overlaid on top of the real world / real object scene. For a tracking system to track the camera (for example, embedded in personal computer 870), a number of tracking markers (for example, tracking markers 5,884, 886, 888) can be mounted on personal computer 870. Then, the Camera tracking can be done in a similar method to that explained above.

Com referência outra vez à FIG. 7, um software de modelagem virtual 710 pode receber informação de transmissão do sistema de rastrea10 mento 702 sobre a pose/estrutura de referência da câmera. No entanto, o software de modelagem virtual 710 pode necessitar rastrear a localização da lente da câmera, em vez do corpo da câmera (ou uma estrutura da câmera, ou um computador pessoal) como um todo. Para determinar uma estrutura de referência para a lente da câmera, um marcador impresso especial e 15 software relacionado podem ser usados. As FIGURAS 9A e 9B descrevem ilustrações que mostram como o marcador impresso pode permitir determinação da estrutura de referência da lente. Como mostrado na FIG. 9A, uma câmera 902 pode capturar ou registrar itens do mundo real no campo de visão 904 da câmera. Um marcador impresso especial 906 pode ser colocado 20 no campo de visão 904 da câmera. Deve ser entendido que o marcador impresso 906 somente pode ser usado para calibrar a câmera e o sistema de AR. Uma vez que o software de modelagem virtual é capaz de rastrear a lente da câmera, o marcador impresso 906 pode ser removido.Referring again to FIG. 7, virtual modeling software 710 may receive transmission information from tracking system 702 about the camera's pose / frame of reference. However, virtual modeling software 710 may need to track the location of the camera lens rather than the camera body (or a camera frame, or a personal computer) as a whole. To determine a frame of reference for the camera lens, a special printed marker and related software may be used. FIGURES 9A and 9B depict illustrations showing how the printed marker can enable determination of the lens reference structure. As shown in FIG. 9A, a 902 camera can capture or record real world items in the camera's 904 field of view. A special printed marker 906 may be placed 20 in the camera's field of view 904. It should be understood that the 906 printed marker can only be used to calibrate the camera and the AR system. Since virtual modeling software is able to track the camera lens, the printed marker 906 can be removed.

Para calibrar o sistema de AR, o marcador impresso 906 pode 25 ser colocado no campo de visão 904 da câmera, por exemplo, em algum lugar no espaço em 3D de uma área ou laboratório (por exemplo, no piso). O marcador impresso 906 pode incluir vários marcadores (por exemplo, marcadores 908) que podem incluir uma estrutura coordenada (por exemplo, uma origem e orientação) para o marcador impresso. A câmera 902 pode 30 então capturar o marcador impresso 906 (incluindo os vários marcadores) e pode transmitir essa informação a um computador 910 (por exemplo, similar ao computador 106 da FIG. 1). O computador 910 pode ser o mesmo computador que inclui o software de modelagem virtual. O computador 910 pode incluir um software 912 que é associado com o marcador impresso 906. O software do marcador impresso 912 pode receber informação da câmera 902, incluindo como a câmera "vê" o marcador impresso 906, por exemplo, 5 como o marcador impresso parece estar localizado e orientado no campo de visão da câmera. O software do marcador impresso 912 pode então processar essa informação para determinar uma estrutura de referência (por exemplo, uma origem e orientação) para a lente da câmera 902, por exemplo, como a lente é colocada na estrutura coordenada estabelecida pelo marca10 dor impresso 906 (e os vários marcadores 908). Como um exemplo e referência à FIG. 9B, para propósitos de calibração, a câmera 902 e o marcador impresso 906 podem ser orientados com relação um ao outro de modo que os eixos (por exemplo, X, Y, Z) sejam alinhados com os eixos vertical, horizontal e de profundidade da câmara, especificamente a lente da câmera.To calibrate the RA system, the printed marker 906 may be placed in the camera's 904 field of view, for example, somewhere in the 3D space of an area or laboratory (for example, on the floor). The printed marker 906 may include various markers (e.g., markers 908) which may include a coordinate structure (e.g., an origin and orientation) for the printed marker. Camera 902 can then capture printed marker 906 (including the various markers) and can transmit this information to a computer 910 (for example, similar to computer 106 of FIG. 1). The 910 computer may be the same computer that includes the virtual modeling software. The computer 910 may include software 912 that is associated with the printed marker 906. The printed marker software 912 may receive information from camera 902, including how the camera "sees" the printed marker 906, for example 5 as the printed marker. appears to be located and oriented in the camera's field of view. The printed marker software 912 can then process this information to determine a reference structure (e.g., an origin and orientation) for the camera lens 902, for example, how the lens is placed in the coordinate structure established by printed marker 906. (and the various markers 908). As an example and reference to FIG. 9B, for calibration purposes, camera 902 and printed marker 906 may be oriented relative to each other so that the axes (e.g., X, Y, Z) are aligned with the vertical, horizontal and depth axes of the camera, specifically the camera lens.

Com referência outra vez à FIG. 7, o software de modelagem virReferring again to FIG. 7, the modeling software come

tual (por exemplo, via o software relacionado a um marcador impresso especial) pode determinar uma estrutura de referência de lente da câmera 714, por exemplo, conforme ele se relaciona a uma estrutura coordenada 712 estabelecida pelo marcador impresso. De modo a relacionar a pose da lente 20 da câmera à pose de vários objetos virtuais, o software de modelagem virtual pode colocar a lente da câmera em uma estrutura coordenada associada com o sistema de rastreamento, por exemplo, relacionando a estrutura de referência 714 da lente da câmera à estrutura de referência 706 da câmera como um todo, conforme rastreado pelo sistema de rastreamento. No entan25 to, o software de modelagem virtual 710 pode não ser capaz de relacionar a estrutura de referência 714 da lente da câmera à estrutura de referência 706 da câmera como um todo até o sistema de AR ter sido calibrado, por exemplo, porque a estrutura coordenada 712 estabelecida pelo marcador impresso pode ser diferente da estrutura coordenada 704 estabelecida pelo siste30 ma de rastreamento. Por isso, o processo de calibração pode incluir alinhar (geralmente mostrado pelo número 716) a estrutura coordenada 712 estabelecida pelo marcador impresso e a estrutura coordenada 704 estabelecida pelo sistema de rastreamento. Esse alinhamento pode incluir colocar o marcador impresso (por exemplo, a origem do marcador impresso) na mesma localização (por exemplo, a mesma localização em espaço em 3D no piso de uma área ou laboratório) como a origem da estrutura coordenada do sistema 5 de rastreamento. O alinhamento pode também incluir alinhar os eixos (por exemplo, X, Y, Z) do marcador impresso com os eixos da estrutura coordenada do sistema de rastreamento. A esse respeito, uma vez que as duas estruturas coordenadas são alinhadas, o software de modelagem virtual 710 pode tratá-las como a mesma estrutura coordenada.(eg via software related to a special printed marker) can determine a camera lens reference structure 714, for example as it relates to a coordinate structure 712 established by the printed marker. In order to relate the camera lens 20 pose to the pose of various virtual objects, the virtual modeling software may place the camera lens in a coordinate structure associated with the tracking system, for example by relating the reference frame 714 of the camera. camera lens to the camera's frame reference 706 as a whole as tracked by the tracking system. However, virtual modeling software 710 may not be able to relate camera lens reference frame 714 to camera reference frame 706 as a whole until the AR system has been calibrated, for example, because the frame The coordinate 712 established by the printed marker may differ from the coordinate structure 704 established by the tracking system. Therefore, the calibration process may include aligning (generally shown by number 716) the coordinate structure 712 established by the printed marker and the coordinate structure 704 established by the tracking system. Such alignment may include placing the printed marker (for example, the origin of the printed marker) at the same location (for example, the same 3D space location on the floor of an area or laboratory) as the coordinate structure origin of the system. tracking. Alignment may also include aligning the axes (for example, X, Y, Z) of the printed marker with the axes of the tracking system coordinate structure. In this regard, since the two coordinate structures are aligned, the virtual modeling software 710 can treat them as the same coordinate structure.

Para relacionar a estrutura de referência 714 da lente da câmeraTo relate the camera lens reference structure 714

à estrutura de referência 706 da câmera como um todo, o software de modelagem virtual 710 pode determinar/calcular um mapeamento ou transformação (por exemplo, a Transformação C3 mostrada na FIG. 7). A transformação C3 pode não ser conhecida antes do processo de calibração estar com15 pleto. O processo de calibração, como explicado acima, pode determinar vários outros mapeamentos ou transformações que são relacionados à transformação C3. Como mostrado na FIG. 7, o processo de calibração pode determinar a Transformação C1 (isto é, onde o sistema de rastreamento coloca a câmera rastreada na sua estrutura coordenada) e a Transformação 20 C2 (isto é, as diferenças translacionais e rotacionais entre a estrutura coordenada de marcador impresso 712 e a nova estrutura de referência de lente da câmera 714 como determinado pelo software associado com o marcador impresso). Uma vez que as transformações C1 e C2 são mostradas, a transformação C3 pode ser calculada. Uma vez que a transformação C3 é conhe25 cida, a câmera pode ser movida em torno, e o software de modelagem virtual pode rastrear a lente da câmera na estrutura coordenada do sistema de rastreamento, mesmo que o marcador impresso não mais apareça no campo de vista da câmera. Uma informação (por exemplo, pose da câmera) do sistema de rastreamento é transmitida ao software de modelagem virtual, se o 30 transformador C1 muda (isto é, a pose da câmera no espaço em 3D), o transformador C3 pode se atualizar, por exemplo, em tempo real. Nesse respeito, os objetos virtuais podem se sobrepor em uma cena do mundo real, e a aparência dos objetos virtuais pode mudar apropriadamente, por exemplo, conforme a câmera se move.In reference frame 706 of the camera as a whole, virtual modeling software 710 can determine / calculate a mapping or transformation (e.g., Transformation C3 shown in FIG. 7). The C3 transformation may not be known before the calibration process is complete. The calibration process, as explained above, can determine several other mappings or transformations that are related to the C3 transformation. As shown in FIG. 7, the calibration process can determine Transformation C1 (ie where the tracking system places the tracked camera in its coordinate structure) and Transformation 20 C2 (ie the translational and rotational differences between the printed marker coordinate structure). 712 and the new camera lens reference frame 714 as determined by the software associated with the printed marker). Once transformations C1 and C2 are shown, transformation C3 can be calculated. Once the C3 transform is known, the camera can be moved around, and virtual modeling software can track the camera lens in the coordinate structure of the tracking system even if the printed marker no longer appears in the field of view. from the camera. Information (for example, camera pose) of the tracking system is transmitted to the virtual modeling software, if the transformer C1 changes (ie the camera pose in 3D space), the transformer C3 can be updated, for example. example in real time. In this respect, virtual objects may overlap in a real-world scene, and the appearance of virtual objects may change appropriately, for example as the camera moves.

O que segue explica um exemplo de técnica para computar a transformação C3, como mostrado na FIG. 7. As várias transformações (C1, 5 C2, C3) como mostradas na FIG. 7 podem, cada uma, ser representada como uma matriz de transformação, por exemplo, uma matriz de transformação 4x4 como é comumente usada nos gráficos do computador em 3D. A transformação C1 pode ser representada como a matriz de transformação na Eq. 6 abaixo. A transformação C2 pode ser representada como a matriz 10 de transformação mostrada na Eq. 7 abaixo.The following explains an example technique for computing the C3 transformation as shown in FIG. 7. The various transformations (C1, 5 C2, C3) as shown in FIG. 7 may each be represented as a transformation matrix, for example a 4x4 transformation matrix as is commonly used in computer graphics in 3D. Transformation C1 can be represented as the transformation matrix in Eq. 6 below. Transformation C2 can be represented as the transformation matrix 10 shown in Eq. 7 below.

Cl =Cl =

c., =c. =

'DCM2 . 000 i'DCM2. 000 i

(Eq. 7)(Eq. 7)

1515

Similar às matrizes de transformação Mn descritas acima, cada matriz de transformação Cn pode incluir um componente rotacional e de orientação (DCMn) e um componente translacional ou de locação (Vn). A transformação C3 pode então ser calculada como mostrada na Eq. 8 abaixo, resultando na transformação C3 mostrada na Eq. 9 abaixo.Similar to the Mn transformation matrices described above, each Cn transformation matrix can include a rotational and orientation component (DCMn) and a translational or location component (Vn). The C3 transformation can then be calculated as shown in Eq. 8 below, resulting in the C3 transformation shown in Eq. 9 below.

fnrsi? λfnrsi? λ

^^

I 000 Ii1,000 Ii

v.v.

D00~ IJD00 ~ IJ

■2? CAf,■ 2? CAf,

(Eq. 8) (Eq. 9)(Eq. 8) (Eq. 9)

Então, com referência outra vez à FIG. 7, a transformação C3 pode ser usada para colocar a lente da câmera em uma estrutura coordenada associada com o sistema de rastreamento, por exemplo, relacionando a pose da lente da câmera à pose da câmera conforme rastreada pelo sistema 20 de rastreamento. Como a informação (por exemplo, pose da câmera) do sistema de rastreamento é transferida ao software de modelagem virtual, se a transformação C1 muda (isto é, a pose da câmera no espaço em 3D), a transformação C3 pode se atualizar, por exemplo, em tempo real. Em operação, a atualização da transformação C3 pode operar como segue: O sistema de rastreamento 702 pode detectar uma mudança em pose de uma câmera (o sistema de rastreamento atualiza Cl). O sistema de rastreamento 702 5 pode transmitir informação da estrutura de referência 706 (por exemplo, na forma de uma matriz de transformação) da câmera ao software de modelagem virtual 710. O software de modelagem virtual pode multiplicar essa estrutura de referência/matriz de transformação pela matriz de transformação C3 para executar a transformação C3. O software de modelagem virtual po10 de então atualizar a pose de vários objetos virtuais na estrutura coordenada associada com o sistema de rastreamento com base na mudança da pose da câmera.Then, with reference again to FIG. 7, transformation C3 may be used to place the camera lens in a coordinate structure associated with the tracking system, for example by relating the camera lens pose to the camera pose as tracked by the tracking system 20. Since the information (for example, camera pose) of the tracking system is transferred to the virtual modeling software, if the C1 transformation changes (ie, the camera pose in 3D space), the C3 transformation can update, for example. example in real time. In operation, the C3 transform update can operate as follows: Tracking system 702 can detect a change in pose of a camera (tracking system updates Cl). Tracking system 702 can transmit reference frame information 706 (for example, in the form of a transformation matrix) from the camera to virtual modeling software 710. Virtual modeling software can multiply this reference structure / transformation matrix by transformation matrix C3 to perform transformation C3. The virtual modeling software can then update the pose of various virtual objects in the coordinate structure associated with the tracking system based on the changing camera pose.

Com referência outra vez à FIG. 1, o software de modelagem virtual 110 pode executar várias rotinas, técnicas e o similar descritos aqui para criar uma cena dinamicamente aumentada (por exemplo, cena aumentada 114), por exemplo, uma visão em tempo real da cena do mundo real conforme capturada pela câmera 102 aumentada e/ou sobreposta com objetos virtuais dinamicamente mutáveis. Uma vez que a calibração do sistema de AR é alcançada, como descrito acima, o software de modelagem virtual 110 pode dinamicamente manter correlação e/ou alinhamento entre vários objetos virtuais e uma cena do mundo real ao vivo, incluindo um ou mais objetos reais (por exemplo, objeto real 104). O software de modelagem virtual 110 pode manter esse alinhamento mesmo que a câmera 102 possa ser movida e girada em torno de um objeto 104, e mesmo que o objeto real 104 possa ser movido e girado.Referring again to FIG. 1, virtual modeling software 110 may perform various routines, techniques, and the like described herein to create a dynamically enlarged scene (e.g., augmented scene 114), for example, a real-time view of the real world scene as captured by camera 102 enlarged and / or overlaid with dynamically changing virtual objects. Once RA system calibration is achieved, as described above, virtual modeling software 110 can dynamically maintain correlation and / or alignment between multiple virtual objects and a live real world scene, including one or more real objects ( e.g. real object 104). Virtual modeling software 110 can maintain this alignment even though camera 102 can be moved and rotated around an object 104, and even if the actual object 104 can be moved and rotated.

O software de modelagem virtual 110 pode produzir uma cena aumentada 114 dinamicamente (por exemplo, mostrada no mostrador 116) que mostra objetos virtuais colocados em uma alimentação de vídeo ao vivo. O software de modelagem virtual 110 pode apropriadamente deformar (por 30 exemplo, alterar localização em 3D, orientação em 3D e/ou tamanho em 3D) objetos virtuais na cena aumentada, por exemplo, dependendo da pose da câmera 102 e/ou da pose do objeto real 104. Por exemplo, se a câmera 102 se move adicionalmente para longe do objeto real 104, um ou mais objetos virtuais na cena aumentada podem encolher. Como um outro exemplo, se a câmera 102 se move mais perto do objeto real 104, um ou mais objetos virtuais alargariam. Como um outro exemplo, se a câmera 102 se move em um ângulo relativo ao objeto real 104, um ou mais objetos virtuais girariam apropriadamente. A cena aumentada 114 pode ser armazenada (por exemplo, momentaneamente) em memória (por exemplo, uma unidade de memória volátil ou não volátil) antes da cena aumentada ser mostrada no mostrador 116. O conteúdo aumentado ou virtual que é mostrado no mostrador 116 e/ou mantido na cena aumentada 114 pode ser útil a um usuário que está usando o sistema de AR. Por exemplo, um usuário pode interagir com o conteúdo virtual e/ou receber informação benéfica do conteúdo aumentado. Como um exemplo específico, objetos/conteúdos virtuais podem fornecer informação instrucional valiosa a um técnico com respeito a uma peça de maquinário durante um processo de fabricação.Virtual modeling software 110 can produce a dynamically enlarged scene 114 (for example, shown on display 116) showing virtual objects placed on a live video feed. Virtual modeling software 110 may appropriately deform (e.g., change 3D location, 3D orientation, and / or 3D size) virtual objects in the enlarged scene, for example, depending on camera pose 102 and / or camera pose. real object 104. For example, if camera 102 moves further away from real object 104, one or more virtual objects in the enlarged scene may shrink. As another example, if camera 102 moves closer to the actual object 104, one or more virtual objects would widen. As another example, if camera 102 moves at an angle relative to the actual object 104, one or more virtual objects would rotate appropriately. The enlarged scene 114 may be stored (for example, momentarily) in memory (for example, a volatile or nonvolatile memory unit) before the enlarged scene is shown on display 116. The augmented or virtual content that is shown on display 116 and / or kept in the enlarged scene 114 may be useful to a user using the AR system. For example, a user may interact with virtual content and / or receive beneficial information from augmented content. As a specific example, virtual objects / content can provide valuable instructional information to a technician regarding a piece of machinery during a manufacturing process.

A FIG. 10A descreve uma ilustração de um exemplo de cena aumentada que pode ser produzida de acordo com uma ou mais modalidades da presente descrição. A cena aumentada pode incluir uma cena/ambiente do mundo real conforme capturado por uma câmera, por exem20 pio, uma parte de uma área 1002, com uma mesa 1004 e um objeto real 1006 (por exemplo, uma peça de maquinário) na mesa. A cena aumentada pode incluir um ou mais objetos virtuais conforme adicionados pelo sistema de AR descrito aqui, por exemplo, um objeto virtual 1010 que é relacionado ao (por exemplo, um modelo CAD baseado fora de) objeto real 1006. A FIG. 25 10A mostra somente parte (por exemplo, um recorte) do objeto virtual 1010. Essa visão do recorte pode auxiliar em mostrar como o objeto virtual 1010 pode alinhar com o objeto real 1006. Deve ser entendido, no entanto, que em algumas modalidades, o objeto virtual completo pode ser mostrado na cena aumentada. Se a câmara se move, a cena do mundo real e os objetos 30 virtuais podem se mover de uma maneira similar. Se o objeto real se move, quaisquer objetos virtuais que são relacionados ao objeto real podem se mover de uma maneira similar. O exemplo de cena aumentada da FIG. 10A é um exemplo para mostrar como os objetos virtuais modelados fora do objeto real podem ser alinhados com o objeto real, por exemplo, para calibrar o sistema de AR. Em alguns exemplos, depois da calibração estar completa, o objeto virtual modelado fora do objeto real pode não aparecer na cena au5 mentada. Em vez disso, vários outros objetos virtuais podem aparecer, por exemplo, ferramentas, hardware (por exemplo, parafusos), fiação, instruções e o similar que são relacionados ao objeto real. Por exemplo, esses objetos virtuais podem fornecer informação instrucional valiosa a um técnico com respeito a uma peça de maquinário, por exemplo, instruções com respeito a 10 como instalar um item ou executar uma tarefa (por exemplo, tal como perfurar um poço).FIG. 10A depicts an illustration of an example enlarged scene that can be produced according to one or more embodiments of the present disclosure. The enlarged scene may include a real world scene / environment as captured by a camera, for example, a portion of an area 1002, with a table 1004, and a real object 1006 (for example, a piece of machinery) on the table. The enlarged scene may include one or more virtual objects as added by the AR system described herein, for example, a virtual object 1010 that is related to (for example, a CAD model based off) real object 1006. FIG. 25 10A shows only part (for example, a clipping) of virtual object 1010. This clipping view can assist in showing how virtual object 1010 can align with actual object 1006. It should be understood, however, that in some embodiments, The full virtual object can be shown in the enlarged scene. If the camera moves, the real world scene and virtual objects can move in a similar manner. If the real object moves, any virtual objects that are related to the real object can move in a similar manner. The enlarged scene example of FIG. 10A is an example for showing how virtual objects modeled outside the real object can be aligned with the real object, for example to calibrate the AR system. In some examples, after calibration is complete, the virtual object modeled outside the real object may not appear in the augmented scene. Instead, various other virtual objects may appear, for example, tools, hardware (eg screws), wiring, instructions, and the like that are related to the actual object. For example, these virtual objects can provide valuable instructional information to a technician regarding a piece of machinery, for example, instructions on how to install an item or perform a task (for example, such as drilling a well).

A FIG. 10B descreve uma ilustração de um exemplo de cena aumentada que pode ser produzida de acordo com uma ou mais modalidades da presente descrição. A cena aumentada pode incluir uma cena/ambiente do mundo real conforme capturado por uma câmera, por exemplo, uma parte de uma área 1052, com um objeto real 1056 (por exemplo, um painel). A cena aumentada pode incluir um ou mais objetos virtuais conforme adicionados pelo sistema de AR descrito aqui, por exemplo, um objeto virtual 1060, que pode ser uma caixa ou unidade, e vários fios associados, conduítes e/ou redes de fios. Se a câmera se move, a cena do mundo real e os objetos virtuais podem se mover em uma maneira similar. Se o objeto real 1056 se move (por exemplo, o painel), quaisquer objetos virtuais (por exemplo, objeto virtual 1060) que são relacionados ao objeto real podem se mover em uma maneira similar. Por exemplo, o exemplo de cena aumentada da FIG. 10B pode instruir um técnico de como instalar um objeto virtual 1060 sobre um painel 1056.FIG. 10B depicts an illustration of an example enlarged scene that can be produced according to one or more embodiments of the present disclosure. The enlarged scene may include a real world scene / environment as captured by a camera, for example, a part of an area 1052, with a real object 1056 (for example, a panel). The enlarged scene may include one or more virtual objects as added by the AR system described herein, for example, a virtual object 1060, which may be a box or unit, and various associated wires, conduits and / or wire networks. If the camera moves, the real world scene and virtual objects can move in a similar way. If the real object 1056 moves (for example, the panel), any virtual objects (for example, virtual object 1060) that are related to the real object can move in a similar manner. For example, the enlarged scene example of FIG. 10B can instruct a technician how to install a 1060 virtual object on a 1056 panel.

Certas modalidades da presente descrição podem ser encontradas em um ou mais métodos para estrutura automatizada de calibração de referência para realidade aumentada. Com respeito a vários métodos descri30 tos aqui e retratados em figuras associadas, deve ser entendido que, em algumas modalidades, uma ou mais das etapas descritas e/ou retratadas podem ser executadas em uma ordem diferente. Adicionalmente, em algumas modalidades, um método pode incluir mais ou menos etapas do que são descritas e/ou retratadas.Certain embodiments of the present disclosure may be found in one or more methods for automated augmented reality reference calibration framework. With respect to various methods described herein and depicted in associated figures, it should be understood that in some embodiments, one or more of the described and / or depicted steps may be performed in a different order. Additionally, in some embodiments, a method may include more or less steps than described and / or depicted.

A FIG. 11 descreve um fluxograma 1100 que mostra exemplo de etapas em um método para estrutura automatizada de calibração de refe5 rência para realidade aumentada, de acordo com uma ou mais modalidades da presente descrição. Mais especificamente, a FIG. 11 mostra exemplo de etapas em um método para estrutura automatizada de calibração de referência que podem ser usadas para determinar e/ou calcular um mapeamento ou transformação entre a estrutura de referência de objetos virtuais (por e10 xemplo, objetos virtuais adicionados a uma cena aumentada) e a estrutura de referência associada com um sistema de rastreamento. Na etapa 1102, um sistema coordenado para o sistema de rastreamento é estabelecido, por exemplo, durante um processo de ajuste para o sistema de rastreamento. Na etapa 1104, o sistema de rastreamento pode rastrear ou determinar uma 15 estrutura de referência para um objeto real (RO). O sistema de rastreamento pode também determinar a Transformação M1 na etapa 1104. Para que o sistema de rastreamento rastreie um objeto real, o objeto real pode necessitar ser equipado com um número de marcadores de rastreamento.FIG. 11 depicts a flowchart 1100 showing example steps in a method for automated augmented reality reference calibration structure in accordance with one or more embodiments of the present disclosure. More specifically, FIG. 11 shows example steps in a method for automated reference calibration structure that can be used to determine and / or calculate a mapping or transformation between the reference frame of virtual objects (for example, virtual objects added to an enlarged scene). and the reference structure associated with a tracking system. At step 1102, a coordinate system for the tracking system is established, for example, during an adjustment process for the tracking system. At step 1104, the tracking system can track or determine a frame of reference for an actual object (RO). The tracking system may also determine Transformation M1 at step 1104. In order for the tracking system to track an actual object, the actual object may need to be equipped with a number of tracking markers.

Na etapa 1106, um software de modelagem virtual pode determinar uma nova estrutura de referência para o objeto real, por exemplo, por indicação de um número de pontos de referência (por exemplo, usando uma vara) e computação de uma origem. Na etapa 1108, um software de modelagem virtual pode computar a Transformação M2 (por exemplo, a diferença em pose entre a nova estrutura de referência de RO e a estrutura de referência do objeto real como determinado pelo sistema de rastreamento). Na etapa 1110, um software de modelagem virtual pode acessar ou carregar um objeto virtual (por exemplo, um objeto virtual modelado fora do objeto real) e pode determinar a estrutura de referência do VO. Na etapa 1112, um software de modelagem virtual pode determinar uma nova estrutura de referência do VO, por exemplo, por indicação no modelo virtual dos mesmos pontos de referência que foram indicados no objeto real para criar uma nova estrutura de referência de RO. A origem dos pontos pode ser computada. Na etapa 1114, o software de modelagem virtual pode computar a Transformação M3 (por exemplo, a diferença em pose entre a nova estrutura de referência do VO e a estrutura de referência do VO original). Na etapa 1116, o software de modelagem virtual pode computar a Transformação M4 (por exemplo, por multiplicação junto às matrizes M1, M2 e M3).At step 1106, virtual modeling software can determine a new reference structure for the real object, for example by indicating a number of reference points (for example, using a stick) and computing a source. At step 1108, a virtual modeling software can compute the M2 Transformation (for example, the difference in pose between the new RO reference structure and the real object reference structure as determined by the tracking system). At step 1110, virtual modeling software can access or load a virtual object (for example, a virtual object modeled outside the real object) and can determine the VO reference structure. At step 1112, a virtual modeling software can determine a new VO reference structure, for example by indicating in the virtual model the same reference points that were indicated in the real object to create a new RO reference structure. The origin of the points can be computed. At step 1114, the virtual modeling software can compute the M3 Transformation (for example, the difference in pose between the new VO reference structure and the original VO reference structure). At step 1116, the virtual modeling software can compute Transformation M4 (for example, by multiplying with matrices M1, M2, and M3).

A FIG. 12 descreve um fluxograma 1200 que mostra exemplo de etapas em um método para estrutura automatizada de calibração de referência para realidade aumentada, de acordo com uma ou mais modalidades da presente descrição. Mais especificamente, a FIG. 12 mostra exemplo de 10 etapas em um método para estrutura automatizada de calibração de referência que pode ser usado para determinar e/ou calcular um mapeamento ou transformação entre a estrutura de referência de uma câmera conforme rastreada pelo sistema de rastreamento e a estrutura de referência da lente da câmera. Na etapa 1202, um sistema coordenado para o sistema de ras15 treamento é estabelecido, por exemplo, durante um processo de ajuste para o sistema de rastreamento. Na etapa 1204, o sistema de rastreamento pode rastrear ou determinar uma estrutura de referência para uma câmera. O sistema de rastreamento pode também determinar a Transformação C1 na etapa 1204. Para o sistema de rastreamento rastrear uma câmera, a câmera 20 (ou estrutura da câmera, ou computador pessoal) pode necessitar ser equipada com um número de marcadores de rastreamento. Na etapa 1206, uma estrutura coordenada associada com um marcador impresso pode ser estabelecida, por exemplo, usando um marcador impresso e software relacionado. A estrutura coordenada associada com o marcador impresso pode ser 25 alinhada com a estrutura coordenada do sistema de rastreamento. Na etapa 1208, um software de modelagem virtual (por exemplo, via o software associado com o marcador impresso) pode determinar a estrutura de referência da lente da câmera, por exemplo, com relação à estrutura coordenada do marcador impresso. Na etapa 1210, o software de modelagem virtual pode 30 computar a Transformação C2 (por exemplo, a diferença em pose entre a estrutura de referência de lente da câmera e a estrutura coordenada de marcador impresso). Essa computação pode ser (pelo menos parcialmente) executada pelo software associado com o marcador impresso. Na etapa 1212, o software de modelagem virtual pode computar a Transformação C3 (por exemplo, dividindo a matriz da Transformação C1 pela matriz da transformação C2).FIG. 12 depicts a flowchart 1200 showing example steps in a method for automated augmented reality reference calibration structure according to one or more embodiments of the present disclosure. More specifically, FIG. 12 shows an example of 10 steps in a method for automated reference calibration structure that can be used to determine and / or calculate a mapping or transformation between a camera reference structure as tracked by the tracking system and the camera reference structure. Camera lens. At step 1202, a coordinate system for the tracking system is established, for example, during an adjustment process for the tracking system. At step 1204, the tracking system can track or determine a frame of reference for a camera. The tracking system may also determine Transformation C1 at step 1204. For the tracking system to track a camera, camera 20 (or camera frame, or personal computer) may need to be equipped with a number of tracking markers. At step 1206, a coordinate structure associated with a printed marker can be established, for example, using a printed marker and related software. The coordinate structure associated with the printed marker may be aligned with the coordinate structure of the tracking system. At step 1208, virtual modeling software (e.g. via the software associated with the printed marker) can determine the camera lens reference structure, for example with respect to the coordinate structure of the printed marker. At step 1210, the virtual modeling software can compute Transformation C2 (for example, the difference in pose between the camera lens reference frame and the printed marker coordinate frame). Such computation may be (at least partially) performed by the software associated with the printed marker. At step 1212, the virtual modeling software can compute Transformation C3 (for example, dividing the Transformation C1 matrix by the C2 transformation matrix).

Quaisquer dos sistemas e métodos descritos aqui também conAny of the systems and methods described herein also contain

templam variações que incluem um método para realidade aumentada 100 executado por um sistema de processamento de dados 100 tendo pelo menos um processador. O método alternativo pode incluir ou estabelecer uma estrutura coordenada do sistema de rastreamento 204 associada com um 10 sistema de rastreamento de objeto 108. A estrutura coordenada do sistema de rastreamento 204 é alinhada com um espaço real em 3D, e rastreia uma posição e orientação em um espaço real em 3D de um objeto real 104 e de uma câmera 102. Nesse arranjo, o sistema de processamento de dados 100 também recebe do sistema de rastreamento 108 uma primeira estrutura de 15 referência de objeto real 212 para o objeto real 104. A primeira estrutura de referência de objeto real 212 indica uma posição e orientação do objeto real 104 com relação à estrutura coordenada do sistema de rastreamento 204.There are variations which include an augmented reality method 100 performed by a data processing system 100 having at least one processor. The alternative method may include or establish a coordinate structure of the tracking system 204 associated with an object tracking system 108. The coordinate structure of the tracking system 204 is aligned with a real 3D space, and tracks a position and orientation in a real 3D space of a real object 104 and a camera 102. In this arrangement, the data processing system 100 also receives from the tracking system 108 a first real object reference frame 212 for the real object 104. first real object reference frame 212 indicates a position and orientation of the real object 104 with respect to the coordinate structure of tracking system 204.

A seguir, o sistema de processamento de dados 100 determina uma segunda estrutura de referência de objeto real 212 para o objeto real 20 104, em que a segunda estrutura de referência de objeto real 212 indica uma posição e orientação do objeto real 104 com relação à estrutura coordenada do sistema de rastreamento 204. O sistema de processamento de dados 100 então recebe uma primeira estrutura de referência de objeto virtual 216 para um objeto virtual 112, em que o objeto virtual 112 é modelado depois do ob25 jeto real 104, e em que a primeira estrutura de referência de objeto virtual 216 não é relacionada à estrutura coordenada do sistema de rastreamento 204.Next, the data processing system 100 determines a second real object reference frame 212 for real object 20 104, wherein the second real object reference structure 212 indicates a position and orientation of the real object 104 with respect to the coordinate structure of tracking system 204. Data processing system 100 then receives a first virtual object reference structure 216 for a virtual object 112, wherein virtual object 112 is modeled after actual object 104, and wherein first virtual object reference frame 216 is not related to the coordinate structure of tracking system 204.

O sistema de processamento de dados 100 também determina uma segunda estrutura de referência de objeto virtual 216 para o objeto virtual 112, em que a segunda estrutura de referência de objeto virtual 216 indica uma posição e orientação do objeto virtual 112 com relação à estrutura coordenada do sistema de rastreamento 204. Um mapeamento de objeto virtual 112 é também determinado entre a primeira estrutura de referência de objeto virtual 216 e a estrutura coordenada do sistema de rastreamento 204.The data processing system 100 also determines a second virtual object reference frame 216 for virtual object 112, wherein the second virtual object reference frame 216 indicates a position and orientation of virtual object 112 with respect to the coordinate structure of the virtual object 112. tracking system 204. A virtual object mapping 112 is also determined between the first virtual object reference frame 216 and the coordinate structure of tracking system 204.

Uma cena aumentada 114 é mostrada pelo sistema de processamento de dados 100 e inclui uma visão do espaço real em 3D, uma visão 5 do objeto real 104 e um ou mais itens virtuais sobrepostos. Aqui, o mapeamento do objeto virtual 112 é usado para colocar um ou mais itens virtuais sobrepostos na cena aumentada 114 de modo que um ou mais itens virtuais sejam alinhados com o objeto real 104.An enlarged scene 114 is shown by the data processing system 100 and includes a 3D real space view, a real object view 5, and one or more overlapping virtual items. Here, virtual object mapping 112 is used to place one or more overlapping virtual items in the augmented scene 114 so that one or more virtual items are aligned with the actual object 104.

Em adicionais arranjos opcionais, o sistema de processamento de dados 100 é configurado para também determinar a segunda estrutura de referência de objeto real 212, que pode receber ou detectar três ou mais pontos não colineares de objeto real no objeto real 104. A localização de três ou mais pontos não colineares de objeto real é definida com relação à estrutura coordenada do sistema de rastreamento 204. Uma origem do objeto real 104 é determinada pelo cálculo de um centroide de três ou mais pontos não colineares de objeto real. Uma orientação de objeto real é então determinada que é relacionada à orientação da primeira estrutura de referência de objeto real 212. Pode ser preferido que a segunda estrutura de referência de objeto virtual 216 seja determinada para receber ou indicar três ou mais pontos não colineares de objeto virtual no objeto virtual 112, em que a localização de três ou mais pontos não colineares de objeto virtual são definidos com relação à estrutura coordenada do sistema de rastreamento 204. Depois disso, uma origem de objeto virtual pode ser determinada por cálculo de um centroide dos três ou mais pontos não colineares de objeto virtual, que podem adicionalmente possibilitar a determinação de uma orientação de objeto virtual.In additional optional arrangements, data processing system 100 is configured to also determine second real object reference structure 212, which can receive or detect three or more non-collinear real object points on real object 104. The location of three or more non-collinear real object points is defined with respect to the coordinate structure of tracking system 204. A real object origin 104 is determined by calculating a centroid of three or more non-collinear real object points. A real object orientation is then determined that is related to the orientation of the first real object reference structure 212. It may be preferred that the second virtual object reference structure 216 is determined to receive or indicate three or more non-collinear object points. where the location of three or more non-collinear virtual object points is defined with respect to the coordinate structure of tracking system 204. Thereafter, a virtual object origin can be determined by calculating a centroid of the three or more non-collinear virtual object points, which may additionally make it possible to determine a virtual object orientation.

Em adicionais modificações para qualquer um dos arranjos descritos, a segunda estrutura de referência de objeto real 212 e a segunda estrutura de referência de objeto virtual 216 são alinhadas em que três ou mais 30 pontos não colineares de objeto virtual e os três ou mais pontos não colineares de objeto real são localizados aproximadamente na mesma localização com relação à estrutura coordenada do sistema de rastreamento 204. Adicionalmente, a orientação do objeto real 104 e a orientação do objeto virtual 112 são aproximadamente as mesmas uma vez que cada orientação referese à estrutura coordenada do sistema de rastreamento 204.In further modifications to any of the described arrangements, the second real object reference frame 212 and the second virtual object reference frame 216 are aligned wherein three or more 30 non-collinear virtual object points and the three or more points are not aligned. The collinear real object directions are located at approximately the same location with respect to the coordinate structure of the tracking system 204. In addition, the real object orientation 104 and the virtual object orientation 112 are approximately the same since each orientation refers to the coordinate structure of the tracking system 204. tracking system 204.

Ainda em outras configurações, a determinação do mapeamento do objeto virtual 112 pode incluir receber ou determinar uma primeira matriz de transformação que representa a primeira estrutura de referência de objeto real 212. A segunda matriz de transformação pode também ser determinada, a qual representa a diferença em localização e orientação entre a primeira estrutura de referência de objeto real 212 e a segunda estrutura de referência de objeto real 212. Adicionalmente, uma terceira matriz de transformação pode ser determinada que representa a diferença em localização e orientação entre a primeira estrutura de referência de objeto virtual 216 e a segunda estrutura de referência de objeto virtual 216. Uma quarta matriz de transformação pode também ser computada, a qual representa o mapeamento do objeto virtual 112. Aqui, a quarta matriz de transformação representa a diferença em localização e orientação entre a primeira estrutura de referência de objeto virtual 216 e a estrutura coordenada do sistema de rastreamento 204. A quarta matriz de transformação é também computada pela execução de multiplicação de matriz entre a primeira, segunda e terceira matrizes de transformação.In still other embodiments, determining virtual object mapping 112 may include receiving or determining a first transformation matrix representing the first real object reference structure 212. The second transformation matrix may also be determined which represents the difference in location and orientation between the first real object reference frame 212 and the second real object reference frame 212. In addition, a third transformation matrix can be determined that represents the difference in location and orientation between the first real object reference frame 212. virtual object 216 and the second virtual object reference structure 216. A fourth transformation matrix can also be computed, which represents the mapping of virtual object 112. Here, the fourth transformation matrix represents the difference in location and orientation between the first reference structure of the virtual object 216 and the coordinate structure of the tracking system 204. The fourth transformation matrix is also computed by performing matrix multiplication between the first, second and third transformation matrices.

Em um outro arranjo, usar o mapeamento do objeto virtual 112 para colocar o um ou mais itens virtuais sobrepostos na cena aumentada 114 pode incluir receber uma primeira estrutura de referência de objeto virtual 216 para um primeiro item virtual sobreposto. Nessa variação, a primeira 25 estrutura de referência de objeto virtual 216 não é relacionada à estrutura coordenada do sistema de rastreamento 204. O mapeamento do objeto virtual 112 pode ser referido para transformar a primeira estrutura de referência de objeto virtual 216 para uma estrutura de referência transformada que se relaciona à estrutura coordenada do sistema de rastreamento 204. O primei30 ro item virtual sobreposto pode ser colocado na cena aumentada 114 usando a estrutura de referência de transformação.In another arrangement, using virtual object mapping 112 to place one or more overlapping virtual items in augmented scene 114 may include receiving a first virtual object reference frame 216 for a first overlapping virtual item. In this variation, the first virtual object reference frame 216 is not related to the coordinate structure of tracking system 204. Virtual object mapping 112 may be referred to transforming the first virtual object reference frame 216 to a reference structure that relates to the coordinate structure of tracking system 204. The first overlapping virtual item can be placed in the enlarged scene 114 using the transformation reference structure.

O sistema de processamento de dados 100 pode ser ainda configurado para receber do sistema de rastreamento 108 informação em tempo real sobre a localização e orientação do objeto real 104. Nessa modificação, o mapeamento do objeto virtual 112 é atualizado com base na informação em tempo real e a cena aumentada 114 é atualizada através de atualização 5 da substituição do um ou mais itens virtuais sobrepostos de modo que o um ou mais itens virtuais permaneçam alinhados com o objeto real 104.The data processing system 100 may further be configured to receive from the tracking system 108 real-time information about the location and orientation of the real object 104. In this modification, the virtual object mapping 112 is updated based on the real-time information. and augmented scene 114 is updated by updating 5 by replacing one or more overlapping virtual items so that one or more virtual items remain aligned with the actual object 104.

Os métodos, rotinas e técnicas da presente descrição, incluindo exemplo de métodos e rotinas ilustrados nos fluxogramas e diagramas em bloco das diferentes modalidades descritas podem ser implementados como software executado por um ou mais sistemas de processamento de dados que são programados de modo que os sistemas de processamento de dados sejam adaptados para efetuar e/ou executar parte ou total dos métodos, rotinas e/ou técnicas descritas aqui. Cada bloco ou símbolo em um diagrama em bloco ou diagrama em fluxograma referenciado aqui pode representar um módulo, segmento ou porção de código de programa usável ou legível por computador que compreende uma ou mais instruções executáveis para implementar, através de um ou mais sistemas de processamento de dados, a função ou funções especificadas. Em algumas implementações alternativas da presente descrição, a função ou funções ilustradas nos blocos ou símbolos de um diagrama em bloco ou fluxograma podem ocorrer fora de ordem percebido nas figuras. Por exemplo, em alguns casos, dois blocos ou símbolos mostrados em sucessão podem ser executados de maneira substancial e concorrente ou os blocos podem ser executados na ordem inversa dependendo da funcionalidade envolvida. Parte ou todo o código do computador pode ser carregado na memória de um sistema de processamento de dados antes do sistema de processamento de dados executar o código.The methods, routines and techniques of the present disclosure, including exemplary methods and routines illustrated in the flowcharts and block diagrams of the different embodiments described may be implemented as software executed by one or more data processing systems which are programmed such that data processing systems are adapted to perform and / or perform part or all of the methods, routines and / or techniques described herein. Each block or symbol in a block diagram or flowchart diagram referenced herein may represent a usable or computer readable program code module, segment, or portion comprising one or more executable instructions for implementing through one or more processing systems. specified data, function or functions. In some alternative implementations of the present disclosure, the function or functions illustrated in the blocks or symbols of a block diagram or flowchart may occur outside the order perceived in the figures. For example, in some cases two blocks or symbols shown in succession may be executed substantially concurrently or the blocks may be executed in reverse order depending on the functionality involved. Part or all of the computer code may be loaded into the memory of a data processing system before the data processing system executes the code.

A FIG. 13 descreve um diagrama em bloco de um exemplo de sistema de processamento de dados 1300 que pode ser usado para implementar uma ou mais modalidades da presente descrição. Por exemplo, com 30 referência também à FIG. 1 momentaneamente, o computador 106 pode tomar a forma de um sistema de processamento de dados similar ao sistema de processamento de dados 1300 da FIG. 13. Como um outro exemplo, o software do sistema de rastreamento relacionado ao sistema de rastreamento 108 pode ser executado em um sistema de processamento de dados similar ao sistema de processamento de dados 1300 da FIG. 13. Com referência à FIG. 13, o sistema de processamento de dados 1300 pode ser usado para 5 executar, tanto parcialmente quanto totalmente, um ou mais de métodos, rotinas e/ou soluções da presente descrição. Em algumas modalidades da presente descrição, mais do que um sistema de processamento de dados pode ser usado para implementar os métodos, rotinas, técnicas e/ou soluções descritos aqui.FIG. 13 depicts a block diagram of an example data processing system 1300 that may be used to implement one or more embodiments of the present disclosure. For example, with reference also to FIG. 1 momentarily, computer 106 may take the form of a data processing system similar to data processing system 1300 of FIG. 13. As a further example, tracking system software related to tracking system 108 may be run on a data processing system similar to data processing system 1300 of FIG. 13. With reference to FIG. 13, data processing system 1300 may be used to partially or fully execute one or more of the methods, routines and / or solutions of the present disclosure. In some embodiments of the present disclosure, more than one data processing system may be used to implement the methods, routines, techniques and / or solutions described herein.

No exemplo da FIG. 13, o sistema de processamento de dadosIn the example of FIG. 13, the data processing system

1300 pode incluir uma trama de comunicações 1302 que fornece comunicações entre componentes, por exemplo, uma unidade de processador 1304, uma memória 1306, uma armazenagem persistente 1308, uma unidade de comunicações 1310, uma unidade de entrada/saída (l/O) 1312 e um mostra15 dor 1314. Um sistema de barramento pode ser usado para implementar uma trama de comunicações 1302 e pode ser compreendido de um ou mais barramentos tal como um barramento do sistema ou um barramento de entrada/saída. O sistema de barramento pode ser implementado usando qualquer tipo de arquitetura adequado que proporcione uma transferência de dados 20 entre diferentes componentes ou dispositivos anexados ao sistema de barramento.1300 may include a communication frame 1302 that provides communications between components, for example, a processor unit 1304, a memory 1306, a persistent storage 1308, a communication unit 1310, an input / output (I / O) unit 1312 and a display 1314. A bus system may be used to implement a communications frame 1302 and may be comprised of one or more buses such as a system bus or an input / output bus. The bus system may be implemented using any suitable architecture that provides data transfer between different components or devices attached to the bus system.

A unidade de processador 1304 pode servir para executar instruções (por exemplo, um programa de software) que podem ser carregadas no sistema de processamento de dados 1300, por exemplo, na memória 25 1306. A unidade de processador 1304 pode ser um conjunto de um ou mais processadores ou pode ser um núcleo de multiprocessador dependendo da implementação particular. A unidade de processador 1304 pode ser implementada usando um ou mais sistemas de processador heterogêneo em que um processador principal está presente com processadores secundários em 30 um chip único. Como um outro exemplo ilustrativo, a unidade de processador 1304 pode ser um sistema multiprocessador simétrico contendo múltiplos processadores do mesmo tipo. A memória 1306 pode ser, por exemplo, uma memória de acesso aleatório ou qualquer outro dispositivo de armazenagem volátil ou não volátil adequada. A memória 1306 pode incluir uma ou mais camadas de memória cache. A armazenagem persistente 1308 pode tomar várias formas 5 dependendo de implementação particular. Por exemplo, a armazenagem persistente 1308 pode conter um ou mais componentes ou dispositivos. Por exemplo, a armazenagem persistente 1308 pode ser um disco rígido, uma unidade de estado sólido, uma memória flash ou alguma combinação do aci ma.Processor unit 1304 may be used to execute instructions (for example, a software program) that may be loaded into data processing system 1300, for example in memory 1306. Processor unit 1304 may be a set of or more processors or may be a multiprocessor core depending on the particular implementation. Processor unit 1304 may be implemented using one or more heterogeneous processor systems wherein a main processor is present with secondary processors on a single chip. As another illustrative example, processor unit 1304 may be a symmetric multiprocessor system containing multiple processors of the same type. Memory 1306 may be, for example, a random access memory or any other suitable volatile or nonvolatile storage device. Memory 1306 may include one or more layers of cache memory. Persistent storage 1308 may take various forms 5 depending upon particular implementation. For example, persistent storage 1308 may contain one or more components or devices. For example, persistent storage 1308 may be a hard disk, solid state drive, flash memory, or some combination of the above.

Instruções para um sistema de operação podem estar localizaInstructions for an operating system may be localized.

das em armazenagem persistente 1308. Em uma modalidade específica, o sistema de operação pode ser alguma versão de um número de sistemas de operação conhecido. Instruções para aplicações e/ou programas podem também estar localizadas na armazenagem persistente 1308. Essas instru15 ções podem ser carregadas em memória 1306 para execução pela unidade de processador 1304. Por exemplo, os métodos e/ou processos das diferentes modalidades descritas nessa descrição podem ser executados pela unidade de processador 1304 usando instruções implementadas por computador que podem ser carregadas em uma memória tal como a memória 1306. 20 Essas instruções são referidas como código de programa, código de programa usável por computador ou código de programa legível por computador que podem ser lidas e executadas por um processador na unidade de processador 1304.in persistent storage 1308. In a specific embodiment, the operating system may be some version of a number of known operating systems. Instructions for applications and / or programs may also be located in persistent storage 1308. These instructions may be loaded into 1306 memory for execution by processor unit 1304. For example, methods and / or processes of the different embodiments described in this description may be executed by processor unit 1304 using computer-implemented instructions that can be loaded into memory such as memory 1306. 20 These instructions are referred to as program code, computer usable program code, or computer readable program code. read and executed by a processor in processor unit 1304.

O mostrador 1314 pode fornecer um mecanismo para mostrar in25 formação a um usuário, por exemplo, via uma tela ou monitor LCD ou LED ou outro tipo de mostrador. Deve ser entendido, através de toda essa descrição, que o termo "mostrador" pode ser usado em uma maneira flexível para se referir tanto a um mostrador físico tal como uma tela física, quanto à imagem que um usuário vê na tela de um dispositivo físico. A unidade de entra30 da/saída (l/O) 1312 proporciona entrada e saída de dados com outros dispositivos que podem estar conectados ao sistema de processamento de dados 1300. Os dispositivos de entrada/saída podem ser acoplados ao sistema tanto diretamente quanto através de controladores l/O de intervenção.Display 1314 may provide a mechanism for displaying information to a user, for example via an LCD or LED screen or monitor or other type of display. It should be understood throughout this description that the term "display" may be used in a flexible manner to refer to both a physical display such as a physical screen and the image a user sees on a physical device screen. . The input / output (I / O) unit 1312 provides data input and output with other devices that may be connected to the 1300 data processing system. Input / output devices may be coupled to the system either directly or via intervention I / O controllers.

A unidade de comunicações 1310 pode proporcionar comunicações com outros sistemas ou dispositivos de processamento de dados, por exemplo, via uma ou mais redes. A unidade de comunicações 1310 pode ser 5 um cartão de interface de rede. A unidade de comunicações 1310 pode fornecer comunicações através do uso de links de comunicações com fio e/ou sem fio. Em algumas modalidades, a unidade de comunicações pode incluir circuitos que são projetados e/ou adaptados para se comunicar de acordo com vários padrões de comunicação sem fio, por exemplo, padrões Wi-Fi, 10 padrões Bluetooth e o similar.Communications unit 1310 may provide communications with other data processing systems or devices, for example, via one or more networks. Communications unit 1310 may be a network interface card. The 1310 communications unit can provide communications through the use of wired and / or wireless communications links. In some embodiments, the communications unit may include circuits that are designed and / or adapted to communicate according to various wireless communication standards, for example, Wi-Fi standards, 10 Bluetooth standards, and the like.

Os diferentes componentes ilustrados para sistema de processamento de dados 1300 não significam fornecer limitações arquiteturais para a maneira em que diferentes modalidades podem ser implementadas. As diferentes modalidades ilustrativas podem ser implementadas em um siste15 ma de processamento de dados incluindo componentes além de ou no lugar daqueles ilustrados para o sistema de processamento de dados 1300. Outros componentes mostrados na FIG. 13 podem ser variados dos exemplos ilustrativos mostrados.The different components illustrated for data processing system 1300 are not meant to provide architectural limitations to the manner in which different modalities may be implemented. The different illustrative embodiments may be implemented in a data processing system including components in addition to or in place of those illustrated for the data processing system 1300. Other components shown in FIG. 13 may be varied from the illustrative examples shown.

O sistema de processamento de dados 1300 também pode ser disposto com uma ou mais unidades de memória que armazenam código do computador, e uma ou mais unidades de processador 1304 acopladas a uma ou mais unidades de memória 1306, em que uma ou mais unidades de processador 1304 executam o código do computador armazenado na uma ou mais unidades de memória 1306. O código do computador em execução recebe ou estabelece uma estrutura coordenada do sistema de rastreamento 204 associada com um sistema de rastreamento do objeto 108, 202. A estrutura coordenada do sistema de rastreamento 204 é alinhada com um espaço real em 3D, e o sistema de rastreamento 108 rastreia a posição e orientação em um espaço real em 3D de uma câmera 102 que captura o espaço real em 3D e um marcador impresso 906.The data processing system 1300 may also be arranged with one or more memory units that store computer code, and one or more processor units 1304 coupled to one or more memory units 1306, wherein one or more processor units 1304 execute computer code stored in one or more memory units 1306. Running computer code receives or establishes a coordinate structure of the tracking system 204 associated with an object tracking system 108, 202. The coordinate structure of the system Tracking 204 is aligned with real 3D space, and tracking system 108 tracks the position and orientation in real 3D space of a camera 102 that captures real 3D space and a printed marker 906.

O sistema de rastreamento 108 recebe uma estrutura de referência da câmera para a câmera 102, e a estrutura de referência da câmera indica uma posição e orientação da câmera 102 com relação à estrutura coordenada do sistema de rastreamento 204. Também recebida ou estabelecida é uma estrutura coordenada do marcador impresso 204 associada com o marcador impresso, em que a estrutura coordenada do marcador impresso 5 204 é alinhada com o espaço real em 3D. A estrutura coordenada do marcador impresso 204 é alinhada com a estrutura coordenada do sistema de rastreamento 204, e uma estrutura de referência de lente da câmera é determinada para a lente da câmera 102. A estrutura de referência de lente da câmera indica uma posição e orientação da lente da câmera 102 com relação à 10 estrutura coordenada do marcador impresso 204.Tracking system 108 receives a camera reference frame for camera 102, and the camera reference frame indicates a position and orientation of camera 102 with respect to the coordinate frame of tracking system 204. Also received or established is a frame. printed marker coordinate 204 associated with the printed marker, wherein the coordinate structure of the printed marker 5 204 is aligned with actual 3D space. The coordinate structure of the printed marker 204 is aligned with the coordinate structure of the tracking system 204, and a camera lens reference frame is determined for camera lens 102. The camera lens reference frame indicates a position and orientation. of the camera lens 102 with respect to the coordinate structure of the printed marker 204.

Um mapeamento da lente da câmera 102 é determinado entre a estrutura de referência da câmera 102 e a estrutura de referência da lente da câmera 102, e uma cena aumentada 114 é mostrada incluindo uma visão do espaço real em 3D e um ou mais itens virtuais, em que o mapeamento da 15 lente da câmera 102 é usado para alterar ou distorcer o um ou mais itens virtuais na cena aumentada 114.A camera lens mapping 102 is determined between the camera reference frame 102 and the camera lens reference frame 102, and an enlarged scene 114 is shown including a 3D real space view and one or more virtual items, wherein camera lens mapping 102 is used to alter or distort one or more virtual items in the enlarged scene 114.

Adicionalmente, a invenção pode compreender modalidades de acordo com as seguintes cláusulas:Additionally, the invention may comprise embodiments according to the following clauses:

Cláusula 1. Um método para realidade aumentada por um sistema de processamento de dados tendo pelo menos um processador, o método compreendendo: receber ou estabelecer uma estrutura coordenada do sistema de rastreamento associada com um sistema de rastreamento de objeto, em que a estrutura coordenada do sistema de rastreamento é alinhada com um espaço real em 3D, e em que o sistema de rastreamento rastreia a posição e orientação em um espaço real em 3D de um objeto real e de uma câmera; receber do sistema de rastreamento primeira estrutura de referência de objeto real para o objeto real, em que a primeira estrutura de referência de objeto real indica uma posição e orientação do objeto real com relação à estrutura coordenada do sistema de rastreamento; determinar uma segunda estrutura de referência de objeto real para o objeto real, em que a segunda estrutura de referência do objeto real indica uma posição e orientação do objeto real com relação à estrutura coordenada do sistema de rastreamento; receber uma primeira estrutura de referência de objeto virtual para um objeto virtual, em que o objeto virtual é modelado depois do objeto real, e em que a primeira estrutura de referência de objeto virtual não é relacionada à estrutura coordenada do sistema de rastreamento; determinar uma segun5 da estrutura de referência de objeto virtual para o objeto virtual, em que a segunda estrutura de referência de objeto virtual indica uma posição e orientação do objeto virtual com relação à estrutura coordenada do sistema de rastreamento; determinar um mapeamento do objeto virtual entre a primeira estrutura de referência de objeto virtual e a estrutura coordenada do sistema 10 de rastreamento; e mostrar uma cena aumentada incluindo uma visão do espaço real em 3D, uma visão do objeto real e um ou mais itens virtuais sobrepostos, em que o mapeamento do objeto virtual é usado para colocar o um ou mais itens virtuais sobrepostos na cena aumentada de modo que um ou mais itens virtuais estejam alinhados com o objeto real.Clause 1. A method for augmented reality by a data processing system having at least one processor, the method comprising: receiving or establishing a coordinate structure of the tracking system associated with an object tracking system, wherein the coordinate structure of the tracking system is aligned with a real 3D space, and the tracking system tracks the position and orientation in a real 3D space of a real object and a camera; receiving from the tracking system the first real object reference structure to the real object, wherein the first real object reference structure indicates a position and orientation of the real object with respect to the coordinate structure of the tracking system; determining a second real object reference structure for the real object, wherein the second real object reference structure indicates a position and orientation of the real object with respect to the coordinate structure of the tracking system; receiving a first virtual object reference structure for a virtual object, wherein the virtual object is modeled after the actual object, and wherein the first virtual object reference structure is not related to the coordinate structure of the tracking system; determining a second from the virtual object reference structure to the virtual object, wherein the second virtual object reference structure indicates a position and orientation of the virtual object with respect to the coordinate structure of the tracking system; determining a virtual object mapping between the first virtual object reference structure and the coordinate structure of the tracking system 10; and show an enlarged scene including a 3D real space view, a real object view, and one or more overlapping virtual items, where virtual object mapping is used to place one or more overlapping virtual items in the enlarged scene so one or more virtual items are aligned with the actual object.

Cláusula 2. O método da cláusula 1, em que determinar a seClause 2. The method of clause 1, in which it determines whether

gunda estrutura de referência de objeto real inclui: receber ou detectar três ou mais pontos não colineares de objeto real no objeto real, em que a localização de três ou mais pontos não colineares de objeto real é definida com relação à estrutura coordenada do sistema de rastreamento; determinar uma 20 origem de objeto real calculando um centroide dos três ou mais pontos não colineares de objeto real; e determinar uma orientação do objeto real que é relacionada á orientação da primeira estrutura de referência de objeto real.A second real object reference structure includes: receiving or detecting three or more non-collinear real object points on the real object, where the location of three or more non-collinear real object points is defined with respect to the tracking system's coordinate structure ; determining a real object origin by calculating a centroid of three or more non-collinear real object points; and determining a real object orientation that is related to the orientation of the first real object reference structure.

Cláusula 3. O método da cláusula 2, em que determinar a segunda estrutura de referência de objeto virtual inclui: receber ou indicar três 25 ou mais pontos não colineares de objeto virtual no objeto virtual, em que a localização de três ou mais pontos não colineares de objeto virtual é definida à estrutura coordenada do sistema de rastreamento; determinar uma origem do objeto virtual calculando um centroide de três ou mais pontos não colineares de objeto virtual e determinar uma orientação do objeto virtual.Clause 3. The method of clause 2, wherein determining the second virtual object reference structure includes: receiving or indicating three 25 or more non-collinear virtual object points in the virtual object, where the location of three or more non-collinear points virtual object definition is defined to the coordinate structure of the tracking system; determine a virtual object origin by calculating a centroid of three or more non-collinear virtual object points, and determine a virtual object orientation.

Cláusula 4. O método da cláusula 3, em que a segunda estruturaClause 4. The method of clause 3, wherein the second structure

de referência de objeto real e a segunda estrutura de referência de objeto virtual são alinhadas assegurando que: os três ou mais pontos não colineares de objeto virtual e os três ou mais pontos não colineares de objeto real estão localizados aproximadamente na mesma localização com relação à estrutura coordenada do sistema de rastreamento; e a orientação do objeto real e a orientação do objeto virtual são aproximadamente as mesmas uma 5 vez que cada orientação refere-se à estrutura coordenada do sistema de rastreamento.object reference frame and the second virtual object reference frame are aligned ensuring that: the three or more non-collinear virtual object points and the three or more non-collinear real object points are located at approximately the same location with respect to the structure coordinate tracking system; and the real object orientation and the virtual object orientation are approximately the same since each orientation refers to the coordinate structure of the tracking system.

Cláusula 5. O método da cláusula 1, em que determinar o mapeamento do objeto virtual inclui: receber ou determinar uma primeira matriz de transformação que represente a primeira estrutura de referência de objeto real; determinar uma segunda matriz de transformação que represente a diferença em localização e orientação entre a primeira estrutura de referência de objeto real e a segunda estrutura de referência de objeto real; determinar uma terceira matriz de transformação que represente a diferença em localização e orientação entre a primeira estrutura de referência de objeto virtual e a segunda estrutura de referência de objeto virtual; e computar uma quarta matriz de transformação que representa o mapeamento do objeto virtual, em que a quarta matriz de transformação represente a diferença em localização e orientação entre a primeira estrutura de referência de objeto virtual e a estrutura coordenada do sistema de rastreamento e em que a quarta matriz de transformação é computada executando multiplicação de matriz entre a primeira, a segunda e a terceira matrizes.Clause 5. The method of clause 1, wherein determining virtual object mapping includes: receiving or determining a first transformation matrix representing the first real object reference structure; determining a second transformation matrix representing the difference in location and orientation between the first real object reference frame and the second real object reference frame; determining a third transformation matrix representing the difference in location and orientation between the first virtual object reference structure and the second virtual object reference structure; and computing a fourth transformation matrix representing the virtual object mapping, wherein the fourth transformation matrix represents the difference in location and orientation between the first virtual object reference structure and the coordinate structure of the tracking system and where the The fourth transformation matrix is computed by performing matrix multiplication between the first, second, and third matrices.

Cláusula 6. O método da cláusula 1, em que usar o mapeamento do objeto virtual para colocar o um ou mais itens virtuais sobrepostos na cena aumentada inclui: receber uma primeira estrutura de referência de item 25 virtual para um primeiro item virtual sobreposto, em que a primeira estrutura de referência de item virtual não é relacionada à estrutura coordenada do sistema de rastreamento; referenciar o mapeamento do objeto virtual para transformar a primeira estrutura de referência de item virtual para uma estrutura de referência transformada que se refere à estrutura coordenada do sis30 tema de rastreamento; e colocar o primeiro item virtual sobreposto na cena aumentada usando a estrutura de referência de transformação.Clause 6. The method of clause 1, wherein using virtual object mapping to place the one or more overlapping virtual items in the augmented scene includes: receiving a first virtual item 25 reference structure for a first overlapping virtual item, where The first virtual item reference structure is not related to the coordinate structure of the tracking system; referencing the virtual object mapping to transform the first virtual item reference structure to a transformed reference structure that refers to the coordinate structure of the tracking system; and place the first overlapping virtual item in the enlarged scene using the transform reference frame.

Cláusula 7. O método da cláusula 1, adicionalmente compreendendo: receber do sistema de rastreamento informação em tempo real sobre a localização e orientação do objeto real; atualizar o mapeamento do objeto virtual com base na informação em tempo real; e atualizar a cena aumenta atualizando a colocação do um ou mais itens virtuais sobrepostos de modo que o um ou mais itens virtuais permanecem alinhados com o objeto real.Clause 7. The method of clause 1 further comprising: receiving from the tracking system real-time information about the location and orientation of the actual object; update virtual object mapping based on real-time information; and updating the scene increases by updating the placement of one or more overlapping virtual items so that one or more virtual items remain aligned with the actual object.

Cláusula 8. Um método para a realidade aumentada executada por um sistema de processamento de dados tendo pelo menos um processador, o método compreendendo: receber ou estabelecer uma estrutura coordenada do sistema de rastreamento associada com um sistema de rastre10 amento de objeto, em que a estrutura coordenada do sistema de rastreamento é alinhada com o espaço real em 3D, e em que o sistema de rastreamento rastreia a posição e orientação em um espaço real em 3D de uma câmera que captura o espaço real em 3D e um marcador impresso; receber do sistema de rastreamento uma estrutura de referência da câmera para a 15 câmera, em que a estrutura de referência da câmera indica uma posição e orientação da câmera com relação à estrutura coordenada do sistema de rastreamento; receber ou estabelecer uma estrutura coordenada de marcador impresso associada com o marcador impresso, em que a estrutura coordenada de marcador impresso é alinhada com o espaço real em 3D, e em 20 que a estrutura coordenada de marcador impresso é alinhada com a estrutura coordenada do sistema de rastreamento; determinar uma estrutura de referência de lente da câmera para a lente da câmera, em que a estrutura de referência de lente da câmera indica uma posição e orientação da lente da câmera com relação à estrutura coordenada de marcador impresso; deter25 minar um mapeamento de lente da câmera entre a estrutura de referência da câmera e a estrutura de referência de lente da câmera; e mostrar uma cena aumentada incluindo uma visão do espaço real em 3D e um ou mais itens virtuais, em que o mapeamento de lente da câmera é usado para alterar ou distorcer um ou mais itens virtuais na cena aumentada.Clause 8. An augmented reality method performed by a data processing system having at least one processor, the method comprising: receiving or establishing a coordinate structure of the tracking system associated with an object tracking system, wherein the The coordinate structure of the tracking system is aligned with real 3D space, and the tracking system tracks the position and orientation in real 3D space of a camera that captures real 3D space and a printed marker; receiving from the tracking system a camera reference frame for the camera, wherein the camera reference frame indicates a camera position and orientation with respect to the coordinate structure of the tracking system; receive or establish a printed marker coordinate structure associated with the printed marker, wherein the printed marker coordinate structure is aligned with actual 3D space, and in which the printed marker coordinate structure is aligned with the system coordinate structure tracking; determining a camera lens reference frame to the camera lens, wherein the camera lens reference frame indicates a position and orientation of the camera lens relative to the printed marker coordinate structure; determining a camera lens mapping between the camera reference frame and the camera lens reference frame; and show an enlarged scene including a 3D real-space view and one or more virtual items, where camera lens mapping is used to alter or distort one or more virtual items in the enlarged scene.

Cláusula 9. O método da cláusula 8, em que determinar a estruClause 9. The method of clause 8, in which it determines the structure

tura de referência de lente da câmera inclui receber informação de posição e orientação da lente da câmera de programa de software associado com o marcador impresso.Camera lens reference frame includes receiving position information and lens orientation from the software program camera associated with the printed marker.

Cláusula 10. O método da cláusula 8, em que alinhar a estrutura coordenada de marcador impresso com a estrutura coordenada do sistema de rastreamento inclui colocar o marcador impresso em uma localização e 5 orientação no espaço real em 3D de modo que: uma origem associada com o marcador impresso está localizada aproximadamente na mesma localização no espaço em 3D conforme uma origem associada com o sistema de rastreamento; e três eixos associados com o marcador impresso são aproximadamente alinhados no espaço em 3D com três eixos associados com o 10 sistema de rastreamento.Clause 10. The method of clause 8, in which aligning the coordinate structure of the printed marker with the coordinate structure of the tracking system includes placing the printed marker at a location and orientation in real 3D space so that: an origin associated with the printed marker is located at approximately the same location in 3D space as a source associated with the tracking system; and three axes associated with the printed marker are approximately aligned in 3D space with three axes associated with the tracking system.

Cláusula 11.0 método da cláusula 8, em que determinar o mapeamento de lente da câmera inclui: receber ou determinar uma primeira matriz de transformação que representa a primeira estrutura de referência de objeto real; determinar uma segunda matriz de transformação que represen15 ta a diferença em localização e orientação entre a estrutura de referência de lente da câmera e a estrutura coordenada de marcador impresso; computar uma terceira matriz de transformação que representa o mapeamento de lente da câmera, em que a terceira matriz de transformação representa a diferença em localização e orientação entre a estrutura de referência da câmera 20 e a estrutura de referência de lente da câmera, e em que a terceira matriz de transformação é computada executando divisão de matriz tanto entre a primeira e a segunda matrizes de transformação quanto entre a segunda e a primeira matrizes de transformação.Clause 11.0 The method of clause 8, wherein determining the camera lens mapping includes: receiving or determining a first transformation matrix representing the first real object reference structure; determining a second transformation matrix representing the difference in location and orientation between the camera lens reference frame and the printed marker coordinate frame; compute a third transformation matrix representing camera lens mapping, wherein the third transformation matrix represents the difference in location and orientation between camera reference frame 20 and camera lens reference frame, and wherein The third transformation matrix is computed by performing matrix division between both the first and second transformation matrices and between the second and first transformation matrices.

Cláusula 12. O método da cláusula 8, em que usar o mapea25 mento de lente da câmera para alterar ou distorcer um ou mais itens virtuais sobrepostos na cena aumentada inclui: colocar um primeiro item virtual sobreposto na cena aumentada usando uma primeira estrutura de referência de item virtual, em que a primeira estrutura de referência de item virtual refere-se à estrutura coordenada do sistema de rastreamento; receber do siste30 ma de rastreamento informação em tempo real sobre a localização e orientação da câmera; referenciar o mapeamento do objeto virtual para transformação para atualizar a estrutura de referência de lente da câmera com base na informação em tempo real; e atualizar a cena aumentada alterando ou distorcendo o um ou mais itens virtuais sobrepostos com base na estrutura de referência de lente da câmera atualizada.Clause 12. The method of clause 8, wherein using camera lens mapping to alter or distort one or more overlapping virtual items in the enlarged scene includes: placing a first overlapping virtual item in the enlarged scene using a first frame reference frame. virtual item, where the first virtual item reference structure refers to the coordinate structure of the tracking system; receive from the tracking system real-time information about the camera's location and orientation; reference virtual object mapping for transformation to update camera lens reference structure based on real-time information; and update the enlarged scene by changing or distorting one or more overlapping virtual items based on the updated camera lens reference frame.

Cláusula 13. O método da cláusula 8, em que alterar ou distorcer o um ou mais itens virtuais sobrepostos na cena aumentada inclui encolher os itens virtuais sobrepostos em resposta ao movimento da câmera adicionalmente para longe de um objeto real no espaço em 3D.Clause 13. The method of clause 8, wherein altering or distorting one or more overlapping virtual items in the enlarged scene includes shrinking overlapping virtual items in response to camera movement additionally away from a real object in 3D space.

Cláusula 14. O método da cláusula 8, em que alterar ou distorcer o um ou mais itens virtuais sobrepostos na cena aumentada inclui alargar os itens virtuais sobrepostos em resposta ao movimento da câmera mais perto de um objeto real no espaço em 3D.Clause 14. The method of clause 8, wherein altering or distorting one or more overlapping virtual items in the enlarged scene includes widening overlapping virtual items in response to camera movement closer to a real object in 3D space.

Cláusula 15. O método da cláusula 8, em que alterar ou distorcer o um ou mais itens virtuais sobrepostos na cena aumentada inclui girar os itens virtuais sobrepostos em resposta ao movimento da câmera em um ânguio com relação a um objeto real no espaço em 3D.Clause 15. The method of clause 8, wherein altering or distorting one or more overlapping virtual items in the enlarged scene includes rotating overlapping virtual items in response to camera movement in an anguish relative to a real object in 3D space.

Cláusula 16. Um sistema compreendendo: uma câmera que capture uma visão de um espaço real em 3D incluindo um objeto real; um sistema de rastreamento que rastreia a posição e orientação em um espaço real em 3D do objeto real e da câmera, em que o sistema de rastreamento é con20 figurado para estabelecer uma estrutura coordenada do sistema de rastreamento associada com o sistema de rastreamento, em que a estrutura coordenada do sistema de rastreamento está alinhada com o espaço real em 3D; e um computador acoplado à câmera e ao sistema de rastreamento, o computador tendo uma ou mais unidades de memória, o computador sendo con25 figurado com um modelador virtual, em que o modelador virtual é configurado para receber do sistema de rastreamento uma primeira estrutura de referência de objeto real para o objeto real, em que a primeira estrutura de referência de objeto real indica uma posição e orientação do objeto real com relação à estrutura coordenada do sistema de rastreamento; em que o mode30 Iador virtual é ainda configurado para computar uma segunda estrutura de referência de objeto real para o objeto real, em que a segunda estrutura de referência de objeto real indica uma posição e orientação do objeto real com relação à estrutura coordenada do sistema de rastreamento; em que o modelador virtual é ainda configurado para receber da uma ou mais unidades de memória uma primeira estrutura de referência de objeto virtual para um objeto virtual, em que o objeto virtual é modelado depois do objeto real, e em 5 que a primeira estrutura de referência de objeto virtual não é relacionada à estrutura coordenada do sistema de rastreamento; em que o modelador virtual é ainda configurado para computar uma segunda estrutura de referência de objeto virtual para o objeto virtual, em que a segunda estrutura de referência de objeto virtual indica uma posição e orientação do objeto virtual com 10 relação à estrutura coordenada do sistema de rastreamento; em que o modelador virtual é ainda configurado para computar um mapeamento do objeto virtual entre a primeira estrutura de referência de objeto virtual e a estrutura coordenada do sistema de rastreamento; e em que o modelador virtual é ainda configurado para gerar e armazenar na uma ou mais unidades de 15 memória uma cena aumentada incluindo uma visão do espaço real em 3D, uma visão do objeto real e um ou mais itens virtuais sobrepostos, em que o mapeamento do objeto virtual é usado para colocar o um ou mais itens virtuais sobrepostos na cena aumentada de modo que um ou mais itens virtuais são alinhados com o objeto real.Clause 16. A system comprising: a camera that captures a view of a real 3D space including a real object; a tracking system that tracks the position and orientation in real 3D space of the actual object and camera, wherein the tracking system is configured to establish a coordinated tracking system structure associated with the tracking system, wherein the coordinate structure of the tracking system is aligned with real 3D space; and a computer coupled to the camera and tracking system, the computer having one or more memory units, the computer being configured with a virtual modeler, wherein the virtual modeler is configured to receive from the tracking system a first frame of reference. real object to real object, wherein the first real object reference structure indicates a position and orientation of the real object relative to the coordinate structure of the tracking system; wherein the virtual mode30 is further configured to compute a second real object reference structure to the real object, wherein the second real object reference structure indicates a position and orientation of the real object with respect to the coordinate structure of the system. tracking; wherein the virtual modeler is further configured to receive from one or more memory units a first virtual object reference structure for a virtual object, wherein the virtual object is modeled after the real object, and wherein the first virtual object reference is not related to the coordinate structure of the tracking system; wherein the virtual modeler is further configured to compute a second virtual object reference structure for the virtual object, wherein the second virtual object reference structure indicates a position and orientation of the virtual object with respect to the coordinate structure of the system. tracking; wherein the virtual modeler is further configured to compute a virtual object mapping between the first virtual object reference structure and the coordinate structure of the tracking system; and wherein the virtual modeler is further configured to generate and store in one or more memory units an enlarged scene including a 3D real space view, a real object view and one or more overlapping virtual items, wherein the mapping The virtual object is used to place one or more overlapping virtual items in the enlarged scene so that one or more virtual items are aligned with the actual object.

Cláusula 17. O sistema da cláusula 16, adicionalmente compreClause 17. The system of clause 16 additionally comprises

endendo um mostrador acoplado ao computador, em que o modelador virtual é ainda configurado para comunicar a cena aumentada ao mostrador, e em que o mostrador é configurado para mostrar a cena aumentada a um usuário.comprising a computer-coupled display, wherein the virtual modeler is further configured to communicate the enlarged scene to the display, and wherein the display is configured to show the enlarged scene to a user.

Cláusula 18. O sistema da cláusula 16, em que o mapeamentoClause 18. The system of clause 16, wherein the mapping

do objeto virtual para colocar um ou mais itens virtuais sobrepostos na cena aumentada inclui: receber uma primeira estrutura de referência de item virtual para um primeiro item virtual sobreposto, em que a primeira estrutura de referência de item virtual não é relacionada à estrutura coordenada do sis30 tema de rastreamento; referenciar o mapeamento do objeto virtual para transformar a primeira estrutura de referência de item virtual a uma estrutura de referência transformada que se refere à estrutura coordenada do sistema de rastreamento; e colocar o primeiro item virtual sobreposto na cena aumentada usando a estrutura de referência de transformação.of the virtual object to place one or more overlapping virtual items in the enlarged scene includes: receiving a first virtual item reference structure for a first overlapping virtual item, where the first virtual item reference structure is not related to the sis30 coordinate structure tracking theme; referencing the virtual object mapping to transform the first virtual item reference structure to a transformed reference structure that refers to the coordinate structure of the tracking system; and place the first overlapping virtual item in the enlarged scene using the transform reference frame.

Cláusula 19. O método da cláusula 16, em que o modelador virtual é ainda configurado para: receber do sistema de rastreamento informa5 ção em tempo real sobre a localização e orientação do objeto real; atualizar o mapeamento do objeto virtual com base na informação em tempo real; e atualizar a cena aumentada atualizando a colocação do um ou mais itens virtuais sobrepostos de modo que o um ou mais itens virtuais permaneçam alinhados com o objeto real.Clause 19. The method of clause 16, wherein the virtual modeler is further configured to: receive from the tracking system real-time information about the location and orientation of the real object; update virtual object mapping based on real-time information; and update the enlarged scene by updating the placement of one or more overlapping virtual items so that one or more virtual items remain aligned with the actual object.

Cláusula 20. Um sistema de processamento de dados, compreClause 20. A data processing system, buy

endendo: uma ou mais unidades de memória que armazenam código do computador; e uma ou mais unidades de processador acopladas a uma ou mais unidades de memória, em que a uma ou mais unidades de processador executam o código do computador armazenado na uma ou mais unidades 15 de memória para: receber ou estabelecer uma estrutura coordenada do sistema de rastreamento associada com um sistema de rastreamento de objeto, em que a estrutura coordenada do sistema de rastreamento é alinhada com um espaço real em 3D, e em que o sistema de rastreamento rastreia a posição e orientação em um espaço real em 3D de uma câmera que captura 20 o espaço real em 3D e um marcador impresso; receber do sistema de rastreamento uma estrutura de referência da câmera para a câmera, em que a estrutura de referência da câmera indica uma posição e orientação da câmera com relação à estrutura coordenada do sistema de rastreamento; receber ou estabelecer uma estrutura coordenada de marcador impresso associada 25 com o marcador impresso, em que a estrutura coordenada de marcador impresso é alinhada com o espaço real em 3D, e em que a estrutura coordenada de marcador impresso é alinhada com a estrutura coordenada do sistema de rastreamento; determinar uma estrutura de referência de lente da câmera para a lente da câmera, em que a estrutura de referência de lente da 30 câmera indica uma posição e orientação da lente da câmera com relação à estrutura coordenada de marcador impresso; determinar um mapeamento de lente da câmera entre a estrutura de referência da câmera e a estrutura de referência de lente da câmera; e mostrar uma cena aumentada incluindo uma visão do espaço real em 3D e um ou mais itens virtuais, em que o mapeamento de lente da câmera é usado para alterar ou distorcer o um ou mais itens virtuais na cena aumentada.address: one or more memory units that store computer code; and one or more processor units coupled to one or more memory units, wherein one or more processor units execute computer code stored in one or more memory units 15 to: receive or establish a coordinate structure of the memory system. tracking system associated with an object tracking system, wherein the coordinate structure of the tracking system is aligned with a real 3D space, and the tracking system tracks the position and orientation in a real 3D space of a camera that captures the actual 3D space and a printed marker; receiving from the tracking system a camera reference frame to the camera, wherein the camera reference frame indicates a camera position and orientation with respect to the coordinate structure of the tracking system; receiving or establishing a printed marker coordinate structure associated with the printed marker, wherein the printed marker coordinate structure is aligned with actual 3D space, and wherein the printed marker coordinate structure is aligned with the system coordinate structure tracking; determining a camera lens reference frame to the camera lens, wherein the camera lens reference frame indicates a position and orientation of the camera lens relative to the printed marker coordinate structure; determine a camera lens mapping between the camera reference frame and the camera lens reference frame; and show an enlarged scene including a 3D real space view and one or more virtual items, where camera lens mapping is used to alter or distort the one or more virtual items in the enlarged scene.

A descrição das diferentes modalidades vantajosas foi apresenThe description of the different advantageous embodiments has been

tada para propósitos de ilustração e a descrição e não pretende ser exaustiva ou limitada às modalidades na forma exposta. Muitas modificações e variações estarão aparentes àqueles de ordinária versatilidade na técnica. Adicionais diferentes modalidades vantajosas podem fornecer diferentes vanta10 gens conforme comparado a outras modalidades vantajosas. A modalidade ou modalidades selecionadas são escolhidas e descritas de modo a melhor explicar os princípios das modalidades da aplicação prática e possibilitar outros de ordinária versatilidade na técnica a entenderem a descrição por várias modalidades com várias modificações como são adequadas ao particu15 Iar uso contemplado.intended for illustration and description purposes only and is not intended to be exhaustive or limited to the embodiments in the foregoing form. Many modifications and variations will be apparent to those of ordinary versatility in the art. Additional different advantageous embodiments may provide different advantages as compared to other advantageous embodiments. The selected embodiment or embodiments are chosen and described so as to better explain the principles of the embodiments of practical application and enable others of ordinary skill in the art to understand the description by various embodiments with various modifications as are suitable for the particular use contemplated.

Claims (12)

REIVINDICAÇÕES 1. Método para realidade aumentada (100) executado por um sistema de processamento de dados tendo pelo menos um processador, o método compreendendo: receber ou estabelecer uma estrutura coordenada do sistema de rastreamento (204) associada com um sistema de rastreamento do objeto (108), em que a estrutura coordenada do sistema de rastreamento (204) está alinhada com o espaço real em 3D, e em que o sistema de rastreamento (108) rastreia a posição e orientação em um espaço real em 3D de uma câmera (102) que captura o espaço real em 3D e um marcador impresso (906); receber do sistema de rastreamento (108) uma estrutura de referência da câmera para a câmera (102), em que a estrutura de referência da câmera indica uma posição e orientação da câmera (102) com relação à estrutura coordenada do sistema de rastreamento (204); receber ou estabelecer uma estrutura coordenada de marcador impresso (204) associada com o marcador impresso (906), em que a estrutura coordenada de marcador impresso (204) é aIinhada com o espaço real em 3D, e em que a estrutura coordenada de marcador impresso (204) é aIinhada com a estrutura coordenada (204) do sistema de rastreamento (108); determinar uma estrutura de referência de lente da câmera (102) para a lente da câmera, em que a estrutura de referência de lente da câmera indica uma posição e orientação da lente da câmera (102) com relação à estrutura coordenada de marcador impresso (204); determinar um mapeamento de lente da câmera entre a estrutura de referência da câmera (102) e a estrutura de referência de lente da câmera (102); e mostrar uma cena aumentada (114) incluindo uma visão do espaço real em 3D e um ou mais itens virtuais, em que o mapeamento de lente da câmera (102) é usado para alterar ou distorcer um ou mais itens virtuais na cena aumentada (114).An augmented reality method (100) performed by a data processing system having at least one processor, the method comprising: receiving or establishing a coordinate structure of the tracking system (204) associated with an object tracking system (108) ), wherein the coordinate structure of the tracking system (204) is aligned with the real 3D space, and wherein the tracking system (108) tracks the position and orientation in a real 3D space of a camera (102) capturing real 3D space and a printed marker (906); receiving from the tracking system (108) a camera reference frame to the camera (102), wherein the camera reference frame indicates a camera position and orientation (102) relative to the tracking system coordinate structure (204) ); receiving or establishing a printed marker coordinate structure (204) associated with the printed marker (906), wherein the printed marker coordinate structure (204) is aligned with actual 3D space, and wherein the printed marker coordinate structure (204) is aligned with the coordinate structure (204) of the tracking system (108); determine a camera lens reference frame (102) for the camera lens, wherein the camera lens reference frame indicates a position and orientation of the camera lens (102) relative to the printed marker coordinate structure (204). ); determining a camera lens mapping between the camera reference frame (102) and the camera lens reference frame (102); and show an enlarged scene (114) including a 3D real space view and one or more virtual items, where camera lens mapping (102) is used to alter or distort one or more virtual items in the enlarged scene (114). ). 2. Método, de acordo com a reivindicação 1, em que determinar a estrutura de referência de lente de câmera (102) inclui receber informação de posição e orientação da lente da câmera (102) de um programa de software associado com o marcador impresso (906).The method of claim 1, wherein determining the camera lens reference structure (102) includes receiving camera lens position and orientation information (102) from a software program associated with the printed marker ( 906). 3. Método, de acordo com a reivindicação 1 ou 2, em que alinhar a estrutura coordenada do marcador impresso (204) com a estrutura coordenada do sistema de rastreamento (204) inclui colocar o marcador impresso (906) em uma localização e orientação no espaço real em 3D de modo que: uma origem associada com o marcador impresso (906) está localizada aproximadamente na mesma localização que uma origem associada com o sistema de rastreamento (108); e três eixos associados com o marcador impresso (906) são aproximadamente alinhados no espaço em 3D com três eixos associados com o sistema de rastreamento (108).The method of claim 1 or 2, wherein aligning the coordinate structure of the printed marker (204) with the coordinate structure of the tracking system (204) includes placing the printed marker (906) in a location and orientation on the real 3D space such that: an origin associated with the printed marker (906) is located at approximately the same location as an origin associated with the tracking system (108); and three axes associated with the printed marker (906) are approximately aligned in 3D space with three axes associated with the tracking system (108). 4. Método, de acordo com qualquer das reivindicações 1 a 3, em que determinar o mapeamento de lente da câmera (102) inclui: receber ou determinar uma primeira matriz de transformação que representa a primeira estrutura de referência de objeto real (212); determinar uma segunda matriz de transformação que representa a diferença em localização e orientação entre a estrutura de referência de lente de câmera (102) e a estrutura coordenada de marcador impresso (204); computar uma terceira matriz de transformação que representa o mapeamento de lente da câmera (102), em que a terceira matriz de transformação representa a diferença em localização e orientação entre a estrutura de referência de câmera e a estrutura de referência de lente de câmera, e em que a terceira matriz de transformação seja computada executando divisão de matriz tanto entre a primeira e a segunda matrizes de transformação quanto entre a segunda e a primeira matrizes de transformação.A method according to any one of claims 1 to 3, wherein determining the camera lens mapping (102) includes: receiving or determining a first transformation matrix representing the first real object reference structure (212); determining a second transformation matrix representing the difference in location and orientation between the camera lens reference structure (102) and the printed marker coordinate structure (204); computing a third transformation matrix representing camera lens mapping (102), wherein the third transformation matrix represents the difference in location and orientation between the camera reference frame and the camera lens reference frame, and wherein the third transformation matrix is computed by performing matrix division both between the first and second transformation matrices and between the second and first transformation matrices. 5. Método, de acordo com qualquer das reivindicações 1 a 4, em que usar o mapeamento de lente da câmera (102) para alterar ou distorcer um ou mais itens virtuais sobrepostos na cena aumentada (114) inclui: colocar um primeiro item virtual sobreposto na cena aumentada (114) usando uma primeira estrutura de referência de item virtual (216), em que a primeira estrutura de referência de item virtual (216) refere-se à estrutura coordenada do sistema de rastreamento (204); receber do sistema de rastreamento (108) informação em tempo real sobre a localização e orientação da câmera (102); referenciar o mapeamento do objeto virtual (112) para transformação para atualizar a estrutura de referência de lente de câmera (102) com base na informação em tempo real; e atualizar a cena aumentada (114) alterando ou distorcendo o um ou mais itens virtuais sobrepostos com base na estrutura de referência de lente de câmera atualizada (102).A method according to any one of claims 1 to 4, wherein using camera lens mapping (102) to alter or distort one or more overlapping virtual items in the enlarged scene (114) includes: placing a first overlapping virtual item in the enlarged scene (114) using a first virtual item reference structure (216), wherein the first virtual item reference structure (216) refers to the coordinate structure of the tracking system (204); receiving from the tracking system (108) real-time information about the location and orientation of the camera (102); reference virtual object mapping (112) for transformation to update camera lens reference structure (102) based on real-time information; and updating the enlarged scene (114) by changing or distorting one or more overlapping virtual items based on the updated camera lens reference frame (102). 6. Método, de acordo com qualquer das reivindicações 1 a 5, em que alterar ou distorcer o um ou mais itens virtuais sobrepostos na cena aumentada (114) inclui encolher os itens virtuais sobrepostos em resposta ao movimento da câmera (102) adicionalmente para longe de um objeto real (104) no espaço em 3D.A method according to any one of claims 1 to 5, wherein altering or distorting one or more overlapping virtual items in the enlarged scene (114) includes shrinking the overlapping virtual items in response to camera movement (102) further away of a real object (104) in 3D space. 7. Método, de acordo com qualquer das reivindicações 1 a 6, em que alterar ou distorcer o um ou mais itens virtuais sobrepostos na cena aumentada (114) inclui alargar os itens virtuais sobrepostos em resposta ao movimento da câmera (102) mais perto de um objeto real (104) no espaço em 3D.A method according to any one of claims 1 to 6, wherein altering or distorting one or more overlapping virtual items in the enlarged scene (114) includes widening the overlapping virtual items in response to camera movement (102) closer to a real object (104) in 3D space. 8. Método, de acordo com qualquer das reivindicações 1 a 7, em que alterar ou distorcer o um ou mais itens virtuais sobrepostos na cena aumentada (114) inclui girar os itens virtuais sobrepostos em resposta ao movimento da câmera (102) em um ângulo com relação a um objeto real (104) no espaço em 3D.A method according to any one of claims 1 to 7, wherein altering or distorting one or more overlapping virtual items in the enlarged scene (114) includes rotating the overlapping virtual items in response to camera movement (102) at an angle. with respect to a real object (104) in 3D space. 9. Sistema compreendendo: uma câmera (102) que captura uma visão de um espaço real em 3D incluindo um objeto real (104); sistema de rastreamento que rastreia a posição e orientação em um espaço real em 3D do objeto real (104) e da câmera (102), em que o sistema de rastreamento (108) é configurado para estabelecer uma estrutura coordenada do sistema de rastreamento (204) associada com o sistema de rastreamento (108), em que a estrutura coordenada do sistema de rastreamento (204) é alinhada com o espaço real em 3D; e um computador (106) acoplado à câmera (102) e ao sistema de rastreamento (108), o computador (106) tendo uma ou mais unidades de memória, o computador (106) sendo configurado com um modelador virtual, em que o modelador virtual é configurado para receber do sistema de rastreamento (108) uma primeira estrutura de referência de objeto real para o objeto real (104), em que a primeira estrutura de referência de objeto real (212) indica uma posição e orientação do objeto real (104) com relação à estrutura coordenada do sistema de rastreamento (204); em que o modelador virtual é ainda configurado para computar uma segunda estrutura de referência (212) de objeto real para o objeto real (104), em que a segunda estrutura de referência (212) de objeto real indica uma posição e orientação do objeto real com relação à estrutura coordenada do sistema de rastreamento (204); em que o modelador virtual é ainda configurado para receber de uma ou mais unidades de memória uma primeira estrutura de referência (216) de objeto virtual para um objeto virtual (112), em que o objeto virtual (112) é modelado depois do objeto real (104), e em que a primeira estrutura de referência de objeto virtual (216) não é relacionada à estrutura coordenada do sistema de rastreamento (204); em que o modelador virtual é ainda configurado para computar uma segunda estrutura de referência de objeto virtual (216) para o objeto virtual (112), em que a segunda estrutura de referência de objeto virtual (216) indica uma posição e orientação do objeto virtual (112) com relação à estrutura coordenada do sistema de rastreamento (204); em que o modelador virtual é ainda configurado para computar um mapeamento do objeto virtual (112) entre a primeira estrutura de referência de objeto virtual (216) e a estrutura coordenada do sistema de rastreamento (204); e em que o modelador virtual é ainda configurado para gerar e armazenar em uma ou mais unidades de memória uma cena aumentada (114) incluindo uma visão do espaço real em 3D, uma visão do objeto real (104) e um ou mais itens virtuais sobrepostos, em que o mapeamento do objeto virtual (112) é usado para colocar o um ou mais itens virtuais sobrepostos na cena aumentada (114) de modo que um ou mais itens virtuais são alinhados com o objeto real (114).A system comprising: a camera (102) that captures a view of a real 3D space including a real object (104); tracking system that tracks the position and orientation in real 3D space of the actual object (104) and camera (102), wherein the tracking system (108) is configured to establish a coordinated structure of the tracking system (204). ) associated with the tracking system (108), wherein the coordinate structure of the tracking system (204) is aligned with real 3D space; and a computer (106) coupled to the camera (102) and tracking system (108), the computer (106) having one or more memory units, the computer (106) being configured with a virtual modeler, wherein the modeler The virtual system is configured to receive from the tracking system (108) a first real object reference structure to the real object (104), wherein the first real object reference structure (212) indicates a position and orientation of the real object ( 104) with respect to the coordinate structure of the tracking system (204); wherein the virtual modeler is further configured to compute a second real object reference structure (212) to the real object (104), wherein the second real object reference structure (212) indicates a position and orientation of the real object with respect to the coordinate structure of the tracking system (204); wherein the virtual modeler is further configured to receive from one or more memory units a first virtual object reference structure (216) to a virtual object (112), wherein the virtual object (112) is modeled after the real object (104), and wherein the first virtual object reference frame (216) is unrelated to the coordinate structure of the tracking system (204); wherein the virtual modeler is further configured to compute a second virtual object reference structure (216) to the virtual object (112), wherein the second virtual object reference structure (216) indicates a position and orientation of the virtual object (112) with respect to the coordinate structure of the tracking system (204); wherein the virtual modeler is further configured to compute a virtual object mapping (112) between the first virtual object reference structure (216) and the tracking system coordinate structure (204); and wherein the virtual modeler is further configured to generate and store in one or more memory units an enlarged scene (114) including a 3D real space view, a real object view (104) and one or more overlapping virtual items wherein the virtual object mapping (112) is used to place the one or more overlapping virtual items in the enlarged scene (114) so that one or more virtual items are aligned with the actual object (114). 10. Sistema, de acordo com a reivindicação 9, adicionalmente compreendendo um mostrador acoplado ao computador (106), em que o modelador virtual é ainda configurado para comunicar a cena aumentada (114) ao mostrador, e em que o mostrador é configurado para mostrar a cena aumentada (114) a um usuário.The system of claim 9, further comprising a computer-coupled display (106), wherein the virtual modeler is further configured to communicate the enlarged scene (114) to the display, and wherein the display is configured to display the enlarged scene (114) to a user. 11. Sistema, de acordo com a reivindicação 9 ou 10, em que usar o mapeamento do objeto virtual (112) para colocar o um ou mais itens virtuais sobrepostos na cena aumentada (114) inclui: receber uma primeira estrutura de referência de objeto virtual (216) para um primeiro item virtual sobreposto, em que a primeira estrutura de referência de objeto virtual (216) não é relacionada à estrutura coordenada do sistema de rastreamento (204); referenciar o mapeamento do objeto virtual (112) para transformar a primeira estrutura de referência de item virtual (primeira estrutura de referência de objeto virtual 216) para uma estrutura de referência transformada que refere-se à estrutura coordenada do sistema de rastreamento (204); e colocar o primeiro item virtual sobreposto na cena aumentada (114) usando a estrutura de referência de transformação.The system of claim 9 or 10, wherein using virtual object mapping (112) to place one or more overlapping virtual items in the enlarged scene (114) includes: receiving a first virtual object reference structure (216) for a first overlapping virtual item, wherein the first virtual object reference structure (216) is not related to the coordinate structure of the tracking system (204); referencing the virtual object mapping (112) to transform the first virtual item reference structure (first virtual object reference structure 216) to a transformed reference structure that refers to the coordinate structure of the tracking system (204); and placing the first overlapping virtual item in the enlarged scene (114) using the transform reference frame. 12. Sistema, de acordo com qualquer das reivindicações de 9 a 11, em que o modelador virtual é ainda configurado para: receber do sistema de rastreamento (108) informação em tempo real sobre a localização e orientação do objeto real (104); atualizar o mapeamento do objeto virtual (112) com base na informação em tempo real; e atualizar a cena aumentada (114) atualizando a colocação do um ou mais itens virtuais sobrepostos de modo que o um ou mais itens virtuais permaneçam alinhados com o objeto real.A system according to any one of claims 9 to 11, wherein the virtual modeler is further configured to: receive from the tracking system (108) real-time information about the location and orientation of the real object (104); update virtual object mapping (112) based on real-time information; and updating the enlarged scene (114) by updating the placement of one or more overlapping virtual items so that one or more virtual items remain aligned with the actual object.
BR102013027358-9A 2012-10-31 2013-10-24 System and method for augmented reality executed by a data processing system having at least one processor BR102013027358B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/665,837 2012-10-31
US13/665,837 US9508146B2 (en) 2012-10-31 2012-10-31 Automated frame of reference calibration for augmented reality

Publications (2)

Publication Number Publication Date
BR102013027358A2 true BR102013027358A2 (en) 2014-10-21
BR102013027358B1 BR102013027358B1 (en) 2022-03-29

Family

ID=49518667

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102013027358-9A BR102013027358B1 (en) 2012-10-31 2013-10-24 System and method for augmented reality executed by a data processing system having at least one processor

Country Status (10)

Country Link
US (1) US9508146B2 (en)
EP (1) EP2728548B1 (en)
JP (1) JP6223122B2 (en)
KR (1) KR102110123B1 (en)
CN (1) CN103793936B (en)
AU (1) AU2013224660B2 (en)
BR (1) BR102013027358B1 (en)
CA (1) CA2825834C (en)
RU (1) RU2651239C9 (en)
SG (1) SG2013068408A (en)

Families Citing this family (80)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9058693B2 (en) * 2012-12-21 2015-06-16 Dassault Systemes Americas Corp. Location correction of virtual objects
US9922446B2 (en) * 2012-12-21 2018-03-20 Apple Inc. Method for representing virtual information in a real environment
EP3916632A1 (en) * 2014-05-21 2021-12-01 Tangible Play, Inc. Virtualization of tangible interface objects
US20150348322A1 (en) * 2014-06-02 2015-12-03 Dell Products L.P. Dynamically Composited Information Handling System Augmented Reality at a Primary Display
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
US10345272B2 (en) * 2015-07-13 2019-07-09 The Boeing Company Automated calibration of non-destructive testing equipment
US9898869B2 (en) * 2015-09-09 2018-02-20 Microsoft Technology Licensing, Llc Tactile interaction in virtual environments
CN105491365A (en) * 2015-11-25 2016-04-13 罗军 Image processing method, device and system based on mobile terminal
CN105469684A (en) * 2015-11-26 2016-04-06 中国航空工业集团公司沈阳飞机设计研究所 Simulation tool suitable for virtual maintenance test platform
US20210208763A1 (en) * 2016-01-19 2021-07-08 Tycoon Promotion Sagl Remote interactive system of augmented reality and associated method
DE102016205804A1 (en) * 2016-04-07 2017-10-12 Siemens Aktiengesellschaft Positioning System
IL245339A (en) * 2016-04-21 2017-10-31 Rani Ben Yishai Method and system for registration verification
US10008040B2 (en) * 2016-07-29 2018-06-26 OnePersonalization Limited Method and system for virtual shoes fitting
US10453232B2 (en) * 2016-08-29 2019-10-22 International Business Machines Corporation Product installation alignment assistance
EP3500908B1 (en) * 2016-11-11 2020-04-22 Telefonaktiebolaget LM Ericsson (publ) Supporting an augmented-reality software application
CN110140100B (en) * 2017-01-02 2020-02-28 摩致实验室有限公司 Three-dimensional augmented reality object user interface functionality
US10552981B2 (en) 2017-01-16 2020-02-04 Shapetrace Inc. Depth camera 3D pose estimation using 3D CAD models
US11521253B2 (en) 2017-02-03 2022-12-06 Columbia Insurance Company Autonomous system to assist consumers to select colors
CN106875493B (en) * 2017-02-24 2018-03-09 广东电网有限责任公司教育培训评价中心 The stacking method of virtual target thing in AR glasses
CN106878786B (en) * 2017-03-07 2020-03-03 北京小米移动软件有限公司 Method and device for displaying barrage in VR video
KR101941005B1 (en) * 2017-04-05 2019-01-22 광주과학기술원 A tool calibration method for unknown tool in an encounter-haptic system
US10742940B2 (en) 2017-05-05 2020-08-11 VergeSense, Inc. Method for monitoring occupancy in a work area
US11044445B2 (en) 2017-05-05 2021-06-22 VergeSense, Inc. Method for monitoring occupancy in a work area
US10777018B2 (en) * 2017-05-17 2020-09-15 Bespoke, Inc. Systems and methods for determining the scale of human anatomy from images
CN108932051B (en) * 2017-05-24 2022-12-16 腾讯科技(北京)有限公司 Augmented reality image processing method, apparatus and storage medium
US10643373B2 (en) 2017-06-19 2020-05-05 Apple Inc. Augmented reality interface for interacting with displayed maps
CN107564089B (en) * 2017-08-10 2022-03-01 腾讯科技(深圳)有限公司 Three-dimensional image processing method, device, storage medium and computer equipment
CN108734786B (en) * 2017-09-12 2021-07-27 武汉天际航信息科技股份有限公司 Live-action three-dimensional augmented reality visualization system and method
EP3462411A1 (en) * 2017-09-27 2019-04-03 Arkite NV Configuration tool and method for a quality control system
US10777007B2 (en) 2017-09-29 2020-09-15 Apple Inc. Cooperative augmented reality map interface
US10573089B2 (en) * 2017-11-09 2020-02-25 The Boeing Company Systems, methods, and tools for spatially-registering virtual content with physical environment in augmented reality platforms
US11039084B2 (en) 2017-11-14 2021-06-15 VergeSense, Inc. Method for commissioning a network of optical sensors across a floor space
US10235774B1 (en) * 2017-11-14 2019-03-19 Caterpillar Inc. Method and system for calibration of an image capturing device mounted on a machine
US10567746B2 (en) * 2017-11-14 2020-02-18 Caterpillar Inc. Calibration jig
FI129042B (en) 2017-12-15 2021-05-31 Oy Mapvision Ltd Machine vision system with a computer generated virtual reference object
WO2019136588A1 (en) * 2018-01-09 2019-07-18 深圳前海达闼云端智能科技有限公司 Cloud computing-based calibration method, device, electronic device, and computer program product
NO20180179A1 (en) * 2018-02-02 2019-04-08 Kitron Asa Method and system for augmented reality assembly guidance
US11386572B2 (en) * 2018-02-03 2022-07-12 The Johns Hopkins University Calibration system and method to align a 3D virtual scene and a 3D real world for a stereoscopic head-mounted display
CN108876900A (en) * 2018-05-11 2018-11-23 重庆爱奇艺智能科技有限公司 A kind of virtual target projective techniques merged with reality scene and system
US10977868B2 (en) * 2018-06-29 2021-04-13 Factualvr, Inc. Remote collaboration methods and systems
US10896546B2 (en) * 2018-07-11 2021-01-19 The Boeing Company Augmented reality system with an active portable anchor
US10839604B2 (en) * 2018-07-11 2020-11-17 The Boeing Company Augmented reality system with an active portable anchor
US10475250B1 (en) * 2018-08-30 2019-11-12 Houzz, Inc. Virtual item simulation using detected surfaces
CN109345560B (en) * 2018-09-20 2021-02-19 网易(杭州)网络有限公司 Motion tracking precision testing method and device of augmented reality equipment
CN109348209B (en) * 2018-10-11 2021-03-16 北京灵犀微光科技有限公司 Augmented reality display device and vision calibration method
US10740987B2 (en) * 2018-10-12 2020-08-11 The Boeing Company Augmented reality system for visualizing nonconformance data for an object
RU2697942C1 (en) * 2018-10-30 2019-08-21 Общество С Ограниченной Ответственностью "Альт" Method and system for reverse optical tracking of a mobile object
CN112912937A (en) * 2018-10-31 2021-06-04 米沃奇电动工具公司 Space-aware tool system
RU2713570C1 (en) * 2018-12-20 2020-02-05 Анатолий Александрович Перепелица Method for generating augmented reality image and robotic system for its implementation
WO2020163218A1 (en) * 2019-02-04 2020-08-13 Beam Therapeutics Inc. Systems and methods for implemented mixed reality in laboratory automation
US10983672B2 (en) * 2019-02-12 2021-04-20 Caterpilar Inc. Augmented reality model alignment
RU2702495C1 (en) * 2019-03-13 2019-10-08 Общество с ограниченной ответственностью "ТрансИнжКом" Method and system for collecting information for a combined reality device in real time
CN109920064A (en) * 2019-03-14 2019-06-21 烟台九田自动化科技有限公司 A kind of accurate method of adjustment of the model space pose based on augmented reality
WO2020190894A1 (en) 2019-03-15 2020-09-24 VergeSense, Inc. Arrival detection for battery-powered optical sensors
CN110020649A (en) * 2019-03-22 2019-07-16 联想(北京)有限公司 A kind of information processing method, device, equipment and storage medium
EP3946825A1 (en) * 2019-03-25 2022-02-09 ABB Schweiz AG Method and control arrangement for determining a relation between a robot coordinate system and a movable apparatus coordinate system
CA3130160A1 (en) * 2019-04-04 2020-10-08 Centerline Biomedical, Inc. Registration of spatial tracking system with augmented reality display
CN110322484B (en) * 2019-05-29 2023-09-08 武汉幻石佳德数码科技有限公司 Calibration method and system for multi-device shared augmented reality virtual space
CA3090634A1 (en) * 2019-08-20 2021-02-20 Lune Rouge Divertissement Inc. Machine vision system and method
US11620808B2 (en) 2019-09-25 2023-04-04 VergeSense, Inc. Method for detecting human occupancy and activity in a work area
CN110782499B (en) * 2019-10-23 2023-01-06 Oppo广东移动通信有限公司 Calibration method and calibration device for augmented reality equipment and terminal equipment
KR102314782B1 (en) * 2019-10-28 2021-10-19 네이버랩스 주식회사 apparatus and method of displaying three dimensional augmented reality
KR102199772B1 (en) * 2019-11-12 2021-01-07 네이버랩스 주식회사 Method for providing 3D modeling data
CN112836558A (en) * 2019-11-25 2021-05-25 杭州海康机器人技术有限公司 Mechanical arm tail end adjusting method, device, system, equipment and medium
CN111127661B (en) * 2019-12-17 2023-08-29 北京超图软件股份有限公司 Data processing method and device and electronic equipment
US11288792B2 (en) * 2020-02-19 2022-03-29 Palo Alto Research Center Incorporated Method and system for change detection using AR overlays
CN111432119B (en) * 2020-03-27 2021-03-23 北京房江湖科技有限公司 Image shooting method and device, computer readable storage medium and electronic equipment
CN111162840B (en) * 2020-04-02 2020-09-29 北京外号信息技术有限公司 Method and system for setting virtual objects around optical communication device
US11043039B1 (en) * 2020-04-22 2021-06-22 The Boeing Company 3D point cluster correlation for content alignment on augmented reality platforms
CN113674326B (en) * 2020-05-14 2023-06-20 惟亚(上海)数字科技有限公司 Tracking method of frequency domain processing based on augmented reality
WO2021230884A1 (en) * 2020-05-15 2021-11-18 Zebra Technologies Corporation Calibration system and method for data capture system
US11557046B2 (en) * 2020-09-30 2023-01-17 Argyle Inc. Single-moment alignment of imprecise overlapping digital spatial datasets, maximizing local precision
KR102358950B1 (en) * 2020-10-05 2022-02-07 홍준표 Augmented reality implement apparatus and method using mobile scanned object model scaling
KR20220059054A (en) 2020-11-02 2022-05-10 한국전자통신연구원 Method for providing augmented reality content based on update of feature map and apparatus using the same
CN113112545B (en) * 2021-04-15 2023-03-21 西安电子科技大学 Handheld mobile printing device positioning method based on computer vision
US11423576B1 (en) 2021-07-23 2022-08-23 Ford Global Technologies, Llc Infrastructure node localization with respect to alternative frame of reference
EP4191529A1 (en) * 2021-11-23 2023-06-07 Virnect, Co., Ltd. Camera motion estimation method for augmented reality tracking algorithm and system therefor
KR102442637B1 (en) 2021-11-23 2022-09-13 주식회사 버넥트 System and Method for estimating camera motion for AR tracking algorithm
KR20230101463A (en) 2021-12-29 2023-07-06 주식회사 버넥트 A method of learning a target object using a virtual viewpoint camera and a method of augmenting a virtual model on a real object that implements the target object using the same
US11922691B2 (en) * 2022-04-20 2024-03-05 Adobe Inc. Augmented reality systems for comparing physical objects

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020094189A1 (en) * 2000-07-26 2002-07-18 Nassir Navab Method and system for E-commerce video editing
JP2003281504A (en) * 2002-03-22 2003-10-03 Canon Inc Image pickup portion position and attitude estimating device, its control method and composite reality presenting system
JP4401727B2 (en) * 2003-09-30 2010-01-20 キヤノン株式会社 Image display apparatus and method
JP2006012042A (en) * 2004-06-29 2006-01-12 Canon Inc Image generating method and device
RU54233U1 (en) * 2006-01-17 2006-06-10 Общество с ограниченной ответственностью "СИМТЕХ" VIRTUAL ENVIRONMENT SYSTEM
US20070236514A1 (en) * 2006-03-29 2007-10-11 Bracco Imaging Spa Methods and Apparatuses for Stereoscopic Image Guided Surgical Navigation
CN100470452C (en) * 2006-07-07 2009-03-18 华为技术有限公司 Method and system for implementing three-dimensional enhanced reality
DE602007003849D1 (en) * 2007-10-11 2010-01-28 Mvtec Software Gmbh System and method for 3D object recognition
US7778794B2 (en) 2007-11-26 2010-08-17 The Boeing Company System and method for identifying an element of a structure in an engineered environment
US8482412B2 (en) 2008-10-16 2013-07-09 The Boeing Company Data interface process with RFID data reader glove
CN101520904B (en) * 2009-03-24 2011-12-28 上海水晶石信息技术有限公司 Reality augmenting method with real environment estimation and reality augmenting system
KR101335391B1 (en) * 2010-04-12 2013-12-03 한국전자통신연구원 Video composing apparatus and its method
US8525830B2 (en) 2010-09-17 2013-09-03 The Boeing Company Point cloud generation system
US8423318B1 (en) 2010-09-17 2013-04-16 The Boeing Company Object management system
US9182487B2 (en) 2011-06-22 2015-11-10 The Boeing Company Advanced remote nondestructive inspection system and process
US9113050B2 (en) 2011-01-13 2015-08-18 The Boeing Company Augmented collaboration system

Also Published As

Publication number Publication date
KR102110123B1 (en) 2020-05-14
RU2013148372A (en) 2015-05-10
EP2728548A2 (en) 2014-05-07
JP6223122B2 (en) 2017-11-01
AU2013224660A1 (en) 2014-05-15
RU2651239C2 (en) 2018-04-18
US9508146B2 (en) 2016-11-29
JP2014167786A (en) 2014-09-11
BR102013027358B1 (en) 2022-03-29
CA2825834C (en) 2018-01-02
EP2728548A3 (en) 2017-11-08
EP2728548B1 (en) 2021-02-24
US20140118339A1 (en) 2014-05-01
CN103793936A (en) 2014-05-14
RU2651239C9 (en) 2018-08-22
AU2013224660B2 (en) 2019-03-07
SG2013068408A (en) 2014-05-29
CA2825834A1 (en) 2014-04-30
KR20140055975A (en) 2014-05-09
CN103793936B (en) 2018-12-14

Similar Documents

Publication Publication Date Title
BR102013027358A2 (en) AUTOMATED REFERENCE REFERENCE CALIBRATION STRUCTURE FOR INCREASED REALITY
CN110296691B (en) IMU calibration-fused binocular stereo vision measurement method and system
ES2399636T3 (en) Method to determine the position of a camera with respect to at least one real object
Mariottini et al. EGT for multiple view geometry and visual servoing: robotics vision with pinhole and panoramic cameras
CN108062776A (en) Camera Attitude Tracking method and apparatus
EP2747034A2 (en) Location correction of virtual objects
Xu et al. Automatic reconstruction method for large scene based on multi-site point cloud stitching
Zhang et al. A universal and flexible theodolite-camera system for making accurate measurements over large volumes
CN109087393A (en) A method of building three-dimensional map
Klug et al. A complete workflow for automatic forward kinematics model extraction of robotic total stations using the Denavit-Hartenberg convention
BR112015023345B1 (en) IN SITU CREATION OF TARGETED NATURAL RESOURCE PLANS
ES2841304T3 (en) Estimation of electromechanical quantities using digital imaging and model-based filtering techniques
US11631195B2 (en) Indoor positioning system and indoor positioning method
KR102152217B1 (en) Jig for matching coordinates of VR and AR devices and method for sharing physical space by using the jig
CN109215128B (en) Object motion attitude image synthesis method and system
CN111161350B (en) Position information and position relation determining method, position information acquiring device
CN105574884A (en) Medical robot DH parameter calibrating method
Zheng et al. A non-coplanar high-precision calibration method for cameras based on an affine coordinate correction model
CN109489658A (en) A kind of moving target localization method, device and terminal device
CN114926542A (en) Mixed reality fixed reference system calibration method based on optical positioning system
Siltanen et al. Automatic marker field calibration
Wöldecke et al. Flexible registration of multiple displays
Samper et al. Metrovisionlab toolbox for camera calibration and simulation
Zhang Fpga soc fiducial system for unmanned aerial vehicles
CN117553697A (en) High-speed camera shooting measurement method and cabin door deformation measurement system based on LEDs

Legal Events

Date Code Title Description
B03A Publication of a patent application or of a certificate of addition of invention [chapter 3.1 patent gazette]
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B07A Application suspended after technical examination (opinion) [chapter 7.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 24/10/2013, OBSERVADAS AS CONDICOES LEGAIS.