Criar um melhor software de visualização de nuvens de pontos para obter informações mais inteligentes
Permitindo a visualização de dados densos
Equipa de visualização em Engenharia
Nos últimos dois anos, a nossa equipa de engenharia de visualização tem vindo a desenvolver software para fornecer informações a partir dos dados recolhidos pela Hovermap. Os dados densos recolhidos e as suas numerosas aplicações levaram à necessidade de uma ferramenta de visualização de nuvens de pontos que deve cumprir muitos requisitos técnicos para maximizar a experiência do utilizador para os clientes Hovermap . Esta série de artigos aprofunda as áreas de consideração e as soluções inovadoras que foram desenvolvidas para fornecer o software de visualização da Emesent.
A equipa de engenharia de visualização começou a criar uma aplicação de visualização utilizando o Unreal Engine, uma ferramenta de desenvolvimento 3D utilizada em jogos 3D , arquitetura e software de engenharia. Esta inclui um plug-in LiDAR Point Cloud que podemos utilizar para apresentar as nossas nuvens de pontos. Este plug-in utiliza o Octree Spatial Partitioning em combinação com um orçamento de pontos para escolher os melhores pontos a apresentar de entre todos os pontos das nuvens. O orçamento de pontos limita os pontos apresentados ao que o renderizador ou a unidade de processamento gráfico (GPU) pode suportar.
Uma das vantagens de seguir este caminho é que, mesmo quando exploramos milhares de milhões de pontos, apenas estamos a renderizar o subconjunto mais pequeno de pontos atualmente na janela de visualização e, mesmo assim, apenas os visualmente mais relevantes. Assim, podemos manter uma taxa de quadros altamente interativa enquanto exploramos esses dados.
A desvantagem desta técnica é que só estamos a explorar os dados que o algoritmo está a decidir que são relevantes ou importantes. Quanto mais baixo for o orçamento de pontos, mais estas decisões algorítmicas afectam o resultado final. Há formas de contornar este problema, por exemplo, utilizando um tamanho de ponto maior para misturar pontos em superfícies. No entanto, trata-se essencialmente de dados sintéticos e não "reais".
Isto não é necessário para os dados Hovermap , uma vez que produz nuvens de pontos muito densas, e o detalhe está lá sem necessidade de ser sintetizado. Por isso, desde o início do projeto, temos vindo a alargar o plugin para dar resposta aos nossos dados densos.
Uma das nossas primeiras extensões foi adicionar suporte para os atributos de ponto que são produzidos pelo nosso software de processamento SLAM . Incluímos suporte para a apresentação de atributos de intensidade, tempo, número de anéis, alcance e cor real.
Outra era maximizar o nosso orçamento de renderização de um único fotograma para 100 milhões de pontos - muito para além do que vinha na caixa do Unreal.
Digitalização Hovermap antes da Renderização Multi-Frame da Emesent.
O Multi-Frame Rendering na aplicação de visualização da Emesentpermitirá aos utilizadores explorar rapidamente conjuntos de dados Hovermap com milhares de milhões de pontos.
Mas isso não satisfazia os requisitos. Hovermap capta conjuntos de dados com milhares e milhares de milhões de pontos, pelo que precisávamos de uma abordagem diferente para o nosso resultado final.
Para permitir uma renderização de quadro completo de todos os pontos, desenvolvemos um sistema que chamamos de renderização de vários quadros. Com este conceito, modificámos o renderizador para construir a imagem em vários fotogramas GPU. Para o aplicar, o algoritmo começa por percorrer a octree à procura dos nós visualmente mais relevantes (colecções de pontos), que são marcados e depois renderizados. Em seguida, o algoritmo percorre novamente a octree e procura os próximos nós visualmente mais relevantes que ainda não tenham sido renderizados. Este processo repete-se até não restarem mais pontos.
Cada fotograma é composto utilizando a profundidade para construir um fotograma final de todos os pontos, sejam eles mil milhões ou 10 mil milhões. Podemos ver nestas imagens que a densidade dos dados Hovermap é espantosa, e podemos mostrá-la agora no nosso Viewer. Os tempos de renderização são afectados pelo orçamento de pontos e pelo hardware de renderização, mas é tudo muito rápido, e a renderização multiquadros pode renderizar um bilião de pontos num par de segundos.
Esta abordagem permitirá aos nossos utilizadores explorar rapidamente os conjuntos de dados Hovermap que contêm milhares de milhões de pontos e apresentar rapidamente imagens de qualidade total que representam os dados reais que foram capturados sem qualquer compromisso.
No artigo seguinte desta série, veremos como construir a interface do utilizador, por isso siga-nos no LinkedIn para ver quando está disponível.