Open Source Robotics

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

Open-Vocabulary Detection

  • Também chamado: open-vocabulary object detection, OVD
  • Categoria: Sensing › Perception outputs
  • Tags: object-detection, vision-language, computer-vision, perception, zero-shot

Detecção de objetos que encontra objetos descritos por consultas de texto arbitrárias, incluindo categorias nunca rotuladas durante o treinamento, comparando regiões da imagem com embeddings de linguagem.

Definição

Um detector convencional treinado em um conjunto fixo de rótulos só consegue gerar esses rótulos. A detecção de vocabulário aberto (open-vocabulary detection) substitui o classificador fixo por uma comparação entre as features das regiões e os embeddings de texto: no momento da consulta, o usuário fornece nomes de classes ou frases, um codificador de texto os transforma em vetores e cada região candidata é pontuada pela sua similaridade com cada consulta. Como o espaço de rótulos é definido por texto e não por um conjunto fixo de unidades de saída, novas categorias podem ser consultadas sem retreinar, e os rótulos usados no teste podem diferir dos vistos no treinamento.

A capacidade de reconhecer categorias que não têm anotações de caixas vem do pré-treinamento imagem-texto em larga escala. Modelos como o CLIP aprendem embeddings de imagem e de texto alinhados a partir de pares imagem–legenda, e os detectores de vocabulário aberto levam esse alinhamento até as regiões: destilando features do CLIP em um detector (ViLD), acoplando cabeças de detecção a um transformador de visão-linguagem pré-treinado (OWL-ViT) ou treinando com dados de grounding que ligam frases a caixas (GLIP, Grounding DINO). O termo nesse sentido vem do trabalho de Zareian e colegas em 2021. A mesma ideia se estende à segmentação e ao 3D: a detecção de affordances de vocabulário aberto rotula os pontos de uma nuvem de pontos com nomes de affordances em forma livre, comparando as features de cada ponto com embeddings de texto.

A detecção de vocabulário aberto é distinta de dois cenários relacionados. A detecção zero-shot geralmente treina em um conjunto de classes vistas e testa em um conjunto disjunto de classes não vistas, muitas vezes sem um grande pré-treinamento imagem-texto. A detecção de conjunto aberto (open-set detection) busca sinalizar como desconhecidos os objetos que não estão nas classes conhecidas, sem nomeá-los. Na robótica, detectores de vocabulário aberto permitem que um sistema aja com base em instruções que nomeiam objetos arbitrários; o VoxPoser, por exemplo, usa um para localizar os objetos mencionados no código gerado por um modelo de linguagem antes de construir seus mapas de valor 3D.

Por que importa

Os robôs recebem instruções em linguagem natural que nomeiam objetos que nenhum conjunto fixo de rótulos previu. A detecção de vocabulário aberto permite que um robô encontre esses objetos sem coletar e anotar novos dados de treinamento para cada um, e é isso que torna a manipulação guiada por linguagem prática fora de um conjunto fixo de objetos.

Principais aplicações

  • Manipulação condicionada por linguagem a partir de instruções em linguagem natural
  • Busca de objetos para robôs móveis em espaços não estruturados
  • Construção de mapas semânticos que podem ser consultados com texto
  • Rotulagem de affordances em nuvens de pontos 3D
  • Rotulagem automática de conjuntos de dados de robôs

Na prática

Um manipulador móvel recebe a instrução de colocar a esponja azul na pia. Um parser extrai as frases "esponja azul" e "pia", e um detector de vocabulário aberto roda sobre a imagem RGB atual com essas consultas. As caixas retornadas são passadas a um modelo de segmentação, e as máscaras são projetadas em 3D com a imagem de profundidade para gerar nuvens de pontos para o planejamento da preensão e do posicionamento. A equipe define limiares de pontuação por consulta em vez de um único limiar global, porque as pontuações de similaridade variam com a redação, e confirma as detecções ao longo de vários quadros antes de agir.

Equívocos comuns

  • Vocabulário aberto significa que qualquer objeto é detectado de forma confiável — a precisão ainda cai para categorias raras, pequenas ou descritas de forma incomum, e os resultados dependem da redação da consulta
  • Detecção de vocabulário aberto é o mesmo que detecção de conjunto aberto — métodos de conjunto aberto sinalizam objetos desconhecidos como desconhecidos, enquanto métodos de vocabulário aberto os nomeiam a partir de consultas de texto
  • As pontuações são comparáveis entre consultas — as pontuações de similaridade não são calibradas entre frases, então um único limiar para todas as consultas costuma funcionar mal

Quem deve saber

  • Engenheiros de percepção que constroem pipelines de detecção para robôs
  • Pesquisadores de aprendizado robótico que trabalham com políticas condicionadas por linguagem
  • Desenvolvedores de manipulação móvel
  • Pesquisadores que constroem mapas semânticos

Tecnologias relacionadas

  • CLIP
  • OWL-ViT
  • Grounding DINO
  • GLIP
  • ViLD
  • Segment Anything (SAM)

Termos relacionados

  • VLM
  • Foundation Model
  • Affordance
  • Task-Oriented Grasping
  • Point Cloud
  • RGB Camera

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
  • pySLAM: Hybrid Python/C++ visual SLAM pipeline with classic and deep-learning front-ends
  • OpenMind OM1: AI-native operating system for robots with modular perception, cognition, and action
  • DreamZero: NVIDIA World Action Model that jointly predicts future video and robot actions
  • AprilTag: The standard visual fiducial marker system for robot localization and pose estimation

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