Interpretação do artigo – FlowNet3D: aprendendo fluxo de cena em nuvens de pontos 3D
Referências :
1. FlowNet3D: Learning Scene Flow in 3D Point Clouds study notes (CVPR2019)
2. FlowNet3D paper reading
3. FlowNet3D paper study notes
4. "FlowNet3D"
1. Resumo
Muitas aplicações em robótica e tecnologia de interação humano-computador se beneficiam da compreensão do movimento 3D em ambientes dinâmicos, amplamente conhecidos como 场景流
. Embora a maioria dos métodos anteriores tenha se concentrado em visão estéreo e imagens RGB-D, tomando-as como entrada, poucos tentaram estimar o fluxo da cena diretamente das nuvens de pontos. Neste trabalho, propomos uma nova rede neural profunda chamada FlowNet3D, que 端到端
aprende fluxo de cena de nuvens de pontos de uma maneira. Nossa rede aprende simultaneamente recursos hierárquicos profundos de nuvens de pontos e incorporações de fluxo que representam o movimento da nuvem de pontos, apoiados por duas novas camadas de aprendizado propostas para nuvens de pontos. Avaliamos a rede em FlyingThings3D
dados sintéticos desafiadores e KITTI
varreduras lidar reais de . Treinando apenas com dados sintéticos, generalizamos com sucesso para dados lidar reais, superando vários algoritmos de linha de base e mostrando resultados comparáveis ao estado da arte. Também demonstramos duas aplicações de saída de streaming de cena (registro de nuvem de pontos e segmentação de movimento) para demonstrar seu potencial de ampla aplicação.
2. Introdução
Propomos uma FlowNet3D
nova rede chamada , que permite a estimativa de fluxo de cena fim-a-fim para um par de nuvens consecutivas de pontos de quadro.
Apresentamos duas novas camadas de aprendizado em nuvens de pontos:
- Camada de mapeamento do vetor de fluxo (incorporação de fluxo): aprenda a associar dois quadros de nuvens de pontos e forneça recursos de incorporação de fluxo
- configurar camada conv: Estenda o vetor de recurso de um conjunto de pontos para outro conjunto de pontos (para aumentar a resolução para obter todos os dados de fluxo da cena da nuvem de pontos)
Mostramos como usar o FlowNet3D proposto, treinado com um conjunto de dados sintético de grande escala (FlyingThings3D), e aplicá-lo no conjunto de dados de nuvem de pontos reais do KITTI. Em comparação com os métodos tradicionais, grandes melhorias foram alcançadas na estimativa de fluxo de cena 3D.
3. Descrição do problema
Amostrou dinamicamente dois conjuntos de cenas de nuvens de pontos 3D, em dois períodos de tempo consecutivos: P = {xi|i =1, . . . , n1} (nuvem de pontos 1) e Q = {yj|j = 1, . . . , n2}(nuvem de pontos 2), onde xi, yj ∈ R3 são as coordenadas XYZ da nuvem de pontos. Observe que, devido ao movimento do objeto e às mudanças no ângulo de visão, as duas nuvens de pontos não têm necessariamente o mesmo número de pontos ou qualquer correspondência entre seus pontos.
Agora considere que uma coordenada de ponto real amostrada xi se move para a posição x′ i no segundo quadro, então o vetor de movimento translacional deste ponto é di = x′ i - xi. Nosso objetivo é, 给定点云 P 和 Q,恢复第一帧中的每一个采样点的场景流:D = {di|i = 1, . . . , n1}
.
4. Estrutura da rede
Nesta seção, apresentamos o FlowNet3D, uma rede de estimativa de fluxo de cena de ponta a ponta baseada em nuvens de pontos. O modelo tem três módulos principais, que são usados para:
- (1) Aprendizado de recurso de nuvem de pontos
- (2) Mistura de informações de nuvem de pontos
- (3) Upsampling de fluxo de nuvem de pontos
Esses módulos contêm três camadas principais de processamento de nuvem de pontos profundos: camada de configuração de conv, camada de incorporação de fluxo e camada de configuração de upconv.
4.1 Aprendizado hierárquico de recursos da nuvem de pontos
definir abstração = amostragem + agrupamento + rede de pontos
Como uma nuvem de pontos é uma coleção de pontos irregulares e desordenados, a convolução tradicional não é adequada. Portanto, seguimos a arquitetura PointNet++ proposta recentemente, uma rede que aprende recursos hierarquicamente com invariância de tradução. Embora a camada conv esteja configurada para classificação e segmentação 3D, descobrimos que sua camada de aprendizado de recursos também é muito vantajosa para tarefas de fluxo de cena.
Essa camada primeiro amostra a nuvem de pontos de entrada na distância mais distante para obter n' regiões (o centro da região é x′j), depois agrupa cada região (vizinhança especificada pelo raio r) e, finalmente, usa uma função simétrica para extrair sua característica local.
4.2 Mistura de informações de nuvens de pontos
Nuvem de pontos, você não tem como saber qual ponto é o ponto de amostragem do quadro anterior ao próximo quadro, e mesmo pela dispersão de coleta e oclusão, pode não haver nenhum ponto com a mesma semântica no próximo quadro, então é difícil encontrar o ponto real correspondente. Assim, o autor propôs utilizá-lo 软策略
, ou seja, encontrar alguns pontos semelhantes, e utilizar 投票
o método para estimar o fluxo da cena.
4.3 Upsampling da Nuvem de Pontos
Apresente a camada set upconv para aumentar a amostra do resultado e converta as informações de movimento de alguns pontos em toda a nuvem de pontos.
Essa camada amostra os pontos na camada de incorporação de fluxo de volta ao número original de redes de entrada e cada saída representa o fluxo de cena do ponto.