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,
|