init project
Browse files
app.py
CHANGED
|
@@ -38,8 +38,7 @@ from modules.pe3r.models import Models
|
|
| 38 |
import torchvision.transforms as tvf
|
| 39 |
|
| 40 |
silent = False
|
| 41 |
-
|
| 42 |
-
pe3r = Models(device) #
|
| 43 |
|
| 44 |
def _convert_scene_output_to_glb(outdir, imgs, pts3d, mask, focals, cams2world, cam_size=0.05,
|
| 45 |
cam_color=None, as_pointcloud=False,
|
|
@@ -244,6 +243,8 @@ def slerp_multiple(vectors, t_values):
|
|
| 244 |
@torch.no_grad
|
| 245 |
def get_mask_from_img_sam1(mobilesamv2, yolov8, sam1_image, yolov8_image, original_size, input_size, transform):
|
| 246 |
|
|
|
|
|
|
|
| 247 |
sam_mask=[]
|
| 248 |
img_area = original_size[0] * original_size[1]
|
| 249 |
|
|
@@ -297,7 +298,9 @@ def get_mask_from_img_sam1(mobilesamv2, yolov8, sam1_image, yolov8_image, origin
|
|
| 297 |
|
| 298 |
@torch.no_grad
|
| 299 |
def get_cog_feats(images):
|
|
|
|
| 300 |
device = 'cuda' if torch.cuda.is_available() else 'cpu'
|
|
|
|
| 301 |
cog_seg_maps = []
|
| 302 |
rev_cog_seg_maps = []
|
| 303 |
inference_state = pe3r.sam2.init_state(images=images.sam2_images, video_height=images.sam2_video_size[0], video_width=images.sam2_video_size[1])
|
|
@@ -441,6 +444,9 @@ def get_reconstructed_scene(outdir, filelist, schedule, niter, min_conf_thr,
|
|
| 441 |
from a list of images, run dust3r inference, global aligner.
|
| 442 |
then run get_3D_model_from_scene
|
| 443 |
"""
|
|
|
|
|
|
|
|
|
|
| 444 |
if len(filelist) < 2:
|
| 445 |
raise gradio.Error("Please input at least 2 images.")
|
| 446 |
|
|
@@ -504,6 +510,8 @@ def get_reconstructed_scene(outdir, filelist, schedule, niter, min_conf_thr,
|
|
| 504 |
def get_3D_object_from_scene(outdir, text, threshold, scene, min_conf_thr, as_pointcloud,
|
| 505 |
mask_sky, clean_depth, transparent_cams, cam_size):
|
| 506 |
|
|
|
|
|
|
|
| 507 |
texts = [text]
|
| 508 |
inputs = pe3r.siglip_tokenizer(text=texts, padding="max_length", return_tensors="pt")
|
| 509 |
inputs = {key: value.to(device) for key, value in inputs.items()}
|
|
|
|
| 38 |
import torchvision.transforms as tvf
|
| 39 |
|
| 40 |
silent = False
|
| 41 |
+
pe3r = Models('cpu') #
|
|
|
|
| 42 |
|
| 43 |
def _convert_scene_output_to_glb(outdir, imgs, pts3d, mask, focals, cams2world, cam_size=0.05,
|
| 44 |
cam_color=None, as_pointcloud=False,
|
|
|
|
| 243 |
@torch.no_grad
|
| 244 |
def get_mask_from_img_sam1(mobilesamv2, yolov8, sam1_image, yolov8_image, original_size, input_size, transform):
|
| 245 |
|
| 246 |
+
device = 'cuda' if torch.cuda.is_available() else 'cpu'
|
| 247 |
+
|
| 248 |
sam_mask=[]
|
| 249 |
img_area = original_size[0] * original_size[1]
|
| 250 |
|
|
|
|
| 298 |
|
| 299 |
@torch.no_grad
|
| 300 |
def get_cog_feats(images):
|
| 301 |
+
|
| 302 |
device = 'cuda' if torch.cuda.is_available() else 'cpu'
|
| 303 |
+
|
| 304 |
cog_seg_maps = []
|
| 305 |
rev_cog_seg_maps = []
|
| 306 |
inference_state = pe3r.sam2.init_state(images=images.sam2_images, video_height=images.sam2_video_size[0], video_width=images.sam2_video_size[1])
|
|
|
|
| 444 |
from a list of images, run dust3r inference, global aligner.
|
| 445 |
then run get_3D_model_from_scene
|
| 446 |
"""
|
| 447 |
+
|
| 448 |
+
device = 'cuda' if torch.cuda.is_available() else 'cpu'
|
| 449 |
+
|
| 450 |
if len(filelist) < 2:
|
| 451 |
raise gradio.Error("Please input at least 2 images.")
|
| 452 |
|
|
|
|
| 510 |
def get_3D_object_from_scene(outdir, text, threshold, scene, min_conf_thr, as_pointcloud,
|
| 511 |
mask_sky, clean_depth, transparent_cams, cam_size):
|
| 512 |
|
| 513 |
+
device = 'cuda' if torch.cuda.is_available() else 'cpu'
|
| 514 |
+
|
| 515 |
texts = [text]
|
| 516 |
inputs = pe3r.siglip_tokenizer(text=texts, padding="max_length", return_tensors="pt")
|
| 517 |
inputs = {key: value.to(device) for key, value in inputs.items()}
|