init project
Browse files
app.py
CHANGED
|
@@ -448,16 +448,16 @@ def get_reconstructed_scene(outdir, pe3r, device, silent, filelist, schedule, ni
|
|
| 448 |
images = Images(filelist=filelist, device=device)
|
| 449 |
|
| 450 |
# try:
|
| 451 |
-
|
| 452 |
-
# imgs = load_images(images, rev_cog_seg_maps, size=512, verbose=not silent)
|
| 453 |
-
# except Exception as e:
|
| 454 |
-
rev_cog_seg_maps = []
|
| 455 |
-
for tmp_img in images.np_images:
|
| 456 |
-
rev_seg_map = -np.ones(tmp_img.shape[:2], dtype=np.int64)
|
| 457 |
-
rev_cog_seg_maps.append(rev_seg_map)
|
| 458 |
-
cog_seg_maps = rev_cog_seg_maps
|
| 459 |
-
cog_feats = torch.zeros((1, 1024))
|
| 460 |
imgs = load_images(images, rev_cog_seg_maps, size=512, verbose=not silent)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 461 |
|
| 462 |
if len(imgs) == 1:
|
| 463 |
imgs = [imgs[0], copy.deepcopy(imgs[0])]
|
|
@@ -469,56 +469,56 @@ def get_reconstructed_scene(outdir, pe3r, device, silent, filelist, schedule, ni
|
|
| 469 |
scenegraph_type = scenegraph_type + "-" + str(refid)
|
| 470 |
|
| 471 |
pairs = make_pairs(imgs, scene_graph=scenegraph_type, prefilter=None, symmetrize=True)
|
| 472 |
-
output = inference(pairs, pe3r.mast3r, device, batch_size=1, verbose=not silent)
|
| 473 |
-
mode = GlobalAlignerMode.PointCloudOptimizer if len(imgs) > 2 else GlobalAlignerMode.PairViewer
|
| 474 |
-
scene_1 = global_aligner(output, cog_seg_maps, rev_cog_seg_maps, cog_feats, device=device, mode=mode, verbose=not silent)
|
| 475 |
-
lr = 0.01
|
| 476 |
-
# if mode == GlobalAlignerMode.PointCloudOptimizer:
|
| 477 |
-
loss = scene_1.compute_global_alignment(tune_flg=True, init='mst', niter=niter, schedule=schedule, lr=lr)
|
| 478 |
-
|
| 479 |
-
try:
|
| 480 |
-
ImgNorm = tvf.Compose([tvf.ToTensor(), tvf.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])
|
| 481 |
-
for i in range(len(imgs)):
|
| 482 |
-
# print(imgs[i]['img'].shape, scene.imgs[i].shape, ImgNorm(scene.imgs[i])[None])
|
| 483 |
-
imgs[i]['img'] = ImgNorm(scene_1.imgs[i])[None]
|
| 484 |
-
pairs = make_pairs(imgs, scene_graph=scenegraph_type, prefilter=None, symmetrize=True)
|
| 485 |
-
output = inference(pairs, pe3r.mast3r, device, batch_size=1, verbose=not silent)
|
| 486 |
-
mode = GlobalAlignerMode.PointCloudOptimizer if len(imgs) > 2 else GlobalAlignerMode.PairViewer
|
| 487 |
-
scene = global_aligner(output, cog_seg_maps, rev_cog_seg_maps, cog_feats, device=device, mode=mode, verbose=not silent)
|
| 488 |
-
ori_imgs = scene.ori_imgs
|
| 489 |
-
lr = 0.01
|
| 490 |
-
# if mode == GlobalAlignerMode.PointCloudOptimizer:
|
| 491 |
-
loss = scene.compute_global_alignment(tune_flg=False, init='mst', niter=niter, schedule=schedule, lr=lr)
|
| 492 |
-
except Exception as e:
|
| 493 |
-
scene = scene_1
|
| 494 |
-
scene.imgs = ori_imgs
|
| 495 |
-
scene.ori_imgs = ori_imgs
|
| 496 |
-
print(e)
|
| 497 |
-
|
| 498 |
|
| 499 |
-
|
| 500 |
-
|
| 501 |
-
|
| 502 |
-
#
|
| 503 |
-
#
|
| 504 |
-
#
|
| 505 |
-
|
| 506 |
-
|
| 507 |
-
|
| 508 |
-
#
|
| 509 |
-
|
| 510 |
-
|
| 511 |
-
|
| 512 |
-
|
| 513 |
-
|
| 514 |
-
|
| 515 |
-
|
| 516 |
-
|
| 517 |
-
|
| 518 |
-
|
| 519 |
-
|
| 520 |
-
|
| 521 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 522 |
|
| 523 |
@spaces.GPU(duration=180)
|
| 524 |
def get_3D_object_from_scene(outdir, pe3r, silent, device, text, threshold, scene, min_conf_thr, as_pointcloud,
|
|
|
|
| 448 |
images = Images(filelist=filelist, device=device)
|
| 449 |
|
| 450 |
# try:
|
| 451 |
+
cog_seg_maps, rev_cog_seg_maps, cog_feats = get_cog_feats(images, pe3r, device)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 452 |
imgs = load_images(images, rev_cog_seg_maps, size=512, verbose=not silent)
|
| 453 |
+
# except Exception as e:
|
| 454 |
+
# rev_cog_seg_maps = []
|
| 455 |
+
# for tmp_img in images.np_images:
|
| 456 |
+
# rev_seg_map = -np.ones(tmp_img.shape[:2], dtype=np.int64)
|
| 457 |
+
# rev_cog_seg_maps.append(rev_seg_map)
|
| 458 |
+
# cog_seg_maps = rev_cog_seg_maps
|
| 459 |
+
# cog_feats = torch.zeros((1, 1024))
|
| 460 |
+
# imgs = load_images(images, rev_cog_seg_maps, size=512, verbose=not silent)
|
| 461 |
|
| 462 |
if len(imgs) == 1:
|
| 463 |
imgs = [imgs[0], copy.deepcopy(imgs[0])]
|
|
|
|
| 469 |
scenegraph_type = scenegraph_type + "-" + str(refid)
|
| 470 |
|
| 471 |
pairs = make_pairs(imgs, scene_graph=scenegraph_type, prefilter=None, symmetrize=True)
|
| 472 |
+
# output = inference(pairs, pe3r.mast3r, device, batch_size=1, verbose=not silent)
|
| 473 |
+
# mode = GlobalAlignerMode.PointCloudOptimizer if len(imgs) > 2 else GlobalAlignerMode.PairViewer
|
| 474 |
+
# scene_1 = global_aligner(output, cog_seg_maps, rev_cog_seg_maps, cog_feats, device=device, mode=mode, verbose=not silent)
|
| 475 |
+
# lr = 0.01
|
| 476 |
+
# # if mode == GlobalAlignerMode.PointCloudOptimizer:
|
| 477 |
+
# loss = scene_1.compute_global_alignment(tune_flg=True, init='mst', niter=niter, schedule=schedule, lr=lr)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 478 |
|
| 479 |
+
# try:
|
| 480 |
+
# ImgNorm = tvf.Compose([tvf.ToTensor(), tvf.Normalize((0.5, 0.5, 0.5), (0.5, 0.5, 0.5))])
|
| 481 |
+
# for i in range(len(imgs)):
|
| 482 |
+
# # print(imgs[i]['img'].shape, scene.imgs[i].shape, ImgNorm(scene.imgs[i])[None])
|
| 483 |
+
# imgs[i]['img'] = ImgNorm(scene_1.imgs[i])[None]
|
| 484 |
+
# pairs = make_pairs(imgs, scene_graph=scenegraph_type, prefilter=None, symmetrize=True)
|
| 485 |
+
# output = inference(pairs, pe3r.mast3r, device, batch_size=1, verbose=not silent)
|
| 486 |
+
# mode = GlobalAlignerMode.PointCloudOptimizer if len(imgs) > 2 else GlobalAlignerMode.PairViewer
|
| 487 |
+
# scene = global_aligner(output, cog_seg_maps, rev_cog_seg_maps, cog_feats, device=device, mode=mode, verbose=not silent)
|
| 488 |
+
# ori_imgs = scene.ori_imgs
|
| 489 |
+
# lr = 0.01
|
| 490 |
+
# # if mode == GlobalAlignerMode.PointCloudOptimizer:
|
| 491 |
+
# loss = scene.compute_global_alignment(tune_flg=False, init='mst', niter=niter, schedule=schedule, lr=lr)
|
| 492 |
+
# except Exception as e:
|
| 493 |
+
# scene = scene_1
|
| 494 |
+
# scene.imgs = ori_imgs
|
| 495 |
+
# scene.ori_imgs = ori_imgs
|
| 496 |
+
# print(e)
|
| 497 |
+
|
| 498 |
+
|
| 499 |
+
# outfile = get_3D_model_from_scene(outdir, silent, scene, min_conf_thr, as_pointcloud, mask_sky,
|
| 500 |
+
# clean_depth, transparent_cams, cam_size)
|
| 501 |
+
|
| 502 |
+
# # also return rgb, depth and confidence imgs
|
| 503 |
+
# # depth is normalized with the max value for all images
|
| 504 |
+
# # we apply the jet colormap on the confidence maps
|
| 505 |
+
# rgbimg = scene.imgs
|
| 506 |
+
# depths = to_numpy(scene.get_depthmaps())
|
| 507 |
+
# confs = to_numpy([c for c in scene.im_conf])
|
| 508 |
+
# # confs = to_numpy([c for c in scene.conf_2])
|
| 509 |
+
# cmap = pl.get_cmap('jet')
|
| 510 |
+
# depths_max = max([d.max() for d in depths])
|
| 511 |
+
# depths = [d / depths_max for d in depths]
|
| 512 |
+
# confs_max = max([d.max() for d in confs])
|
| 513 |
+
# confs = [cmap(d / confs_max) for d in confs]
|
| 514 |
+
|
| 515 |
+
# imgs = []
|
| 516 |
+
# for i in range(len(rgbimg)):
|
| 517 |
+
# imgs.append(rgbimg[i])
|
| 518 |
+
# imgs.append(rgb(depths[i]))
|
| 519 |
+
# imgs.append(rgb(confs[i]))
|
| 520 |
+
|
| 521 |
+
# return scene, outfile, imgs
|
| 522 |
|
| 523 |
@spaces.GPU(duration=180)
|
| 524 |
def get_3D_object_from_scene(outdir, pe3r, silent, device, text, threshold, scene, min_conf_thr, as_pointcloud,
|