<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Black-Box Optimization | David Fernandez</title><link>https://davidferna.com/tags/black-box-optimization/</link><atom:link href="https://davidferna.com/tags/black-box-optimization/index.xml" rel="self" type="application/rss+xml"/><description>Black-Box Optimization</description><generator>HugoBlox Kit (https://hugoblox.com)</generator><language>en-us</language><lastBuildDate>Tue, 16 Jun 2026 00:00:00 +0000</lastBuildDate><image><url>https://davidferna.com/media/icon_hu_7c85b1cf69ad867f.png</url><title>Black-Box Optimization</title><link>https://davidferna.com/tags/black-box-optimization/</link></image><item><title>Budget-Aware Adaptive Adversarial Patches for Black-Box Object Detection</title><link>https://davidferna.com/publications/budget-aware-adaptive-adversarial-patches/</link><pubDate>Tue, 16 Jun 2026 00:00:00 +0000</pubDate><guid>https://davidferna.com/publications/budget-aware-adaptive-adversarial-patches/</guid><description>&lt;p&gt;&lt;style&gt;
/* Scoped to this paper; typography and responsive grids use the shared scale. */
.pb-section, .pb-intro { color: #cbd5e1; font-size: var(--pub-text-body); line-height: 1.65; }
.pb-section { margin: 0 0 1.5rem; border: 1px solid rgba(129,140,248,.22); border-radius: 1.25rem; overflow: hidden; background: linear-gradient(135deg,rgba(99,102,241,.06),rgba(168,85,247,.03)); }
.pb-section.pb-results { border-color: rgba(34,197,94,.25); background: linear-gradient(135deg,rgba(34,197,94,.05),rgba(59,130,246,.03)); }
.pb-section.pb-limits { border-color: rgba(251,191,36,.25); background: rgba(251,191,36,.04); }
.pb-header, .pb-body { padding: 1rem var(--pub-panel-padding); }
.pb-header { border-bottom: 1px solid rgba(148,163,184,.15); }
.pb-section h2, .pb-section h3, .pb-intro h2 { margin: 0; color: #e2e8f0; font-weight: 750; line-height: 1.4; }
.pb-section h2 { font-size: var(--pub-text-heading); text-transform: uppercase; letter-spacing: .07em; color: #a5b4fc; }
.pb-results h2 { color: #4ade80; }
.pb-limits h2 { color: #fbbf24; }
.pb-section h3, .pb-intro h2 { font-size: var(--pub-text-heading); }
.pb-section p, .pb-intro p { margin: .5rem 0 0; }
.pb-section strong, .pb-intro strong { color: #f1f5f9; }
.pb-section figure { margin: 0; }
.pb-section figcaption, .pb-note { font-size: var(--pub-text-small); color: #94a3b8; }
.pb-section figcaption { margin-top: .9rem; }
.pb-section a { color: #a5b4fc; text-decoration: underline; text-underline-offset: .2em; }
.pb-intro { display: grid; gap: 1rem; margin-bottom: 1.5rem; }
.pb-card { padding: 1rem var(--pub-panel-padding); border: 1px solid rgba(148,163,184,.2); border-radius: 1rem; background: rgba(148,163,184,.04); }
.pb-card.pb-red { border-color: rgba(248,113,113,.25); background: rgba(248,113,113,.04); }
.pb-card.pb-blue { border-color: rgba(96,165,250,.25); background: rgba(96,165,250,.04); }
.pb-card.pb-green { border-color: rgba(74,222,128,.25); background: rgba(74,222,128,.04); }
.pb-kicker { display: block; margin-bottom: .5rem; color: #a5b4fc; font-size: var(--pub-text-label); font-weight: 750; text-transform: uppercase; letter-spacing: .08em; }
.pb-red .pb-kicker { color: #f87171; }
.pb-blue .pb-kicker { color: #60a5fa; }
.pb-green .pb-kicker { color: #4ade80; }
.pb-flow { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin: 0; padding: 0; list-style: none; }
.pb-flow li { position: relative; min-width: 0; padding: 1rem; border-radius: 1rem; background: rgba(99,102,241,.06); border: 1px solid rgba(129,140,248,.25); }
.pb-flow li + li::before { content: '→'; position: absolute; left: -1rem; top: 1rem; width: 1rem; text-align: center; color: #a5b4fc; }
.pb-step-number { display: inline-flex; width: 2rem; height: 2rem; align-items: center; justify-content: center; border-radius: .6rem; background: rgba(129,140,248,.15); color: #c7d2fe; margin-bottom: .7rem; font-weight: 800; }
.pb-loop-note { margin-top: 1rem; padding: .75rem 1rem; border-left: 3px solid #818cf8; background: rgba(129,140,248,.06); }
.pb-rule { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; margin-top: 1rem; }
.pb-rule span { padding: .5rem .75rem; background: rgba(34,197,94,.08); border: 1px solid rgba(34,197,94,.25); border-radius: .6rem; color: #bbf7d0; }
.pb-stat { display: block; font: 800 2rem/1.2 ui-monospace,monospace; color: #86efac; margin: .4rem 0; }
.pb-metrics { display: grid; gap: .8rem; margin-bottom: 1.25rem; }
.pb-metrics .pb-card { border-color: rgba(74,222,128,.2); }
.pb-table { width: 100%; border-collapse: collapse; font-size: var(--pub-text-small); line-height: 1.5; min-width: 40rem; }
.pb-table caption { text-align: left; padding: 0 0 .8rem; color: #cbd5e1; font-weight: 650; }
.pb-table th, .pb-table td { text-align: left; padding: .65rem .8rem; border-bottom: 1px solid rgba(148,163,184,.15); vertical-align: top; }
.pb-table thead th { color: #a5b4fc; background: rgba(129,140,248,.06); }
.pb-table tbody th { color: #e2e8f0; font-weight: 600; }
.pb-table td { font-variant-numeric: tabular-nums; }
.pb-comparison { display: grid; gap: .8rem; margin-top: 1rem; }
.pb-bar-label { display: flex; justify-content: space-between; gap: 1rem; margin-bottom: .3rem; }
.pb-bar-track { height: .8rem; border-radius: .4rem; background: rgba(148,163,184,.12); overflow: hidden; }
.pb-bar { height: 100%; border-radius: inherit; background: linear-gradient(90deg,#6366f1,#a5b4fc); }
.pb-bar.pb-fast { background: linear-gradient(90deg,#16a34a,#86efac); }
.pb-divider { border-top: 1px solid rgba(148,163,184,.15); }
@media (max-width: 48rem) {
.pb-flow { grid-template-columns: minmax(0,1fr); }
.pb-flow li + li::before { content: '↓'; left: 50%; top: -1.4rem; }
}
/* Original vector scenes, responsive figure panels, and interactive comparisons. */
.publication-page .flex.justify-center:has(&gt; a[href*="/tags/"]) { flex-wrap:wrap; row-gap:.5rem; }
.pb-section [hidden] { display: none !important; }
.pb-example-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1.25rem; }
.pb-example-group { min-width:0; }
.pb-example-heading { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:.65rem; margin-bottom:.85rem; }
.pb-chip { display:inline-block; border:1px solid #475569; border-radius:999px; padding:.2rem .65rem; color:#cbd5e1; font-size:var(--pub-text-label); }
.pb-scene-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.7rem; }
.pb-scene-card { min-width:0; border:1px solid rgba(74,222,128,.3); border-radius:.85rem; overflow:hidden; background:#101b2a; }
.pb-scene-card.pb-attack { border-color:rgba(251,113,133,.3); }
.pb-scene-heading { display:flex; align-items:center; justify-content:space-between; padding:.55rem .7rem; gap:.4rem; font-size:var(--pub-text-label); font-weight:650; color:#86efac; background:rgba(74,222,128,.04); }
.pb-attack .pb-scene-heading { color:#fda4af; background:rgba(251,113,133,.04); }
.pb-status-dot { display:block; flex-shrink:0; width:.4rem; height:.4rem; background:currentColor; border-radius:50%; }
.pb-scene { display:block; width:100%; height:auto; }
.pb-prediction { display:flex; flex-direction:column; gap:.15rem; padding:.6rem .7rem; border-top:1px solid rgba(148,163,184,.15); }
.pb-prediction &gt; span, .pb-pilot-result &gt; span:first-child { color:#94a3b8; font-size:var(--pub-text-label); }
.pb-prediction strong { color:#86efac; font-size:var(--pub-text-small); }
.pb-attack .pb-prediction strong { color:#fda4af; }
.pb-step-art { display:block; width:100%; height:auto; margin:.85rem 0; }
.pb-detector-controls { display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:1.25rem; }
.pb-detector-controls button { padding:.6rem 1rem; min-height:44px; border:1px solid #475569; border-radius:.65rem; background:#101b2c; color:#cbd5e1; font:inherit; font-size:var(--pub-text-small); cursor:pointer; }
.pb-detector-controls button[aria-pressed="true"] { color:#ccfbf1; border-color:#2dd4bf; background:rgba(45,212,191,.12); }
.pb-detector-controls button:hover { border-color:#94a3b8; }
.pb-detector-controls button:focus-visible { outline:2px solid #c7d2fe; outline-offset:4px; }
.pb-chart-wrap { border:1px solid #334155; border-radius:.85rem; background:rgba(15,23,42,.5); padding:.75rem 0; }
.pb-trade-svg { display:block; width:100%; min-width:37rem; max-width:64rem; margin:auto; height:auto; font:14px system-ui,sans-serif; }
.pb-trade-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.85rem; margin-top:1rem; }
.pb-trade-card { min-width:0; border:1px solid #334155; border-top:2px solid var(--pb-series); border-radius:.85rem; padding:.85rem; background:rgba(15,23,42,.4); }
.pb-trade-card h3 { display:flex; align-items:center; gap:.65rem; color:var(--pb-series); }
.pb-symbol { display:inline-block; flex-shrink:0; width:.7rem; height:.7rem; background:var(--pb-series); }
.pb-symbol-baseline { border-radius:50%; background:transparent; border:2px solid var(--pb-series); }
.pb-symbol-gp5 { transform:rotate(45deg); }
.pb-footprint-row { display:flex; gap:.85rem; margin-top:.75rem; align-items:center; }
.pb-footprint { display:block; width:clamp(4rem,8vw,7rem); flex-shrink:0; height:auto; }
.pb-footprint-row dl { flex:1; margin:0; font-size:var(--pub-text-small); min-width:0; }
.pb-footprint-row dl &gt; div { display:flex; justify-content:space-between; gap:.5rem; flex-wrap:wrap; }
.pb-footprint-row dt { color:#94a3b8; }.pb-footprint-row dd { margin:0; color:#e2e8f0; font-weight:700; font-variant-numeric:tabular-nums; }
.pb-pilot-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:.85rem; margin-top:1rem; }
.pb-pilot-card { min-width:0; border:1px solid rgba(251,113,133,.3); border-radius:1rem; overflow:hidden; background:rgba(15,23,42,.4); }
.pb-pilot-card.pb-warning { border-color:rgba(251,191,36,.3); }
.pb-pilot-heading { padding:.85rem; }
.pb-pilot-heading .pb-kicker { color:#fda4af; }.pb-warning .pb-kicker { color:#fcd34d; }
.pb-pilot-art { display:block; width:100%; height:auto; border-top:1px solid #334155; border-bottom:1px solid #334155; }
.pb-pilot-card .pb-pilot-result { display:flex; flex-direction:column; gap:.3rem; padding:.85rem; margin:0; }
.pb-pilot-result strong { font-size:var(--pub-text-body); }
.pb-outcome { color:#fda4af; font-size:var(--pub-text-small); }.pb-warning .pb-outcome { color:#fcd34d; }
@media (max-width:70rem) { .pb-example-grid { grid-template-columns:1fr; } .pb-pilot-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:48rem) { .pb-trade-cards { grid-template-columns:1fr; } .pb-footprint { width:6rem; } .pb-footprint-row dl { max-width:18rem; } }
@media (max-width:34rem) { .pb-pilot-grid { grid-template-columns:1fr; } .pb-scene-heading { padding:.5rem; } .pb-prediction { padding:.5rem; } }
&lt;/style&gt;
&lt;!-- Shared, original vector illustrations. All scenes and patch textures are schematic. --&gt;
&lt;svg xmlns="http://www.w3.org/2000/svg" width="0" height="0" aria-hidden="true" focusable="false" style="position:absolute;overflow:hidden;"&gt;
&lt;defs&gt;
&lt;pattern id="pb-pixels" width="24" height="24" patternUnits="userSpaceOnUse"&gt;
&lt;path fill="#a5b4fc" d="M0 0h24v24H0z"/&gt;
&lt;path fill="#4338ca" d="M0 0h8v16H0zM16 8h8v16h-8z"/&gt;
&lt;path fill="#fb7185" d="M8 0h16v8H8zM0 16h8v8H0z"/&gt;
&lt;path fill="#fbbf24" d="M8 8h8v8H8z"/&gt;
&lt;path fill="#2dd4bf" d="M8 16h8v8H8z"/&gt;
&lt;/pattern&gt;
&lt;pattern id="pb-grid" width="30" height="30" patternUnits="userSpaceOnUse"&gt;&lt;path d="M30 0H0v30" fill="none" stroke="#64748b" stroke-opacity=".18"/&gt;&lt;/pattern&gt;
&lt;linearGradient id="pb-sky" x2="0" y2="1"&gt;&lt;stop stop-color="#17243b"/&gt;&lt;stop offset="1" stop-color="#0f172a"/&gt;&lt;/linearGradient&gt;
&lt;linearGradient id="pb-glass"&gt;&lt;stop stop-color="#164e63" stop-opacity=".7"/&gt;&lt;stop offset=".5" stop-color="#67e8f9" stop-opacity=".25"/&gt;&lt;stop offset="1" stop-color="#164e63" stop-opacity=".65"/&gt;&lt;/linearGradient&gt;
&lt;symbol id="pb-bike-scene" viewBox="0 0 360 220"&gt;
&lt;path d="M0 0h360v220H0z" fill="url(#pb-sky)"/&gt;
&lt;path d="M0 0h360v220H0z" fill="url(#pb-grid)"/&gt;
&lt;path d="M0 160h360v60H0z" fill="#162438"/&gt;&lt;path d="M0 160h360M0 195h360" stroke="#334155"/&gt;
&lt;g fill="#1e293b" stroke="#334155"&gt;&lt;path d="M12 110V48h47v62M300 110V30h45v80M67 110V66h30v44"/&gt;&lt;path d="M0 110h360"/&gt;&lt;/g&gt;
&lt;ellipse cx="179" cy="186" rx="125" ry="9" fill="#020617" opacity=".5"/&gt;
&lt;g fill="#0b1220" stroke="#94a3b8" stroke-width="3"&gt;&lt;circle cx="96" cy="145" r="38"/&gt;&lt;circle cx="264" cy="145" r="38"/&gt;&lt;/g&gt;
&lt;g fill="none" stroke="#475569" stroke-width="1.3"&gt;&lt;path d="M58 145h76m-38-38v76m-27-65 54 54m-54 0 54-54M226 145h76m-38-38v76m-27-65 54 54m-54 0 54-54"/&gt;&lt;/g&gt;
&lt;g fill="none" stroke="#67e8f9" stroke-width="5" stroke-linejoin="round"&gt;&lt;path d="m96 145 50-65 42 65H96l128-65-28 65m28-65 40 65"/&gt;&lt;/g&gt;
&lt;g fill="none" stroke="#cbd5e1" stroke-width="5" stroke-linecap="round"&gt;&lt;path d="m146 80-9-21m-16 0h32m63 21-8-25h24l8 8m-53 82 14 12m-22-12-12-10"/&gt;&lt;/g&gt;
&lt;circle cx="188" cy="145" r="8" fill="#334155" stroke="#cbd5e1" stroke-width="2"/&gt;
&lt;/symbol&gt;
&lt;symbol id="pb-boat-scene" viewBox="0 0 360 220"&gt;
&lt;path d="M0 0h360v220H0z" fill="url(#pb-sky)"/&gt;&lt;path d="M0 0h360v220H0z" fill="url(#pb-grid)"/&gt;
&lt;path d="M0 143h360v77H0z" fill="#0c3245"/&gt;&lt;path d="M0 143h360" stroke="#155e75"/&gt;
&lt;g fill="none" stroke="#38bdf8" opacity=".25"&gt;&lt;path d="M8 162h38m20 0h48m106 0h42m26 0h55M30 187h45m25 0h65m53 0h34m26 0h70M2 209h62m23 0h70m20 0h46m20 0h65"/&gt;&lt;/g&gt;
&lt;path d="M72 136h230l-32 38H103z" fill="#334155" stroke="#94a3b8" stroke-width="2"/&gt;
&lt;path d="M88 144h200" stroke="#67e8f9" stroke-width="4"/&gt;
&lt;path d="M180 42v94" stroke="#cbd5e1" stroke-width="3"/&gt;
&lt;path d="M172 50 98 125h74z" fill="#94a3b8" fill-opacity=".2" stroke="#cbd5e1" stroke-width="2"/&gt;
&lt;path d="m189 64 65 61h-65z" fill="#38bdf8" fill-opacity=".2" stroke="#67e8f9" stroke-width="2"/&gt;
&lt;path d="M104 182h162" stroke="#67e8f9" stroke-width="2" opacity=".25"/&gt;
&lt;/symbol&gt;
&lt;symbol id="pb-bottle" viewBox="0 0 120 190"&gt;
&lt;ellipse cx="60" cy="179" rx="39" ry="7" fill="#020617" opacity=".65"/&gt;
&lt;path d="M47 25h26v25c0 12 20 18 20 35v78c0 8-8 11-33 11s-33-3-33-11V85c0-17 20-23 20-35z" fill="url(#pb-glass)" stroke="#67e8f9" stroke-opacity=".75" stroke-width="2"/&gt;
&lt;rect x="45" y="16" width="30" height="12" rx="3" fill="#475569" stroke="#94a3b8"/&gt;
&lt;path d="M38 86v70M47 37v17" stroke="#a5f3fc" stroke-width="3" opacity=".35" stroke-linecap="round"/&gt;
&lt;path d="M29 99h62v49H29z" fill="#0f172a" fill-opacity=".6"/&gt;
&lt;/symbol&gt;
&lt;/defs&gt;
&lt;/svg&gt;
&lt;div class="not-prose pb-intro pub-grid"&gt;
&lt;section class="pb-card pb-red" aria-labelledby="pb-problem"&gt;
&lt;span class="pb-kicker"&gt;01 · The problem&lt;/span&gt;
&lt;h2 id="pb-problem"&gt;Every query costs. Every pixel shows.&lt;/h2&gt;
&lt;p&gt;A patch can fool an object detector, but its practical cost depends on how many times the attacker queries the model and how much of the image the patch covers.&lt;/p&gt;
&lt;/section&gt;
&lt;section class="pb-card pb-blue" aria-labelledby="pb-idea"&gt;
&lt;span class="pb-kicker"&gt;02 · The approach&lt;/span&gt;
&lt;h2 id="pb-idea"&gt;Adapt three decisions together&lt;/h2&gt;
&lt;p&gt;&lt;strong&gt;PatchBandit&lt;/strong&gt; searches for a useful location, improves the pattern, and increases its size only after progress stalls, all through a score-based black-box interface.&lt;/p&gt;
&lt;/section&gt;
&lt;section class="pb-card pb-green" aria-labelledby="pb-finding"&gt;
&lt;span class="pb-kicker"&gt;03 · The finding&lt;/span&gt;
&lt;h2 id="pb-finding"&gt;Detector architecture changes the trade-off&lt;/h2&gt;
&lt;p&gt;The baseline suppresses the original top class in &lt;strong&gt;77.5–89.7%&lt;/strong&gt; of tested cases on the two CNN detectors and &lt;strong&gt;59.1%&lt;/strong&gt; on the transformer detector.&lt;/p&gt;
&lt;/section&gt;
&lt;/div&gt;
&lt;section class="not-prose pb-section pb-examples" aria-labelledby="pb-examples-title"&gt;
&lt;header class="pb-header"&gt;&lt;h2 id="pb-examples-title"&gt;Same object. Different prediction.&lt;/h2&gt;&lt;p&gt;A localized pattern changes the detector’s output while the object remains in view.&lt;/p&gt;&lt;/header&gt;
&lt;div class="pb-body"&gt;&lt;figure aria-labelledby="pb-examples-caption"&gt;&lt;div class="pb-example-grid"&gt;&lt;div class="pb-example-group"&gt;&lt;div class="pb-example-heading"&gt;&lt;h3&gt;Physical example&lt;/h3&gt;&lt;span class="pb-chip"&gt;160 px patch&lt;/span&gt;&lt;/div&gt;&lt;div class="pb-scene-pair"&gt;&lt;div class="pb-scene-card pb-clean"&gt;
&lt;div class="pb-scene-heading"&gt;&lt;span&gt;Clean view&lt;/span&gt;&lt;span class="pb-status-dot" aria-hidden="true"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;svg class="pb-scene" viewBox="0 0 360 220" role="img" aria-label="Schematic bike scene without a patch; reported prediction: Bicycle · 0.95"&gt;
&lt;use href="#pb-bike-scene"/&gt;
&lt;rect x="48" y="43" width="268" height="148" rx="6" fill="none" stroke="#4ade80" stroke-width="2" stroke-dasharray="none"/&gt;
&lt;/svg&gt;
&lt;div class="pb-prediction"&gt;&lt;span&gt;Top prediction&lt;/span&gt;&lt;strong&gt;Bicycle · 0.95&lt;/strong&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="pb-scene-card pb-attack"&gt;
&lt;div class="pb-scene-heading"&gt;&lt;span&gt;With patch&lt;/span&gt;&lt;span class="pb-status-dot" aria-hidden="true"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;svg class="pb-scene" viewBox="0 0 360 220" role="img" aria-label="Schematic bike scene with an illustrative patch; reported prediction: Motorbike · 0.36"&gt;
&lt;use href="#pb-bike-scene"/&gt;&lt;rect x="157" y="94" width="44" height="44" rx="2" fill="url(#pb-pixels)" stroke="#fbbf24" stroke-width="2"/&gt;
&lt;rect x="48" y="43" width="268" height="148" rx="6" fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="7 5"/&gt;
&lt;/svg&gt;
&lt;div class="pb-prediction"&gt;&lt;span&gt;Top prediction&lt;/span&gt;&lt;strong&gt;Motorbike · 0.36&lt;/strong&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="pb-example-group"&gt;&lt;div class="pb-example-heading"&gt;&lt;h3&gt;Digital example&lt;/h3&gt;&lt;span class="pb-chip"&gt;60 px patch&lt;/span&gt;&lt;/div&gt;&lt;div class="pb-scene-pair"&gt;&lt;div class="pb-scene-card pb-clean"&gt;
&lt;div class="pb-scene-heading"&gt;&lt;span&gt;Clean view&lt;/span&gt;&lt;span class="pb-status-dot" aria-hidden="true"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;svg class="pb-scene" viewBox="0 0 360 220" role="img" aria-label="Schematic boat scene without a patch; reported prediction: Boat · 0.91"&gt;
&lt;use href="#pb-boat-scene"/&gt;
&lt;rect x="67" y="30" width="241" height="152" rx="6" fill="none" stroke="#4ade80" stroke-width="2" stroke-dasharray="none"/&gt;
&lt;/svg&gt;
&lt;div class="pb-prediction"&gt;&lt;span&gt;Top prediction&lt;/span&gt;&lt;strong&gt;Boat · 0.91&lt;/strong&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="pb-scene-card pb-attack"&gt;
&lt;div class="pb-scene-heading"&gt;&lt;span&gt;With patch&lt;/span&gt;&lt;span class="pb-status-dot" aria-hidden="true"&gt;&lt;/span&gt;&lt;/div&gt;
&lt;svg class="pb-scene" viewBox="0 0 360 220" role="img" aria-label="Schematic boat scene with an illustrative patch; reported prediction: Cat · 0.92"&gt;
&lt;use href="#pb-boat-scene"/&gt;&lt;rect x="205" y="111" width="28" height="28" rx="2" fill="url(#pb-pixels)" stroke="#fbbf24" stroke-width="2"/&gt;
&lt;rect x="67" y="30" width="241" height="152" rx="6" fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="7 5"/&gt;
&lt;/svg&gt;
&lt;div class="pb-prediction"&gt;&lt;span&gt;Top prediction&lt;/span&gt;&lt;strong&gt;Cat · 0.92&lt;/strong&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;
&lt;figcaption id="pb-examples-caption"&gt;Original schematic drawings of the examples reported in Figure 1. Labels, confidence scores, and nominal patch sizes are from the paper; scene geometry, boxes, and patch patterns are illustrative and not to scale. These top-label changes do not by themselves establish strict suppression.&lt;/figcaption&gt;&lt;/figure&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="paper-method" tabindex="-1" class="paper-section-anchor not-prose pb-section" aria-labelledby="pb-method-title"&gt;
&lt;header class="pb-header"&gt;
&lt;h2 id="pb-method-title"&gt;Inside PatchBandit&lt;/h2&gt;
&lt;p&gt;A detector returns boxes, classes, and confidence scores. Its weights and gradients stay hidden.&lt;/p&gt;
&lt;/header&gt;
&lt;div class="pb-body"&gt;
&lt;figure aria-labelledby="pb-flow-caption"&gt;
&lt;ol class="pb-flow"&gt;
&lt;li&gt;
&lt;span class="pb-step-number" aria-hidden="true"&gt;1&lt;/span&gt;
&lt;h3&gt;Choose where&lt;/h3&gt;
&lt;svg class="pb-step-art" viewBox="0 0 300 180" role="img" aria-label="Schematic placement search: candidate grid cells surround a bottle; one cell near the object is selected."&gt;
&lt;rect x="1" y="1" width="298" height="178" rx="10" fill="#0b1424" stroke="#334155"/&gt;
&lt;use href="#pb-bottle" x="90" y="-2" width="110" height="174" opacity=".7"/&gt;
&lt;g fill="none" stroke="#475569" stroke-opacity=".65"&gt;&lt;path d="M30 30h240v120H30zM30 60h240M30 90h240M30 120h240M60 30v120M90 30v120M120 30v120M150 30v120M180 30v120M210 30v120M240 30v120"/&gt;&lt;/g&gt;
&lt;rect x="90" y="60" width="30" height="30" fill="#818cf8" opacity=".15"/&gt;&lt;rect x="180" y="90" width="30" height="30" fill="#818cf8" opacity=".25"/&gt;
&lt;rect x="120" y="90" width="30" height="30" rx="3" fill="#818cf8" fill-opacity=".35" stroke="#c7d2fe" stroke-width="2"/&gt;
&lt;path d="m126 105 6 6 12-13" fill="none" stroke="#c7d2fe" stroke-width="2"/&gt;
&lt;/svg&gt;
&lt;p&gt;A &lt;strong&gt;contextual Thompson-sampling&lt;/strong&gt; policy explores candidate grid cells. Features describe proximity to annotated objects, texture variation, and image borders.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;span class="pb-step-number" aria-hidden="true"&gt;2&lt;/span&gt;
&lt;h3&gt;Improve the pattern&lt;/h3&gt;
&lt;svg class="pb-step-art" viewBox="0 0 300 180" role="img" aria-label="Schematic texture update: several pixel perturbations are scored, then used to improve the patch."&gt;
&lt;rect x="1" y="1" width="298" height="178" rx="10" fill="#0b1424" stroke="#334155"/&gt;
&lt;rect x="22" y="60" width="58" height="58" rx="4" fill="url(#pb-pixels)" stroke="#c7d2fe"/&gt;
&lt;path d="M87 89h18m-5-5 5 5-5 5M174 89h23m-5-5 5 5-5 5" fill="none" stroke="#94a3b8" stroke-width="2"/&gt;
&lt;g stroke="#818cf8"&gt;&lt;rect x="114" y="29" width="45" height="45" rx="3" fill="url(#pb-pixels)"/&gt;&lt;rect x="121" y="67" width="45" height="45" rx="3" fill="url(#pb-pixels)"/&gt;&lt;rect x="128" y="105" width="45" height="45" rx="3" fill="url(#pb-pixels)"/&gt;&lt;/g&gt;
&lt;path d="M114 29h15v15h-15zM143 67h23v12h-23zM128 129h20v21h-20z" fill="#67e8f9"/&gt;
&lt;rect x="209" y="60" width="65" height="65" rx="4" fill="url(#pb-pixels)" stroke="#4ade80" stroke-width="2"/&gt;&lt;path d="M209 60h32v16h-32zM241 108h33v17h-33z" fill="#2dd4bf"/&gt;
&lt;/svg&gt;
&lt;p&gt;&lt;strong&gt;Natural Evolution Strategies&lt;/strong&gt; tests pixel perturbations and uses the resulting confidence changes to update the patch, without backpropagating through the detector.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;span class="pb-step-number" aria-hidden="true"&gt;3&lt;/span&gt;
&lt;h3&gt;Grow only if stalled&lt;/h3&gt;
&lt;svg class="pb-step-art" viewBox="0 0 300 180" role="img" aria-label="Schematic size ladder: the patch starts small and expands only after optimization stalls."&gt;
&lt;rect x="1" y="1" width="298" height="178" rx="10" fill="#0b1424" stroke="#334155"/&gt;
&lt;path d="M25 145h250" stroke="#475569" stroke-dasharray="4 4"/&gt;
&lt;rect x="29" y="110" width="34" height="34" rx="3" fill="url(#pb-pixels)" stroke="#c7d2fe"/&gt;
&lt;rect x="109" y="84" width="60" height="60" rx="3" fill="url(#pb-pixels)" stroke="#c7d2fe"/&gt;
&lt;rect x="175" y="44" width="100" height="100" rx="3" fill="none" stroke="#475569" stroke-dasharray="5 5"/&gt;
&lt;rect x="195" y="64" width="80" height="80" rx="3" fill="url(#pb-pixels)" stroke="#fbbf24" stroke-width="2"/&gt;
&lt;path d="M69 125h30m-6-5 6 5-6 5M175 112h14m-6-5 6 5-6 5" fill="none" stroke="#a5b4fc" stroke-width="2"/&gt;
&lt;path d="M30 43h43l12-12 12 4h45l12-12h31" stroke="#fbbf24" stroke-width="2" fill="none"/&gt;
&lt;circle cx="170" cy="23" r="4" fill="#fbbf24"/&gt;
&lt;/svg&gt;
&lt;p&gt;If the reward stops improving for a set number of iterations, the patch moves to the next size and the placement grid is rebuilt. Otherwise, its footprint stays small.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="pb-loop-note"&gt;&lt;strong&gt;Repeat with feedback:&lt;/strong&gt; update the placement policy from observed rewards, then search again. Stop at strict success or the query cap.&lt;/div&gt;
&lt;figcaption id="pb-flow-caption"&gt;Conceptual flow of the method in Section 3 and Algorithm 1. The digital attack optimizes each image separately; it does not assume access to detector parameters.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;div class="pb-body pb-divider"&gt;
&lt;h3&gt;What counts as success?&lt;/h3&gt;
&lt;p&gt;The target is the &lt;strong&gt;highest-confidence class in the clean image&lt;/strong&gt;. On the patched, untransformed image, both conditions must hold:&lt;/p&gt;
&lt;div class="pb-rule" aria-label="Both success conditions must hold"&gt;
&lt;span&gt;Confidence drop ≥ 0.25&lt;/span&gt;
&lt;strong&gt;and&lt;/strong&gt;
&lt;span&gt;Remaining confidence ≤ 0.10&lt;/span&gt;
&lt;/div&gt;
&lt;p class="pb-note"&gt;Confidence is the maximum score for that class across detected boxes, or zero if the class is absent. Suppressing that class does not mean every object disappears. Expectation over Transformation (EOT) tests transformed views separately; an EOT average is not a replacement for this plain-image test.&lt;/p&gt;
&lt;/div&gt;
&lt;/section&gt;
&lt;section id="paper-results" tabindex="-1" class="paper-section-anchor not-prose pb-section pb-results" aria-labelledby="pb-results-title"&gt;
&lt;header class="pb-header"&gt;
&lt;h2 id="pb-results-title"&gt;Success, footprint, and query cost&lt;/h2&gt;
&lt;p&gt;Three detector families expose different vulnerabilities. These baseline results use the paper’s strict plain-image criterion.&lt;/p&gt;
&lt;/header&gt;
&lt;div class="pb-body"&gt;
&lt;div class="pb-metrics pub-grid"&gt;
&lt;div class="pb-card"&gt;&lt;h3&gt;YOLOv5&lt;/h3&gt;&lt;span class="pb-stat"&gt;77.5%&lt;/span&gt;&lt;span class="pb-note"&gt;One-stage CNN · strict success&lt;/span&gt;&lt;/div&gt;
&lt;div class="pb-card"&gt;&lt;h3&gt;Faster R-CNN&lt;/h3&gt;&lt;span class="pb-stat"&gt;89.7%&lt;/span&gt;&lt;span class="pb-note"&gt;Two-stage CNN · strict success&lt;/span&gt;&lt;/div&gt;
&lt;div class="pb-card"&gt;&lt;h3&gt;YOLOS&lt;/h3&gt;&lt;span class="pb-stat"&gt;59.1%&lt;/span&gt;&lt;span class="pb-note"&gt;ViT transformer · strict success&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class="pub-scroll" tabindex="0" role="region" aria-label="Baseline detector results; scroll horizontally on small screens"&gt;
&lt;table class="pb-table"&gt;
&lt;caption&gt;Baseline PatchBandit (ctx-strict), Table 2&lt;/caption&gt;
&lt;thead&gt;&lt;tr&gt;&lt;th scope="col"&gt;Detector&lt;/th&gt;&lt;th scope="col"&gt;Strict success&lt;/th&gt;&lt;th scope="col"&gt;Median patch area&lt;/th&gt;&lt;th scope="col"&gt;Median queries&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;&lt;th scope="row"&gt;YOLOv5&lt;/th&gt;&lt;td&gt;77.5%&lt;/td&gt;&lt;td&gt;8.32%&lt;/td&gt;&lt;td&gt;1,079&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope="row"&gt;Faster R-CNN&lt;/th&gt;&lt;td&gt;89.7%&lt;/td&gt;&lt;td&gt;0.92%&lt;/td&gt;&lt;td&gt;177&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;th scope="row"&gt;YOLOS&lt;/th&gt;&lt;td&gt;59.1%&lt;/td&gt;&lt;td&gt;8.32%&lt;/td&gt;&lt;td&gt;290&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;p class="pb-note"&gt;Area is a percentage of the image. These numbers are reproduced from Table 2; the fixed-size ablation in Table 3 reports different query counts for the CNN detectors.&lt;/p&gt;
&lt;/div&gt;
&lt;div class="pb-body pb-divider"&gt;
&lt;h3&gt;On YOLOv5, earlier growth roughly halves queries&lt;/h3&gt;
&lt;p&gt;GP5 shortens the patience before increasing patch size. It retains almost the same success rate and median footprint as the baseline.&lt;/p&gt;
&lt;figure class="pb-comparison" aria-labelledby="pb-query-caption"&gt;
&lt;div&gt;
&lt;div class="pb-bar-label"&gt;&lt;span&gt;Baseline&lt;/span&gt;&lt;strong&gt;1,079 queries&lt;/strong&gt;&lt;/div&gt;
&lt;div class="pb-bar-track" aria-hidden="true"&gt;&lt;div class="pb-bar" style="width:100%"&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class="pb-bar-label"&gt;&lt;span&gt;GP5 · faster growth&lt;/span&gt;&lt;strong&gt;529 queries&lt;/strong&gt;&lt;/div&gt;
&lt;div class="pb-bar-track" aria-hidden="true"&gt;&lt;div class="pb-bar pb-fast" style="width:49.03%"&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;figcaption id="pb-query-caption"&gt;YOLOv5, Table 2: median queries fall by approximately 51%; strict success changes from 77.5% to 77.7%, with median patch area unchanged at 8.32%.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;p&gt;The trade-off changes on &lt;strong&gt;YOLOS&lt;/strong&gt;: GP5 cuts median queries from 290 to 47.5 and raises success from 59.1% to 60.8%, but increases median area from 8.32% to 14.79%.&lt;/p&gt;
&lt;/div&gt;
&lt;/section&gt;
&lt;section id="pb-tradeoffs" class="not-prose pb-section pb-results" aria-labelledby="pb-trade-title"&gt;
&lt;header class="pb-header"&gt;&lt;h2 id="pb-trade-title"&gt;Explore the trade-off&lt;/h2&gt;&lt;p&gt;Higher success, smaller patch, fewer queries: no single configuration wins every measure.&lt;/p&gt;&lt;/header&gt;
&lt;div class="pb-body"&gt;
&lt;div id="pb-detector-controls" class="pb-detector-controls" role="group" aria-label="Choose detector" hidden&gt;
&lt;button type="button" data-detector="yolo" aria-pressed="true"&gt;YOLOv5&lt;/button&gt;
&lt;button type="button" data-detector="faster" aria-pressed="false"&gt;Faster R-CNN&lt;/button&gt;
&lt;button type="button" data-detector="yolos" aria-pressed="false"&gt;YOLOS&lt;/button&gt;
&lt;/div&gt;
&lt;figure aria-labelledby="pb-trade-caption"&gt;
&lt;div class="pb-example-heading"&gt;&lt;h3 id="pb-chart-heading"&gt;YOLOv5&lt;/h3&gt;&lt;span class="pb-note"&gt;↑ More success &amp;nbsp; · &amp;nbsp; ← Less image area&lt;/span&gt;&lt;/div&gt;
&lt;div class="pub-scroll pb-chart-wrap" tabindex="0" role="region" aria-label="Success versus patch area chart; scroll horizontally on small screens"&gt;
&lt;svg id="pb-trade-svg" class="pb-trade-svg" viewBox="0 0 660 375" role="img" aria-labelledby="pb-trade-svg-title pb-trade-svg-desc"&gt;
&lt;title id="pb-trade-svg-title"&gt;YOLOv5: strict success versus median patch area&lt;/title&gt;
&lt;desc id="pb-trade-svg-desc"&gt;Baseline: 77.5 percent success, 8.32 percent area, 1079 median queries. GP5: 77.7 percent success, 8.32 percent area, 529 median queries. Fixed 160 pixels: 71.1 percent success, 14.8 percent area, 133 median queries.&lt;/desc&gt;
&lt;text x="60" y="20" fill="#cbd5e1"&gt;Strict success (%)&lt;/text&gt;
&lt;path d="M60 300.0h540" stroke="#334155" stroke-dasharray="3 5"/&gt;&lt;text x="48" y="305.0" text-anchor="end" fill="#94a3b8"&gt;0&lt;/text&gt;&lt;path d="M60 240.0h540" stroke="#334155" stroke-dasharray="3 5"/&gt;&lt;text x="48" y="245.0" text-anchor="end" fill="#94a3b8"&gt;25&lt;/text&gt;&lt;path d="M60 180.0h540" stroke="#334155" stroke-dasharray="3 5"/&gt;&lt;text x="48" y="185.0" text-anchor="end" fill="#94a3b8"&gt;50&lt;/text&gt;&lt;path d="M60 120.0h540" stroke="#334155" stroke-dasharray="3 5"/&gt;&lt;text x="48" y="125.0" text-anchor="end" fill="#94a3b8"&gt;75&lt;/text&gt;&lt;path d="M60 60.0h540" stroke="#334155" stroke-dasharray="3 5"/&gt;&lt;text x="48" y="65.0" text-anchor="end" fill="#94a3b8"&gt;100&lt;/text&gt;&lt;path d="M60.0 60v240" stroke="#334155" stroke-dasharray="3 5"/&gt;&lt;text x="60.0" y="324" text-anchor="middle" fill="#94a3b8"&gt;0%&lt;/text&gt;&lt;path d="M195.0 60v240" stroke="#334155" stroke-dasharray="3 5"/&gt;&lt;text x="195.0" y="324" text-anchor="middle" fill="#94a3b8"&gt;4%&lt;/text&gt;&lt;path d="M330.0 60v240" stroke="#334155" stroke-dasharray="3 5"/&gt;&lt;text x="330.0" y="324" text-anchor="middle" fill="#94a3b8"&gt;8%&lt;/text&gt;&lt;path d="M465.0 60v240" stroke="#334155" stroke-dasharray="3 5"/&gt;&lt;text x="465.0" y="324" text-anchor="middle" fill="#94a3b8"&gt;12%&lt;/text&gt;&lt;path d="M600.0 60v240" stroke="#334155" stroke-dasharray="3 5"/&gt;&lt;text x="600.0" y="324" text-anchor="middle" fill="#94a3b8"&gt;16%&lt;/text&gt;&lt;text x="330" y="360" text-anchor="middle" fill="#cbd5e1"&gt;Median patch area (% of image)&lt;/text&gt;&lt;g id="pb-trade-marks"&gt;&lt;g&gt;&lt;path d="M340.8 114.0L260 54" fill="none" stroke="#a5b4fc" stroke-opacity=".65"/&gt;&lt;circle cx="340.8" cy="114.0" r="10" fill="#0f172a" stroke="#a5b4fc" stroke-width="3"/&gt;&lt;rect x="180" y="33" width="160" height="47" rx="8" fill="#101b2c" stroke="#a5b4fc" stroke-opacity=".45"/&gt;&lt;text x="192" y="52" fill="#a5b4fc" font-weight="700"&gt;Baseline&lt;/text&gt;&lt;text x="192" y="70" fill="#cbd5e1" font-size="13"&gt;1,079 median queries&lt;/text&gt;&lt;/g&gt;&lt;g&gt;&lt;path d="M340.8 113.51999999999998L255 185" fill="none" stroke="#2dd4bf" stroke-opacity=".65"/&gt;&lt;path d="M340.8 106.51999999999998l7 7-7 7-7-7z" fill="#2dd4bf" stroke="#0f172a" stroke-width="1.5"/&gt;&lt;rect x="175" y="164" width="160" height="47" rx="8" fill="#101b2c" stroke="#2dd4bf" stroke-opacity=".45"/&gt;&lt;text x="187" y="183" fill="#2dd4bf" font-weight="700"&gt;GP5&lt;/text&gt;&lt;text x="187" y="201" fill="#cbd5e1" font-size="13"&gt;529 median queries&lt;/text&gt;&lt;/g&gt;&lt;g&gt;&lt;path d="M559.5 129.36L505 232" fill="none" stroke="#fbbf24" stroke-opacity=".65"/&gt;&lt;rect x="553.5" y="123.36000000000001" width="12" height="12" rx="1" fill="#fbbf24"/&gt;&lt;rect x="425" y="211" width="160" height="47" rx="8" fill="#101b2c" stroke="#fbbf24" stroke-opacity=".45"/&gt;&lt;text x="437" y="230" fill="#fbbf24" font-weight="700"&gt;Fixed 160 px&lt;/text&gt;&lt;text x="437" y="248" fill="#cbd5e1" font-size="13"&gt;133 median queries&lt;/text&gt;&lt;/g&gt;&lt;g aria-hidden="true"&gt;&lt;circle cx="340.8" cy="114.0" r="10" fill="#0f172a" stroke="#a5b4fc" stroke-width="3"/&gt;&lt;path d="M340.8 106.51999999999998l7 7-7 7-7-7z" fill="#2dd4bf" stroke="#0f172a" stroke-width="1.5"/&gt;&lt;rect x="553.5" y="123.36000000000001" width="12" height="12" rx="1" fill="#fbbf24"/&gt;&lt;/g&gt;&lt;/g&gt;
&lt;/svg&gt;
&lt;/div&gt;
&lt;div id="pb-trade-cards" class="pb-trade-cards"&gt;&lt;div class="pb-trade-card" data-series="0" style="--pb-series:#a5b4fc"&gt;
&lt;h3&gt;&lt;span class="pb-symbol pb-symbol-baseline" aria-hidden="true"&gt;&lt;/span&gt;Baseline&lt;/h3&gt;
&lt;div class="pb-footprint-row"&gt;&lt;svg viewBox="0 0 112 112" class="pb-footprint" role="img" aria-label="8.32% median image area covered by the patch"&gt;&lt;rect x="6" y="6" width="100" height="100" rx="5" fill="#0b1424" stroke="#475569"/&gt;&lt;path d="M6 40h100M6 73h100M40 6v100M73 6v100" stroke="#334155" stroke-dasharray="3 4"/&gt;&lt;rect data-footprint x="77.15558979628808" y="77.15558979628808" width="28.844410203711913" height="28.844410203711913" fill="url(#pb-pixels)" stroke="#a5b4fc"/&gt;&lt;/svg&gt;
&lt;dl&gt;&lt;div&gt;&lt;dt&gt;Success&lt;/dt&gt;&lt;dd data-value="success"&gt;77.5%&lt;/dd&gt;&lt;/div&gt;&lt;div&gt;&lt;dt&gt;Image area&lt;/dt&gt;&lt;dd data-value="area"&gt;8.32%&lt;/dd&gt;&lt;/div&gt;&lt;div&gt;&lt;dt&gt;Queries&lt;/dt&gt;&lt;dd data-value="queries"&gt;1,079&lt;/dd&gt;&lt;/div&gt;&lt;/dl&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="pb-trade-card" data-series="1" style="--pb-series:#2dd4bf"&gt;
&lt;h3&gt;&lt;span class="pb-symbol pb-symbol-gp5" aria-hidden="true"&gt;&lt;/span&gt;GP5&lt;/h3&gt;
&lt;div class="pb-footprint-row"&gt;&lt;svg viewBox="0 0 112 112" class="pb-footprint" role="img" aria-label="8.32% median image area covered by the patch"&gt;&lt;rect x="6" y="6" width="100" height="100" rx="5" fill="#0b1424" stroke="#475569"/&gt;&lt;path d="M6 40h100M6 73h100M40 6v100M73 6v100" stroke="#334155" stroke-dasharray="3 4"/&gt;&lt;rect data-footprint x="77.15558979628808" y="77.15558979628808" width="28.844410203711913" height="28.844410203711913" fill="url(#pb-pixels)" stroke="#2dd4bf"/&gt;&lt;/svg&gt;
&lt;dl&gt;&lt;div&gt;&lt;dt&gt;Success&lt;/dt&gt;&lt;dd data-value="success"&gt;77.7%&lt;/dd&gt;&lt;/div&gt;&lt;div&gt;&lt;dt&gt;Image area&lt;/dt&gt;&lt;dd data-value="area"&gt;8.32%&lt;/dd&gt;&lt;/div&gt;&lt;div&gt;&lt;dt&gt;Queries&lt;/dt&gt;&lt;dd data-value="queries"&gt;529&lt;/dd&gt;&lt;/div&gt;&lt;/dl&gt;&lt;/div&gt;
&lt;/div&gt;&lt;div class="pb-trade-card" data-series="2" style="--pb-series:#fbbf24"&gt;
&lt;h3&gt;&lt;span class="pb-symbol pb-symbol-fixed" aria-hidden="true"&gt;&lt;/span&gt;Fixed 160 px&lt;/h3&gt;
&lt;div class="pb-footprint-row"&gt;&lt;svg viewBox="0 0 112 112" class="pb-footprint" role="img" aria-label="14.8% median image area covered by the patch"&gt;&lt;rect x="6" y="6" width="100" height="100" rx="5" fill="#0b1424" stroke="#475569"/&gt;&lt;path d="M6 40h100M6 73h100M40 6v100M73 6v100" stroke="#334155" stroke-dasharray="3 4"/&gt;&lt;rect data-footprint x="67.5292318766573" y="67.5292318766573" width="38.470768123342694" height="38.470768123342694" fill="url(#pb-pixels)" stroke="#fbbf24"/&gt;&lt;/svg&gt;
&lt;dl&gt;&lt;div&gt;&lt;dt&gt;Success&lt;/dt&gt;&lt;dd data-value="success"&gt;71.1%&lt;/dd&gt;&lt;/div&gt;&lt;div&gt;&lt;dt&gt;Image area&lt;/dt&gt;&lt;dd data-value="area"&gt;14.80%&lt;/dd&gt;&lt;/div&gt;&lt;div&gt;&lt;dt&gt;Queries&lt;/dt&gt;&lt;dd data-value="queries"&gt;133&lt;/dd&gt;&lt;/div&gt;&lt;/dl&gt;&lt;/div&gt;
&lt;/div&gt;&lt;/div&gt;
&lt;p id="pb-trade-insight" class="pb-loop-note" aria-live="polite"&gt;Baseline and GP5 nearly overlap: the same 8.32% footprint and almost identical success, but GP5 uses about half the median queries. Fixed 160 px uses fewer queries with a larger footprint and lower success.&lt;/p&gt;
&lt;figcaption id="pb-trade-caption"&gt;Recreated from Table 2. Each marker represents a configuration; shapes and colors identify it, and labels report median queries. The small image tiles show median patch area to scale, with illustrative placement and texture. All detector views use the same axes.&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/div&gt;
&lt;script type="application/json" id="pb-trade-data"&gt;{"yolo": {"label": "YOLOv5", "rows": [[77.5, 8.32, 1079], [77.7, 8.32, 529], [71.1, 14.8, 133]], "labels": [[180, 33], [175, 164], [425, 211]], "note": "Baseline and GP5 nearly overlap: the same 8.32% footprint and almost identical success, but GP5 uses about half the median queries. Fixed 160 px uses fewer queries with a larger footprint and lower success."}, "faster": {"label": "Faster R-CNN", "rows": [[89.7, 0.92, 177], [90, 2.08, 155], [79.6, 14.8, 111]], "labels": [[75, 24], [150, 164], [425, 211]], "note": "The baseline reaches 89.7% success with a 0.92% median footprint. GP5 saves 22 median queries but more than doubles that area. The fixed patch occupies 14.8% and succeeds less often."}, "yolos": {"label": "YOLOS", "rows": [[59.1, 8.32, 290], [60.8, 14.79, 47.5], [55.4, 14.79, 35]], "labels": [[175, 67], [430, 45], [425, 230]], "note": "GP5 reduces median queries from 290 to 47.5, with a small success gain and a much larger footprint. At the same median area, the fixed patch uses 35 queries but has lower success."}}&lt;/script&gt;
&lt;/section&gt;
&lt;section id="paper-impact" tabindex="-1" class="paper-section-anchor not-prose pb-section" aria-labelledby="pb-physical-title"&gt;
&lt;header class="pb-header"&gt;
&lt;h2 id="pb-physical-title"&gt;From digital optimization to a printed patch&lt;/h2&gt;
&lt;p&gt;A small print–capture pilot tests a bottle patch under changes in distance, viewpoint, and object instance.&lt;/p&gt;
&lt;/header&gt;
&lt;div class="pb-body"&gt;
&lt;p&gt;YOLOv5 detected the bottle with confidence above 0.90 in clean shots. With the printed patch, the reported conditions produced different kinds of errors:&lt;/p&gt;
&lt;div class="pb-pilot-grid"&gt;&lt;figure class="pb-pilot-card pb-attack"&gt;
&lt;div class="pb-pilot-heading"&gt;&lt;span class="pb-kicker"&gt;01 · Frontal&lt;/span&gt;&lt;h3&gt;Original bottle&lt;/h3&gt;&lt;span class="pb-note"&gt;40 cm · 0°&lt;/span&gt;&lt;/div&gt;
&lt;svg class="pb-pilot-art" viewBox="0 0 300 230" role="img" aria-label="Schematic original bottle: misclassified. Reported prediction Chair · 0.59. Bounding box geometry is illustrative."&gt;
&lt;path d="M0 0h300v230H0z" fill="url(#pb-sky)"/&gt;&lt;path d="M0 0h300v230H0z" fill="url(#pb-grid)"/&gt;
&lt;path d="M0 202h300v28H0z" fill="#1e293b"/&gt;&lt;path d="M0 202h300" stroke="#475569"/&gt;
&lt;g transform="translate(150 117) rotate(0) scale(1) translate(-150 -117)"&gt;
&lt;use href="#pb-bottle" x="90" y="20" width="120" height="190"/&gt;
&lt;rect x="128" y="121" width="44" height="40" rx="2" fill="url(#pb-pixels)" stroke="#fbbf24"/&gt;
&lt;/g&gt;
&lt;rect x="90" y="23" width="106" height="180" rx="5" fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="6 4"/&gt;
&lt;/svg&gt;
&lt;figcaption class="pb-pilot-result"&gt;&lt;span&gt;Top prediction&lt;/span&gt;&lt;strong&gt;Chair · 0.59&lt;/strong&gt;&lt;span class="pb-outcome"&gt;Misclassified&lt;/span&gt;&lt;/figcaption&gt;
&lt;/figure&gt;&lt;figure class="pb-pilot-card pb-attack"&gt;
&lt;div class="pb-pilot-heading"&gt;&lt;span class="pb-kicker"&gt;02 · Tilted&lt;/span&gt;&lt;h3&gt;Original bottle&lt;/h3&gt;&lt;span class="pb-note"&gt;50 cm · 10°&lt;/span&gt;&lt;/div&gt;
&lt;svg class="pb-pilot-art" viewBox="0 0 300 230" role="img" aria-label="Schematic original bottle: misclassified. Reported prediction TV monitor · 0.35. Bounding box geometry is illustrative."&gt;
&lt;path d="M0 0h300v230H0z" fill="url(#pb-sky)"/&gt;&lt;path d="M0 0h300v230H0z" fill="url(#pb-grid)"/&gt;
&lt;path d="M0 202h300v28H0z" fill="#1e293b"/&gt;&lt;path d="M0 202h300" stroke="#475569"/&gt;
&lt;g transform="translate(150 117) rotate(-10) scale(1) translate(-150 -117)"&gt;
&lt;use href="#pb-bottle" x="90" y="20" width="120" height="190"/&gt;
&lt;rect x="128" y="121" width="44" height="40" rx="2" fill="url(#pb-pixels)" stroke="#fbbf24"/&gt;
&lt;/g&gt;
&lt;rect x="72" y="29" width="126" height="165" rx="5" fill="none" stroke="#fb7185" stroke-width="2" stroke-dasharray="6 4"/&gt;
&lt;/svg&gt;
&lt;figcaption class="pb-pilot-result"&gt;&lt;span&gt;Top prediction&lt;/span&gt;&lt;strong&gt;TV monitor · 0.35&lt;/strong&gt;&lt;span class="pb-outcome"&gt;Misclassified&lt;/span&gt;&lt;/figcaption&gt;
&lt;/figure&gt;&lt;figure class="pb-pilot-card pb-warning"&gt;
&lt;div class="pb-pilot-heading"&gt;&lt;span class="pb-kicker"&gt;03 · Transfer&lt;/span&gt;&lt;h3&gt;New bottle #1&lt;/h3&gt;&lt;span class="pb-note"&gt;54 cm · 0°&lt;/span&gt;&lt;/div&gt;
&lt;svg class="pb-pilot-art" viewBox="0 0 300 230" role="img" aria-label="Schematic new bottle #1: wrong box / low confidence. Reported prediction Bottle · 0.41. Bounding box geometry is illustrative."&gt;
&lt;path d="M0 0h300v230H0z" fill="url(#pb-sky)"/&gt;&lt;path d="M0 0h300v230H0z" fill="url(#pb-grid)"/&gt;
&lt;path d="M0 202h300v28H0z" fill="#1e293b"/&gt;&lt;path d="M0 202h300" stroke="#475569"/&gt;
&lt;g transform="translate(150 117) rotate(0) scale(0.85) translate(-150 -117)"&gt;
&lt;use href="#pb-bottle" x="90" y="20" width="120" height="190"/&gt;
&lt;rect x="128" y="121" width="44" height="40" rx="2" fill="url(#pb-pixels)" stroke="#fbbf24"/&gt;
&lt;/g&gt;
&lt;rect x="146" y="51" width="107" height="144" rx="5" fill="none" stroke="#fbbf24" stroke-width="2" stroke-dasharray="6 4"/&gt;
&lt;/svg&gt;
&lt;figcaption class="pb-pilot-result"&gt;&lt;span&gt;Top prediction&lt;/span&gt;&lt;strong&gt;Bottle · 0.41&lt;/strong&gt;&lt;span class="pb-outcome"&gt;Wrong box / low confidence&lt;/span&gt;&lt;/figcaption&gt;
&lt;/figure&gt;&lt;figure class="pb-pilot-card pb-warning"&gt;
&lt;div class="pb-pilot-heading"&gt;&lt;span class="pb-kicker"&gt;04 · Transfer&lt;/span&gt;&lt;h3&gt;New bottle #2&lt;/h3&gt;&lt;span class="pb-note"&gt;54 cm · 0°&lt;/span&gt;&lt;/div&gt;
&lt;svg class="pb-pilot-art" viewBox="0 0 300 230" role="img" aria-label="Schematic new bottle #2: wrong box. Reported prediction Bottle · 0.81. Bounding box geometry is illustrative."&gt;
&lt;path d="M0 0h300v230H0z" fill="url(#pb-sky)"/&gt;&lt;path d="M0 0h300v230H0z" fill="url(#pb-grid)"/&gt;
&lt;path d="M0 202h300v28H0z" fill="#1e293b"/&gt;&lt;path d="M0 202h300" stroke="#475569"/&gt;
&lt;g transform="translate(150 117) rotate(0) scale(1.07) translate(-150 -117)"&gt;
&lt;use href="#pb-bottle" x="90" y="20" width="120" height="190"/&gt;
&lt;rect x="128" y="121" width="44" height="40" rx="2" fill="url(#pb-pixels)" stroke="#fbbf24"/&gt;
&lt;/g&gt;
&lt;rect x="57" y="80" width="123" height="123" rx="5" fill="none" stroke="#fbbf24" stroke-width="2" stroke-dasharray="6 4"/&gt;
&lt;/svg&gt;
&lt;figcaption class="pb-pilot-result"&gt;&lt;span&gt;Top prediction&lt;/span&gt;&lt;strong&gt;Bottle · 0.81&lt;/strong&gt;&lt;span class="pb-outcome"&gt;Wrong box&lt;/span&gt;&lt;/figcaption&gt;
&lt;/figure&gt;&lt;/div&gt;
&lt;p class="pb-note"&gt;Original schematic illustrations of the four conditions in Table 4. Predictions, scores, distances, and viewing angles are reported measurements; bottle shapes, patch textures, and box positions are illustrative.&lt;/p&gt;
&lt;p class="pb-note"&gt;These are individual pilot observations, not a physical success-rate benchmark. A wrong bounding box or class change is distinct from satisfying the digital strict-suppression test.&lt;/p&gt;
&lt;/div&gt;
&lt;/section&gt;
&lt;section class="not-prose pb-section pb-limits" aria-labelledby="pb-limits-title"&gt;
&lt;header class="pb-header"&gt;&lt;h2 id="pb-limits-title"&gt;What the evidence supports—and its limits&lt;/h2&gt;&lt;/header&gt;
&lt;div class="pb-body pub-grid" style="display:grid;gap:1rem;"&gt;
&lt;div&gt;
&lt;h3&gt;Score access and scene context&lt;/h3&gt;
&lt;p&gt;The attack needs detector confidence scores. Placement features also use ground-truth boxes; a label-only API or an unannotated scene does not provide the same information.&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;Measured suppression, not universal failure&lt;/h3&gt;
&lt;p&gt;The digital metric targets the original top class. It does not establish that all detections vanish, or that one universal patch achieves the same rates across arbitrary scenes.&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;Preliminary physical transfer&lt;/h3&gt;
&lt;p&gt;The bottle pilot supports transfer in the tested conditions. Wider claims about lighting, long distances, and deployment environments need broader physical evaluation.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class="pb-body pb-divider"&gt;
&lt;p&gt;&lt;strong&gt;The practical lesson:&lt;/strong&gt; evaluate adversarial patches against a joint budget of queries and visible area, and keep plain-image suppression separate from robustness across transformations.&lt;/p&gt;
&lt;p class="pb-note"&gt;Source: &lt;a href="https://arxiv.org/pdf/2606.18318" target="_blank" rel="noopener"&gt;the paper, arXiv:2606.18318v1&lt;/a&gt;, Sections 3–4 and Tables 2–4. The DOI and BibTeX refer to the arXiv version; the venue is listed as accepted to ICIP 2026.&lt;/p&gt;
&lt;/div&gt;
&lt;/section&gt;
&lt;script&gt;
(function () {
var root = document.getElementById('pb-tradeoffs');
if (!root || root.dataset.ready) return;
root.dataset.ready = 'true';
var data = JSON.parse(document.getElementById('pb-trade-data').textContent);
var series = [
{ name: 'Baseline', color: '#a5b4fc' },
{ name: 'GP5', color: '#2dd4bf' },
{ name: 'Fixed 160 px', color: '#fbbf24' }
];
function format(value) { return value.toLocaleString('en-US'); }
function point(i, x, y) {
var color = series[i].color;
if (i === 0) return '&lt;circle cx="' + x + '" cy="' + y + '" r="10" fill="#0f172a" stroke="' + color + '" stroke-width="3"/&gt;';
if (i === 1) return '&lt;path d="M' + x + ' ' + (y - 7) + 'l7 7-7 7-7-7z" fill="' + color + '" stroke="#0f172a" stroke-width="1.5"/&gt;';
return '&lt;rect x="' + (x - 6) + '" y="' + (y - 6) + '" width="12" height="12" rx="1" fill="' + color + '"/&gt;';
}
function render(key) {
var selected = data[key];
var marks = '', topMarks = '', descriptions = [];
selected.rows.forEach(function (row, i) {
var success = row[0], area = row[1], queries = row[2];
var x = 60 + area / 16 * 540, y = 300 - success / 100 * 240;
var lx = selected.labels[i][0], ly = selected.labels[i][1];
var name = series[i].name, color = series[i].color;
marks += '&lt;g&gt;&lt;path d="M' + x + ' ' + y + 'L' + (lx + 80) + ' ' + (ly + 21) + '" fill="none" stroke="' + color + '" stroke-opacity=".65"/&gt;' + point(i, x, y)
+ '&lt;rect x="' + lx + '" y="' + ly + '" width="160" height="47" rx="8" fill="#101b2c" stroke="' + color + '" stroke-opacity=".45"/&gt;'
+ '&lt;text x="' + (lx + 12) + '" y="' + (ly + 19) + '" fill="' + color + '" font-weight="700"&gt;' + name + '&lt;/text&gt;'
+ '&lt;text x="' + (lx + 12) + '" y="' + (ly + 37) + '" fill="#cbd5e1" font-size="13"&gt;' + format(queries) + ' median queries&lt;/text&gt;&lt;/g&gt;';
topMarks += point(i, x, y);
descriptions.push(name + ': ' + success + ' percent success, ' + area + ' percent area, ' + queries + ' median queries.');
var card = root.querySelector('[data-series="' + i + '"]');
card.querySelector('[data-value="success"]').textContent = success.toFixed(1) + '%';
card.querySelector('[data-value="area"]').textContent = area.toFixed(2) + '%';
card.querySelector('[data-value="queries"]').textContent = format(queries);
var size = Math.sqrt(area / 100) * 100;
var patch = card.querySelector('[data-footprint]');
patch.setAttribute('x', 106 - size); patch.setAttribute('y', 106 - size);
patch.setAttribute('width', size); patch.setAttribute('height', size);
card.querySelector('svg').setAttribute('aria-label', area + '% median image area covered by the patch');
});
document.getElementById('pb-trade-marks').innerHTML = marks + '&lt;g aria-hidden="true"&gt;' + topMarks + '&lt;/g&gt;';
document.getElementById('pb-chart-heading').textContent = selected.label;
document.getElementById('pb-trade-svg-title').textContent = selected.label + ': strict success versus median patch area';
document.getElementById('pb-trade-svg-desc').textContent = descriptions.join(' ');
document.getElementById('pb-trade-insight').textContent = selected.note;
root.querySelectorAll('[data-detector]').forEach(function (button) {
button.setAttribute('aria-pressed', String(button.dataset.detector === key));
});
}
root.querySelectorAll('[data-detector]').forEach(function (button) {
button.addEventListener('click', function () { render(button.dataset.detector); });
});
document.getElementById('pb-detector-controls').hidden = false;
}());
&lt;/script&gt;
&lt;/p&gt;</description></item></channel></rss>