Visão geral da câmera localizável

O HoloLens inclui uma câmera voltada para o mundo montada na frente do dispositivo que permite que os aplicativos vejam o que o usuário vê. Os desenvolvedores têm acesso e controle da câmera, assim como fariam para câmeras coloridas em smartphones, portáteis ou áreas de trabalho. A mesma captura universal de mídia do Windows e APIs do Windows Media Foundation que funcionam em dispositivos móveis e desktop funcionam no HoloLens. O Unity envolveu essas APIs do Windows para abstrair os recursos de uso da câmera no HoloLens. As tarefas de recursos incluem tirar fotos e vídeos regulares (com ou sem hologramas) e localizar a posição da câmera e a perspectiva na cena.

Informações da câmera do dispositivo

HoloLens (primeira geração)

  • Correção da câmera foto/vídeo de foco (PV) com saldo automático em branco, exposição automática e pipeline de processamento de imagem completo.

  • LED de Privacidade Branca voltado para o mundo que ilumina sempre que a câmera está ativa.

  • A câmera dá suporte aos seguintes modos (todos os modos são taxa de proporção de 16:9) em 30, 24, 20, 15 e 5 fps:

    Vídeo Versão Prévia Ainda Campo de Exibição Horizontal (H-FOV) Uso sugerido
    1\.280 x 720 1\.280 x 720 1\.280 x 720 45 por exemplo (modo padrão com estabilização de vídeo)
    N/D N/D 2048x1152 67 por exemplo Imagem ainda de maior resolução
    1408x792 1408x792 1408x792 48 por exemplo Resolução overscan (preenchimento) antes da estabilização de vídeo
    1344x756 1344x756 1344x756 67 por exemplo Modo de vídeo FOV grande com overscan
    896x504 896x504 896x504 48 por exemplo Modo de baixa energia/baixa resolução para tarefas de processamento de imagens

HoloLens 2

  • Câmera de foto/vídeo de foco automático (PV) com saldo automático em branco, exposição automática e pipeline de processamento de imagem completo. O sistema de foco automático pode ajustar a distância do objeto de 30 cm para o infinito. O comprimento focal efetivo para a lente da câmera PV HoloLens 2 é de 4,87 mm +/- 5%. Além da variação de 5% devido à tolerância à fabricação, o comprimento focal será alterado dinamicamente devido ao sistema de foco automático. A viagem de AF (traço) é de até 0,2 mm.

  • LED de Privacidade Branca voltado para o mundo que ilumina sempre que a câmera está ativa.

  • HoloLens 2 dá suporte a diferentes perfis de câmera. Saiba como descobrir e selecionar recursos de câmera.

  • A câmera dá suporte aos seguintes perfis e resoluções (todos os modos de vídeo são taxa de proporção 16:9):

    Perfil Vídeo Versão Prévia Ainda Taxas de quadros Campo de Exibição Horizontal (H-FOV) Uso sugerido
    Legacy, 0 BalancedVideoAndPhoto, 100 2272x1278 2272x1278 15.30 64.69 Gravação de vídeo de alta qualidade
    Herdado, 0 BalancedVideoAndPhoto,100 896x504 896x504 15.30 64.69 Fluxo de visualização para captura de fotos de alta qualidade
    Legacy, 0 BalancedVideoAndPhoto, 100 3904x2196 64.69 Captura de fotos 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ência, cenários de longa duração
    Videoconferencing, 100 1504x846 1504x846 5, 15, 30,60 64.69 Videoconferência, cenários de longa duração
    Videoconferencing, 100 BalancedVideoAndPhoto, 120 1\.920 x 1.080 1\.920 x 1.080 1\.920 x 1.080 15, 30 64.69 Videoconferência, cenários de longa duração
    Videoconferencing, 100 BalancedVideoAndPhoto, 120 1\.280 x 720 1\.280 x 720 1\.280 x 720 15, 30 64.69 Videoconferência, cenários de longa duração
    Videoconferencing, 100 BalancedVideoAndPhoto,120 1128x636 15, 30 64.69 Videoconferência, cenários de longa duração
    Videoconferencing, 100 BalancedVideoAndPhoto, 120 960 x 540 15,30 64.69 Videoconferência, cenários de longa duração
    Videoconferencing, 100 BalancedVideoAndPhoto, 120 760x428 15, 30 64.69 Videoconferência, cenários de longa duração
    Videoconferencing, 100 BalancedVideoAndPhoto, 120 640x360 15, 30 64.69 Videoconferência, cenários de longa duração
    Videoconferencing, 100 BalancedVideoAndPhoto, 120 500x282 15, 30 64.69 Videoconferência, cenários de longa duração
    Videoconferencing, 100 BalancedVideoAndPhoto, 120 424x240 15, 30 64.69 Videoconferência, cenários de longa duração

Observação

Os clientes podem aproveitar a captura de realidade misturada para tirar vídeos ou fotos do seu aplicativo que incluem hologramas e empregar estabilização de vídeo.

Se você quiser que o conteúdo da captura do usuário fique o melhor possível, há algumas coisas que você deve considerar. Você também pode habilitar (e personalizar) a captura de realidade misturada diretamente em seu aplicativo. Saiba mais em Captura de realidade misturada para desenvolvedores.

Localizando a câmera do dispositivo no mundo

