test-final
Browse files- app.py +38 -31
- src/experiments/log/gs/temp/form_video.mp4 +0 -0
- src/experiments/log/gs/temp/gs_pred.splat +1 -1
- src/experiments/log/temp/0000.png +2 -2
- src/experiments/log/temp/0001.png +2 -2
- src/experiments/log/temp/0002.png +2 -2
- src/experiments/log/temp/0003.png +2 -2
- src/experiments/log/temp/0004.png +2 -2
- src/experiments/log/temp/0005.png +2 -2
- src/experiments/log/temp/0006.png +2 -2
- src/experiments/log/temp/0007.png +2 -2
- src/experiments/log/temp/0008.png +2 -2
- src/experiments/log/temp/0009.png +2 -2
- src/experiments/log/temp/0010.png +2 -2
- src/experiments/log/temp/0011.png +2 -2
- src/experiments/log/temp/0012.png +2 -2
- src/experiments/log/temp/0013.png +2 -2
- src/experiments/log/temp/0014.png +2 -2
app.py
CHANGED
@@ -948,7 +948,7 @@ class DynamicsVisualizer:
|
|
948 |
self.preprocess_bg_gs()
|
949 |
rendervar = self.reset_state(params, visualize_image=False, init=True)
|
950 |
rendervar, rendervar_full = self.update_rendervar(rendervar)
|
951 |
-
self.rendervar = rendervar
|
952 |
|
953 |
im, depth = self.render(rendervar_full, 0, bg=[0.0, 0.0, 0.0])
|
954 |
im_show = (im.permute(1, 2, 0) * 255.0).cpu().numpy().astype(np.uint8).copy()
|
@@ -983,6 +983,8 @@ class DynamicsVisualizer:
|
|
983 |
self.gripper_params = tuple(
|
984 |
v.detach().cpu() if isinstance(v, torch.Tensor) else v for v in self.gripper_params
|
985 |
)
|
|
|
|
|
986 |
|
987 |
form_video = gr.Video(
|
988 |
label='Predicted video',
|
@@ -1000,9 +1002,9 @@ class DynamicsVisualizer:
|
|
1000 |
|
1001 |
return form_video, form_3dgs_pred, \
|
1002 |
self.preprocess_metadata, self.state, self.params, \
|
1003 |
-
self.table_params, self.gripper_params
|
1004 |
|
1005 |
-
def run_command(self, unit_command, preprocess_metadata, state, params, table_params, gripper_params):
|
1006 |
import warp as wp
|
1007 |
wp.init()
|
1008 |
gpus = [int(gpu) for gpu in self.cfg.gpus]
|
@@ -1035,6 +1037,8 @@ class DynamicsVisualizer:
|
|
1035 |
self.gripper_params = tuple(
|
1036 |
v.to(self.torch_device) if isinstance(v, torch.Tensor) else v for v in self.gripper_params
|
1037 |
)
|
|
|
|
|
1038 |
|
1039 |
num_steps = 15
|
1040 |
batch_size = 1
|
@@ -1078,8 +1082,8 @@ class DynamicsVisualizer:
|
|
1078 |
# print(eef_xyz.cpu().numpy().tolist(), end=' ')
|
1079 |
|
1080 |
self.step()
|
1081 |
-
rendervar, rendervar_full = self.update_rendervar(
|
1082 |
-
self.rendervar = rendervar
|
1083 |
im, depth = self.render(rendervar_full, 0, bg=[0.0, 0.0, 0.0])
|
1084 |
im_show = (im.permute(1, 2, 0) * 255.0).cpu().numpy().astype(np.uint8).copy()
|
1085 |
|
@@ -1109,6 +1113,8 @@ class DynamicsVisualizer:
|
|
1109 |
self.gripper_params = tuple(
|
1110 |
v.detach().cpu() if isinstance(v, torch.Tensor) else v for v in self.gripper_params
|
1111 |
)
|
|
|
|
|
1112 |
|
1113 |
make_video(root / 'log/temp', root / f'log/gs/temp/form_video.mp4', '%04d.png', 5)
|
1114 |
|
@@ -1140,31 +1146,31 @@ class DynamicsVisualizer:
|
|
1140 |
)
|
1141 |
return form_video, form_3dgs_pred, \
|
1142 |
self.preprocess_metadata, self.state, self.params, \
|
1143 |
-
self.table_params, self.gripper_params
|
1144 |
|
1145 |
@spaces.GPU
|
1146 |
-
def on_click_run_xplus(self, preprocess_metadata, state, params, table_params, gripper_params):
|
1147 |
-
return self.run_command([5.0, 0, 0], preprocess_metadata, state, params, table_params, gripper_params)
|
1148 |
|
1149 |
@spaces.GPU
|
1150 |
-
def on_click_run_xminus(self, preprocess_metadata, state, params, table_params, gripper_params):
|
1151 |
-
return self.run_command([-5.0, 0, 0], preprocess_metadata, state, params, table_params, gripper_params)
|
1152 |
|
1153 |
@spaces.GPU
|
1154 |
-
def on_click_run_yplus(self, preprocess_metadata, state, params, table_params, gripper_params):
|
1155 |
-
return self.run_command([0, 5.0, 0], preprocess_metadata, state, params, table_params, gripper_params)
|
1156 |
|
1157 |
@spaces.GPU
|
1158 |
-
def on_click_run_yminus(self, preprocess_metadata, state, params, table_params, gripper_params):
|
1159 |
-
return self.run_command([0, -5.0, 0], preprocess_metadata, state, params, table_params, gripper_params)
|
1160 |
|
1161 |
@spaces.GPU
|
1162 |
-
def on_click_run_zplus(self, preprocess_metadata, state, params, table_params, gripper_params):
|
1163 |
-
return self.run_command([0, 0, 5.0], preprocess_metadata, state, params, table_params, gripper_params)
|
1164 |
|
1165 |
@spaces.GPU
|
1166 |
-
def on_click_run_zminus(self, preprocess_metadata, state, params, table_params, gripper_params):
|
1167 |
-
return self.run_command([0, 0, -5.0], preprocess_metadata, state, params, table_params, gripper_params)
|
1168 |
|
1169 |
def launch(self, share=False):
|
1170 |
|
@@ -1174,6 +1180,7 @@ class DynamicsVisualizer:
|
|
1174 |
params = gr.State(self.params)
|
1175 |
table_params = gr.State(self.table_params)
|
1176 |
gripper_params = gr.State(self.gripper_params)
|
|
|
1177 |
|
1178 |
with gr.Row():
|
1179 |
gr.Markdown("# Particle-Grid Neural Dynamics for Learning Deformable Object Models from RGB-D Videos")
|
@@ -1290,49 +1297,49 @@ class DynamicsVisualizer:
|
|
1290 |
inputs=[],
|
1291 |
outputs=[form_video, form_3dgs_pred,
|
1292 |
preprocess_metadata, state, params,
|
1293 |
-
table_params, gripper_params])
|
1294 |
|
1295 |
run_xplus.click(self.on_click_run_xplus,
|
1296 |
inputs=[preprocess_metadata, state, params,
|
1297 |
-
table_params, gripper_params],
|
1298 |
outputs=[form_video, form_3dgs_pred,
|
1299 |
preprocess_metadata, state, params,
|
1300 |
-
table_params, gripper_params])
|
1301 |
|
1302 |
run_xminus.click(self.on_click_run_xminus,
|
1303 |
inputs=[preprocess_metadata, state, params,
|
1304 |
-
table_params, gripper_params],
|
1305 |
outputs=[form_video, form_3dgs_pred,
|
1306 |
preprocess_metadata, state, params,
|
1307 |
-
table_params, gripper_params])
|
1308 |
|
1309 |
run_yplus.click(self.on_click_run_yplus,
|
1310 |
inputs=[preprocess_metadata, state, params,
|
1311 |
-
table_params, gripper_params],
|
1312 |
outputs=[form_video, form_3dgs_pred,
|
1313 |
preprocess_metadata, state, params,
|
1314 |
-
table_params, gripper_params])
|
1315 |
|
1316 |
run_yminus.click(self.on_click_run_yminus,
|
1317 |
inputs=[preprocess_metadata, state, params,
|
1318 |
-
table_params, gripper_params],
|
1319 |
outputs=[form_video, form_3dgs_pred,
|
1320 |
preprocess_metadata, state, params,
|
1321 |
-
table_params, gripper_params])
|
1322 |
|
1323 |
run_zplus.click(self.on_click_run_zplus,
|
1324 |
inputs=[preprocess_metadata, state, params,
|
1325 |
-
table_params, gripper_params],
|
1326 |
outputs=[form_video, form_3dgs_pred,
|
1327 |
preprocess_metadata, state, params,
|
1328 |
-
table_params, gripper_params])
|
1329 |
|
1330 |
run_zminus.click(self.on_click_run_zminus,
|
1331 |
inputs=[preprocess_metadata, state, params,
|
1332 |
-
table_params, gripper_params],
|
1333 |
outputs=[form_video, form_3dgs_pred,
|
1334 |
preprocess_metadata, state, params,
|
1335 |
-
table_params, gripper_params])
|
1336 |
|
1337 |
# Set up callbacks
|
1338 |
# run_reset_2.click(self.reset_2,
|
|
|
948 |
self.preprocess_bg_gs()
|
949 |
rendervar = self.reset_state(params, visualize_image=False, init=True)
|
950 |
rendervar, rendervar_full = self.update_rendervar(rendervar)
|
951 |
+
# self.rendervar = rendervar
|
952 |
|
953 |
im, depth = self.render(rendervar_full, 0, bg=[0.0, 0.0, 0.0])
|
954 |
im_show = (im.permute(1, 2, 0) * 255.0).cpu().numpy().astype(np.uint8).copy()
|
|
|
983 |
self.gripper_params = tuple(
|
984 |
v.detach().cpu() if isinstance(v, torch.Tensor) else v for v in self.gripper_params
|
985 |
)
|
986 |
+
for k, v in rendervar.items():
|
987 |
+
rendervar[k] = v.detach().cpu() if isinstance(v, torch.Tensor) else v
|
988 |
|
989 |
form_video = gr.Video(
|
990 |
label='Predicted video',
|
|
|
1002 |
|
1003 |
return form_video, form_3dgs_pred, \
|
1004 |
self.preprocess_metadata, self.state, self.params, \
|
1005 |
+
self.table_params, self.gripper_params, rendervar
|
1006 |
|
1007 |
+
def run_command(self, unit_command, preprocess_metadata, state, params, table_params, gripper_params, rendervar):
|
1008 |
import warp as wp
|
1009 |
wp.init()
|
1010 |
gpus = [int(gpu) for gpu in self.cfg.gpus]
|
|
|
1037 |
self.gripper_params = tuple(
|
1038 |
v.to(self.torch_device) if isinstance(v, torch.Tensor) else v for v in self.gripper_params
|
1039 |
)
|
1040 |
+
for k, v in rendervar.items():
|
1041 |
+
rendervar[k] = v.to(self.torch_device) if isinstance(v, torch.Tensor) else v
|
1042 |
|
1043 |
num_steps = 15
|
1044 |
batch_size = 1
|
|
|
1082 |
# print(eef_xyz.cpu().numpy().tolist(), end=' ')
|
1083 |
|
1084 |
self.step()
|
1085 |
+
rendervar, rendervar_full = self.update_rendervar(rendervar)
|
1086 |
+
# self.rendervar = rendervar
|
1087 |
im, depth = self.render(rendervar_full, 0, bg=[0.0, 0.0, 0.0])
|
1088 |
im_show = (im.permute(1, 2, 0) * 255.0).cpu().numpy().astype(np.uint8).copy()
|
1089 |
|
|
|
1113 |
self.gripper_params = tuple(
|
1114 |
v.detach().cpu() if isinstance(v, torch.Tensor) else v for v in self.gripper_params
|
1115 |
)
|
1116 |
+
for k, v in rendervar.items():
|
1117 |
+
rendervar[k] = v.detach().cpu() if isinstance(v, torch.Tensor) else v
|
1118 |
|
1119 |
make_video(root / 'log/temp', root / f'log/gs/temp/form_video.mp4', '%04d.png', 5)
|
1120 |
|
|
|
1146 |
)
|
1147 |
return form_video, form_3dgs_pred, \
|
1148 |
self.preprocess_metadata, self.state, self.params, \
|
1149 |
+
self.table_params, self.gripper_params, rendervar
|
1150 |
|
1151 |
@spaces.GPU
|
1152 |
+
def on_click_run_xplus(self, preprocess_metadata, state, params, table_params, gripper_params, rendervar):
|
1153 |
+
return self.run_command([5.0, 0, 0], preprocess_metadata, state, params, table_params, gripper_params, rendervar)
|
1154 |
|
1155 |
@spaces.GPU
|
1156 |
+
def on_click_run_xminus(self, preprocess_metadata, state, params, table_params, gripper_params, rendervar):
|
1157 |
+
return self.run_command([-5.0, 0, 0], preprocess_metadata, state, params, table_params, gripper_params, rendervar)
|
1158 |
|
1159 |
@spaces.GPU
|
1160 |
+
def on_click_run_yplus(self, preprocess_metadata, state, params, table_params, gripper_params, rendervar):
|
1161 |
+
return self.run_command([0, 5.0, 0], preprocess_metadata, state, params, table_params, gripper_params, rendervar)
|
1162 |
|
1163 |
@spaces.GPU
|
1164 |
+
def on_click_run_yminus(self, preprocess_metadata, state, params, table_params, gripper_params, rendervar):
|
1165 |
+
return self.run_command([0, -5.0, 0], preprocess_metadata, state, params, table_params, gripper_params, rendervar)
|
1166 |
|
1167 |
@spaces.GPU
|
1168 |
+
def on_click_run_zplus(self, preprocess_metadata, state, params, table_params, gripper_params, rendervar):
|
1169 |
+
return self.run_command([0, 0, 5.0], preprocess_metadata, state, params, table_params, gripper_params, rendervar)
|
1170 |
|
1171 |
@spaces.GPU
|
1172 |
+
def on_click_run_zminus(self, preprocess_metadata, state, params, table_params, gripper_params, rendervar):
|
1173 |
+
return self.run_command([0, 0, -5.0], preprocess_metadata, state, params, table_params, gripper_params, rendervar)
|
1174 |
|
1175 |
def launch(self, share=False):
|
1176 |
|
|
|
1180 |
params = gr.State(self.params)
|
1181 |
table_params = gr.State(self.table_params)
|
1182 |
gripper_params = gr.State(self.gripper_params)
|
1183 |
+
rendervar = gr.State(None)
|
1184 |
|
1185 |
with gr.Row():
|
1186 |
gr.Markdown("# Particle-Grid Neural Dynamics for Learning Deformable Object Models from RGB-D Videos")
|
|
|
1297 |
inputs=[],
|
1298 |
outputs=[form_video, form_3dgs_pred,
|
1299 |
preprocess_metadata, state, params,
|
1300 |
+
table_params, gripper_params, rendervar])
|
1301 |
|
1302 |
run_xplus.click(self.on_click_run_xplus,
|
1303 |
inputs=[preprocess_metadata, state, params,
|
1304 |
+
table_params, gripper_params, rendervar],
|
1305 |
outputs=[form_video, form_3dgs_pred,
|
1306 |
preprocess_metadata, state, params,
|
1307 |
+
table_params, gripper_params, rendervar])
|
1308 |
|
1309 |
run_xminus.click(self.on_click_run_xminus,
|
1310 |
inputs=[preprocess_metadata, state, params,
|
1311 |
+
table_params, gripper_params, rendervar],
|
1312 |
outputs=[form_video, form_3dgs_pred,
|
1313 |
preprocess_metadata, state, params,
|
1314 |
+
table_params, gripper_params, rendervar])
|
1315 |
|
1316 |
run_yplus.click(self.on_click_run_yplus,
|
1317 |
inputs=[preprocess_metadata, state, params,
|
1318 |
+
table_params, gripper_params, rendervar],
|
1319 |
outputs=[form_video, form_3dgs_pred,
|
1320 |
preprocess_metadata, state, params,
|
1321 |
+
table_params, gripper_params, rendervar])
|
1322 |
|
1323 |
run_yminus.click(self.on_click_run_yminus,
|
1324 |
inputs=[preprocess_metadata, state, params,
|
1325 |
+
table_params, gripper_params, rendervar],
|
1326 |
outputs=[form_video, form_3dgs_pred,
|
1327 |
preprocess_metadata, state, params,
|
1328 |
+
table_params, gripper_params, rendervar])
|
1329 |
|
1330 |
run_zplus.click(self.on_click_run_zplus,
|
1331 |
inputs=[preprocess_metadata, state, params,
|
1332 |
+
table_params, gripper_params, rendervar],
|
1333 |
outputs=[form_video, form_3dgs_pred,
|
1334 |
preprocess_metadata, state, params,
|
1335 |
+
table_params, gripper_params, rendervar])
|
1336 |
|
1337 |
run_zminus.click(self.on_click_run_zminus,
|
1338 |
inputs=[preprocess_metadata, state, params,
|
1339 |
+
table_params, gripper_params, rendervar],
|
1340 |
outputs=[form_video, form_3dgs_pred,
|
1341 |
preprocess_metadata, state, params,
|
1342 |
+
table_params, gripper_params, rendervar])
|
1343 |
|
1344 |
# Set up callbacks
|
1345 |
# run_reset_2.click(self.reset_2,
|
src/experiments/log/gs/temp/form_video.mp4
CHANGED
Binary files a/src/experiments/log/gs/temp/form_video.mp4 and b/src/experiments/log/gs/temp/form_video.mp4 differ
|
|
src/experiments/log/gs/temp/gs_pred.splat
CHANGED
@@ -1,3 +1,3 @@
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
-
oid sha256:
|
3 |
size 7675392
|
|
|
1 |
version https://git-lfs.github.com/spec/v1
|
2 |
+
oid sha256:da576876524c55864094c59bbe99313a167797d312af80eb3666bac7b0a77b34
|
3 |
size 7675392
|
src/experiments/log/temp/0000.png
CHANGED
![]() |
Git LFS Details
|
![]() |
Git LFS Details
|
src/experiments/log/temp/0001.png
CHANGED
![]() |
Git LFS Details
|
![]() |
Git LFS Details
|
src/experiments/log/temp/0002.png
CHANGED
![]() |
Git LFS Details
|
![]() |
Git LFS Details
|
src/experiments/log/temp/0003.png
CHANGED
![]() |
Git LFS Details
|
![]() |
Git LFS Details
|
src/experiments/log/temp/0004.png
CHANGED
![]() |
Git LFS Details
|
![]() |
Git LFS Details
|
src/experiments/log/temp/0005.png
CHANGED
![]() |
Git LFS Details
|
![]() |
Git LFS Details
|
src/experiments/log/temp/0006.png
CHANGED
![]() |
Git LFS Details
|
![]() |
Git LFS Details
|
src/experiments/log/temp/0007.png
CHANGED
![]() |
Git LFS Details
|
![]() |
Git LFS Details
|
src/experiments/log/temp/0008.png
CHANGED
![]() |
Git LFS Details
|
![]() |
Git LFS Details
|
src/experiments/log/temp/0009.png
CHANGED
![]() |
Git LFS Details
|
![]() |
Git LFS Details
|
src/experiments/log/temp/0010.png
CHANGED
![]() |
Git LFS Details
|
![]() |
Git LFS Details
|
src/experiments/log/temp/0011.png
CHANGED
![]() |
Git LFS Details
|
![]() |
Git LFS Details
|
src/experiments/log/temp/0012.png
CHANGED
![]() |
Git LFS Details
|
![]() |
Git LFS Details
|
src/experiments/log/temp/0013.png
CHANGED
![]() |
Git LFS Details
|
![]() |
Git LFS Details
|
src/experiments/log/temp/0014.png
CHANGED
![]() |
Git LFS Details
|
![]() |
Git LFS Details
|