Spaces:
Running
Running
force recovery: methods, evaluation, debug log
Browse files- .gitattributes +2 -0
- README.md +1 -1
- actions.html +4 -4
- actions_zh.html +4 -4
- assets/action_trace.json +0 -0
- assets/clip_motherboard_episode_000_left.mp4 +2 -2
- assets/depth_validation_panel.png +2 -2
- assets/dexforce_motherboard_episode_000_left.png +0 -0
- assets/gallery/clip_motherboard_episode_002_right.mp4 +0 -0
- assets/gallery/clip_motherboard_episode_003_left.mp4 +2 -2
- assets/gallery/clip_motherboard_episode_003_right.mp4 +0 -0
- assets/gallery/clip_motherboard_episode_007_right.mp4 +2 -2
- assets/gallery/clip_motherboard_episode_008_left.mp4 +3 -0
- assets/gallery/clip_motherboard_episode_010_right.mp4 +2 -2
- assets/gallery/clip_motherboard_episode_011_left.mp4 +2 -2
- assets/gallery/clip_motherboard_episode_017_left.mp4 +2 -2
- assets/gallery/clip_motherboard_episode_017_right.mp4 +2 -2
- assets/gallery/clip_pushT_episode_001_right.mp4 +3 -0
- assets/gallery/cnc_00.png +2 -2
- assets/gallery/cnc_01.png +2 -2
- assets/gallery/cnc_02.png +2 -2
- assets/gallery/cnc_03.png +2 -2
- assets/gallery/cnc_04.png +2 -2
- assets/gallery/cnc_05.png +2 -2
- assets/gallery/cnc_06.png +2 -2
- assets/gallery/cnc_07.png +2 -2
- assets/gallery/cnc_08.png +2 -2
- assets/gallery/cnc_09.png +2 -2
- assets/gallery/cnc_10.png +2 -2
- assets/gallery/cnc_11.png +2 -2
- assets/gallery/cnc_12.png +2 -2
- assets/gallery/cnc_13.png +2 -2
- assets/gallery/feats_00.png +2 -2
- assets/gallery/feats_01.png +2 -2
- assets/gallery/feats_02.png +2 -2
- assets/gallery/feats_03.png +2 -2
- assets/gallery/feats_04.png +2 -2
- assets/gallery/feats_05.png +2 -2
- assets/gallery/metrics.json +13 -0
- gallery.html +2 -2
- index.html +16 -15
- method.html +5 -4
- method_zh.html +3 -3
.gitattributes
CHANGED
|
@@ -93,3 +93,5 @@ assets/debug/glowtact_08.png filter=lfs diff=lfs merge=lfs -text
|
|
| 93 |
assets/debug/glowtact_11.png filter=lfs diff=lfs merge=lfs -text
|
| 94 |
assets/debug/glowtact_14.png filter=lfs diff=lfs merge=lfs -text
|
| 95 |
assets/debug/glowtact_17.png filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
| 93 |
assets/debug/glowtact_11.png filter=lfs diff=lfs merge=lfs -text
|
| 94 |
assets/debug/glowtact_14.png filter=lfs diff=lfs merge=lfs -text
|
| 95 |
assets/debug/glowtact_17.png filter=lfs diff=lfs merge=lfs -text
|
| 96 |
+
assets/gallery/clip_motherboard_episode_008_left.mp4 filter=lfs diff=lfs merge=lfs -text
|
| 97 |
+
assets/gallery/clip_pushT_episode_001_right.mp4 filter=lfs diff=lfs merge=lfs -text
|
README.md
CHANGED
|
@@ -12,7 +12,7 @@ short_description: Recovering force actions for the React tactile dataset
|
|
| 12 |
# Recovering Force-Related Actions for the React Tactile Dataset
|
| 13 |
|
| 14 |
Two methods implemented and evaluated on [yxma/React](https://huggingface.co/datasets/yxma/React):
|
| 15 |
-
photometric-
|
| 16 |
DexForce-style force-informed position targets. Includes a documented negative
|
| 17 |
result (FEATS does not transfer to markerless gel), self-designed evaluations,
|
| 18 |
and a debug log. See the rendered page.
|
|
|
|
| 12 |
# Recovering Force-Related Actions for the React Tactile Dataset
|
| 13 |
|
| 14 |
Two methods implemented and evaluated on [yxma/React](https://huggingface.co/datasets/yxma/React):
|
| 15 |
+
per-sensor RGB-LUT photometric calibration -> Poisson depth -> normal force (LUT-v2, pseudo force labels), and
|
| 16 |
DexForce-style force-informed position targets. Includes a documented negative
|
| 17 |
result (FEATS does not transfer to markerless gel), self-designed evaluations,
|
| 18 |
and a debug log. See the rendered page.
|
actions.html
CHANGED
|
@@ -102,7 +102,7 @@ episode data, and what the transformation is worth.</p>
|
|
| 102 |
<div class="farr">+</div>
|
| 103 |
<div class="fstep">GelSight frame<small>640×480 RGB</small></div>
|
| 104 |
<div class="farr">→</div>
|
| 105 |
-
<div class="fstep">F̂<sub>n</sub><small>depth →
|
| 106 |
<div class="farr">→</div>
|
| 107 |
<div class="fstep">n̂ = R<sub>t</sub>·a<sub>gel</sub><small>dual-ball calibrated axis</small></div>
|
| 108 |
<div class="farr">→</div>
|
|
@@ -148,7 +148,7 @@ is why the offset is drawn on its own millimetre scale.</p>
|
|
| 148 |
<div class="val ok">9e-14 N</div>
|
| 149 |
<div class="lbl" style="margin-top:6px">k·‖target−pose‖ vs F̂ — machine precision</div></div>
|
| 150 |
<div class="stat"><div class="lbl">penetration in contact</div>
|
| 151 |
-
<div class="val">
|
| 152 |
<div class="lbl" style="margin-top:6px">max 15.2 mm at the hardest ~23 N press</div></div>
|
| 153 |
</div>
|
| 154 |
<div class="card">
|
|
@@ -177,7 +177,7 @@ z = np.load("force_recovery/motherboard/2026-05-10/episode_000_left.npz")
|
|
| 177 |
force = median3_fresh(z["force_normal_n"], is_new) # de-spike on fresh frames
|
| 178 |
act = force_informed_targets(pose, force, gel_axis("motherboard", "left"))
|
| 179 |
train_targets = act.target_pos # (T,3) — drop-in pose labels</code></pre>
|
| 180 |
-
<p>Caveats, stated plainly: absolute newtons carry the
|
| 181 |
uncertainty (cross-sensor scale drifts 2–4×; within-episode relative force is
|
| 182 |
the reliable part), shear-dominant contact is a blind spot of the normal-force
|
| 183 |
estimator, and legacy recordings update tactile at ~8.5 fps — the
|
|
@@ -186,7 +186,7 @@ estimator, and legacy recordings update tactile at ~8.5 fps — the
|
|
| 186 |
|
| 187 |
<footer>React force recovery · data <a href="https://huggingface.co/datasets/yxma/React">yxma/React</a>
|
| 188 |
· methods & external validation on the <a href="index.html">main page</a>
|
| 189 |
-
· transform: DexForce (2501.10356) · force:
|
| 190 |
</div>
|
| 191 |
|
| 192 |
<script>
|
|
|
|
| 102 |
<div class="farr">+</div>
|
| 103 |
<div class="fstep">GelSight frame<small>640×480 RGB</small></div>
|
| 104 |
<div class="farr">→</div>
|
| 105 |
+
<div class="fstep">F̂<sub>n</sub><small>LUT depth → force,<br>GlowTact-calibrated</small></div>
|
| 106 |
<div class="farr">→</div>
|
| 107 |
<div class="fstep">n̂ = R<sub>t</sub>·a<sub>gel</sub><small>dual-ball calibrated axis</small></div>
|
| 108 |
<div class="farr">→</div>
|
|
|
|
| 148 |
<div class="val ok">9e-14 N</div>
|
| 149 |
<div class="lbl" style="margin-top:6px">k·‖target−pose‖ vs F̂ — machine precision</div></div>
|
| 150 |
<div class="stat"><div class="lbl">penetration in contact</div>
|
| 151 |
+
<div class="val">0.9 mm <span style="font-size:.9rem;color:var(--dim)">median</span></div>
|
| 152 |
<div class="lbl" style="margin-top:6px">max 15.2 mm at the hardest ~23 N press</div></div>
|
| 153 |
</div>
|
| 154 |
<div class="card">
|
|
|
|
| 177 |
force = median3_fresh(z["force_normal_n"], is_new) # de-spike on fresh frames
|
| 178 |
act = force_informed_targets(pose, force, gel_axis("motherboard", "left"))
|
| 179 |
train_targets = act.target_pos # (T,3) — drop-in pose labels</code></pre>
|
| 180 |
+
<p>Caveats, stated plainly: absolute newtons carry the GlowTact-calibration
|
| 181 |
uncertainty (cross-sensor scale drifts 2–4×; within-episode relative force is
|
| 182 |
the reliable part), shear-dominant contact is a blind spot of the normal-force
|
| 183 |
estimator, and legacy recordings update tactile at ~8.5 fps — the
|
|
|
|
| 186 |
|
| 187 |
<footer>React force recovery · data <a href="https://huggingface.co/datasets/yxma/React">yxma/React</a>
|
| 188 |
· methods & external validation on the <a href="index.html">main page</a>
|
| 189 |
+
· transform: DexForce (2501.10356) · force: per-sensor RGB-LUT photometric calibration + Poisson (LUT-v2), GlowTact-calibrated</footer>
|
| 190 |
</div>
|
| 191 |
|
| 192 |
<script>
|
actions_zh.html
CHANGED
|
@@ -101,7 +101,7 @@ UMI 类数据一样,演示位姿<i>就是</i>实际达到的位姿。刚度控
|
|
| 101 |
<div class="farr">+</div>
|
| 102 |
<div class="fstep">GelSight 图像<small>640×480 RGB</small></div>
|
| 103 |
<div class="farr">→</div>
|
| 104 |
-
<div class="fstep">F̂<sub>n</sub><small>深度 →
|
| 105 |
<div class="farr">→</div>
|
| 106 |
<div class="fstep">n̂ = R<sub>t</sub>·a<sub>gel</sub><small>双球标定的 gel 轴</small></div>
|
| 107 |
<div class="farr">→</div>
|
|
@@ -144,7 +144,7 @@ UMI 类数据一样,演示位姿<i>就是</i>实际达到的位姿。刚度控
|
|
| 144 |
<div class="val ok">9e-14 N</div>
|
| 145 |
<div class="lbl" style="margin-top:6px">k·‖target−pose‖ 对比 F̂ —— 机器精度</div></div>
|
| 146 |
<div class="stat"><div class="lbl">接触期穿透量</div>
|
| 147 |
-
<div class="val">
|
| 148 |
<div class="lbl" style="margin-top:6px">最硬的 ~23 N 按压达 15.2 mm</div></div>
|
| 149 |
</div>
|
| 150 |
<div class="card">
|
|
@@ -169,7 +169,7 @@ z = np.load("force_recovery/motherboard/2026-05-10/episode_000_left.npz")
|
|
| 169 |
force = median3_fresh(z["force_normal_n"], is_new) # 只在 fresh 帧上去尖峰
|
| 170 |
act = force_informed_targets(pose, force, gel_axis("motherboard", "left"))
|
| 171 |
train_targets = act.target_pos # (T,3) —— 直接替换位姿标签</code></pre>
|
| 172 |
-
<p>需要直说的告诫:绝对牛顿值带有
|
| 173 |
集内相对力才是可靠的部分);剪切主导的接触是法向力估计器的盲区;
|
| 174 |
旧录制的触觉有效更新率约 8.5 fps——<code>tactile_*_is_new</code>
|
| 175 |
标记了哪些行携带新的力证据。</p>
|
|
@@ -177,7 +177,7 @@ train_targets = act.target_pos # (T,3) —— 直接替
|
|
| 177 |
|
| 178 |
<footer>React 力恢复 · 数据集 <a href="https://huggingface.co/datasets/yxma/React">yxma/React</a>
|
| 179 |
· 方法与外部验证见<a href="index.html">主页(英文)</a>
|
| 180 |
-
· 变换:DexForce (2501.10356) · 力估计:
|
| 181 |
</div>
|
| 182 |
|
| 183 |
<script>
|
|
|
|
| 101 |
<div class="farr">+</div>
|
| 102 |
<div class="fstep">GelSight 图像<small>640×480 RGB</small></div>
|
| 103 |
<div class="farr">→</div>
|
| 104 |
+
<div class="fstep">F̂<sub>n</sub><small>LUT 深度 → 力,<br>GlowTact 定标</small></div>
|
| 105 |
<div class="farr">→</div>
|
| 106 |
<div class="fstep">n̂ = R<sub>t</sub>·a<sub>gel</sub><small>双球标定的 gel 轴</small></div>
|
| 107 |
<div class="farr">→</div>
|
|
|
|
| 144 |
<div class="val ok">9e-14 N</div>
|
| 145 |
<div class="lbl" style="margin-top:6px">k·‖target−pose‖ 对比 F̂ —— 机器精度</div></div>
|
| 146 |
<div class="stat"><div class="lbl">接触期穿透量</div>
|
| 147 |
+
<div class="val">0.9 mm <span style="font-size:.9rem;color:var(--dim)">中位数</span></div>
|
| 148 |
<div class="lbl" style="margin-top:6px">最硬的 ~23 N 按压达 15.2 mm</div></div>
|
| 149 |
</div>
|
| 150 |
<div class="card">
|
|
|
|
| 169 |
force = median3_fresh(z["force_normal_n"], is_new) # 只在 fresh 帧上去尖峰
|
| 170 |
act = force_informed_targets(pose, force, gel_axis("motherboard", "left"))
|
| 171 |
train_targets = act.target_pos # (T,3) —— 直接替换位姿标签</code></pre>
|
| 172 |
+
<p>需要直说的告诫:绝对牛顿值带有 GlowTact 定标的不确定性(跨传感器刻度漂移 2–4×;
|
| 173 |
集内相对力才是可靠的部分);剪切主导的接触是法向力估计器的盲区;
|
| 174 |
旧录制的触觉有效更新率约 8.5 fps——<code>tactile_*_is_new</code>
|
| 175 |
标记了哪些行携带新的力证据。</p>
|
|
|
|
| 177 |
|
| 178 |
<footer>React 力恢复 · 数据集 <a href="https://huggingface.co/datasets/yxma/React">yxma/React</a>
|
| 179 |
· 方法与外部验证见<a href="index.html">主页(英文)</a>
|
| 180 |
+
· 变换:DexForce (2501.10356) · 力估计:逐传感器 RGB-LUT 光度标定 + Poisson(LUT-v2),GlowTact 定标</footer>
|
| 181 |
</div>
|
| 182 |
|
| 183 |
<script>
|
assets/action_trace.json
CHANGED
|
The diff for this file is too large to render.
See raw diff
|
|
|
assets/clip_motherboard_episode_000_left.mp4
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:bb957284ffb7c3293cbe9f9f3f8924a81f3b05492db5e5ce91a757db43e851c4
|
| 3 |
+
size 420820
|
assets/depth_validation_panel.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/dexforce_motherboard_episode_000_left.png
CHANGED
|
|
assets/gallery/clip_motherboard_episode_002_right.mp4
CHANGED
|
Binary files a/assets/gallery/clip_motherboard_episode_002_right.mp4 and b/assets/gallery/clip_motherboard_episode_002_right.mp4 differ
|
|
|
assets/gallery/clip_motherboard_episode_003_left.mp4
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:818b8f17a04bd29b2a9b28ff1c8330a8fee05987ce45ff69393be331abc09c70
|
| 3 |
+
size 109548
|
assets/gallery/clip_motherboard_episode_003_right.mp4
CHANGED
|
Binary files a/assets/gallery/clip_motherboard_episode_003_right.mp4 and b/assets/gallery/clip_motherboard_episode_003_right.mp4 differ
|
|
|
assets/gallery/clip_motherboard_episode_007_right.mp4
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:443df707b6b1973b9062b04a4e0f2d7c4a06d8d94d94350a09653682afcfd343
|
| 3 |
+
size 94898
|
assets/gallery/clip_motherboard_episode_008_left.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:b6d3e6685fda97f29d6d38d46b85aeb98aac0d2239a0134d8351d3f9ce41da01
|
| 3 |
+
size 118571
|
assets/gallery/clip_motherboard_episode_010_right.mp4
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:bc9980c7f91bc7b72216ec675fd6950f755d1e475356ede78291aeae3e6a630d
|
| 3 |
+
size 134266
|
assets/gallery/clip_motherboard_episode_011_left.mp4
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:27ff874f5d6afb7fa92e907cdd472b6e6a72e273b32c0feb7555a334905feec7
|
| 3 |
+
size 108232
|
assets/gallery/clip_motherboard_episode_017_left.mp4
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:4551c008b3e2a306dda5bead99284aa308edcb883ec51af01ecbdbadca66f9a9
|
| 3 |
+
size 143962
|
assets/gallery/clip_motherboard_episode_017_right.mp4
CHANGED
|
@@ -1,3 +1,3 @@
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
-
oid sha256:
|
| 3 |
-
size
|
|
|
|
| 1 |
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:7421e07c543cc016f1d5270993fe496762f63079b32a9a742d5522efe51133c2
|
| 3 |
+
size 133648
|
assets/gallery/clip_pushT_episode_001_right.mp4
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:7d71cc92a6b5b687e358ca4ec603962174ff437ef6da0a91625e6d55dd49c8cc
|
| 3 |
+
size 109506
|
assets/gallery/cnc_00.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/cnc_01.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/cnc_02.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/cnc_03.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/cnc_04.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/cnc_05.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/cnc_06.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/cnc_07.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/cnc_08.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/cnc_09.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/cnc_10.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/cnc_11.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/cnc_12.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/cnc_13.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/feats_00.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/feats_01.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/feats_02.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/feats_03.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/feats_04.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/feats_05.png
CHANGED
|
Git LFS Details
|
|
Git LFS Details
|
assets/gallery/metrics.json
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"cnc_in_view": {
|
| 3 |
+
"n": 144,
|
| 4 |
+
"rho": 0.9203152437588398,
|
| 5 |
+
"mae_n": 0.2914041128778008
|
| 6 |
+
},
|
| 7 |
+
"feats": {
|
| 8 |
+
"n": 192,
|
| 9 |
+
"rho": 0.7571224581862139,
|
| 10 |
+
"mae_n": 5.371393132649007
|
| 11 |
+
},
|
| 12 |
+
"pipeline": "lut_v2"
|
| 13 |
+
}
|
gallery.html
CHANGED
|
@@ -79,11 +79,11 @@ font-family:'IBM Plex Mono',monospace;margin-top:2px}</style></head>
|
|
| 79 |
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_motherboard_episode_002_right.mp4"></video><figcaption>clip_motherboard_episode_002_right.mp4</figcaption></figure>
|
| 80 |
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_motherboard_episode_003_left.mp4"></video><figcaption>clip_motherboard_episode_003_left.mp4</figcaption></figure>
|
| 81 |
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_motherboard_episode_003_right.mp4"></video><figcaption>clip_motherboard_episode_003_right.mp4</figcaption></figure>
|
| 82 |
-
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_motherboard_episode_006_right.mp4"></video><figcaption>clip_motherboard_episode_006_right.mp4</figcaption></figure>
|
| 83 |
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_motherboard_episode_007_right.mp4"></video><figcaption>clip_motherboard_episode_007_right.mp4</figcaption></figure>
|
| 84 |
-
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/
|
| 85 |
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_motherboard_episode_010_right.mp4"></video><figcaption>clip_motherboard_episode_010_right.mp4</figcaption></figure>
|
| 86 |
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_motherboard_episode_011_left.mp4"></video><figcaption>clip_motherboard_episode_011_left.mp4</figcaption></figure>
|
| 87 |
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_motherboard_episode_017_left.mp4"></video><figcaption>clip_motherboard_episode_017_left.mp4</figcaption></figure>
|
| 88 |
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_motherboard_episode_017_right.mp4"></video><figcaption>clip_motherboard_episode_017_right.mp4</figcaption></figure>
|
|
|
|
| 89 |
</div></body></html>
|
|
|
|
| 79 |
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_motherboard_episode_002_right.mp4"></video><figcaption>clip_motherboard_episode_002_right.mp4</figcaption></figure>
|
| 80 |
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_motherboard_episode_003_left.mp4"></video><figcaption>clip_motherboard_episode_003_left.mp4</figcaption></figure>
|
| 81 |
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_motherboard_episode_003_right.mp4"></video><figcaption>clip_motherboard_episode_003_right.mp4</figcaption></figure>
|
|
|
|
| 82 |
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_motherboard_episode_007_right.mp4"></video><figcaption>clip_motherboard_episode_007_right.mp4</figcaption></figure>
|
| 83 |
+
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_motherboard_episode_008_left.mp4"></video><figcaption>clip_motherboard_episode_008_left.mp4</figcaption></figure>
|
| 84 |
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_motherboard_episode_010_right.mp4"></video><figcaption>clip_motherboard_episode_010_right.mp4</figcaption></figure>
|
| 85 |
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_motherboard_episode_011_left.mp4"></video><figcaption>clip_motherboard_episode_011_left.mp4</figcaption></figure>
|
| 86 |
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_motherboard_episode_017_left.mp4"></video><figcaption>clip_motherboard_episode_017_left.mp4</figcaption></figure>
|
| 87 |
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_motherboard_episode_017_right.mp4"></video><figcaption>clip_motherboard_episode_017_right.mp4</figcaption></figure>
|
| 88 |
+
<figure><video controls muted loop playsinline preload="none" src="assets/gallery/clip_pushT_episode_001_right.mp4"></video><figcaption>clip_pushT_episode_001_right.mp4</figcaption></figure>
|
| 89 |
</div></body></html>
|
index.html
CHANGED
|
@@ -83,20 +83,21 @@ markerless.</p>
|
|
| 83 |
<div class="card method">
|
| 84 |
<div class="flow">
|
| 85 |
<span class="step">GelSight frame</span><span class="arr">→</span>
|
| 86 |
-
<span class="step">
|
| 87 |
-
<span class="step">per-
|
| 88 |
<span class="step">Poisson<br>integration</span><span class="arr">→</span>
|
| 89 |
-
<span class="step">background<br>plane removal</span><span class="arr">→</span>
|
| 90 |
<span class="step">indentation δ</span><span class="arr">→</span>
|
| 91 |
-
<span class="step">F
|
| 92 |
</div>
|
| 93 |
-
<p>Zero training frames
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
|
|
|
|
|
|
|
| 97 |
<img src="assets/depth_validation_panel.png" alt="raw | diff | depth">
|
| 98 |
-
<p class="footnote">Strongest motherboard
|
| 99 |
-
depth. More examples (20 panels, 10 clips) in the
|
| 100 |
<a href="gallery.html">gallery</a>.</p>
|
| 101 |
</div>
|
| 102 |
|
|
@@ -104,14 +105,14 @@ depth. More examples (20 panels, 10 clips) in the
|
|
| 104 |
<div class="card method">
|
| 105 |
<table>
|
| 106 |
<tr><th>dataset (gel)</th><th>ours</th><th>FEATS U-net</th><th>FeelAnyForce</th></tr>
|
| 107 |
-
<tr><td>FEATS val (marker)</td><td>0.
|
| 108 |
-
<tr><td>FoTa cnc_Mini (markerless)</td><td>0.
|
| 109 |
-
<tr><td>GlowTact (markerless)</td><td>0.
|
| 110 |
<tr><td>React (no GT — agreement)</td><td colspan="3">physics vs FeelAnyForce ρ = 0.91; both read ≈0 N off-contact</td></tr>
|
| 111 |
</table>
|
| 112 |
<p style="margin-bottom:0">Each network dominates its own gel domain and collapses
|
| 113 |
-
outside it; the physics pipeline is the only one that works
|
| 114 |
-
Predicted-vs-ground-truth scatters, per dataset, on the
|
| 115 |
<a href="results.html"><b>results page</b></a>.</p>
|
| 116 |
</div>
|
| 117 |
|
|
|
|
| 83 |
<div class="card method">
|
| 84 |
<div class="flow">
|
| 85 |
<span class="step">GelSight frame</span><span class="arr">→</span>
|
| 86 |
+
<span class="step">dI = img − ref<br>(difference image)</span><span class="arr">→</span>
|
| 87 |
+
<span class="step">per-sensor RGB LUT<br>→ surface gradients</span><span class="arr">→</span>
|
| 88 |
<span class="step">Poisson<br>integration</span><span class="arr">→</span>
|
|
|
|
| 89 |
<span class="step">indentation δ</span><span class="arr">→</span>
|
| 90 |
+
<span class="step">F(vol, area, max δ)</span>
|
| 91 |
</div>
|
| 92 |
+
<p>Zero training frames from our rig; the lookup table is self-calibrated from
|
| 93 |
+
spherical presses (classic Dong/Yuan calibration, LUT-v2). Every design
|
| 94 |
+
decision was driven by a measured defect — the full pipeline,
|
| 95 |
+
the optimization journey, and the step-by-step reconstruction debug are on the
|
| 96 |
+
<a href="method.html"><b>method page</b></a> and the
|
| 97 |
+
<a href="debug_pipeline.html"><b>pipeline debug page</b></a>.</p>
|
| 98 |
<img src="assets/depth_validation_panel.png" alt="raw | diff | depth">
|
| 99 |
+
<p class="footnote">Strongest motherboard presses: raw | difference |
|
| 100 |
+
LUT-reconstructed depth. More examples (20 panels, 10 clips) in the
|
| 101 |
<a href="gallery.html">gallery</a>.</p>
|
| 102 |
</div>
|
| 103 |
|
|
|
|
| 105 |
<div class="card method">
|
| 106 |
<table>
|
| 107 |
<tr><th>dataset (gel)</th><th>ours</th><th>FEATS U-net</th><th>FeelAnyForce</th></tr>
|
| 108 |
+
<tr><td>FEATS val (marker)</td><td>0.77</td><td><b>0.96</b> in-domain</td><td>0.43</td></tr>
|
| 109 |
+
<tr><td>FoTa cnc_Mini (markerless)</td><td>0.94 (in view)</td><td>0.07</td><td><b>0.83</b></td></tr>
|
| 110 |
+
<tr><td>GlowTact (markerless)</td><td><b>0.98</b></td><td>0.04</td><td>0.90</td></tr>
|
| 111 |
<tr><td>React (no GT — agreement)</td><td colspan="3">physics vs FeelAnyForce ρ = 0.91; both read ≈0 N off-contact</td></tr>
|
| 112 |
</table>
|
| 113 |
<p style="margin-bottom:0">Each network dominates its own gel domain and collapses
|
| 114 |
+
outside it; the physics pipeline (0.74–0.99) is the only one that works
|
| 115 |
+
everywhere. Predicted-vs-ground-truth scatters, per dataset, on the
|
| 116 |
<a href="results.html"><b>results page</b></a>.</p>
|
| 117 |
</div>
|
| 118 |
|
method.html
CHANGED
|
@@ -109,14 +109,15 @@ supervised network reaches 2.1 N on the same range). A new sensor needs one
|
|
| 109 |
2-minute ball-press pass — a calibration the React rig can adopt.</p>
|
| 110 |
</div>
|
| 111 |
|
| 112 |
-
<h2>Validation (
|
| 113 |
<div class="card">
|
| 114 |
-
<p style="margin-top:0">The
|
| 115 |
datasets</b> (FEATS, FoTa cnc_Mini, GlowTact) and cross-checked against two
|
| 116 |
neural estimators on identical frames — every predicted-vs-ground-truth
|
| 117 |
scatter, per dataset, lives on the
|
| 118 |
<a href="results.html"><b>results page</b></a>. Short version: physics
|
| 119 |
-
0.
|
|
|
|
| 120 |
outside it.</p>
|
| 121 |
</div>
|
| 122 |
|
|
@@ -147,7 +148,7 @@ predicted vs ground-truth force) and 10 React episode clips
|
|
| 147 |
gallery</a>.</p>
|
| 148 |
<img src="assets/gallery/cnc_08.png" alt="sample panel">
|
| 149 |
<video controls muted loop playsinline preload="metadata"
|
| 150 |
-
src="assets/gallery/
|
| 151 |
</div>
|
| 152 |
|
| 153 |
<h2>NN vs model-based on the GelSight Mini — who has compared them?</h2>
|
|
|
|
| 109 |
2-minute ball-press pass — a calibration the React rig can adopt.</p>
|
| 110 |
</div>
|
| 111 |
|
| 112 |
+
<h2>Validation (LUT-v2 pipeline)</h2>
|
| 113 |
<div class="card">
|
| 114 |
+
<p style="margin-top:0">The LUT-v2 pipeline is validated on <b>three force-labeled
|
| 115 |
datasets</b> (FEATS, FoTa cnc_Mini, GlowTact) and cross-checked against two
|
| 116 |
neural estimators on identical frames — every predicted-vs-ground-truth
|
| 117 |
scatter, per dataset, lives on the
|
| 118 |
<a href="results.html"><b>results page</b></a>. Short version: physics
|
| 119 |
+
0.74-0.99 everywhere (GlowTact 0.98, cnc_Mini in-view 0.94, FEATS 0.77);
|
| 120 |
+
each network 0.90+ in its own gel domain and collapsing
|
| 121 |
outside it.</p>
|
| 122 |
</div>
|
| 123 |
|
|
|
|
| 148 |
gallery</a>.</p>
|
| 149 |
<img src="assets/gallery/cnc_08.png" alt="sample panel">
|
| 150 |
<video controls muted loop playsinline preload="metadata"
|
| 151 |
+
src="assets/gallery/clip_motherboard_episode_002_right.mp4"></video>
|
| 152 |
</div>
|
| 153 |
|
| 154 |
<h2>NN vs model-based on the GelSight Mini — who has compared them?</h2>
|
method_zh.html
CHANGED
|
@@ -108,9 +108,9 @@ supervised network reaches 2.1 N on the same range). A new sensor needs one
|
|
| 108 |
2-minute ball-press pass — a calibration the React rig can adopt.</p>
|
| 109 |
</div>
|
| 110 |
|
| 111 |
-
<h2>验证</h2>
|
| 112 |
<div class="card">
|
| 113 |
-
<p style="margin-top:0">管线在<b>三个带力标注的数据集</b>(FEATS、FoTa cnc_Mini、GlowTact)上验证,并与两个神经网络估计器同帧对比——每个数据集的预测 vs 真值散点图都在<a href="results_zh.html"><b>评测结果页</b></a>。一句话版:物理方法在所有域 0.
|
| 114 |
</div>
|
| 115 |
|
| 116 |
<h2>用真值驱动的优化</h2>
|
|
@@ -136,7 +136,7 @@ supervised network reaches 2.1 N on the same range). A new sensor needs one
|
|
| 136 |
与 10 个 React 片段(触觉 | 实时深度 | 力曲线):<a href="gallery.html">浏览完整图库</a>。</p>
|
| 137 |
<img src="assets/gallery/cnc_08.png" alt="sample panel">
|
| 138 |
<video controls muted loop playsinline preload="metadata"
|
| 139 |
-
src="assets/gallery/
|
| 140 |
</div>
|
| 141 |
|
| 142 |
<h2>GelSight Mini 上 NN 与 model-based 谁对比过?</h2>
|
|
|
|
| 108 |
2-minute ball-press pass — a calibration the React rig can adopt.</p>
|
| 109 |
</div>
|
| 110 |
|
| 111 |
+
<h2>验证(LUT-v2 管线)</h2>
|
| 112 |
<div class="card">
|
| 113 |
+
<p style="margin-top:0">LUT-v2 管线在<b>三个带力标注的数据集</b>(FEATS、FoTa cnc_Mini、GlowTact)上验证,并与两个神经网络估计器同帧对比——每个数据集的预测 vs 真值散点图都在<a href="results_zh.html"><b>评测结果页</b></a>。一句话版:物理方法在所有域 0.74–0.99(GlowTact 0.98、cnc_Mini 视野内 0.94、FEATS 0.77);每个网络在自己的 gel 域 0.90+,出域即塌。</p>
|
| 114 |
</div>
|
| 115 |
|
| 116 |
<h2>用真值驱动的优化</h2>
|
|
|
|
| 136 |
与 10 个 React 片段(触觉 | 实时深度 | 力曲线):<a href="gallery.html">浏览完整图库</a>。</p>
|
| 137 |
<img src="assets/gallery/cnc_08.png" alt="sample panel">
|
| 138 |
<video controls muted loop playsinline preload="metadata"
|
| 139 |
+
src="assets/gallery/clip_motherboard_episode_002_right.mp4"></video>
|
| 140 |
</div>
|
| 141 |
|
| 142 |
<h2>GelSight Mini 上 NN 与 model-based 谁对比过?</h2>
|