Quando o HoloLens tira fotos e vídeos, os quadros capturados incluem a localização da câmera no mundo e o modelo de lente da câmera. Essas informações permitem que os aplicativos raciocinam sobre a posição da câmera no mundo real para cenários de geração de imagens aumentadas. Os desenvolvedores podem criar seus próprios cenários de maneira criativa usando seu processamento de imagem favorito ou bibliotecas personalizadas de pesquisa visual computacional.

"Câmera" em outro lugar na documentação do HoloLens pode se referir à "câmera de jogo virtual" (o frustum para o qual o aplicativo é renderizado). A menos que descrito de outra forma, "câmera" nesta página refere-se à câmera colorida RGB do mundo real.

Erro de distorção

Em HoloLens 2, os fluxos de vídeo e imagem ainda são não verificados no pipeline de processamento de imagens do sistema antes que os quadros sejam disponibilizados para o aplicativo. O fluxo de visualização contém os quadros distorcidos originais. Como apenas CameraIntrinsics são disponibilizados, os aplicativos devem assumir que os quadros de imagem representam uma câmera de pinhole perfeita.

No HoloLens (primeira geração), a função de não diferenciação no processador de imagem ainda pode deixar um erro de até 10 pixels ao usar o CameraIntrinsics nos metadados do quadro. Em muitos casos de uso, esse erro não importará. No entanto, se, por exemplo, você estiver alinhando hologramas a cartazes ou marcadores do mundo real e observar um < deslocamento de 10 px (aproximadamente 11 mm para hologramas posicionados a 2 metros de distância), esse erro de distorção poderá ser a causa.

Cenários de uso da câmera localizável

Mostrar uma foto ou vídeo no mundo onde ela foi capturada

Os quadros da Câmera do Dispositivo vêm com uma transformação "Câmera para Mundo" que pode ser usada para mostrar exatamente onde o dispositivo estava quando capturou a imagem. Por exemplo, você pode posicionar um pequeno ícone holográfico neste local (CameraToWorld.MultiplyPoint(Vector3.zero)) e até mesmo desenhar uma pequena seta na direção que a câmera estava voltada (CameraToWorld.MultiplyVector(Vector3.forward)).

Marca/ padrão / cartaz / acompanhamento de objeto

Muitos aplicativos de realidade misturada usam uma imagem reconhecível ou um padrão visual para criar um ponto rastreável no espaço. Um aplicativo pode renderizar objetos relativos a esse ponto ou criar um local conhecido. Um uso típico para o HoloLens é encontrar um objeto do mundo real marcado com fiduciais. Isso pode ocorrer, por exemplo, em tablets que foram configurados para se comunicar com o HoloLens via Wi-Fi.

Você precisará de algumas coisas para reconhecer um padrão visual e colocar um objeto no espaço de mundo do aplicativo:

  1. Um kit de ferramentas de reconhecimento de padrões de imagem, como código QR, marcas AR, localizador de rosto, rastreadores de círculo, OCR e assim por diante.
  2. Colete quadros de imagem em runtime e passe-os para a camada de reconhecimento.
  3. Desprojete seus locais de imagem de volta para posições mundiais ou prováveis raios mundiais.
  4. Posicione seus modelos virtuais sobre esses locais do mundo.

Alguns links importantes de processamento de imagens:

Manter uma taxa de quadros de aplicativo interativa é essencial, especialmente ao lidar com algoritmos de reconhecimento de imagem de longa execução. Por esse motivo, normalmente usamos o seguinte padrão:

  1. Thread Principal: gerencia o objeto da câmera.
  2. Thread Principal: solicita novos quadros (assíncrono).
  3. Thread Principal: passe novos quadros para o thread de rastreamento.
  4. Thread de Acompanhamento: processa a imagem para coletar pontos-chave.
  5. Thread Principal: move o modelo virtual para corresponder aos pontos-chave encontrados.
  6. Thread Principal: repita a partir da etapa 2.

Alguns sistemas de marcador de imagem fornecem apenas um local de pixel único, o que equivale a um raio de possíveis locais. (Outros fornecem a transformação completa, caso em que esta seção não é necessária.) Para chegar a um único local 3D, podemos calcular vários raios e encontrar o resultado final por sua interseção aproximada. Para obter esse resultado, você precisará:

  1. Crie um loop que coleta várias imagens de câmera.
  2. Localize os pontos de recurso associados e seus raios mundiais.

Considerando dois ou mais locais de marcas controladas, você pode posicionar uma cena modelada para se ajustar ao cenário atual do usuário. Se você não puder assumir a gravidade, precisará de três locais de marca. Em muitos casos, usamos um esquema de cores em que as esferas brancas representam locais de marcas controladas em tempo real e as esferas azuis representam locais de marca modeladas. Isso permite que o usuário avalie visualmente a qualidade do alinhamento. Presumimos a seguinte configuração em todos os nossos aplicativos:

  • Dois ou mais locais de marca modelados.
  • Um "espaço de calibragem", que na cena é o pai das marcas.
  • Identificador de recurso de câmera.
  • Comportamento, que move o espaço de calibragem para alinhar as marcas modeladas com as marcas em tempo real (temos o cuidado de mover o espaço pai, não os marcadores modelados em si, porque outras posições de conexão são relativas a elas).

Rastrear ou identificar objetos/rostos do mundo real marcados ou em movimento usando LEDs ou outras bibliotecas de reconhecedores

Exemplos:

  • Robôs industriais com LEDs (ou códigos QR para objetos móveis mais lentos).
  • Identificar e reconhecer objetos na sala.
  • Identificar e reconhecer pessoas na sala , por exemplo, colocando cartões de contato holográficos sobre rostos.

Confira também