Câmera de profundidade do Azure Kinect DK

Esta página aborda o uso da câmera de profundidade em seu Azure Kinect DK. A câmera de profundidade é a segunda das duas câmeras. Conforme abordado nas seções anteriores, a outra câmera é a câmera RGB.

Princípios operacionais

A câmera de profundidade do Azure Kinect DK implementa o princípio ToF (Tempo de Voo) de AMCW (Onda Contínua Modulada em Amplitude). A câmera converte a iluminação modulada no espectro do NIR (IR próximo) na cena. Em seguida, ela registra uma medição indireta do tempo que leva para a luz viajar da câmera para a cena e voltar.

Essas medições são processadas para gerar um mapa de profundidade. Um mapa de profundidade é um conjunto de valores de coordenadas Z para cada pixel da imagem, medido em unidades de milímetros.

Juntamente com um mapa de profundidade, também obtemos uma assim chamada leitura de IR limpa. O valor de pixels na leitura de IR limpa é proporcional à quantidade de luz retornada da cena. A imagem é semelhante a uma imagem de IR regular. A figura a seguir mostra um exemplo de mapa de profundidade (à esquerda) e uma imagem de IR limpa correspondente (à direita).

Profundidade e IR lado a lado

Principais recursos

As características técnicas da câmera de profundidade incluem:

  • Chip de imagem ToF de 1 megapixel com tecnologia de pixel avançado, permitindo frequências de modulação e precisão de profundidade mais altas.
  • Dois diodos de laser NIR, permitindo modos de profundidade de FoV (campo de visão) próximos e largos.
  • O menor pixel de ToF do mundo, 3,5 μm por 3,5 μm.
  • Seleção automática de ganho por pixel que permite um grande intervalo dinâmico, possibilitando que objetos próximos e longe sejam capturados corretamente.
  • Obturador global que permite um desempenho aprimorado na luz solar.
  • Método de cálculo de profundidade de várias fases que permite uma precisão robusta mesmo na presença de chip, laser e variação de fonte de energia.
  • Erros sistemáticos e aleatórios baixos.

Módulo de profundidade

A câmera de profundidade transmite imagens de IR moduladas brutas para o PC host. No PC, o software do mecanismo de profundidade acelerado da GPU converte o sinal bruto em mapas de profundidade. A câmera de profundidade dá suporte a vários modos. Os modos FoV (campo de visão) estreito são ideais para cenas com extensões menores nas dimensões X e Y, mas extensões maiores na dimensão Z. Se a cena tiver extensões X e Y grandes, mas intervalos Z menores, os modos de FoV largos serão mais adequados.

A câmera de profundidade dá suporte a modos de compartimentalização 2x2 para estender o intervalo Z em comparação com os modos de compartimentalização correspondentes. A compartimentalização é feita à custa de reduzir a resolução da imagem. Todos os modos podem ser executados em até 30 fps (quadros por segundo) com exceção do modo de 1 MP (megapixel) que é executado a uma taxa máxima de quadros de 15 fps. A câmera de profundidade também fornece um modo IR passivo. Nesse modo, os iluminadores da câmera não estão ativos e apenas a iluminação ambiente é observada.

Desempenho da câmera

O desempenho da câmera é medido como erros sistemáticos e aleatórios.

Erro sistemático

O erro sistemático é definido como a diferença entre a profundidade medida após a remoção do ruído e a profundidade correta (verdadeira). Calculamos a média temporal em muitos quadros de uma cena estática para eliminar o máximo possível do ruído de profundidade. Mais precisamente, o erro sistemático é definido como:

Erro sistemático de profundidade

Em que dt denota a profundidade da medida no tempo t, N é o número de quadros usados no procedimento médio e dgt é a profundidade verdadeira.

A especificação do erro sistemático da câmera de profundidade se dá excluindo a MPI (interferência de vários caminhos). MPI é quando um pixel de sensor integra a luz refletida por mais de um objeto. A MPI é parcialmente mitigada em nossa câmera de profundidade usando frequências de modulação mais altas, juntamente com a invalidação de profundidade, que apresentaremos mais tarde.

Erro aleatório

Suponha que vamos tirar cem imagens do mesmo objeto sem mexer a câmera. A profundidade do objeto será um pouco diferente em cada uma das cem imagens. Essa diferença é causada pelo ruído de captura. O ruído de captura é o número de fótons que chega ao sensor. Ele varia de acordo com um fator aleatório ao longo do tempo. Definimos esse erro aleatório em uma cena estática como o desvio padrão de profundidade ao longo do tempo calculado como:

Erro aleatório de profundidade

Em que N denota o número de medidas de profundidade, dt representa a medida de profundidade no tempo t e d denota o valor médio calculado em todas as medidas de profundidade dt .

Invalidação

Em determinadas situações, a câmera de profundidade pode não fornecer valores corretos para alguns pixels. Nessas situações, os pixels de profundidade são invalidados. Os pixels inválidos são indicados pelo valor de profundidade igual a 0. Os motivos para o mecanismo de profundidade não conseguir produzir os valores corretos incluem:

  • Fora da máscara de iluminação de IR ativa
  • Sinal de IR saturado
  • Sinal de IR baixo
  • Exceção de filtro
  • Interferência de vários caminhos

Máscara de iluminação

Os pixels são invalidados quando estão fora da máscara de iluminação de IR ativa. Não recomendamos o uso do sinal desses pixels para calcular a profundidade. A figura a seguir mostra o exemplo de invalidação por máscara de iluminação. Os pixels invalidados são os pixels de cor preta fora do círculo nos modos de FoV largos (à esquerda) e o hexágono nos modos de FoV estreitos (à direita).

Invalidação fora da máscara de iluminação

Intensidade do sinal

Os pixels são invalidados quando contêm um sinal IR saturado. Quando os pixels estão saturados, as informações da fase são perdidas. A imagem abaixo mostra o exemplo de invalidação por um sinal IR saturado. Veja as setas apontadas para os pixels de exemplo nas imagens de profundidade e IR.

Saturação de invalidação

A invalidação também pode ocorrer quando o sinal do IR não é forte o suficiente para gerar profundidade. A figura abaixo mostra o exemplo da invalidação por um sinal de IR baixo. Veja as setas apontadas para os pixels de exemplo nas imagens de profundidade e IR.

Sinal baixo de invalidação

Profundidade ambígua

Os pixels também poderão ser invalidados se receberem sinais de mais de um objeto na cena. Um caso comum em que esse tipo de invalidação pode ser visto é nos cantos. Devido à geometria da cena, a luz do IR da câmera se reflete em uma parede e em outra. Essa luz refletida causa ambiguidade na profundidade medida do pixel. Os filtros no algoritmo de profundidade detectam esses sinais ambíguos e invalidam os pixels.

As figuras a seguir mostram exemplos de invalidação pela detecção de vários caminhos. Você também pode ver como a mesma área de superfície que foi invalidada de uma exibição de câmera (linha superior) pode aparecer novamente de uma exibição de câmera diferente (linha inferior). Essa imagem demonstra que as superfícies invalidadas de uma perspectiva podem estar visíveis de outra.

Vários caminhos de invalidação – canto

Outro caso comum de vários caminhos são os pixels que contêm o sinal misto do primeiro plano e do segundo plano (por exemplo, bordas de objeto). Durante o movimento rápido, você poderá ver mais pixels invalidados em volta das bordas. Os outros pixels invalidados ocorrem devido ao intervalo de exposição da captura de profundidade bruta.

Vários caminhos de invalidação – bordas

Próximas etapas

Sistemas de coordenadas