Calcular parâmetros da câmera e HandEyeCalibration

8

Estou tentando portar um projeto antigo de Realidade Aumentada, que é baseado na estrutura do metaio para um outro HMD transparente.

Porque o metaio é comprado pela Apple, a documentação disponível e o suporte são muito limitados e esse novo HMD não é compatível com a versão inicial.

Tudo já está funcionando, além da calibração da câmera / calibração do olho da mão.

Eu já calculei uma matriz de projeção P (usando SPAAM ) que transforma pontos no sistema de coordenadas da câmera em a tela (testado pela renderização personalizada). Infelizmente, não consigo definir a matriz de projeção diretamente no metaio, mas preciso definir separadamente os parâmetros da câmera e a calibração do Hand Eye para renderização.

Por isso, extraí os parâmetros de câmera extrínseca e intrínseca da matriz de projeção P, conforme descrito aqui .

Mas esses não estão funcionando corretamente quando definidos. O resultado parece não estar completamente errado, porque a escala renderizada parece estar correta e a distância medida manualmente entre a câmera e o olho é de cerca de 126mm (translação no eixo x).

Matriz de projeção P:

Intrínsecos(resolução:1280x720):

Extrínsecos(hec?):

Acho que estou perdendo alguns passos adicionais dos quais não conheço. Eu aprecio todas as ideias e ajuda.

Informações adicionais:

  • o metaio está usando sistemas de coordenadas destros com a câmera olhando para o eixo z negativo, x para a direita e y para cima
  • documentioion metaio para estados de calibração de olho de mão: Transformação de coordenadas de câmera para olho (display)
  • Como a parte de tradução de HEC no eixo x tem que ser positiva (a câmera está no lado direito do HMD), eu presumo que a transformação é especificada do olho para a câmera?
por user2479595 06.03.2017 в 12:04
fonte

1 resposta

2

O Metaio inverte automaticamente suas matrizes para você? Porque se isso não acontecer, isso pode ser o seu problema. Como y = 0 está no topo da tela em computação gráfica, muitos desses aplicativos de processamento de imagem / câmera vêm com uma opção para inverter a matriz de transformação para você. Se não, você pode querer apenas inverter manualmente sua matriz de transformação para ver se isso funciona.

    
por Rbit 14.03.2017 / 22:50
fonte