BR102013027358B1 - Sistema e método para realidade aumentada executado por um sistema de processamento de dados tendo pelo menos um processador - Google Patents

Sistema e método para realidade aumentada executado por um sistema de processamento de dados tendo pelo menos um processador Download PDF

Info

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

Links

Images

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 transformations in the plane of the image
    • G06T3/60Rotation of whole images or parts 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Graphics (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Geometry (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Processing Or Creating Images (AREA)
  • Image Processing (AREA)
  • Studio Devices (AREA)
  • Image Analysis (AREA)
  • Length Measuring Devices By Optical Means (AREA)

Abstract

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.

Description

CAMPO
[0001] A presente descrição refere-se à realidade aumentada e, mais 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.
ANTECEDENTES
[0002] Aumentos ou adições para Realidade Aumentada (AR) para a 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 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.
[0003] 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.
SUMÁRIO
[0004] A presente descrição apresenta 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 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.
[0005] Uma ou mais modalidades da presente descrição descrevem um 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 orientaçã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é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 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 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 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.
[0006] 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 sistema 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 estrutura 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 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 mapeamento de lente da câmera pode ser usado para alterar ou distorcer um ou mais itens virtuais na cena aumentada.
[0007] 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 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. 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 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 sistema 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 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 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 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 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.
[0008] 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 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 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 impresso 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 unidades 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 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 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.
[0009] 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 são somente exemplares e explanatórias e não são restritivas da descrição como reivindicado.
BREVE DESCRIÇÃO DOS DESENHOS
[00010] 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.
[00011] 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.
[00012] 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.
[00013] 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.
[00014] 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.
[00015] 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.
[00016] 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.
[00017] 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.
[00018] 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.
[00019] 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.
[00020] A FIG. 8B descreve uma ilustração de como um sistema de rastreamento pode criar e colocar uma representação de uma câmera, de acordo com uma ou mais modalidades da presente descrição.
[00021] 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.
[00022] 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.
[00023] 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.
[00024] 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.
[00025] A FIG. 11 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.
[00026] 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.
[00027] 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.
DESCRIÇÃO DETALHADA
[00028] Em vários sistemas de AR um sistema de rastreamento pode ser 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 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. 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 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 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 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 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 para a lente da câmera) pode ser referido como sistema de calibração de AR ou estruturas de referência de calibração.
[00029] 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.
[00030] 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 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 localizaçõ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 manual 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 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.
[00031] 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 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 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 precisa, 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 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âmera 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.
[00032] 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.
[00033] O sistema de AR 100 pode incluir um sistema de rastreamento 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 marcadores 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 mundo 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 102.
[00034] 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 reflexõ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 montado 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 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 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.
[00035] 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. A 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).
[00036] O computador 106 pode incluir um software de modelagem virtual 110. O software de modelagem virtual pode acessar ou carregar vários 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 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 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 que mostram a um técnico como interagir com o objeto real 104.
[00037] 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ência 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 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 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 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 alargar. 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.
[00038] 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 exemplo, 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 assemelhar-se 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 exemplo, 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 exemplo, 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.
[00039] 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.
[00040] O sistema de rastreamento (por exemplo, incluindo um número das 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.
[00041] 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 referê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.
[00042] 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 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.
[00043] 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.
[00044] 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.
[00045] 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.
[00046] 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 depois 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 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 determinar 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 estendem da origem no plano criado pelos pontos 602, 604, 606.
[00047] 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.
[00048] 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 referê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 virtual 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 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 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 virtuais 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 real. 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.
[00049] O seguinte explica um exemplo da técnica para computar a transformação M4, como mostrado na FIG. 2. As várias transformações (M1, 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 matriz 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.
Figure img0001
[00050] 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 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 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 transformaçã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 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.
[00051] A transformação M4 pode então ser calculada como mostrado na Eq. 4 abaixo, resultando na transformação M4 mostrada na Eq. 5 abaixo.
Figure img0002
[00052] Em algumas modalidades, uma vez que a transformação M4 é 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 colocar 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 (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.
[00053] 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.
[00054] 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 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 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 independente 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 (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 exemplo 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 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.
[00055] O sistema de rastreamento (por exemplo, incluindo um número das 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.
[00056] 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 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, 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 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.
[00057] Com referência outra vez à FIG. 7, um software de modelagem virtual 710 pode receber informação de transmissão do sistema de rastreamento 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 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 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.
[00058] Para calibrar o sistema de AR, o marcador impresso 906 pode 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 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, 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 marcador 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.
[00059] Com referência outra vez à FIG. 7, o software de modelagem virtual (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 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 entanto, 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 sistema 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 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.
[00060] Para relacionar a estrutura de referência 714 da lente da câmera à 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 completo. 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 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 é conhecida, 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 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.
[00061] 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, 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 de transformação mostrada na Eq. 7 abaixo.
Figure img0003
[00062] 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.
Figure img0004
Figure img0005
[00063] 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 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 C1). O sistema de rastreamento 702 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 pode 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.
[00064] 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.
[00065] 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 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.
[00066] 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 exemplo, 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. 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 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 aumentada. 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 como instalar um item ou executar uma tarefa (por exemplo, tal como perfurar um poço).
[00067] 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.
[00068] 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 descritos 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.
[00069] A FIG. 11 descreve um fluxograma 1100 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. 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 exemplo, 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 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.
[00070] 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).
[00071] 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 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 rastreamento é 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 (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 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 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).
[00072] Quaisquer dos sistemas e métodos descritos aqui também contemplam 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 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 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.
[00073] A seguir, o sistema de processamento de dados 100 determina uma segunda estrutura de referência de objeto real 212 para o objeto real 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 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.
[00074] 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.
[00075] 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 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.
[00076] 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.
[00077] 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 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 refere-se à estrutura coordenada do sistema de rastreamento 204.
[00078] 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.
[00079] 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 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 primeiro item virtual sobreposto pode ser colocado na cena aumentada 114 usando a estrutura de referência de transformação.
[00080] 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 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.
[00081] 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.
[00082] 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 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 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.
[00083] No exemplo da FIG. 13, o sistema de processamento de dados 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 (I/O) 1312 e um mostrador 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 entre diferentes componentes ou dispositivos anexados ao sistema de barramento.
[00084] 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 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 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.
[00085] 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 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 acima.
[00086] Instruções para um sistema de operação podem estar localizadas 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 instruçõ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. 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.
[00087] O mostrador 1314 pode fornecer um mecanismo para mostrar informaçã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 entrada/saída (I/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 I/O de intervenção.
[00088] 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 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, padrões Bluetooth e o similar.
[00089] 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 sistema 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.
[00090] 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.
[00091] 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 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 à estrutura coordenada do marcador impresso 204.
[00092] 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 lente da câmera 102 é usado para alterar ou distorcer o um ou mais itens virtuais na cena aumentada 114.
[00093] Adicionalmente, a invenção pode compreender modalidades de acordo com as seguintes cláusulas:
[00094] 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 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 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 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.
[00095] Cláusula 2. O método da cláusula 1, em que determinar a segunda 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 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.
[00096] 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 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.
[00097] Cláusula 4. O método da cláusula 3, em que a segunda estrutura 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 vez que cada orientação refere-se à estrutura coordenada do sistema de rastreamento.
[00098] 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.
[00099] 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 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 sistema de rastreamento; e colocar o primeiro item virtual sobreposto na cena aumentada usando a estrutura de referência de transformação.
[000100] 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.
[000101] 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 rastreamento 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 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 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; 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 um ou mais itens virtuais na cena aumentada.
[000102] Cláusula 9. O método da cláusula 8, em que determinar a estrutura 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.
[000103] 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 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 sistema de rastreamento.
[000104] Cláusula 11. O 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 representa 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 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.
[000105] Cláusula 12. O método da cláusula 8, em que usar o mapeamento 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 sistema 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.
[000106] 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.
[000107] 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.
[000108] 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 ângulo com relação a um objeto real no espaço em 3D.
[000109] 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 é configurado 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 configurado 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 modelador 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 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 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 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.
[000110] Cláusula 17. O sistema da cláusula 16, adicionalmente compreendendo 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.
[000111] Cláusula 18. O sistema da cláusula 16, em que o mapeamento 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 sistema 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.
[000112] Cláusula 19. O método da cláusula 16, em que o modelador virtual é ainda configurado para: 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 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.
[000113] Cláusula 20. Um sistema de processamento de dados, compreendendo: 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 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 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 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 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.
[000114] A descrição das diferentes modalidades vantajosas foi apresentada 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 vantagens 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 m’odificações como são adequadas ao particular uso contemplado.

Claims (9)

1. Sistema caracterizado pelo fato de que compreende: uma câmera (102) que captura uma visão de um espaço real em 3D incluindo um objeto real (104); sistema de rastreamento (108) 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 o sistema de rastreamento (108) utiliza uma vara (300) para estabelecer a estrutura coordenada do sistema de rastreamento (204), a vara (300) incluindo um primeiro membro estendido (302) que designa um primeiro eixo e um segundo membro estendido (304) que designa um segundo eixo, a vara (300) ainda designando uma origem (306) em um ponto onde o primeiro membro (302) e o segundo membro (304) se intersectam, um terceiro eixo que corre através da origem (306), o sistema de rastreamento (108) estabelecendo a estrutura coordenada do sistema de rastreamento (204) pela detecção de marcadores de rastreamento fixados à vara (300) e determinando a posição entre os marcadores de rastreamento fixados à vara (300) um em relação ao outro, e estabelecendo uma origem virtual e três eixos virtuais que se associam com a origem (306) e primeiro, segundo e terceiro eixos, como designados pela vara (300), 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 a segunda estrutura de referência de objeto real é computado para; obter três ou mais três mais pontos não-colineares do objeto real no objeto real (104), em que para obter os três ou mais pontos não- colineares do objeto real no objeto real (104) o modelador virtual é configurado para reconhecer um ponto na vara (300) como um apontador, de tal forma que quando um usuário toca o apontador em três ou mais pontos não-colineares no objeto real (104), o modelador virtual captura ou registra os três ou mais pontos não-colineares indicados no objeto real (104), em que as localizações dos três ou mais pontos não-colineares do objeto real são definidas em relação à estrutura coordenada do sistema de rastreamento (204); determinar uma origem de objeto real calculando um centroide dos três ou mais pontos não-colineares de objeto real; e determinar uma orientação de objeto real que é relacionada à orientação da primeira estrutura de referência de objeto real (212); 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 a segunda estrutura de referência de objeto real é computada para: receber ou indicar três ou mais pontos não-colineares de objeto virtual no objeto virtual (112), em que as localizações dos três ou mais pontos não-colineares de objeto virtual são definidas com relação à estrutura coordenada de sistema de rastreamento (204); determinar uma origem de objeto virtual calculando um centroide de três ou mais pontos não-colineares de objeto virtual; e determinar uma orientação de objeto virtual; 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 (104).
2. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de que ainda compreende 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.
3. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de 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.
4. Sistema, de acordo com a reivindicação 1, caracterizado pelo fato de 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.
5. Método para realidade aumentada (100) executado pelo sistema de processamento de dados como definido na reivindicação 1, tendo pelo menos um processador, o método caracterizado pelo fato de que compreende: estabelecer uma estrutura coordenada do sistema de rastreamento (204) associada com um sistema de rastreamento do objeto (108), em que o sistema de rastreamento (108) utiliza uma vara (300) para estabelecer a estrutura de coordenada de sistema de rastreamento (204), a vara (300) incluindo um primeiro membro estendido (302) que designa um primeiro eixo e um segundo membro estendido que designa um segundo eixo, a vara (300) ainda designando uma origem (306) onde o primeiro membro (302) e o segundo membro (304) se intersectam, um terceiro eixo corre através do ponto de origem (306), o sistema de rastreamento (108) estabelecendo a estrutura coordenada de sistema de rastreamento (204) ao detectar marcadores de rastreamento fixados à vara (300), e determinado a posição entre os marcadores de rastreamento fixados à vara (300) um em relação ao outro, e estabelecendo um origem virtual e três eixos virtuais que se associam com a origem (306) e primeiro, segundo e terceiro eixos, conforme designado pela vara (300), 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 um objeto real (104) e 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 primeira estrutura de referência de objeto real (112) para o objeto real (104) e uma estrutura de referência da câmera para a câmera (102), em que a estrutura de referência da câmera e a primeira estrutura de referência de objeto real (112) indica uma posição e orientação da câmera (102) e do objeto real (104) com relação à estrutura coordenada do sistema de rastreamento (204); determinar, em seguida, uma segunda estrutura de referência de objeto real (212) para o objeto real (104), em que determinar a segunda estrutura de referência de objeto real (112) inclui: obter três ou mais pontos não-colineares de objeto real no objeto real (104), em que para obter os três ou mais pontos não- colineares de objeto real no objeto real (104), o modelador virtual é configurado para reconhecer um ponto na vara (300) como um apontador, de modo que quando um usuário toca o apontador para os três ou mais pontos não-colineares no objeto real (104), o modelador virtual captura ou registra os três ou mais pontos não-colineares indicados no objeto real (104), em que a localização dos três ou mais pontos não-colineares de objeto real são definidos com relação à estrutura coordenada de sistema de rastreamento (204); determinar uma origem de objeto real calculando um centroide dos três ou mais pontos não-colineares de objeto real; e determinar uma orientação de objeto real que é relacionado à orientação da primeira estrutura de referência de objeto real (212); 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 de sistema de rastreamento (204); receber uma estrutura coordenada de marcador impresso (204) associada com o marcador impresso (906) e uma primeira estrutura de referência de objeto virtual (216) para um objeto virtual (112), em que a estrutura coordenada de marcador impresso (204) é alinhada com o espaço real em 3D, e o objeto virtual (112) é modelado a partir do objeto real (104), e em que a primeira estrutura de referência de objeto virtual (2016) não é relacionada à estrutura coordenada de sistema de rastreamento (204); em que a estrutura coordenada de marcador impresso (204) é alinhada 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 e uma segunda estrutura de referência de objeto virtual (216) para o objeto virtual (112), em que a estrutura de referência de lente da câmera e a segunda estrutura de referência de objeto virtual (216) indicam uma posição e orientação da lente da câmera (102) e do objeto virtual (112) com relação à estrutura coordenada de marcador impresso (204) e para a estrutura coordenada de sistema de rastreamento (204), respectivamente, em que determinar a segunda estrutura de referência de objeto virtual (216) inclui: receber ou indicar três ou mais pontos não-colineares de objeto virtual no objeto virtual (112), em que a localização dos três ou mais pontos não-colineares de objeto virtual são definidos com relação à estrutura coordenada de sistema de rastreamento (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); determinar uma origem de objeto virtual calculando um centroide dos três ou mais pontos não-colineares de objeto virtual; e determinar uma orientação de objeto virtual; determinar um mapeamento de objeto virtual entre a primeira estrutura de referência de objeto virtual (216) e a estrutura coordenada de sistema de rastreamento (204); e mostrar uma cena aumentada (114) incluindo uma visão do espaço real em 3D, uma vista do objeto real (104) e um ou mais itens virtuais sobrepostos, em que o mapeamento de lente da câmera (102) e o mapeamento de objeto virtual são usados para colocar 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 (104).
6. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que a segunda estrutura de referência de objeto real (212) e a segunda estrutura de referência de objeto virtual (216) estã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 de sistema de rastreamento (204); e a orientação do objeto real e a orientação do objeto virtual são aproximadamente a mesma que cada localização relacionada à estrutura coordenada de sistema de rastreamento (204).
7. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que determinar o mapeamento do objeto virtual inclui: receber ou determinar uma primeira matriz de transformação que representa a primeira estrutura de referência do objeto real (212); determinar uma segunda matriz de transformação que 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); determinar uma terceira matriz de transformação 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 (216); e computar uma quarta matriz de transformação que representa o mapeamento do objeto virtual; em que 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 de sistema de rastreamento (204); e em que a quarta matriz de transformação é computada pela realização de multiplicação de matriz entre a primeira, a segunda e a terceira matrizes de transformação.
8. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que usar o mapeamento de objeto virtual para colocar 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 de sistema de rastreamento (204); referenciar o mapeamento de objeto virtual para transformar a primeira estrutura de referência de objeto virtual (216) a uma estrutura de referência transformada relacionada à estrutura coordenada de sistema de rastreamento (204); e colocar o primeiro item virtual sobreposto na cena aumentada (114) usando a estrutura de referência aumentada.
9. Método, de acordo com a reivindicação 5, caracterizado pelo fato de que ainda compreende: receber do sistema de rastreamento (108) informações em tempo real sobre a localização e orientação do objeto real (104); atualizar o mapeamento do objeto virtual com base na informação de tempo real; e atualizar a cena aumentada (114) pela atualização da colocação de um ou mais itens virtuais sobrepostos de forma que o um ou mais itens virtuais permaneçam alinhados com o objeto real (104).
BR102013027358-9A 2012-10-31 2013-10-24 Sistema e método para realidade aumentada executado por um sistema de processamento de dados tendo pelo menos um processador BR102013027358B1 (pt)

Applications Claiming Priority (2)

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

Publications (2)

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

Family

ID=49518667

Family Applications (1)

Application Number Title Priority Date Filing Date
BR102013027358-9A BR102013027358B1 (pt) 2012-10-31 2013-10-24 Sistema e método para realidade aumentada executado por um sistema de processamento de dados tendo pelo menos um processador

Country Status (10)

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

Families Citing this family (84)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104995666B (zh) * 2012-12-21 2019-04-23 苹果公司 用于在真实环境中表示虚拟信息的方法
US9058693B2 (en) * 2012-12-21 2015-06-16 Dassault Systemes Americas Corp. Location correction of virtual objects
EP3146466B1 (en) * 2014-05-21 2021-06-30 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 (ko) * 2015-07-08 2018-03-09 고려대학교 산학협력단 투영 이미지 생성 방법 및 그 장치, 이미지 픽셀과 깊이값간의 매핑 방법
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 (zh) * 2015-11-25 2016-04-13 罗军 基于移动终端的图像处理方法、装置及系统
CN105469684A (zh) * 2015-11-26 2016-04-06 中国航空工业集团公司沈阳飞机设计研究所 一种适用于虚拟维修试验平台的模拟工具
US20210208763A1 (en) * 2016-01-19 2021-07-08 Tycoon Promotion Sagl Remote interactive system of augmented reality and associated method
DE102016205804A1 (de) * 2016-04-07 2017-10-12 Siemens Aktiengesellschaft Positionsbestimmungssystem
IL245339A (en) * 2016-04-21 2017-10-31 Rani Ben Yishai Method and system for verification of registration
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
MX2019005382A (es) * 2016-11-11 2019-08-12 Ericsson Telefon Ab L M Soporte de una aplicacion de software de realidad aumentada.
EP3563568A4 (en) * 2017-01-02 2020-11-11 Merge Labs, Inc. USER INTERFACE FUNCTIONS OF A THREE-DIMENSIONAL OBJECT OF EXTENDED REALITY
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 (zh) * 2017-02-24 2018-03-09 广东电网有限责任公司教育培训评价中心 Ar眼镜中虚拟目标物的叠加方法
CN106878786B (zh) * 2017-03-07 2020-03-03 北京小米移动软件有限公司 Vr视频中弹幕的显示方法和装置
KR101941005B1 (ko) * 2017-04-05 2019-01-22 광주과학기술원 인카운터 타입 햅틱 시스템에서 임의의 툴에 대한 툴 캘리브레이션 방법
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 (zh) * 2017-05-24 2022-12-16 腾讯科技(北京)有限公司 增强现实图像处理方法、装置及存储介质
WO2018236499A1 (en) 2017-06-19 2018-12-27 Apple Inc. AUGMENTED REALITY INTERFACE FOR INTERACTING WITH DISPLAYED CARDS
CN107564089B (zh) * 2017-08-10 2022-03-01 腾讯科技(深圳)有限公司 三维图像处理方法、装置、存储介质和计算机设备
CN108734786B (zh) * 2017-09-12 2021-07-27 武汉天际航信息科技股份有限公司 实景三维增强现实可视化系统及方法
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
US10567746B2 (en) * 2017-11-14 2020-02-18 Caterpillar Inc. Calibration jig
US10235774B1 (en) 2017-11-14 2019-03-19 Caterpillar Inc. Method and system for calibration of an image capturing device mounted on a machine
US11039084B2 (en) 2017-11-14 2021-06-15 VergeSense, Inc. Method for commissioning a network of optical sensors across a floor space
FI129042B (en) * 2017-12-15 2021-05-31 Oy Mapvision Ltd Computer vision system with a computer-generated virtual reference object
CN108235778B (zh) * 2018-01-09 2021-09-10 达闼机器人有限公司 基于云端计算的标定方法、装置、电子设备和计算机程序产品
NO20180179A1 (en) * 2018-02-02 2019-04-08 Kitron Asa Method and system for augmented reality assembly guidance
WO2019152617A1 (en) 2018-02-03 2019-08-08 The Johns Hopkins University Calibration system and method to align a 3d virtual scene and 3d real world for a stereoscopic head-mounted display
CN108876900A (zh) * 2018-05-11 2018-11-23 重庆爱奇艺智能科技有限公司 一种与现实场景融合的虚拟目标投射方法和系统
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
US11396100B2 (en) * 2018-09-10 2022-07-26 Fanuc America Corporation Robot calibration for AR and digital twin
CN109345560B (zh) * 2018-09-20 2021-02-19 网易(杭州)网络有限公司 增强现实设备的运动跟踪精度测试方法及装置
CN109348209B (zh) * 2018-10-11 2021-03-16 北京灵犀微光科技有限公司 增强现实显示装置和视觉标定方法
US10740987B2 (en) 2018-10-12 2020-08-11 The Boeing Company Augmented reality system for visualizing nonconformance data for an object
RU2697942C1 (ru) * 2018-10-30 2019-08-21 Общество С Ограниченной Ответственностью "Альт" Способ и система обратного оптического трекинга подвижного объекта
WO2020092497A2 (en) * 2018-10-31 2020-05-07 Milwaukee Electric Tool Corporation Spatially-aware tool system
RU2713570C1 (ru) * 2018-12-20 2020-02-05 Анатолий Александрович Перепелица Способ формирования изображения дополненной реальности и робототехническая система для его осуществления
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 (ru) * 2019-03-13 2019-10-08 Общество с ограниченной ответственностью "ТрансИнжКом" Способ и система сбора информации для устройства совмещенной реальности в режиме реального времени
CN109920064A (zh) * 2019-03-14 2019-06-21 烟台九田自动化科技有限公司 一种基于增强现实技术的模型空间位姿的精确调整方法
AU2020241843B2 (en) 2019-03-15 2023-09-28 VergeSense, Inc. Arrival detection for battery-powered optical sensors
CN110020649A (zh) * 2019-03-22 2019-07-16 联想(北京)有限公司 一种信息处理方法、装置、设备及存储介质
US20220168902A1 (en) * 2019-03-25 2022-06-02 Abb Schweiz Ag Method And Control Arrangement For Determining A Relation Between A Robot Coordinate System And A Movable Apparatus Coordinate System
US11538574B2 (en) * 2019-04-04 2022-12-27 Centerline Biomedical, Inc. Registration of spatial tracking system with augmented reality display
CN110322484B (zh) * 2019-05-29 2023-09-08 武汉幻石佳德数码科技有限公司 多设备共享的增强现实虚拟空间的校准方法及系统
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 (zh) * 2019-10-23 2023-01-06 Oppo广东移动通信有限公司 一种增强现实设备的标定方法、标定装置及终端设备
KR102314782B1 (ko) 2019-10-28 2021-10-19 네이버랩스 주식회사 3차원 증강현실 표시 방법
KR102199772B1 (ko) * 2019-11-12 2021-01-07 네이버랩스 주식회사 3차원 모델 데이터 생성 방법
CN112836558A (zh) * 2019-11-25 2021-05-25 杭州海康机器人技术有限公司 机械臂末端调整方法、装置、系统、设备及介质
CN111127661B (zh) * 2019-12-17 2023-08-29 北京超图软件股份有限公司 一种数据处理方法、装置及电子设备
JP7470511B2 (ja) 2019-12-17 2024-04-18 荏原環境プラント株式会社 情報処理システム、情報処理方法、情報処理プログラム
US11288792B2 (en) * 2020-02-19 2022-03-29 Palo Alto Research Center Incorporated Method and system for change detection using AR overlays
CN111432119B (zh) * 2020-03-27 2021-03-23 北京房江湖科技有限公司 图像拍摄方法、装置、计算机可读存储介质及电子设备
CN111162840B (zh) * 2020-04-02 2020-09-29 北京外号信息技术有限公司 用于设置光通信装置周围的虚拟对象的方法和系统
US11043039B1 (en) * 2020-04-22 2021-06-22 The Boeing Company 3D point cluster correlation for content alignment on augmented reality platforms
CN113674326B (zh) * 2020-05-14 2023-06-20 惟亚(上海)数字科技有限公司 一种基于增强现实的频域处理的跟踪方法
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 (ko) * 2020-10-05 2022-02-07 홍준표 모바일 스캔 객체 모델 스케일링을 통한 증강현실 구현 장치 및 방법
KR20220059054A (ko) 2020-11-02 2022-05-10 한국전자통신연구원 특징점 지도 업데이트 기반의 증강현실 컨텐츠 제공 방법 및 이를 위한 장치
CN113112545B (zh) * 2021-04-15 2023-03-21 西安电子科技大学 基于计算机视觉的手持移动打印装置定位方法
CN113345105A (zh) * 2021-06-18 2021-09-03 北京爱奇艺科技有限公司 一种坐标系调整方法、装置、电子设备及存储介质
US11423576B1 (en) 2021-07-23 2022-08-23 Ford Global Technologies, Llc Infrastructure node localization with respect to alternative frame of reference
CN113920281A (zh) * 2021-10-11 2022-01-11 郭小川 一种虚拟现实环境中空间规划方法、系统及应用方法
KR102442637B1 (ko) 2021-11-23 2022-09-13 주식회사 버넥트 증강현실 추적 알고리즘을 위한 카메라 움직임 추정 방법 및 그 시스템
US11769293B2 (en) 2021-11-23 2023-09-26 Virnect Co., Ltd. Camera motion estimation method for augmented reality tracking algorithm and system therefor
KR20230101463A (ko) 2021-12-29 2023-07-06 주식회사 버넥트 가상 뷰포인트 카메라를 활용하여 타겟 객체를 학습하는 방법 및 이를 이용하여 타켓 객체를 구현한 실물 객체에 가상 모델을 증강하는 방법
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 (ja) * 2002-03-22 2003-10-03 Canon Inc 撮像部位置姿勢推定装置及びその制御方法並びに複合現実感提示システム
JP4401727B2 (ja) * 2003-09-30 2010-01-20 キヤノン株式会社 画像表示装置及び方法
JP2006012042A (ja) * 2004-06-29 2006-01-12 Canon Inc 画像生成方法及び装置
RU54233U1 (ru) * 2006-01-17 2006-06-10 Общество с ограниченной ответственностью "СИМТЕХ" Система виртуального окружения
US20070236514A1 (en) * 2006-03-29 2007-10-11 Bracco Imaging Spa Methods and Apparatuses for Stereoscopic Image Guided Surgical Navigation
CN100470452C (zh) * 2006-07-07 2009-03-18 华为技术有限公司 一种实现三维增强现实的方法及系统
EP2048599B1 (en) * 2007-10-11 2009-12-16 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 (zh) * 2009-03-24 2011-12-28 上海水晶石信息技术有限公司 带有现实环境估算的增强现实的方法及其系统
KR101335391B1 (ko) * 2010-04-12 2013-12-03 한국전자통신연구원 영상 합성 장치 및 그 방법
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
CN103793936B (zh) 2018-12-14
US9508146B2 (en) 2016-11-29
EP2728548A2 (en) 2014-05-07
CN103793936A (zh) 2014-05-14
RU2013148372A (ru) 2015-05-10
AU2013224660B2 (en) 2019-03-07
RU2651239C2 (ru) 2018-04-18
SG2013068408A (en) 2014-05-29
CA2825834A1 (en) 2014-04-30
EP2728548A3 (en) 2017-11-08
BR102013027358A2 (pt) 2014-10-21
KR102110123B1 (ko) 2020-05-14
AU2013224660A1 (en) 2014-05-15
KR20140055975A (ko) 2014-05-09
US20140118339A1 (en) 2014-05-01
EP2728548B1 (en) 2021-02-24
JP6223122B2 (ja) 2017-11-01
RU2651239C9 (ru) 2018-08-22
JP2014167786A (ja) 2014-09-11
CA2825834C (en) 2018-01-02

Similar Documents

Publication Publication Date Title
BR102013027358B1 (pt) Sistema e método para realidade aumentada executado por um sistema de processamento de dados tendo pelo menos um processador
CN104781849B (zh) 单眼视觉同时定位与建图(slam)的快速初始化
ES2399636T3 (es) Método para determinar la postura de una cámara con respecto a por lo menos un objeto real
US20190206078A1 (en) Method and device for determining pose of camera
BR112015023345B1 (pt) Criação in situ de alvos planos de recurso natural
Kurz et al. Handheld augmented reality involving gravity measurements
Gratal et al. Visual servoing on unknown objects
TW202238449A (zh) 室內定位系統及室內定位方法
Fang et al. Multi-sensor based real-time 6-DoF pose tracking for wearable augmented reality
CN109445599A (zh) 交互笔检测方法及3d交互系统
KR20200066971A (ko) 상대적 움직임에 기반한 동작 인식 방법 및 장치
CN111161350B (zh) 位置信息及位置关系确定方法、位置信息获取装置
Li et al. A vision-based navigation system with markerless image registration and position-sensing localization for oral and maxillofacial surgery
JP4926598B2 (ja) 情報処理方法、情報処理装置
Araujo et al. Life cycle of a slam system: Implementation, evaluation and port to the project tango device
CN114926542A (zh) 基于光学定位系统的混合现实固定参考系校准方法
Siltanen et al. Automatic marker field calibration
JPWO2016151862A1 (ja) 組立教示装置、および組立教示方法
US10379620B2 (en) Finger model verification method and information processing apparatus
Li et al. Efficient evaluation of misalignment between real and virtual objects for HMD-Based AR assembly assistance system
Jiawei et al. Three-dimensional interactive pen based on augmented reality
Wöldecke et al. Flexible registration of multiple displays
Klug Assistance for Measuring Human-Made Structures with Robotic Total Stations
TW202333832A (zh) 混合實境處理系統及混合實境處理方法
Lin et al. Augmented reality system

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.