Scene Graph Generation from Images
Scene graphs turn detected objects into subject-predicate-object triples so questions about relations become lookups.
Why Does This Exist?
Object detection lists nouns without verbs. Who rides what and what sits on what needs edges. Scene graph generation detects objects then scores predicates for pairs, outputting triples like person riding bike. Retrieval and VQA then query the graph instead of pixels.
Think of It Like This
Labeling a party photo with string and name tags
You stick name tags on every guest, then tie labeled strings between pairs: holding, talking to, standing near. Queries like who holds cake follow strings instead of scanning faces again.
Objects are guests and predicates are strings. The analogy stops at exhaustiveness: photos need only salient strings, not all pairs.
How It Actually Works
Detector gives boxes with features . Pair forms edge feature scoring predicates. Training uses ranking over the long tail since near dominates riding to . Recall@50 counts how many true triples appear in the top edges.
Worked example
Three objects give directed pairs. Pair person-bike scores riding , near , holding . Pair bike-ground scores on . Top- keeps riding and on while near drops to rank . Recall@50 of means two of five true triples surfaced, typical for this long-tailed task.
Watch Out For
Predicate bias toward vague near
Without reweighting, near wins every pair at while riding stalls at . The symptom is graphs full of near and on. Reweight by inverse frequency or evaluate mean recall per predicate.
The Quick Version
- Scene graphs add predicate edges to detected object nodes.
- Fifty predicates cover most relations with a heavy long tail.
- Ranking losses beat plain classification for rare relations.
- Do not score all pairs blindly; prune by overlap and salience.
- Recall at is the standard metric, not accuracy.