ControlTrace: Recovering Control Fields for Hidden-Content Recognition
Organizations: Shanghai Jiao Tong University · Ant Group
Abstract
Spatially conditioned diffusion models can embed words and contours in natural-looking images, but vision-language models (VLMs) may fail to recognize the hidden content. Transformation-based recovery depends on parameter and view selection. To evaluate hidden-content recovery and recognition, we construct FreqBlind, a 6,000-image benchmark spanning contours, real words and non-words across three conditioning strengths. The evaluated transformation-based methods show limited recognition of contour patterns and weakly conditioned hidden content. To address this limitation, we propose ControlTrace to recover the grayscale control field used during generation. An 8.4M-parameter U-Net predicts this field from the carrier image, and a VLM then identifies its content. With Qwen2.5-VL-7B-Instruct, ControlTrace achieves 60.2% open-ended contour recognition accuracy across the three conditioning strengths, exceeding the best of the three evaluated prior methods by 26.9 percentage points. On an A100 GPU, the complete pipeline adds only 7.4 ms (5.3%) to direct VLM inference. Recovered fields have lower pixel errors and higher structural similarity than the evaluated transformation views. Across four evaluated VLMs, ControlTrace retains its overall contour recognition advantage. Recognition remains stable under the tested JPEG compression, Gaussian noise and downsampling. These results support control-field recovery for hidden-content recognition in the evaluated setting.
Figures & tables
| Contour | Word | |||||||
|---|---|---|---|---|---|---|---|---|
| Method | All | All | ||||||
| Carrier, read directly | 6.30 | 1.1 | 5.5 | 12.3 | 2.57 | 0.1 | 0.7 | 6.9 |
| SemVink † (training-free) | 19.43 | 2.8 | 18.1 | 37.4 | 53.60 | 9.1 | 68.8 | 82.9 |
| SMSP † (training-free) | 33.33 | 12.7 | 40.1 | 47.2 | 63.37 | 17.6 | 80.2 | 92.3 |
| AVR seven-view QA † | 19.37 | 2.9 | 18.5 | 36.7 | 23.03 | 0.6 | 17.1 | 51.4 |
| AVR any-view coverage | 45.10 | 19.2 | 49.6 | 66.5 | 43.00 | 5.8 | 44.1 | 79.1 |
| Contour | Word | |||||
|---|---|---|---|---|---|---|
| Method | MSE | MAE | SSIM | MSE | MAE | SSIM |
| Carrier | 0.1049 | 0.2732 | 0.1259 | 0.1210 | 0.2966 | 0.0621 |
| SemVink | 0.1038 | 0.2859 | 0.1276 | 0.1168 | 0.3042 | 0.0631 |
| SMSP (view mean) | 0.1172 | 0.2960 | 0.1193 | 0.1401 | 0.3247 | 0.0583 |
| AVR (view mean) | 0.2579 | 0.3832 | 0.1710 | 0.2678 | 0.3935 | 0.1346 |
| Gaussian blur ( ) | 0.1252 | 0.3234 | 0.1096 | 0.1278 | 0.3254 | 0.0479 |
| Change | accuracy (pp) |
|---|---|
| Uniform training allocation across strengths | |
| Remove gradient loss | |
| Remove auxiliary edge head | |
| Increase U-Net depth to five levels | |
| Increase U-Net depth to six levels |
| Image set | SemVink | SMSP | AVR | ControlTrace (Ours) | |
|---|---|---|---|---|---|
| Positive images: target accuracy | |||||
| Hidden contours | 0.70 | 3.90 | 0.10 | 36.30 | |
| Negative images: false-positive rate | |||||
| Matched, control off | 2.30 | 0.40 | 0.00 | 3.80 | |
| Dense-texture scenes | 1.30 | 2.00 | 0.40 | 5.20 | |
| COCO photographs | 10.54 | 9.04 | 1.45 | 5.28 | |
| Method | Time (ms) | Input tokens | Output tokens | Total tokens |
|---|---|---|---|---|
| Direct VLM | 138.6 | 384 | 2.97 | 386.97 |
| SemVink | 83.5 | 85 | 2.72 | 87.72 |
| SMSP | 373.8 | 1400 | 2.70 | 1402.70 |
| AVR | 1125.8 | 2688 | 20.01 | 2708.01 |
| ControlTrace (Ours) | 146.0 | 384 | 2.68 | 386.68 |
Appendix figures & tables26 assets
Supplementary material from the paper’s appendix.
Appendix
| View | Operations and parameters |
|---|---|
| Original | RGB copy. |
| Contrast | Gaussian radius ; YCbCr conversion; equalize Y only; RGB conversion. |
| Closure-edge | Grayscale; Sobel magnitude; min–max normalization; closing once; Gaussian radius ; normalization. |
| Mask | Grayscale; Gaussian radius ; normalization; -bin Otsu threshold; opening and closing, once each. |
| Inverse-mask | , using the cleaned mask above. |
| Foreground | Original RGB foreground selected by over RGB . |
| Contours | Words | |||
|---|---|---|---|---|
| Method | Reported | Alternative | Reported | Alternative |
| Carrier, read directly | 6.30 | 6.40 | 2.57 | 2.40 |
| SemVink | 19.43 | 19.77 | 53.60 | 51.33 |
| SMSP | 33.33 | 34.17 | 63.37 | 62.90 |
| AVR | 19.37 | 19.77 | 23.03 | 22.37 |
| ControlTrace (Ours) | 60.10 | 62.00 | 61.23 | 59.90 |
| SemVink quoted question | FreqBlind task question | |||
|---|---|---|---|---|
| Input / method | Objects | Text | Objects | Text |
| Carrier, read directly | 3.6 | 3.6 | — | — |
| Downscale to px | 21.4 | 28.6 | 21.4 | 25.0 |
| Downscale to px | 28.6 | 35.7 | 30.4 | 28.6 |
| Downscale to px | 28.6 | 50.0 | 21.4 | 50.0 |
| Downscale to px | 26.8 | 57.1 | 25.0 | 53.6 |
| Setting | Value |
|---|---|
| Optimizer | AdamW |
| Learning rate | |
| Weight decay | |
| Training batch size | ( controls variants) |
| Validation batch size | |
| Training duration | epochs |
| Contour | Word | ||||||
|---|---|---|---|---|---|---|---|
| Method | MSE | MAE | SSIM | MSE | MAE | SSIM | |
| Carrier | 1.0 | 0.1381 | 0.3201 | 0.0855 | 0.1491 | 0.3319 | 0.0453 |
| 1.5 | 0.0990 | 0.2651 | 0.1322 | 0.1161 | 0.2897 | 0.0650 | |
| 2.0 | 0.0777 | 0.2343 | 0.1600 | 0.0979 | 0.2683 | 0.0760 | |
| SemVink | 1.0 | 0.1327 | 0.3270 | 0.1115 | 0.1421 | 0.3361 | 0.0546 |
| 1.5 | 0.0980 | 0.2786 | 0.1325 | 0.1119 | 0.2977 | 0.0659 | |
| Contour | Word | ||||||
| Method | View | MSE | MAE | SSIM | MSE | MAE | SSIM |
| SMSP | Original | 0.1049 | 0.2732 | 0.1259 | 0.1210 | 0.2966 | 0.0621 |
| Low-pass, 100 px | 0.1557 | 0.3485 | 0.1048 | 0.1920 | 0.3872 | 0.0451 | |
| Low-pass, 200 px | 0.1068 | 0.2867 | 0.1184 | 0.1289 | 0.3158 | 0.0607 | |
| Low-pass, 400 px | 0.1015 | 0.2757 | 0.1279 | 0.1186 | 0.2994 | 0.0654 | |
| AVR | Original | 0.1049 | 0.2732 | 0.1259 | 0.1210 | 0.2966 | 0.0621 |
| Supervision target | Backbone | All strengths | |
|---|---|---|---|
| Scene at | U-Net | 13.27 | 29.13 |
| Control field | NAFNet | 38.13 | 56.51 |
| Control field | U-Net (Ours) | 45.40 | 60.21 |
| Accuracy (%) | ||||||
|---|---|---|---|---|---|---|
| Domain | Seed 42 | Seed 43 | Seed 44 | Mean | SD (pp) | |
| Contours | 1.0 | 45.10 | 46.80 | 44.30 | 45.40 | 1.28 |
| 1.5 | 65.10 | 66.90 | 64.80 | 65.60 | 1.14 | |
| 2.0 | 70.10 | 68.80 | 70.00 | 69.63 | 0.72 | |
| All | 60.10 | 60.83 | 59.70 | 60.21 | 0.57 | |
| Words | 1.0 | 27.40 | 29.60 | 27.80 | 28.27 | 1.17 |
| Contour | Word | ||||
|---|---|---|---|---|---|
| Operation / method | All | All | C W | ||
| Sobel (edge operator) | 8.03 | 1.00 | 4.67 | 0.00 | |
| Otsu (pointwise map) ( Otsu, 1979 ) | 12.17 | 2.00 | 18.23 | 0.10 | |
| blur histogram equalization ( Qu et al., 2025 ) | 29.53 | 10.10 | 56.30 | 13.10 | |
| Gaussian blur | 34.83 | 11.00 | 59.83 | 13.80 | |
| Gaussian blur | 34.33 | 15.00 | 39.17 | 7.50 | |
| Family and grid | Setting | Contour | |
| low-pass (16 operations) | |||
| Gaussian blur, | 15.00 | ||
| 11.00 | |||
| 5.30 | |||
| 2.33 | 300 | ||
| 2.10 | |||
| Reader | SMSP | AVR | ControlTrace (Ours) | |
|---|---|---|---|---|
| Qwen2.5-VL-7B | 1.0 | 15.33 | 3.67 | 43.33 |
| 1.5 | 41.00 | 18.33 | 65.00 | |
| 2.0 | 48.33 | 36.67 | 69.67 | |
| InternVL3-8B | 1.0 | 12.67 | 3.00 | 27.67 |
| 1.5 | 30.67 | 13.00 | 48.33 | |
| 2.0 | 38.33 | 22.33 | 49.00 |
| Reader | SMSP | AVR | ControlTrace (Ours) | |
|---|---|---|---|---|
| Qwen2.5-VL-7B | 1.0 | 14.33 | 1.00 | 28.33 |
| 1.5 | 79.67 | 16.33 | 76.67 | |
| 2.0 | 93.67 | 49.00 | 80.00 | |
| InternVL3-8B | 1.0 | 27.00 | 1.33 | 21.67 |
| 1.5 | 85.67 | 18.67 | 76.67 | |
| 2.0 | 94.33 | 60.00 | 80.33 |
| Reader | Contours | Words |
|---|---|---|
| Qwen2.5-VL-7B | 78.0 | 80.0 |
| InternVL3-8B | 56.0 | 94.0 |
| Qwen2.5-VL-32B | 78.0 | 92.0 |
| LLaVA-OneVision-7B | 90.0 | 94.0 |
| Configuration | Direct | SemVink | SMSP | AVR | ControlTrace (Ours) | |
|---|---|---|---|---|---|---|
| SD1.5 / QR Code Monster | 1.0 | 1.33 | 2.33 | 12.67 | 4.00 | 51.00 |
| 1.5 | 10.33 | 17.67 | 44.33 | 21.00 | 68.33 | |
| 2.0 | 19.00 | 33.33 | 55.67 | 42.67 | 72.00 | |
| All | 10.22 | 17.78 | 37.56 | 22.56 | 63.78 | |
| SDXL / QR Code Monster | 1.0 | 2.00 | 3.00 | 12.33 | 2.00 | 27.67 |
| 1.5 | 6.33 | 16.33 | 39.00 | 14.33 | 48.00 |
| Configuration | Direct | SemVink | SMSP | AVR | ControlTrace (Ours) | |
|---|---|---|---|---|---|---|
| SD1.5 / QR Code Monster | 1.0 | 0.00 | 14.67 | 31.00 | 1.33 | 40.67 |
| 1.5 | 1.67 | 69.33 | 78.33 | 20.67 | 73.33 | |
| 2.0 | 14.33 | 85.00 | 92.00 | 58.67 | 81.33 | |
| SDXL / QR Code Monster | 1.0 | 0.00 | 18.33 | 29.67 | 1.67 | 25.33 |
| 1.5 | 6.33 | 72.33 | 82.00 | 28.00 | 65.33 | |
| 2.0 | 40.67 | 80.00 | 96.00 | 72.00 | 72.67 |
| Configuration | SMSP | AVR | ControlTrace (Ours) | |
|---|---|---|---|---|
| Unperturbed | 1.0 | 15.33 | 3.67 | 43.33 |
| 1.5 | 41.00 | 18.33 | 65.00 | |
| 2.0 | 48.33 | 36.67 | 69.67 | |
| JPEG ( ) | 1.0 | 16.00 | 5.00 | 44.00 |
| 1.5 | 39.67 | 18.67 | 66.33 | |
| 2.0 | 49.00 | 36.67 | 69.33 |
| Configuration | SMSP | AVR | ControlTrace (Ours) | |
|---|---|---|---|---|
| Unperturbed | 1.0 | 14.33 | 1.00 | 28.33 |
| 1.5 | 79.67 | 16.33 | 76.67 | |
| 2.0 | 93.67 | 49.00 | 80.00 | |
| JPEG ( ) | 1.0 | 15.33 | 0.33 | 29.67 |
| 1.5 | 78.67 | 15.33 | 77.00 | |
| 2.0 | 94.00 | 48.67 | 79.67 |
| Configuration | Blur | SMSP | AVR | ControlTrace (Ours) | |
|---|---|---|---|---|---|
| Band noise ( – ) | 1.0 | 13.33 | 15.67 | 3.33 | 42.00 |
| 1.5 | 41.00 | 41.67 | 20.33 | 66.00 | |
| 2.0 | 49.33 | 51.00 | 35.33 | 70.00 | |
| Band noise ( – ) | 1.0 | 13.33 | 17.00 | 5.00 | 43.67 |
| 1.5 | 39.67 | 40.00 | 20.33 | 66.67 | |
| 2.0 | 48.67 | 51.00 | 40.00 | 70.00 |
| Configuration | Blur | SMSP | AVR | ControlTrace (Ours) | |
|---|---|---|---|---|---|
| Band noise ( – ) | 1.0 | 6.33 | 16.67 | 0.33 | 26.00 |
| 1.5 | 46.00 | 77.33 | 19.33 | 78.67 | |
| 2.0 | 62.67 | 92.33 | 51.67 | 81.33 | |
| Band noise ( – ) | 1.0 | 6.33 | 15.33 | 1.00 | 29.00 |
| 1.5 | 46.33 | 80.00 | 19.33 | 77.00 | |
| 2.0 | 64.67 | 93.67 | 57.33 | 79.33 |
| Image set | SemVink | SMSP | AVR | ControlTrace (Ours) | |
|---|---|---|---|---|---|
| Positive images: content reporting | |||||
| Hidden contours | 3.50 | 9.60 | 0.10 | 61.5 [53.1, 69.8] | |
| Negative images: false-positive rate | |||||
| Matched, control off | 2.30 | 0.40 | 0.00 | 3.8 [2.4, 5.5] | |
| Dense-texture scenes | 1.30 | 2.00 | 0.40 | 5.2 [3.1, 7.6] | |
| COCO photographs | 10.54 | 9.04 | 1.45 | 5.3 [4.8, 5.7] | |