Open Source Robotics

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

Range Image

  • Também chamado: range view, spherical range image
  • Categoria: Sensing › Perception outputs
  • Tags: lidar, 3d-perception, semantic-segmentation, point-cloud, data-representation

Uma imagem 2D de uma varredura 3D de distâncias em que cada pixel armazena a distância medida ao longo de uma direção de feixe, dando à varredura uma grade de imagem para processamento rápido.

Definição

Imagem de distância (range image) armazena uma varredura 3D como uma matriz 2D em que cada pixel corresponde a uma direção de observação e guarda a distância medida ao longo dela. Em um LiDAR giratório de múltiplos feixes, as linhas geralmente correspondem aos feixes de laser, ou ângulos de elevação, e as colunas aos ângulos de azimute ao longo da rotação, de modo que cada ponto é posicionado por uma projeção esférica de sua direção. Canais extras costumam guardar as coordenadas x, y e z, a intensidade do retorno e uma máscara de validade.

O arranjo em imagem torna baratas as relações de vizinhança. Pontos próximos na imagem geralmente estão próximos no espaço, então normais, bordas, segmentação do solo e agrupamento podem ser calculados com operações de imagem simples em vez de buscas de vizinhos mais próximos em 3D. Ele também permite que redes convolucionais 2D padrão processem dados de LiDAR: redes como SqueezeSeg e RangeNet++ rotulam cada pixel, e os rótulos são depois projetados de volta para os pontos 3D. O SuMa e o SuMa++ usam imagens de distância por outro motivo: renderizam o mapa de surfels no mesmo arranjo de imagem para que novas varreduras possam ser associadas ao mapa pela posição do pixel.

A projeção tem custos. Quando vários pontos caem em um mesmo pixel, apenas um, geralmente o mais próximo, é mantido, de modo que alguns pontos precisam ser rotulados depois a partir de seus vizinhos. Pixels sem retorno, vindos do céu, de vidro ou de superfícies absorventes, precisam de máscara. Nas bordas dos objetos, os vizinhos de um pixel podem estar em superfícies muito distantes em profundidade, o que faz os rótulos vazarem entre o primeiro plano e o fundo; o RangeNet++ acrescenta uma limpeza por k vizinhos mais próximos em 3D para reduzir isso. Uma imagem de distância difere de uma imagem de profundidade de câmera na projeção e no valor: uma câmera de profundidade usa uma projeção pinhole e geralmente armazena a distância ao longo do eixo óptico, enquanto uma imagem de distância de LiDAR usa coordenadas angulares e armazena a distância ao longo de cada feixe.

Por que importa

As imagens de distância transformam nuvens de pontos de LiDAR esparsas e desordenadas em uma grade densa que algoritmos de imagem rápidos e redes convolucionais conseguem processar. Muitos pipelines de segmentação, odometria e compressão de LiDAR em tempo real dependem delas.

Principais aplicações

  • Segmentação semântica de varreduras de LiDAR com redes 2D
  • Associação de dados projetiva em SLAM LiDAR
  • Remoção do solo e agrupamento de obstáculos
  • Estimativa de normais e bordas para as características da odometria LiDAR
  • Compressão e armazenamento de dados de LiDAR

Na prática

Uma equipe de direção autônoma precisa rotular em tempo real cada ponto de LiDAR como via, carro, pedestre ou vegetação. Ela projeta cada varredura em uma imagem de distância com uma linha por laser e um número fixo de colunas, armazenando distância, x, y, z e intensidade em cinco canais. Uma rede de segmentação 2D prevê uma classe por pixel, os rótulos são projetados de volta para os pontos, e uma votação por vizinhos mais próximos em 3D corrige os pontos que a projeção descartou ou que foram rotulados errado nas bordas dos objetos. A mesma imagem de distância é reutilizada mais adiante no pipeline para a remoção do solo e para agrupar obstáculos por regiões de pixels conectados.

Equívocos comuns

  • Uma imagem de distância é o mesmo que uma imagem de profundidade de câmera — a projeção é angular em vez de pinhole, e os pixels armazenam a distância ao longo do feixe em vez de ao longo do eixo óptico
  • A projeção mantém todos os pontos — os pontos que compartilham um pixel são descartados, então os rótulos precisam ser propagados de volta para eles
  • Pixels vizinhos são sempre superfícies vizinhas — nas descontinuidades de profundidade, pixels adjacentes podem estar muito distantes, o que faz os rótulos vazarem
  • Imagens de distância só servem para LiDARs giratórios — qualquer sensor com uma grade regular de direções de feixe, incluindo alguns LiDARs de estado sólido, pode ser armazenado dessa forma

Quem deve saber

  • Engenheiros de percepção com LiDAR
  • Equipes de segmentação para direção autônoma
  • Desenvolvedores de SLAM e de odometria
  • Engenheiros de aprendizado de máquina que trabalham com dados 3D

Tecnologias relacionadas

  • RangeNet++
  • SqueezeSeg
  • Projeção esférica (Spherical Projection)
  • Projeção em vista de cima (Bird's-Eye-View Projection)
  • Semantic KITTI

Termos relacionados

  • LIDAR
  • Point Cloud
  • Depth Camera
  • Surfel
  • LiDAR Odometry
  • Semantic Map

Projetos relacionados

  • Open3D: Modern library for 3D point cloud processing, mesh operations, and 3D machine learning
  • oomwoo: Open-source DIY robot vacuum: 3D-printed, ROS2 + 2D LiDAR, fully local.
  • PCL: Industry-standard C++ library for point cloud processing in robotics perception
  • Cartographer: Google's real-time 2D and 3D SLAM system for multi-platform robotics
  • OpenDroneMap: Open-source photogrammetry toolkit that turns drone images into maps and 3D models
  • FAST-LIVO2: Fast, direct LiDAR-inertial-visual odometry from HKU-MARS, published in IEEE T-RO

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