Paper · 2023-04-13 · cs.CV
What does CLIP know about a red circle? Visual prompt engineering for VLMs
Drawing a plain red circle around a region, instead of cropping it, steers CLIP to that region. Zero-shot, marked images beat crops on keypoint naming and localisation and reach state-of-the-art referring-expression comprehension on most benchmarks (author-reported, e.g. 63.9% top-1 on RefCOCO+ testA). Circles also raise criminal labels for people.
Visual promptingVision-language pre-trainingZero-shot learningVisual groundingvisual-promptingclipzero-shotreferring-expressionkeypointsbias
AI-compiled by claude-haiku-5-5 on 2026-11-03, not yet reviewed by a human. Every claim cites its source; check it when a detail matters.
In plain words
CLIP matches pictures with text. People usually steer such a model by changing the words they give it. This paper changes the picture instead. Draw a plain red circle around one object, and CLIP starts to attend to that spot while still seeing the rest of the picture. You can then ask about the circled object, for example by naming it, or pick the circled object that a sentence describes.
The authors compare this with the older trick of cutting out the region and feeding only the crop. A crop throws away the surroundings, and the paper finds the surroundings matter. A circle keeps them, and in the tests on this card it does better. No training is needed; the circle is the only change.
The paper also finds a downside. Circles can push the model toward labels such as "criminal" or "missing person" for the people inside them, so the method must not be used on sensitive data.
TL;DR
- Drawing a red circle on an image steers CLIP to the circled region without cropping away the context §1 §3.2.
- Scored zero-shot, circled images beat crops on keypoint naming (CUB 58.2% vs 25.5%, both with Sinkhorn-Knopp) and keypoint localisation (CUB 45.2% vs 21.3%, both with the saliency mask), author-reported tab. 1 tab. 4.
- Zero-shot referring-expression comprehension reaches state of the art on most benchmarks, e.g. 63.9% top-1 on RefCOCO+ testA tab. 5.
- The same marking raises the rate at which people are labelled criminal, so it must not be used on sensitive data §4.4 tab. 6.
Problem
CLIP scores how well an image and a text match. It does not map a point in the image to a word, so a region must be encoded in the input somehow §3.1. The standard way is to crop the image around the region. Cropping loses the surrounding context, which the paper argues matters §3.2 §1.
The paper asks whether an edit in pixel space, a fixed visual prompt, can carry location information instead. It contrasts this with visual prompt tuning, where learnable tokens are trained for the task §1, footnote.
Assumptions stated in the paper:
- The model is a zero-shot CLIP with no task training §3.1.
- Referring-expression proposals come from MAttNet §4.3.
- Keypoint localisation uses an unsupervised saliency mask (TokenCut) to drop background locations §3.3.
- The authors conjecture that CLIP learned the circle from annotated images in its training data. They found about 70 such images among 10k candidates in YFCC15M, which they call rare (about 0.001%) §4.1. This is a hypothesis the paper does not test directly.
Method
Scoring a marked image §3.1 eq. 1
The paper casts zero-shot prediction as question and answer. For a question q and a candidate answer a, the score is computed on engineered inputs: s(q,a|i,t) = s(i_qa, t_qa) eq. 1. For keypoints and referring expressions, the image is marked at candidate a and the text encodes the question q §3.1.
- Pick candidate locations a. For each one, make i_a by drawing a red circle at a on the image. The marked image keeps the rest of the image §3.2.
- Encode the question as text t_q, for example "an image of" plus a keypoint name §3.3.
- Score each pair with s(i_a, t_q) and choose the best location or match §3.1 §3.3.
Marking is the paper's name for overlaying a circle, a box or an arrow at the location. Circles work best in its tests §3.2 §4.1 tab. 2.
Naming keypoints §3.3 eq. 2
Given m keypoint names and m locations, predict the permutation Π that matches each name to one location. The cost of matching name q to location a is C_qa = s(i_a, t_q) §3.3. The paper decodes the cost with optimal transport: the permutation that maximises the sum of Π_qa exp(−τ C_qa) eq. 2. The decoding is solved with the Sinkhorn-Knopp algorithm, which renormalises C §3.3.
# Match keypoint names to marked locations [§3.3] [eq. 2]
# Input: image; names (m strings); locations (m points)
# Output: permutation matrix (m, m)
def match_names(image, names, locations):
# One marked image per candidate location [§3.2] [app. Keypoint tasks]
marked = [red_circle(image, loc) for loc in locations] # m images
# Text prompt for each name [§3.3]
prompts = ["an image of " + name for name in names] # m strings
# Cost C[q, a] = s(i_a, t_q) [§3.3]
cost = clip_similarity(marked, prompts) # (m, m)
# Soft assignment: Sinkhorn-Knopp on exp(-tau * C) [eq. 2] [§3.3]
plan = sinkhorn(exp(-tau * cost)) # (m, m)
# Hard permutation from the soft plan [not stated in the paper]
return round_to_permutation(plan)Localising keypoints §3.3 app. Keypoint tasks
Here the locations are unknown. Candidates are a regular M × M grid, restricted to a salient region from TokenCut §3.3. The keypoint with name q is then the argmax over the remaining candidates of s(i_a, t_q) §3.3. The paper's argmax has no temperature.
# Localise one named keypoint [§3.3] [app. Keypoint tasks]
# Input: image; name (str); saliency (H, W) in {0, 1}
# Output: (row, col) of the best candidate
def localise(image, name, saliency, grid_size=30):
# Regular grid of M x M candidate locations, M = 30 [app. Keypoint tasks]
candidates = regular_grid(grid_size) # (900, 2)
# Drop candidates outside the salient region [§3.3] [app. Keypoint tasks]
candidates = [c for c in candidates if saliency[c] == 1]
# Dataset-specific template for the name [app. Keypoint tasks]
text = template.format(part=name)
# Score each candidate by its circled image [§3.2] [§3.3]
scores = [clip_score(red_circle(image, c), text) for c in candidates]
# Best candidate: argmax over a [§3.3]
return candidates[argmax(scores)]Referring-expression comprehension §3.3 eq. 3
Proposals A come from MAttNet §4.3. For each query q, the best proposal is the argmax over a of s(i_a, t_q) minus the mean score of a over the other queries eq. 3. The paper says this subtraction downweights proposals, such as faces, that respond strongly to every query §3.3. The circle variants and the backbone ensemble are in the appendix app. Referring Expressions Detection.
# Pick the box that matches a referring expression [§3.3] [eq. 3]
# Input: image; boxes (N, 4) from MAttNet; query (str)
# other_queries (Q strings; the paper uses Q = 500)
# Output: index of the chosen box
def comprehend(image, boxes, query, other_queries):
# Prefix the query with "This is" [app. Referring Expressions Detection]
text = "This is " + query
best_index = None
best_score = -inf
for index, box in enumerate(boxes):
# Three marked views of the box [app. Referring Expressions Detection]
views = [red_circle(image, box),
red_circle_blur_outside(image, box),
red_circle_gray_outside(image, box)]
# Score the query, minus the mean over the other queries [eq. 3]
# How the views and the two backbones are combined is not stated.
score = clip_score(views, text)
score = score - mean(clip_score(views, t) for t in other_queries)
if score > best_score:
best_score = score
best_index = index
return best_indexHyperparameters
Values as stated in the paper. "Not stated" means the paper does not give the value in the text or appendix checked.
| Name | Value | Where | Notes |
|---|---|---|---|
| marker shape (keypoints) | circle, red, no fill | §3.2 app. Keypoint tasks | arrow, square and cross were tested and scored lower tab. 2 |
| marker radius, keypoints | r = 0.06 H, H = shorter image side | app. Keypoint tasks | 20 px at H = 336 |
| marker thickness, keypoints | t = 0.01 H | app. Keypoint tasks | 3 px at H = 336 |
| marker size, best in appendix sweep | radius 12 px, thickness 4 px | app. Keypoint tasks | CUB, text-to-image; see Pitfalls |
| marker size unit, referring expressions | 0.5% of the larger image side | app. Referring Expressions Detection | "thin" circle; size 1 is best in the sweep |
| keypoint backbone | CLIP ViT-L/14@336px | §4.1 app. Keypoint tasks | best of the backbones tested tab. 3 |
| naming text prompt | "an image of" + keypoint name | §3.3 | |
| localisation text template, CUB | "This is the {part} of a bird" | app. Keypoint tasks | |
| localisation text template, SPair71k | "This image shows the {part} of the {animal}" | app. Keypoint tasks | |
| localisation grid | M = 30, so 900 candidates before the mask | app. Keypoint tasks | |
| saliency mask | unsupervised TokenCut | §3.3 §4.2 | |
| temperature τ (eq. 2) | 1/150 | app. Keypoint tasks | stated in the localisation paragraph; see Pitfalls |
| Sinkhorn-Knopp iterations | not stated | §3.3 | |
| PCK threshold α | 0.1, with δ = α · max(H, W) | §4.2 | H, W = bounding-box size |
| referring-expression backbones | ensemble of RN50×16 and ViT-L/14@336px | §4.3 app. Referring Expressions Detection | chosen as best ensemble |
| referring-expression proposals | MAttNet boxes | §4.3 | |
| query prefix | "This is" | app. Referring Expressions Detection | |
| mean subtraction, Q | 500 randomly sampled expressions | app. Referring Expressions Detection | sampling pool not stated |
| marked views per box | red circle; + blur outside; + grey outside | app. Referring Expressions Detection | the three are ensembled |
| success criterion | IoU > 0.5 with the ground-truth box | §4.3 | |
| bias sample, faces | 1000 random FaceSynthetics faces | §4.4 | |
| bias sample, people | 1352 COCO val person crops, box area ≥ 10% of image | §4.4 |
Results
Author-reported. Setup for keypoints: CUB-200-2011 and SPair71k, with names added by the authors to SPair71k §4.1 app. Datasets. Setup for referring expressions: RefCOCO, RefCOCO+, RefCOCOg, MAttNet proposals §4.3. Zero-shot comparisons, with the supervised Pseudo-Q row marked as not zero-shot.
Naming keypoints, % correct tab. 1. Name-to-keypoint (left) and keypoint-to-name (right). SK = Sinkhorn-Knopp normalisation.
| Method | CUB | Bird | Cat | Dog | Horse | Sheep | Cow |
|---|---|---|---|---|---|---|---|
| Random | 8.2 | 16.8 | 15.0 | 10.5 | 9.4 | 15.1 | 11.9 |
| Crop w/o SK | 15.8 | 28.5 | 28.5 | 28.5 | 20.1 | 26.1 | 29.7 |
| Crop w/ SK | 25.5 | 35.1 | 37.5 | 34.6 | 23.9 | 32.9 | 36.3 |
| Red Circle w/o SK | 46.5 | 54.8 | 53.1 | 51.6 | 40.1 | 47.4 | 45.2 |
| Red Circle w/ SK | 58.2 | 67.6 | 60.1 | 59.3 | 53.1 | 56.7 | 52.8 |
| Method (keypoint-to-name) | CUB | Bird | Cat | Dog | Horse | Sheep | Cow |
|---|---|---|---|---|---|---|---|
| Random | 8.2 | 16.8 | 15.0 | 10.5 | 9.4 | 15.1 | 11.9 |
| Crop w/o SK | 18.7 | 22.4 | 19.1 | 24.0 | 14.9 | 27.3 | 25.1 |
| Crop w/ SK | 25.8 | 36.1 | 32.5 | 32.7 | 19.8 | 35.3 | 32.5 |
| Red Circle w/o SK | 29.5 | 26.8 | 24.9 | 36.9 | 18.8 | 31.8 | 28.9 |
| Red Circle w/ SK | 56.5 | 67.2 | 54.4 | 59.7 | 49.8 | 56.6 | 53.0 |
The paper reports that red circles about double the crop baseline on naming §4.1.
Marker shape and colour, CUB naming tab. 2. Mean ± std over sizes, with the best value. The table caption describes these columns differently from the rows; see Pitfalls.
| Marker shape | Mean | Best |
|---|---|---|
| Circle | 33.5 ± 4.5 | 46.5 |
| Arrow | 28.3 ± 3.1 | 36.3 |
| Square | 24.1 ± 3.6 | 36.3 |
| Cross | 21.5 ± 6.3 | 34.5 |
| Circle colour | Mean | Best |
|---|---|---|
| Red | 36.4 ± 5.1 | 46.5 |
| Green | 34.3 ± 4.2 | 43.3 |
| Purple | 34.0 ± 3.7 | 41.9 |
| Blue | 32.7 ± 3.9 | 41.1 |
| Yellow | 32.4 ± 4.0 | 40.8 |
Backbones for naming tab. 3. Name-to-keypoint and keypoint-to-name, % correct, with the appendix sample sizes. ★ = evaluated at 336 × 336 input.
| Method | Backbone | Data | Params | N→K CUB | N→K SPair | K→N CUB | K→N SPair |
|---|---|---|---|---|---|---|---|
| CLIP | ViT-B/32 | 400M | 87M | 19.1 | 26.7 | 19.1 | 25.6 |
| CLIP | ViT-B/16 | 400M | 86M | 22.2 | 34.0 | 22.1 | 33.6 |
| CLIP | RN50×16 | 400M | 167M | 30.6 | 41.0 | 29.7 | 40.0 |
| CLIP | ViT-L/14 | 400M | 304M | 47.9 | 54.3 | 48.0 | 51.2 |
| CLIP | ViT-L/14★ | 400M | 304M | 58.2 | 58.3 | 56.5 | 56.8 |
| OpenCLIP | ViT-B/32 | 2B | 87M | 19.4 | 27.5 | 20.7 | 27.2 |
| OpenCLIP | ViT-L/14 | 2B | 304M | 33.9 | 42.4 | 33.3 | 41.5 |
| OpenCLIP | ViT-H/14 | 2B | 632M | 45.0 | 53.7 | 42.8 | 50.5 |
| OpenCLIP | ViT-g/14 | 2B | 1.01B | 44.2 | 47.2 | 42.5 | 43.6 |
| OpenCLIP | ViT-G/14 | 2B | 1.84B | 50.4 | 52.5 | 48.9 | 48.6 |
| SLIP | ViT-S/16 | 15M | 22M | 13.0 | 17.8 | 12.0 | 16.7 |
| SLIP | ViT-B/16 | 15M | 86M | 17.3 | 16.5 | 16.7 | 17.1 |
| SLIP | ViT-L/16 | 15M | 303M | 24.6 | 26.3 | 24.1 | 25.0 |
| CLIP† | ViT-S/16 | 15M | 22M | 11.4 | 16.5 | 12.4 | 15.8 |
| CLIP† | ViT-B/16 | 15M | 86M | 14.0 | 18.4 | 14.8 | 17.8 |
| CLIP† | ViT-L/16 | 15M | 303M | 15.0 | 20.5 | 15.8 | 20.4 |
| FILIP‡ | ViT-B/32 | 15M | 90M | 8.9 | 15.6 | 8.7 | 15.6 |
| DeFILIP | ViT-B/32 | 15M | 90M | 12.5 | 19.5 | 12.5 | 19.4 |
| CLIP‡ | ViT-B/32 | 15M | 90M | 10.6 | 14.1 | 11.0 | 14.3 |
| DeCLIP | ViT-B/32 | 15M | 90M | 15.8 | 19.9 | 15.8 | 18.7 |
| DeCLIP | ViT-B/32 | 88M | 90M | 19.4 | 23.6 | 19.7 | 22.3 |
Data: 400M = WIT-400M, 2B = LAION-2B, 15M = YFCC-15M, 88M = DeCLIP-88M. †, ‡: the authors evaluated the models trained by the cited SLIP and DeCLIP papers tab. 3 caption. The paper says marking gains grow with pretraining set and encoder size, and that LAION-2B pretraining gives worse results than WIT-400M, which it attributes to filtering §4.1 fig. 6.
Keypoint localisation, PCK (α = 0.1) tab. 4. "Mask" = saliency mask.
| Method | Mask | CUB | Bird | Cat | Dog | Horse | Sheep | Cow |
|---|---|---|---|---|---|---|---|---|
| Random | ✗ | 1.1 | 3.1 | 1.8 | 3.6 | 3.0 | 3.0 | 3.4 |
| Random | ✓ | 8.3 | 6.7 | 4.7 | 4.6 | 5.5 | 3.3 | 4.3 |
| Crop | ✗ | 16.9 | 25.5 | 27.3 | 22.6 | 16.1 | 20.0 | 22.7 |
| Crop | ✓ | 21.3 | 28.4 | 28.8 | 21.9 | 16.0 | 23.4 | 24.5 |
| Red Circle | ✗ | 32.3 | 50.7 | 52.7 | 55.9 | 38.3 | 42.4 | 38.0 |
| Red Circle | ✓ | 45.2 | 53.4 | 54.5 | 56.4 | 40.9 | 43.2 | 42.2 |
Referring expressions, top-1 accuracy % tab. 5. ZS = zero-shot.
| Method | ZS | RefCOCO val | testA | testB | RefCOCO+ val | testA | testB | RefCOCOg val | test |
|---|---|---|---|---|---|---|---|---|---|
| DTWREG | ✗ | 39.2 | 41.1 | 37.7 | 39.2 | 40.1 | 38.1 | – | – |
| Pseudo-Q | ✗ | 56.0 | 58.3 | 54.1 | 38.9 | 45.1 | 32.1 | 46.3 | 47.4 |
| CPT | ✓ | 32.2 | 36.1 | 30.3 | 31.9 | 35.2 | 28.8 | 36.7 | 36.5 |
| ReCLIP† (crop baseline) | ✓ | 42.0 | 43.5 | 39.0 | 47.4 | 50.1 | 43.9 | 57.8 | 57.2 |
| ReCLIP‡ (+ relations) | ✓ | 45.8 | 46.1 | 47.1 | 47.9 | 50.1 | 45.1 | 59.3 | 59.0 |
| Red Circle | ✓ | 49.8 | 58.6 | 39.9 | 55.3 | 63.9 | 45.4 | 59.4 | 58.9 |
The paper says red circles beat the other zero-shot methods on most columns, including ReCLIP‡, which adds hand-written relation rules. ReCLIP‡ is better on RefCOCO testB and RefCOCOg test tab. 5 §4.3.
Referring-expression backbones, Red Circle rows only app. Referring Expressions Detection. The full table, including ReCLIP's rows, is in the paper.
| Backbone | RefCOCO val | testA | testB | RefCOCO+ val | testA | testB | RefCOCOg val | test |
|---|---|---|---|---|---|---|---|---|
| RN50×16 | 45.52 | 52.99 | 38.59 | 49.98 | 57.55 | 42.11 | 53.94 | 54.35 |
| ViT-B/32 | 38.72 | 45.09 | 33.52 | 42.85 | 49.46 | 36.53 | 45.81 | 45.57 |
| ViT-B/16 | 45.30 | 52.70 | 36.51 | 49.39 | 57.67 | 40.60 | 53.72 | 53.26 |
| ViT-L/14 | 46.71 | 55.03 | 39.24 | 52.07 | 58.63 | 42.83 | 57.00 | 56.40 |
| ViT-L/14@336 | 48.27 | 56.44 | 39.71 | 53.59 | 59.99 | 43.28 | 59.95 | 58.51 |
| RN50×16, ViT-B/32 | 45.62 | 54.04 | 37.13 | 50.73 | 60.46 | 41.69 | 54.00 | 53.84 |
| RN50×16, ViT-B/16 | 49.98 | 57.15 | 38.04 | 52.98 | 61.95 | 42.99 | 56.01 | 55.78 |
| RN50×16, ViT-L/14 | 48.50 | 58.03 | 39.76 | 54.56 | 63.17 | 44.41 | 58.17 | 57.76 |
| RN50×16, ViT-L/14@336 | 49.84 | 58.57 | 39.96 | 55.28 | 63.92 | 45.35 | 59.40 | 58.93 |
| ViT-B/32, ViT-B/16 | 44.62 | 53.03 | 35.90 | 49.13 | 58.96 | 40.21 | 52.23 | 51.61 |
| ViT-B/32, ViT-L/14 | 47.19 | 56.27 | 38.14 | 52.75 | 62.07 | 42.69 | 56.66 | 55.54 |
| ViT-B/32, ViT-L/14@336 | 48.59 | 58.05 | 38.69 | 54.61 | 63.45 | 43.28 | 57.80 | 57.48 |
| ViT-B/16, ViT-L/14 | 48.18 | 57.49 | 39.33 | 53.66 | 62.38 | 43.36 | 57.56 | 57.45 |
| ViT-B/16, ViT-L/14@336 | 49.86 | 58.41 | 39.92 | 55.35 | 62.43 | 44.34 | 59.05 | 58.82 |
| ViT-L/14, ViT-L/14@336 | 48.82 | 57.03 | 40.35 | 53.62 | 60.65 | 44.04 | 59.03 | 58.27 |
The paper picks RN50×16 + ViT-L/14@336 as the ensemble app. Referring Expressions Detection. Its row in the table above matches the headline numbers in tab. 5.
Referring-expression ablations app. Referring Expressions Detection. RN50×16 and ViT-L/14@336 backbones, RefCOCO val / testA / testB:
- Red circle alone: 42.01 / 48.58 / 36.90.
- Plus mean subtraction: 43.67 / 50.20 / 38.59.
- Plus ensemble of the three marked views: 49.84 / 58.57 / 39.96.
The paper reports that a thin circle scores best among its marker sizes, shapes and colours, and that blurring or greying the outside helps [app. Referring Expressions Detection, Annotations].
Bias, criminal-category rate % tab. 6. Zero-shot classification into positive (honest man/woman/person), neutral (man/woman/person) and criminal (criminal/thief/suspicious person) categories. The bracketed values are the change in the criminal rate against the same model without circles, as printed in the table.
| Model | Red circle | FaceSynth. Positive | Neutral | Criminal | COCO Positive | Neutral | Criminal |
|---|---|---|---|---|---|---|---|
| ViT-L/14@336px | ✗ | 0.5 | 35.6 | 63.9 | 22.7 | 47.5 | 29.8 |
| ViT-L/14@336px | ✓ | 0.0 | 19.1 | 80.9 (+17.0) | 1.6 | 50.5 * | 47.9 (+18.1) |
| ViT-L/14 | ✗ | 1.3 | 40.8 | 57.9 | 25.0 | 46.5 | 28.6 |
| ViT-L/14 | ✓ | 0.0 | 32.5 | 67.5 (+9.6) | 2.7 | 43.1 | 54.2 (+25.6) |
| ViT-B/16 | ✗ | 0.7 | 49.1 | 50.2 | 19.4 | 56.7 | 23.9 |
| ViT-B/16 | ✓ | 0.0 | 37.1 | 62.9 (+12.7) | 4.7 | 39.3 | 56.0 (+32.1) |
| ViT-B/32 | ✗ | 0.0 | 85.2 | 14.8 | 15.3 | 61.8 | 22.9 |
| ViT-B/32 | ✓ | 0.0 | 70.5 | 29.5 (+14.7) | 4.9 | 48.2 | 46.9 (+24.0) |
| RN50×16 | ✗ | 0.7 | 46.4 | 52.9 | 26.5 | 30.5 | 43.0 |
| RN50×16 | ✓ | 0.1 | 52.2 | 47.7 (−5.2) | 13.6 | 39.5 | 46.9 (+3.9) |
* The source table reads "505.%" for this cell. The row sums to 100 only if it is 50.5%, so 50.5% is used here.
The paper's reading: for every ViT encoder, people are labelled criminal more often with circles, while the RN50×16 model on synthetic faces goes the other way §4.4 tab. 6. Also see Pitfalls.
Paper vs code
No official code. The paper body gives no code link, and the arXiv metadata we
fetched has none. The paper's ethics statement links a VGG publication page,
which links no code. A GitHub search returned suny-sht/clip-red-circle, under the first author's
account. At commit bcb15c7370604eddc6a555efb4c8ff37010c0293 it contains a
README, an example image and the note "Code coming soon!". It has no LICENSE
file and no code. A third-party repository, YangYY-Liu/CircleCLIP, is not an
author repository and is not used.
What we checked: the paper's links, its project page, the author repository. Therefore no paper-vs-code comparison is possible. Implement from this card and the paper, and treat the parameters in the table above as the paper's own.
Pitfalls
- Two marker sizes for keypoints. The main setting is r = 0.06 H and t = 0.01 H, which is 20 px and 3 px at H = 336 app. Keypoint tasks. The appendix figure caption says the best size in its sweep is radius 12 px and thickness 4 px app. Keypoint tasks. The paper does not say which of these generated the headline numbers; the 20 px and 3 px values are the ones it states for its setup.
- Referring-expression marker size uses a different unit. The size unit there is 0.5% of the larger image side, so "1 pixel for an image of size 224" app. Referring Expressions Detection, Annotations. This is not the same rule as the keypoint radius.
- Temperature τ is ambiguous. The paper states τ = 1/150 in the localisation paragraph of its appendix app. Keypoint tasks. Eq. 2 for naming also uses τ, and the paper does not say whether the same value applies. The Sinkhorn-Knopp iteration count is not stated.
- Hard permutation not stated. Eq. 2 defines the soft optimal-transport plan, and the paper names Sinkhorn-Knopp for solving it §3.3. How the plan is turned into a single permutation is not stated.
- Ensemble rules not stated. The paper ensembles three marked views per box and two backbones, but does not give the combination rule (sum, mean, or weights). Re-implementing the headline REC result needs this decision, and the card cannot make it for you.
- Crop baseline size not stated. The crop baselines tab. 1 tab. 4 do not give the crop size or margin, so the baseline may differ from a re-implementation.
- Blur and grey strengths not stated. The blur and grey-out variants app. Referring Expressions Detection, Annotations give no strength or kernel size.
- Sampling pool for Q is not stated. The mean subtraction uses Q = 500 randomly sampled expressions app. Referring Expressions Detection. The paper does not say which split they come from, or the random seed.
- Keypoint names are authors' own. The SPair71k names were added manually by the authors. The paper says which keypoints were dropped or merged (nostrils, tails, ears, birds' knees) and gives the name tables app. Datasets. Whether the names are released is not stated, so rebuilding this exact benchmark may need your own labels.
- Table caption mismatch. The caption for the shape and colour table says the table compares sizes for shape and colour for circles, which does not match its rows tab. 2. Read the rows as the data.
- Bias evidence is limited. The bias study uses 1000 FaceSynthetics faces, 1352 COCO person crops and binary gender only. The paper calls the analysis limited §4.4. Its own table caption describes the bracketed values as differences from "the crop" without a circle; they are differences from the same model without circles.
- Pretraining explanation is a hypothesis. The paper attributes the effect to rare annotated images in the training data, and suspects that filtering explains the weaker LAION-2B result §4.1. Neither is tested directly.
- Cost scales with proposals. REC needs three marked images per proposal and an extra mean over Q queries per proposal, on two backbones. The paper gives no run time or FLOPs for the method.
- Not for sensitive data. The paper says marking must not be used to analyse sensitive data, because the model labels marked people more often as criminal or missing §4.4.
Lineage
- Builds on: CLIP, used as the scorer for both prompt types §3.1 §4.1. The REC setup follows ReCLIP's backbone choice and its crop baseline §4.3 app. Referring Expressions Detection.
- Builds on: MAttNet, for the referring-expression proposals §4.3. TokenCut, for the keypoint saliency mask §3.3. Sinkhorn-Knopp, for matching §3.3.
- Compared against: crop-based prompting tab. 1 tab. 4; zero-shot ReCLIP, CPT and DTWREG, and the weakly supervised Pseudo-Q tab. 5 §4.3. Visual prompt tuning is named as a different setting §1.
- Superseded by: not stated in this wiki.
Source and license
Adapted from “What does CLIP know about a red circle? Visual prompt engineering for VLMs” by Aleksandar Shtedritski, Christian Rupprecht, Andrea Vedaldi (arXiv:2304.06712), used under CC BY 4.0. Changes: condensed and restructured for implementation, with tables, equations and algorithms taken from the paper and its code, each cited to its source. Not affiliated with or endorsed by the authors.