Descrição geral da câmara localizável

O HoloLens inclui uma câmara voltada para o mundo montada na parte frontal do dispositivo que permite que as aplicações vejam o que o utilizador vê. Os programadores têm acesso e controlo da câmara, tal como fariam para câmaras a cores em smartphones, portáteis ou ambientes de trabalho. A mesma captura de multimédia universal do Windows e AS APIs do Windows Media Foundation que funcionam em dispositivos móveis e de ambiente de trabalho no HoloLens. O Unity encapsula estas APIs windows para abstrair as funcionalidades de utilização da câmara no HoloLens. As tarefas de funcionalidades incluem tirar fotografias e vídeos regulares (com ou sem hologramas) e localizar a posição da câmara dentro e perspetiva sobre a cena.

Informações da câmara do dispositivo

HoloLens (primeira geração)

  • Correção da câmara de vídeo/fotografia de foco (PV) com balanceamento automático em branco, exposição automática e pipeline completo de processamento de imagens.

  • O LED de Privacidade Branca enfrenta o mundo que ilumina sempre que a câmara está ativa.

  • A câmara suporta os seguintes modos (todos os modos têm uma proporção de 16:9) a 30, 24, 20, 15 e 5 fps:

    Vídeo Pré-visualizar Ainda assim Campo de Vista Horizontal (H-FOV) Utilização sugerida
    1280x720 1280x720 1280x720 45 graus (modo predefinido com estabilização de vídeo)
    N/D N/D 2048x1152 67 graus Imagem de ainda resolução mais alta
    1408x792 1408x792 1408x792 48 graus Resolução do overscan (preenchimento) antes da estabilização de vídeo
    1344x756 1344x756 1344x756 67 graus Modo de vídeo FOV grande com overscan
    896x504 896x504 896x504 48 graus Baixa potência/Modo de baixa resolução para tarefas de processamento de imagens

HoloLens 2

  • Foze automaticamente a câmara de fotografia/vídeo (PV) com balanceamento automático em branco, exposição automática e pipeline completo de processamento de imagens. O sistema de focagem automática pode ajustar a distância do objeto de 30 cm para o infinito. O comprimento focal eficaz para a lente da câmara de PV HoloLens 2 é de 4,87 mm +/- 5%. Além da variação de 5% devido à tolerância ao fabrico, o comprimento focal mudará dinamicamente devido ao sistema de focagem automática. A viagem de AF (traço) é de até 0,2 mm.

  • O LED de Privacidade Branca enfrenta o mundo que ilumina sempre que a câmara está ativa.

  • HoloLens 2 suporta perfis de câmara diferentes. Saiba como detetar e selecionar as capacidades da câmara.

  • A câmara suporta os seguintes perfis e resoluções (todos os modos de vídeo têm uma proporção de 16:9):

    Perfil Vídeo Pré-visualizar Ainda assim Taxas de fotogramas Campo de Vista Horizontal (H-FOV) Utilização sugerida
    Legado, 0 BalanceadoVideoAndPhoto, 100 2272x1278 2272x1278 15.30 64.69 Gravação de vídeo de alta qualidade
    Legado, 0 BalanceadoVideoAndPhoto,100 896x504 896x504 15.30 64.69 Fluxo de pré-visualização para captura de fotografias de alta qualidade
    Legado, 0 BalanceadoVideoAndPhoto, 100 3904x2196 64.69 Captura de fotografias de alta qualidade
    BalancedVideoAndPhoto, 120 1952x1100 1952x1100 1952x1100 15.30 64.69 Cenários de longa duração
    BalancedVideoAndPhoto, 120 1504x846 1504x846 15.30 64.69 Cenários de longa duração
    VideoConferencing, 100 1952x1100 1952x1100 1952x1100 15, 30,60 64.69 Videoconferências, cenários de longa duração
    Videoconferencing, 100 1504x846 1504x846 5, 15, 30,60 64.69 Videoconferências, cenários de longa duração
    Videoconferencing, 100 BalancedVideoAndPhoto, 120 1920x1080 1920x1080 1920x1080 15, 30 64.69 Videoconferências, cenários de longa duração
    Videoconferencing, 100 BalancedVideoAndPhoto, 120 1280x720 1280x720 1280x720 15, 30 64.69 Videoconferências, cenários de longa duração
    Videoconferencing, 100 BalancedVideoAndPhoto,120 1128x636 15, 30 64.69 Videoconferências, cenários de longa duração
    Videoconferencing, 100 BalancedVideoAndPhoto, 120 960x540 15,30 64.69 Videoconferências, cenários de longa duração
    Videoconferencing, 100 BalancedVideoAndPhoto, 120 760x428 15, 30 64.69 Videoconferências, cenários de longa duração
    Videoconferencing, 100 BalancedVideoAndPhoto, 120 640x360 15, 30 64.69 Videoconferências, cenários de longa duração
    Videoconferencing, 100 BalancedVideoAndPhoto, 120 500x282 15, 30 64.69 Videoconferências, cenários de longa duração
    Videoconferencing, 100 BalancedVideoAndPhoto, 120 424x240 15, 30 64.69 Videoconferências, cenários de longa duração

Nota

Os clientes podem tirar partido da captura de realidade mista para tirar vídeos ou fotografias da sua aplicação que incluem hologramas e empregar estabilização de vídeo.

Se quiser que o conteúdo da captura do seu utilizador tenha o melhor aspeto possível, existem alguns aspetos que deve considerar. Também pode ativar (e personalizar) a captura de realidade mista diretamente na sua aplicação. Saiba mais na captura de realidade mista para programadores.

Localizar a Câmara do Dispositivo no Mundo

