Scene Graph
Un grafo de escena es una representación visual de objetos, atributos y relaciones que permite razonar, buscar imágenes y desarrollar aplicaciones de robótica.
Un grafo de escena es una representación estructurada de una escena visual en la que los nodos representan objetos, los atributos describen sus propiedades y las aristas etiquetadas describen las relaciones entre ellos. Convierte una imagen en hechos conectados: qué objetos aparecen, cómo son y cómo interactúan. En visión artificial, esta estructura permite razonar sobre una escena más allá de reconocer objetos individuales.
Justin Johnson, Ranjay Krishna y sus colaboradores introdujeron la formulación moderna basada en imágenes en su trabajo de 2015 sobre la recuperación de imágenes mediante grafos de escena. Su representación incluía objetos como un hombre y un barco, el color blanco del barco y la relación «hombre de pie sobre barco», lo que permitía realizar búsquedas que especificaban tanto las relaciones como las categorías de los objetos.
Objetos, atributos y relaciones#
Cada nodo identifica una instancia de objeto. Dos caballos en una misma imagen reciben identidades distintas, aunque sus etiquetas de categoría coincidan. Un cuadro delimitador localiza cada instancia y proporciona anclaje: una conexión entre un objeto simbólico y la región de la imagen que ocupa. Los atributos asignan propiedades, como el color o el material, a esa instancia. Las relaciones conectan dos instancias mediante un predicado, la etiqueta que describe su conexión. La terna resultante sujeto-predicado-objeto expresa un hecho relacional.
El conjunto de datos Visual Genome, desarrollado por Ranjay Krishna y sus colaboradores, contiene 108 077 imágenes con anotaciones visuales estructuradas. Los grafos de escena son formas de grafo de conocimiento específicas de cada imagen. Sus relaciones semánticas permiten múltiples conexiones entre objetos y componentes desconectados, por lo que el grafo de escena de una imagen no necesita tener un nodo raíz.
El ejemplo de grafo de escena del controlador de Visual Genome para Python incluye «el caballo lleva brida» y «la ventana está junto a la puerta». Estas anotaciones se pueden representar con un grafo dirigido usando NetworkX, instalado con 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}")El resultado muestra dos hechos relacionales consultables, cada uno con su predicado asociado a una arista dirigida.
Cómo funciona la generación de grafos de escena#
La generación de grafos de escena, abreviada SGG, predice esta representación a partir de una entrada visual. Una canalización habitual combina la detección de objetos, la extracción de características y la clasificación de relaciones. Las características de los objetos describen regiones individuales; las características por pares describen posibles interacciones. Los modelos de contexto, como MotifNet, usan los objetos circundantes para ayudar a predecir relaciones. Las redes neuronales de grafos también pueden intercambiar información entre objetos conectados y producir incrustaciones que codifican el contexto relacional.
Ultralytics YOLO YOLO26 proporciona las instancias de objetos para esta canalización mediante sus resultados de detección: cuadros, etiquetas de clase y puntuaciones de confianza. Un modelo de relaciones posterior usa esas instancias para predecir aristas como «lleva» o «está de pie sobre».
Aplicaciones en razonamiento visual y robótica#
Las relaciones explícitas permiten realizar tareas que requieren comprender cómo encajan entre sí los objetos:
- Respuesta a preguntas visuales: GQA usa grafos de escena derivados de Visual Genome para generar preguntas y programas de razonamiento funcional. Recorrer las relaciones entre objetos permite realizar razonamiento visual, como identificar objetos por sus atributos y conexiones.
- Robótica: Kimera crea grafos de escena dinámicos en 3D a partir de datos visuales e inerciales. Su representación por capas conecta objetos, personas, habitaciones y edificios, lo que permite la cartografía semántica y la planificación jerárquica de rutas. Las coordenadas espaciales y el tiempo amplían la representación más allá de una sola imagen.
- Generación de imágenes: El sistema de generación de imágenes a partir de grafos de escena de Justin Johnson, Agrim Gupta y Li Fei-Fei convierte los grafos en disposiciones de objetos, predice cuadros y máscaras de segmentación y genera una imagen a partir de esa disposición. El grafo especifica tanto el contenido de la escena como las relaciones.
Evaluación y errores en las relaciones#
La evaluación de grafos de escena suele distinguir tres tareas. La clasificación de predicados proporciona cuadros y etiquetas de objetos y evalúa las relaciones predichas. La clasificación de grafos de escena proporciona cuadros y requiere etiquetas de objetos y relaciones. La detección de grafos de escena requiere el grafo completo a partir de la imagen. Esta separación permite determinar si los errores se originan en la localización, el reconocimiento de objetos o la predicción de relaciones.
La frecuencia de las relaciones genera sesgo en los conjuntos de datos: los predicados frecuentes dominan las predicciones, mientras que se pasan por alto relaciones poco frecuentes pero informativas. Recall@K mide la proporción de relaciones anotadas recuperadas entre las K predicciones con mayor puntuación. Mean Recall@K calcula la exhaustividad por separado para cada categoría de predicado y promedia esos valores, de modo que los predicados poco frecuentes tienen el mismo peso por categoría que los frecuentes.










