tianxiaoshen commited on
Commit
a8acadd
·
verified ·
1 Parent(s): fd1df4f

Use neutral early-sample timing labels

Browse files
Files changed (2) hide show
  1. README.md +2 -2
  2. index.html +4 -4
README.md CHANGED
@@ -23,14 +23,14 @@ Interactive review of 306 robot pickup scenes with camera history, planned gripp
23
  | Difficulty | Frames before real close | Correct | Accuracy |
24
  |---|---|---|---|
25
  | At decision | 0–10 | 97 / 206 | 47.09% |
26
- | Early (harder) | 30–60 | 49 / 96 | 51.04% |
27
 
28
  | Recorded outcome | Correct | Accuracy |
29
  |---|---|---|
30
  | Success | 86 / 150 | 57.33% |
31
  | Fail | 60 / 152 | 39.47% |
32
 
33
- These scores exclude the four worked examples. Early samples are harder by benchmark design; this assessment happens to score higher on that subset, which does not establish that early samples are easier. Type labels come from the authorized answer metadata, preserved in scored_predictions.jsonl. Public sample JSON contains planned close timing but no explicit type field. The benchmark README documents the timing definitions.
34
 
35
  ## Method and limitations
36
 
 
23
  | Difficulty | Frames before real close | Correct | Accuracy |
24
  |---|---|---|---|
25
  | At decision | 0–10 | 97 / 206 | 47.09% |
26
+ | Early | 30–60 | 49 / 96 | 51.04% |
27
 
28
  | Recorded outcome | Correct | Accuracy |
29
  |---|---|---|
30
  | Success | 86 / 150 | 57.33% |
31
  | Fail | 60 / 152 | 39.47% |
32
 
33
+ These scores exclude the four worked examples. Type labels come from the authorized answer metadata, preserved in scored_predictions.jsonl. Public sample JSON contains planned close timing but no explicit type field. The benchmark README documents the timing definitions.
34
 
35
  ## Method and limitations
36
 
index.html CHANGED
@@ -9,7 +9,7 @@
9
  </style>
10
  </head>
11
  <body>
12
- <header><div class="eyebrow">ABC grasp benchmark · Astra</div><h1>Inspect every pickup</h1><p class="muted">Compare the robot’s observations, Astra’s prediction, and the recorded answer.</p><div class="stats" id="stats"></div><section class="breakdown" aria-label="Accuracy breakdown"><h2>Accuracy breakdown</h2><div class="breakdown-tables"><table><caption>Accuracy by difficulty</caption><thead><tr><th scope="col">Difficulty</th><th scope="col">Correct</th><th scope="col">Accuracy</th></tr></thead><tbody id="difficulty-stats"></tbody></table><table><caption>Accuracy by success / fail</caption><thead><tr><th scope="col">Recorded outcome</th><th scope="col">Correct</th><th scope="col">Accuracy</th></tr></thead><tbody id="outcome-stats"></tbody></table></div><p class="muted">At decision: 0–10 frames before real close. Early (harder): 30–60 frames before real close. Scores cover all 302 evaluated samples, exclude the four worked examples, and stay fixed when filters change.</p></section></header>
13
  <div id="error" role="alert"></div><noscript>This viewer requires JavaScript. The prediction and score JSON files are available beside this HTML file.</noscript>
14
  <div class="workspace">
15
  <aside aria-label="Sample browser">
@@ -18,7 +18,7 @@
18
  <label>Task<select id="task"><option value="">All tasks</option></select></label>
19
  <div class="filter-pair"><label>Prediction result<select id="result"><option value="all">All results</option><option value="incorrect">Incorrect</option><option value="correct">Correct</option><option value="fp">Predicted success, failed</option><option value="fn">Predicted failure, succeeded</option></select></label><label>Answer<select id="answer"><option value="all">Both outcomes</option><option value="success">Success</option><option value="fail">Failure</option></select></label></div>
20
  <div class="filter-pair"><label>Acting arm<select id="arm"><option value="">Both arms</option><option value="left">Left</option><option value="right">Right</option></select></label><label>Sort<select id="sort"><option value="index">Sample order</option><option value="high">Highest P(success)</option><option value="low">Lowest P(success)</option><option value="error">Largest probability error</option></select></label></div>
