Usar o SDK do Sensor Kinect do Azure para gravar o formato de arquivo
Para gravar dados do sensor, o formato de contêiner Matroska (.mkv) é usado, o 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 IR e IMU.
Detalhes de baixo nível do formato de contêiner .mkv podem ser encontrados no site da Matroska.
Nome da faixa | Formato Codec |
---|---|
COR | Dependente do modo (MJPEG, NV12 ou YUY2) |
PROFUNDIDADE | b16g (escala de cinza de 16 bits, Big-endian) |
IR | b16g (escala de cinza de 16 bits, Big-endian) |
IMU | Estrutura personalizada, consulte Estrutura de exemplo da IMU abaixo. |
Utilização de ferramentas de terceiros
Ferramentas como ffmpeg
ou o mkvinfo
comando do kit de ferramentas MKVToolNix podem ser usadas para visualizar e extrair informações de arquivos de gravação.
Por exemplo, o comando a seguir 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 -map 0:1
parâmetro irá extrair o índice de faixa 1, que para a maioria das gravações será profundidade. Se a gravação não contiver uma faixa colorida, -map 0:0
será usada.
O -vsync 0
parâmetro força o ffmpeg a extrair quadros como estão, em vez de tentar corresponder a uma taxa de quadros de 30 fps, 15 fps ou 5 fps.
Estrutura da amostra da IMU
Se os dados 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 da IMU é a seguinte. Todos os campos são little-endian.
Campo | Type |
---|---|
Carimbo de data/hora do acelerômetro (μs) | UINT64 |
Dados do acelerômetro (x, y, z) | flutuar[3] |
Carimbo de data/hora do giroscópio (μs) | UINT64 |
Dados do giroscópio (x, y, z) | flutuar[3] |
Identificação de faixas
Pode ser necessário identificar qual faixa contém Cor, Profundidade, IR e assim por diante. Identificar as faixas é necessário ao trabalhar com ferramentas de terceiros para ler um arquivo Matroska. Os números das faixas variam de acordo com o modo de câmara e o conjunto de faixas ativadas. As tags são usadas para identificar o significado de cada faixa.
A lista de tags abaixo está cada uma anexada a um elemento Matroska específico, e pode ser usada para procurar a faixa ou anexo correspondente.
Essas tags podem ser visualizadas com ferramentas como ffmpeg
e mkvinfo
.
A lista completa de tags está listada na página Gravar e Reproduzir .
Nome do Sinalizador | Alvo da tag | Valor da tag |
---|---|---|
K4A_COLOR_TRACK | Faixa de cores | Matroska Track UID |
K4A_DEPTH_TRACK | Trilha de profundidade | Matroska Track UID |
K4A_IR_TRACK | Trilha IR | Matroska Track UID |
K4A_IMU_TRACK | Pista IMU | Matroska Track UID |
K4A_CALIBRATION_FILE | Acessório de calibração | Nome do ficheiro do anexo |