Scene Graph
Um grafo de cena é uma representação visual de objetos, atributos e relações que dá suporte ao raciocínio, à busca de imagens e à robótica.
Um grafo de cena é uma representação estruturada de uma cena visual na qual os nós representam objetos, os atributos descrevem suas propriedades e as arestas rotuladas descrevem as relações entre eles. Ele transforma uma imagem em fatos conectados: quais objetos aparecem, como são e como interagem. Em visão computacional, essa estrutura dá suporte ao raciocínio sobre uma cena para além do reconhecimento de objetos individuais.
Justin Johnson, Ranjay Krishna e colegas introduziram a formulação moderna fundamentada em imagens em seu trabalho de 2015 sobre recuperação de imagens usando grafos de cena. A representação incluía objetos como um homem e um barco, a cor branca do barco e a relação "homem em pé no barco", possibilitando buscas que especificam relações, além das categorias dos objetos.
Objetos, atributos e relações#
Cada nó identifica uma instância de objeto. Dois cavalos em uma imagem recebem identidades distintas, mesmo que os rótulos de categoria sejam iguais. Uma caixa delimitadora localiza cada instância, fornecendo o ancoramento: uma conexão entre um objeto simbólico e sua região na imagem. Os atributos associam propriedades, como cor ou material, a essa instância. As relações conectam duas instâncias por meio de um predicado, o rótulo que descreve a conexão entre elas. A tripla resultante sujeito–predicado–objeto expressa um fato relacional.
O conjunto de dados Visual Genome, desenvolvido por Ranjay Krishna e colaboradores, contém 108.077 imagens com anotações visuais estruturadas. Grafos de cena são formas específicas de imagens de um grafo de conhecimento. Suas relações semânticas permitem múltiplas conexões entre objetos e componentes desconectados, portanto, um grafo de cena de uma imagem não exige um nó raiz.
O exemplo de grafo de cena do driver Python do Visual Genome inclui "cavalo está usando cabeçada" e "janela está ao lado da porta". Essas anotações podem ser representadas com um grafo direcionado usando NetworkX, instalado com pip install networkx:
import networkx as nx
graph = nx.MultiDiGraph()
graph.add_node("horse", label="horse")
graph.add_node("bridle", label="bridle")
graph.add_node("window", label="window")
graph.add_node("door", label="door")
graph.add_edge("horse", "bridle", predicate="is wearing")
graph.add_edge("window", "door", predicate="is next to")
for subject, obj, relation in graph.edges(data=True):
print(f"{subject} -> {relation['predicate']} -> {obj}")A saída expõe dois fatos relacionais consultáveis, com cada predicado associado à sua aresta direcionada.
Como funciona a geração de grafos de cena#
A geração de grafos de cena, abreviada como SGG, prevê essa representação a partir de uma entrada visual. Um pipeline típico combina detecção de objetos, extração de características e classificação de relações. As características dos objetos descrevem regiões individuais; as características pareadas descrevem interações candidatas. Modelos de contexto, como o MotifNet, usam os objetos ao redor para ajudar a prever relações. Redes neurais de grafos também podem trocar informações entre objetos conectados, produzindo embeddings que codificam o contexto relacional.
O Ultralytics YOLO YOLO26 fornece as instâncias de objetos para esse pipeline por meio de suas saídas de detecção: caixas, rótulos de classe e pontuações de confiança. Um modelo de relações subsequente usa essas instâncias para prever arestas como "usando" ou "em pé sobre".
Aplicações em raciocínio visual e robótica#
Relações explícitas dão suporte a tarefas que exigem entender como os objetos se encaixam:
- Perguntas e respostas visuais: O GQA usa grafos de cena derivados do Visual Genome para gerar perguntas e programas de raciocínio funcional. Percorrer as relações entre objetos dá suporte ao raciocínio visual, incluindo identificar objetos por seus atributos e conexões.
- Robótica: O Kimera constrói grafos de cena dinâmicos em 3D a partir de dados visuais-inerciais. Sua representação em camadas conecta objetos, pessoas, salas e edifícios, dando suporte ao mapeamento semântico e ao planejamento hierárquico de caminhos. Coordenadas espaciais e tempo ampliam a representação para além de uma única imagem.
- Geração de imagens: O sistema de geração de imagens a partir de grafos de cena de Justin Johnson, Agrim Gupta e Li Fei-Fei converte grafos em layouts de objetos, prevê caixas e máscaras de segmentação e gera uma imagem com base nesse layout. O grafo especifica tanto o conteúdo quanto as relações da cena.
Avaliação e erros nas relações#
A avaliação de grafos de cena costuma separar três tarefas. A classificação de predicados fornece caixas e rótulos de objetos e avalia as relações previstas. A classificação de grafos de cena fornece caixas e exige rótulos de objetos e relações. A detecção de grafos de cena exige o grafo completo a partir da imagem. Essa separação identifica se os erros têm origem na localização, no reconhecimento de objetos ou na previsão de relações.
As frequências das relações criam viés de conjunto de dados: predicados frequentes dominam as previsões, enquanto relações raras e informativas passam despercebidas. Recall@K mede a fração de relações anotadas recuperadas entre as K previsões com as maiores classificações. Mean Recall@K calcula a revocação separadamente para cada categoria de predicado e calcula a média desses valores, dando aos predicados raros o mesmo peso por categoria que aos frequentes.