21
- <div class="filter-pair"><label>Difficulty<select id="difficulty"><option value="">Both difficulties</option><option value="at_decision">At decision · 0–10 frames</option><option value="early">Early (harder) · 30–60 frames</option></select></label><label>Sample type<select id="type"><option value="">All types</option><option value="success_at_decision">success_at_decision</option><option value="success_early">success_early</option><option value="fail_at_decision">fail_at_decision</option><option value="fail_early">fail_early</option></select></label></div>
22
  <label class="check"><input type="checkbox" id="examples">Include 4 worked examples</label>
23
  </div><div id="count" class="muted" aria-live="polite"></div><div id="list" class="list"></div>
24
  </aside>
@@ -48,7 +48,7 @@ for(const [label,value] of stats){const el=document.createElement('div');const s
48
  for(const [target,groups] of [['difficulty-stats',data.per_difficulty],['outcome-stats',data.per_outcome]]){
49
  for(const [key,m] of Object.entries(groups)){
50
  const row=document.createElement('tr');
51
- const values=[target==='difficulty-stats'?(key==='early'?'Early (harder)':'At decision'):(key==='success'?'Success':'Fail'),m.correct+' / '+m.n,pct(m.accuracy)];
52
  values.forEach((value,i)=>{const cell=document.createElement(i===0?'th':'td');if(i===0)cell.scope='row';cell.textContent=value;row.append(cell)});
53
  $(target).append(row);
54
  }
@@ -74,7 +74,7 @@ function render(){
74
  if(!s)return;
75
  try{history.replaceState(null,'','#'+encodeURIComponent(s.id))}catch(e){}
76
  $('title').textContent=pretty(s.task);$('sample-id').textContent=s.id;$('arm-label').textContent=s.side+' arm acting';$('result-tag').textContent=s.correct?'Correct prediction':'Incorrect prediction';$('result-tag').className='tag '+(s.correct?'good':'bad');$('example-tag').hidden=!s.example;
77
- $('prediction').textContent=s.success?'Success':'Failure';$('truth').textContent=s.actual_success?'Success':'Failure';$('probability').textContent='P(success) '+pct(s.p_success);$('prob-bar').style.width=pct(s.p_success);$('sample-type').textContent=s.type?pretty(s.type)+' · '+(s.type.endsWith('_early')?'Harder · 30–60 frames before real close':'0–10 frames before real close'):'Public worked example · difficulty not included in scored metadata';$('reason').textContent=s.reason;
78
  $('time-label').textContent=time==='t'?'· now':time==='t-15'?'· 0.5 seconds earlier':'· 1 second earlier';
79
  for(const b of document.querySelectorAll('[data-time]'))b.setAttribute('aria-pressed',String(b.dataset.time===time));
80
  $('cameras').replaceChildren(...['top','left','right'].map(view=>imageFigure(s.base+'/'+view+'_'+time+'.jpg',(view==='top'?'Overhead':pretty(view)+' wrist')+(view===s.side?' · ACTING ARM':'')+' · '+(time==='t'?'now':time==='t-15'?'−0.5 s':'−1 s'))));
 
9
  </style>
10
  </head>
11
  <body>
12
+ <header><div class="eyebrow">ABC grasp benchmark · Astra</div><h1>Inspect every pickup</h1><p class="muted">Compare the robot’s observations, Astra’s prediction, and the recorded answer.</p><div class="stats" id="stats"></div><section class="breakdown" aria-label="Accuracy breakdown"><h2>Accuracy breakdown</h2><div class="breakdown-tables"><table><caption>Accuracy by difficulty</caption><thead><tr><th scope="col">Difficulty</th><th scope="col">Correct</th><th scope="col">Accuracy</th></tr></thead><tbody id="difficulty-stats"></tbody></table><table><caption>Accuracy by success / fail</caption><thead><tr><th scope="col">Recorded outcome</th><th scope="col">Correct</th><th scope="col">Accuracy</th></tr></thead><tbody id="outcome-stats"></tbody></table></div><p class="muted">At decision: 0–10 frames before real close. Early: 30–60 frames before real close. Scores cover all 302 evaluated samples, exclude the four worked examples, and stay fixed when filters change.</p></section></header>
13
  <div id="error" role="alert"></div><noscript>This viewer requires JavaScript. The prediction and score JSON files are available beside this HTML file.</noscript>
14
  <div class="workspace">
15
  <aside aria-label="Sample browser">
 
18
  <label>Task<select id="task"><option value="">All tasks</option></select></label>
19
  <div class="filter-pair"><label>Prediction result<select id="result"><option value="all">All results</option><option value="incorrect">Incorrect</option><option value="correct">Correct</option><option value="fp">Predicted success, failed</option><option value="fn">Predicted failure, succeeded</option></select></label><label>Answer<select id="answer"><option value="all">Both outcomes</option><option value="success">Success</option><option value="fail">Failure</option></select></label></div>
20
  <div class="filter-pair"><label>Acting arm<select id="arm"><option value="">Both arms</option><option value="left">Left</option><option value="right">Right</option></select></label><label>Sort<select id="sort"><option value="index">Sample order</option><option value="high">Highest P(success)</option><option value="low">Lowest P(success)</option><option value="error">Largest probability error</option></select></label></div>
21
+ <div class="filter-pair"><label>Difficulty<select id="difficulty"><option value="">Both difficulties</option><option value="at_decision">At decision · 0–10 frames</option><option value="early">Early · 30–60 frames</option></select></label><label>Sample type<select id="type"><option value="">All types</option><option value="success_at_decision">success_at_decision</option><option value="success_early">success_early</option><option value="fail_at_decision">fail_at_decision</option><option value="fail_early">fail_early</option></select></label></div>
22
  <label class="check"><input type="checkbox" id="examples">Include 4 worked examples</label>
23
  </div><div id="count" class="muted" aria-live="polite"></div><div id="list" class="list"></div>
24
  </aside>
 
48
  for(const [target,groups] of [['difficulty-stats',data.per_difficulty],['outcome-stats',data.per_outcome]]){
49
  for(const [key,m] of Object.entries(groups)){
50
  const row=document.createElement('tr');
51
+ const values=[target==='difficulty-stats'?(key==='early'?'Early':'At decision'):(key==='success'?'Success':'Fail'),m.correct+' / '+m.n,pct(m.accuracy)];
52
  values.forEach((value,i)=>{const cell=document.createElement(i===0?'th':'td');if(i===0)cell.scope='row';cell.textContent=value;row.append(cell)});
53
  $(target).append(row);
54
  }
 
74
  if(!s)return;
75
  try{history.replaceState(null,'','#'+encodeURIComponent(s.id))}catch(e){}
76
  $('title').textContent=pretty(s.task);$('sample-id').textContent=s.id;$('arm-label').textContent=s.side+' arm acting';$('result-tag').textContent=s.correct?'Correct prediction':'Incorrect prediction';$('result-tag').className='tag '+(s.correct?'good':'bad');$('example-tag').hidden=!s.example;
77
+ $('prediction').textContent=s.success?'Success':'Failure';$('truth').textContent=s.actual_success?'Success':'Failure';$('probability').textContent='P(success) '+pct(s.p_success);$('prob-bar').style.width=pct(s.p_success);$('sample-type').textContent=s.type?pretty(s.type)+' · '+(s.type.endsWith('_early')?'30–60 frames before real close':'0–10 frames before real close'):'Public worked example · difficulty not included in scored metadata';$('reason').textContent=s.reason;
78
  $('time-label').textContent=time==='t'?'· now':time==='t-15'?'· 0.5 seconds earlier':'· 1 second earlier';
79
  for(const b of document.querySelectorAll('[data-time]'))b.setAttribute('aria-pressed',String(b.dataset.time===time));
80
  $('cameras').replaceChildren(...['top','left','right'].map(view=>imageFigure(s.base+'/'+view+'_'+time+'.jpg',(view==='top'?'Overhead':pretty(view)+' wrist')+(view===s.side?' · ACTING ARM':'')+' · '+(time==='t'?'now':time==='t-15'?'−0.5 s':'−1 s'))));