Usar o SDK do Sensor do Azure Kinect para registrar o formato de arquivo
Para registrar dados de sensor, é usado o formato de contêiner Matroska (.mkv), que permite que várias faixas sejam armazenadas usando uma ampla gama de codecs. O arquivo de gravação contém faixas para armazenar cores, profundidade, imagens do IR e IMU.
Detalhes de baixo nível do formato de contêiner .mkv podem ser encontrados no site do Matroska.
Nome da faixa | Formato do codec |
---|---|
COR | Dependente de modo (MJPEG, NV12 ou YUY2) |
DEPTH | b16g (escala de cinza de 16 bits, big endian) |
IR | b16g (escala de cinza de 16 bits, big endian) |
IMU | Estrutura personalizada, confira a Estrutura de exemplo do IMU abaixo. |
Usar ferramentas de terceiros
Ferramentas como o comando ffmpeg
ou mkvinfo
do kit de ferramentas MKVToolNix podem ser usadas para exibir e extrair informações de arquivos de gravação.
Por exemplo, o seguinte comando extrairá a faixa de profundidade como uma sequência de PNGs de 16 bits para a mesma pasta:
ffmpeg -i output.mkv -map 0:1 -vsync 0 depth%04d.png
O parâmetro -map 0:1
extrairá o índice 1 da faixa, que, para a maioria das gravações, será profundidade. Se a gravação não contiver uma faixa de cores, -map 0:0
será usada.
O parâmetro -vsync 0
força o ffmpeg a extrair os quadros no estado em que se encontram, em vez de tentar fazer a correspondência com uma taxa de quadros de 30 fps, 15 fps ou 5 fps.
Estrutura de exemplo do IMU
Se os dados do IMU forem extraídos do arquivo sem usar a API de reprodução, os dados estarão em formato binário. A estrutura dos dados do IMU está descrita abaixo. Todos os campos são little-endian.
Campo | Tipo |
---|---|
Carimbo de data/hora do acelerômetro (μs) | uint64 |
Dados do acelerômetro (x, y, z) | float[3] |
Carimbo de data/hora do giroscópio (μs) | uint64 |
Dados do giroscópio (x, y, z) | float[3] |
Identificar faixas
Pode ser necessário identificar qual faixa contém cor, profundidade, IR e assim por diante. Você precisa identificar as faixas ao trabalhar com ferramentas de terceiros para ler um arquivo Matroska. Os números de faixa variam com base no modo de câmera e no conjunto de faixas habilitadas. As marcas são usadas para identificar o significado de cada faixa.
A lista de marcas abaixo é anexada a um elemento Matroska específico e pode ser usada para pesquisar a faixa ou o anexo correspondente.
Essas marcas são visíveis com ferramentas como ffmpeg
e mkvinfo
.
A lista completa de marcas está listada na página Gravar e Reproduzir.
Nome da marca | Destino da marca | Valor da marca |
---|---|---|
K4A_COLOR_TRACK | Faixa de cores | UID da faixa do Matroska |
K4A_DEPTH_TRACK | Faixa de profundidade | UID da faixa do Matroska |
K4A_IR_TRACK | Faixa do IR | UID da faixa do Matroska |
K4A_IMU_TRACK | Faixa do IMU | UID da faixa do Matroska |
K4A_CALIBRATION_FILE | Anexo de calibragem | Nome do arquivo do anexo |