Quando o HoloLens tira fotografias e vídeos, as molduras capturadas incluem a localização da câmara no mundo e o modelo de lente da câmara. Estas informações permitem que as aplicações raciocinam sobre a posição da câmara no mundo real para cenários de imagem aumentada. Os programadores podem implementar de forma criativa os seus próprios cenários com o respetivo processamento de imagens favoritos ou bibliotecas de imagem digitalizada personalizadas.

"Câmara" noutro local na documentação do HoloLens pode referir-se à "câmara de jogo virtual" (o frustum para o qual a aplicação é composta). Salvo indicação em contrário, "câmara" nesta página refere-se à câmara a cores RGB do mundo real.

Erro de Distorção

No HoloLens 2, os fluxos de imagens de vídeo e ainda não são separados no pipeline de processamento de imagens do sistema antes de os fotogramas serem disponibilizados para a aplicação. O fluxo de pré-visualização contém os frames distorcidos originais. Uma vez que apenas as CâmarasIntrínsecas são disponibilizadas, as aplicações têm de assumir que as molduras de imagem representam uma câmara perfeita.

No HoloLens (primeira geração), a função undistortion no processador de imagens ainda pode deixar um erro de até 10 pixéis ao utilizar a CameraIntrínseca nos metadados da moldura. Em muitos casos de utilização, este erro não importará. No entanto, se, por exemplo, estiver a alinhar hologramas a cartazes ou marcadores do mundo real e notar um < desvio de 10 px (aproximadamente 11 mm para hologramas posicionados a 2 metros de distância), esta distorção pode ser a causa.

Cenários de Utilização da Câmara Localizável

Mostrar uma fotografia ou vídeo no mundo onde foi capturado

Os fotogramas da Câmara do Dispositivo vêm com uma transformação "Câmara para Mundo" que pode ser utilizada para mostrar exatamente onde estava o dispositivo quando capturou a imagem. Por exemplo, pode posicionar um pequeno ícone holográfico nesta localização (CameraToWorld.MultiplyPoint(Vector3.zero)) e até desenhar uma pequena seta na direção em que a câmara estava virada (CameraToWorld.MultiplyVector(Vector3.forward)).

Etiqueta/Padrão/Cartaz/Controlo de Objetos

Muitas aplicações de realidade mista utilizam um padrão visual ou imagem reconhecível para criar um ponto no espaço controlável. Uma aplicação pode compor objetos relativos a esse ponto ou criar uma localização conhecida. Uma utilização típica do HoloLens é encontrar um objeto do mundo real etiquetado com fiduciais. Isto pode ocorrer, por exemplo, em tablets que foram configurados para comunicar com o HoloLens através de Wi-Fi.

Precisará de algumas coisas para reconhecer um padrão visual e colocar um objeto no espaço mundial da aplicação:

  1. Um toolkit de reconhecimento de padrões de imagem, como código QR, etiquetas DE AR, localizador de rostos, controladores de círculo, OCR, entre outros.
  2. Recolha fotogramas de imagem no runtime e transmita-os para a camada de reconhecimento.
  3. Desproteger as suas localizações de imagem de volta às posições mundiais ou provavelmente aos raios do mundo.
  4. Posicione os seus modelos virtuais sobre estas localizações mundiais.

Algumas ligações importantes de processamento de imagens:

Manter uma taxa de fotogramas de aplicações interativa é fundamental, especialmente ao lidar com algoritmos de reconhecimento de imagens de execução prolongada. Por este motivo, utilizamos normalmente o seguinte padrão:

  1. Thread Principal: gere o objeto da câmara.
  2. Thread Principal: pede novos frames (assíncrono).
  3. Thread Principal: transmita novos frames para controlar o thread.
  4. Thread de Controlo: processa a imagem para recolher pontos-chave.
  5. Thread Principal: move o modelo virtual para corresponder aos pontos-chave encontrados.
  6. Thread Principal: repita a partir do passo 2.

Alguns sistemas de marcadores de imagem fornecem apenas uma localização de píxeis, o que equivale a um raio de possíveis localizações. (Outros fornecem a transformação completa, caso em que esta secção não é necessária.) Para chegar a uma única localização 3D, podemos calcular vários raios e encontrar o resultado final pela interseção aproximada. Para obter este resultado, terá de:

  1. Crie um ciclo que recolhe várias imagens da câmara.
  2. Encontre os pontos de características associados e os seus raios mundiais.

Tendo em conta duas ou mais localizações de etiquetas controladas, pode posicionar uma cena modelada para se ajustar ao cenário atual do utilizador. Se não conseguir assumir a gravidade, precisará de três localizações de etiquetas. Em muitos casos, utilizamos um esquema de cores em que as esferas brancas representam localizações de etiquetas registadas em tempo real e as esferas azuis representam localizações de etiquetas modeladas. Isto permite que o utilizador avalie visualmente a qualidade do alinhamento. Assumimos a seguinte configuração em todas as nossas aplicações:

  • Duas ou mais localizações de etiquetas modeladas.
  • Um "espaço de calibragem", que na cena é o elemento principal das etiquetas.
  • Identificador de funcionalidades da câmara.
  • Comportamento, que move o espaço de calibragem para alinhar as etiquetas modeladas com as etiquetas em tempo real (temos o cuidado de mover o espaço principal e não os próprios marcadores modelados, porque outras ligações são posições relativas às mesmas).

Controlar ou identificar objetos/rostos do mundo real identificados ou movidos com LEDs ou outras bibliotecas de reconhecedores

Exemplos:

  • Robôs industriais com LEDs (ou códigos QR para objetos em movimento mais lentos).
  • Identificar e reconhecer objetos na sala.
  • Identifique e reconheça pessoas na sala, por exemplo, colocando cartões de contacto holográficos sobre rostos.

Ver também