Open Source Robotics

Uma coleção selecionada de projetos, ferramentas e software de robótica de código aberto de alta qualidade.

Farthest Point Sampling

  • Também chamado: FPS, furthest point sampling
  • Categoria: Sensing › Perception outputs
  • Tags: point-cloud, sampling, 3d-perception, preprocessing, deep-learning

Um método guloso para escolher um número fixo de pontos de uma nuvem de pontos de modo que eles se espalhem uniformemente sobre a forma, escolhendo repetidamente o ponto mais distante dos já escolhidos.

Definição

Amostragem do ponto mais distante (farthest point sampling, FPS) seleciona um subconjunto de M pontos a partir de um conjunto de N. Ela começa por um ponto, escolhido ao acaso ou fixo, e a cada passo acrescenta o ponto cuja distância ao ponto já selecionado mais próximo é a maior. Uma implementação guarda, para cada ponto de entrada, sua distância ao ponto selecionado mais próximo e atualiza esse valor após cada adição, então o custo cresce com N vezes M. O resultado cobre a forma inteira de modo uniforme, qualquer que seja a densidade da amostragem original. A mesma regra gulosa é a clássica 2-aproximação para o problema de agrupamento k-centro, dada por Gonzalez em 1985.

No aprendizado profundo com nuvens de pontos, a FPS ganhou destaque com o PointNet++, que a usa para escolher os centros das vizinhanças locais em cada camada, e muitas redes posteriores a usam para subamostrar as nuvens de entrada para um tamanho fixo antes da inferência. Em comparação com a amostragem aleatória, que segue a densidade da entrada e pode perder partes finas ou pouco observadas, a FPS mantém a cobertura do objeto inteiro. Em comparação com a subamostragem por grade de voxels, ela retorna um número exato de pontos, que é o que redes com tamanhos de entrada fixos precisam.

A FPS tem contrapartidas. Ela favorece deliberadamente os outliers: um ponto de ruído isolado fica longe de todo o resto e é escolhido cedo, por isso as nuvens normalmente são filtradas antes. O procedimento é sequencial, o que o torna lento em nuvens muito grandes; implementações em GPU paralelizam as atualizações de distância dentro de cada passo, e variantes aproximadas trabalham sobre partições espaciais. O resultado depende do ponto de partida e, em malhas, variantes geodésicas medem a distância ao longo da superfície em vez de em linha reta.

Por que importa

Redes para nuvens de pontos precisam de entradas de tamanho fixo, e sensores de profundidade produzem muito mais pontos do que elas conseguem processar. Cobertura uniforme significa que partes pequenas mas importantes, como alças, bordas e bicos, sobrevivem à subamostragem, o que importa para a predição de preensão e de affordances.

Principais aplicações

  • Pré-processamento de nuvens de pontos para um tamanho fixo para redes neurais
  • Escolha dos centros de vizinhança em redes hierárquicas de pontos
  • Subamostragem de nuvens antes de calcular a distância de Chamfer ou a Earth mover's distance
  • Seleção de um conjunto espalhado de pontos candidatos de preensão ou de contato
  • Escolha de pontos-chave ou amostras diversos para cobertura

Na prática

Uma câmera de profundidade sobre uma bancada produz várias centenas de milhares de pontos por quadro. O pipeline recorta a área de trabalho, remove outliers estatísticos, faz subamostragem por voxels para reduzir o trabalho e então roda a FPS para obter exatamente o número de pontos com que a rede foi treinada, por exemplo 2048. A equipe usa o mesmo procedimento de amostragem no treinamento e no robô, porque uma rede treinada com nuvens amostradas por FPS vê uma distribuição de pontos diferente da de uma treinada com amostras aleatórias.

Equívocos comuns

  • A FPS dá uma amostra aleatória uniforme — ela é determinística depois que o ponto de partida é fixado, e espalha os pontos uniformemente no espaço em vez de amostrar ao acaso
  • A FPS é robusta a ruído — outliers ficam longe de todo o resto e são selecionados cedo, por isso as nuvens normalmente são filtradas antes
  • A FPS preserva a informação de densidade da varredura — ela iguala deliberadamente a densidade, o que ajuda a cobertura, mas remove a pista de onde o sensor viu mais pontos

Quem deve saber

  • Engenheiros de percepção 3D
  • Pesquisadores de machine learning que trabalham com redes para nuvens de pontos
  • Engenheiros de manipulação que usam políticas baseadas em nuvens de pontos

Tecnologias relacionadas

  • PointNet++
  • Subamostragem por grade de voxels (Voxel Grid Downsampling)
  • Amostragem aleatória (Random Sampling)
  • Agrupamento k-centro (k-Center Clustering)
  • Amostragem de disco de Poisson (Poisson Disk Sampling)
  • Open3D

Termos relacionados

  • Point Cloud
  • Chamfer Distance
  • Octree
  • Depth Camera
  • Open-Vocabulary Detection

Projetos relacionados

  • Open3D: Modern library for 3D point cloud processing, mesh operations, and 3D machine learning
  • PCL: Industry-standard C++ library for point cloud processing in robotics perception
  • OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
  • pySLAM: Hybrid Python/C++ visual SLAM pipeline with classic and deep-learning front-ends
  • LeGO-LOAM: Classic lightweight, ground-optimized lidar odometry and mapping baseline (IROS 2018)
  • libpointmatcher: Modular ICP library for 2D/3D point cloud registration and mapping

Este site requer JavaScript. Por favor, habilite o JavaScript para explorar nossos projetos de robótica.