hujiecpp commited on
Commit
e809324
·
1 Parent(s): 1208fc1

init project

Browse files
Files changed (1) hide show
  1. app.py +58 -58
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
- # 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,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
- 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,
 
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,