elev estimate synced from GitHub
Browse files- {one2345_elev_est β elevation_estimate}/.gitignore +0 -0
- elevation_estimate/__init__.py +0 -0
- elevation_estimate/estimate_wild_imgs.py +10 -0
- {one2345_elev_est/oee/models β elevation_estimate}/loftr/__init__.py +0 -0
- {one2345_elev_est/oee/models β elevation_estimate}/loftr/backbone/__init__.py +0 -0
- {one2345_elev_est/oee/models β elevation_estimate}/loftr/backbone/resnet_fpn.py +0 -0
- {one2345_elev_est/oee/models β elevation_estimate}/loftr/loftr.py +0 -0
- {one2345_elev_est/oee/models β elevation_estimate}/loftr/loftr_module/__init__.py +0 -0
- {one2345_elev_est/oee/models β elevation_estimate}/loftr/loftr_module/fine_preprocess.py +0 -0
- {one2345_elev_est/oee/models β elevation_estimate}/loftr/loftr_module/linear_attention.py +0 -0
- {one2345_elev_est/oee/models β elevation_estimate}/loftr/loftr_module/transformer.py +0 -0
- {one2345_elev_est/oee/models β elevation_estimate}/loftr/utils/coarse_matching.py +0 -0
- {one2345_elev_est/oee/models β elevation_estimate}/loftr/utils/cvpr_ds_config.py +0 -0
- {one2345_elev_est/oee/models β elevation_estimate}/loftr/utils/fine_matching.py +0 -0
- {one2345_elev_est/oee/models β elevation_estimate}/loftr/utils/geometry.py +0 -0
- {one2345_elev_est/oee/models β elevation_estimate}/loftr/utils/position_encoding.py +0 -0
- {one2345_elev_est/oee/models β elevation_estimate}/loftr/utils/supervision.py +0 -0
- {one2345_elev_est β elevation_estimate}/pyproject.toml +1 -1
- elevation_estimate/utils/__init__.py +0 -0
- {one2345_elev_est/oee β elevation_estimate}/utils/elev_est_api.py +10 -15
- {one2345_elev_est/oee β elevation_estimate}/utils/plotting.py +0 -0
- {one2345_elev_est/oee β elevation_estimate}/utils/plt_utils.py +0 -0
- {one2345_elev_est/oee β elevation_estimate}/utils/utils3d.py +0 -0
- elevation_estimate/utils/weights/.gitkeep +0 -0
- {one2345_elev_est/tools β elevation_estimate/utils}/weights/indoor_ds_new.ckpt +0 -0
- one2345_elev_est/tools/estimate_wild_imgs.py +0 -35
- one2345_elev_est/tools/example.py +0 -38
{one2345_elev_est β elevation_estimate}/.gitignore
RENAMED
File without changes
|
elevation_estimate/__init__.py
ADDED
File without changes
|
elevation_estimate/estimate_wild_imgs.py
ADDED
@@ -0,0 +1,10 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import os.path as osp
|
2 |
+
from .utils.elev_est_api import elev_est_api
|
3 |
+
|
4 |
+
def estimate_elev(root_dir):
|
5 |
+
img_dir = osp.join(root_dir, "stage2_8")
|
6 |
+
img_paths = []
|
7 |
+
for i in range(4):
|
8 |
+
img_paths.append(f"{img_dir}/0_{i}.png")
|
9 |
+
elev = elev_est_api(img_paths)
|
10 |
+
return elev
|
{one2345_elev_est/oee/models β elevation_estimate}/loftr/__init__.py
RENAMED
File without changes
|
{one2345_elev_est/oee/models β elevation_estimate}/loftr/backbone/__init__.py
RENAMED
File without changes
|
{one2345_elev_est/oee/models β elevation_estimate}/loftr/backbone/resnet_fpn.py
RENAMED
File without changes
|
{one2345_elev_est/oee/models β elevation_estimate}/loftr/loftr.py
RENAMED
File without changes
|
{one2345_elev_est/oee/models β elevation_estimate}/loftr/loftr_module/__init__.py
RENAMED
File without changes
|
{one2345_elev_est/oee/models β elevation_estimate}/loftr/loftr_module/fine_preprocess.py
RENAMED
File without changes
|
{one2345_elev_est/oee/models β elevation_estimate}/loftr/loftr_module/linear_attention.py
RENAMED
File without changes
|
{one2345_elev_est/oee/models β elevation_estimate}/loftr/loftr_module/transformer.py
RENAMED
File without changes
|
{one2345_elev_est/oee/models β elevation_estimate}/loftr/utils/coarse_matching.py
RENAMED
File without changes
|
{one2345_elev_est/oee/models β elevation_estimate}/loftr/utils/cvpr_ds_config.py
RENAMED
File without changes
|
{one2345_elev_est/oee/models β elevation_estimate}/loftr/utils/fine_matching.py
RENAMED
File without changes
|
{one2345_elev_est/oee/models β elevation_estimate}/loftr/utils/geometry.py
RENAMED
File without changes
|
{one2345_elev_est/oee/models β elevation_estimate}/loftr/utils/position_encoding.py
RENAMED
File without changes
|
{one2345_elev_est/oee/models β elevation_estimate}/loftr/utils/supervision.py
RENAMED
File without changes
|
{one2345_elev_est β elevation_estimate}/pyproject.toml
RENAMED
@@ -1,5 +1,5 @@
|
|
1 |
[project]
|
2 |
-
name = "
|
3 |
version = "0.1"
|
4 |
|
5 |
[tool.setuptools.packages.find]
|
|
|
1 |
[project]
|
2 |
+
name = "elevation_estimate"
|
3 |
version = "0.1"
|
4 |
|
5 |
[tool.setuptools.packages.find]
|
elevation_estimate/utils/__init__.py
ADDED
File without changes
|
{one2345_elev_est/oee β elevation_estimate}/utils/elev_est_api.py
RENAMED
@@ -1,21 +1,19 @@
|
|
1 |
-
import matplotlib.pyplot as plt
|
2 |
-
import warnings
|
3 |
-
|
4 |
-
import numpy as np
|
5 |
-
import cv2
|
6 |
import os
|
|
|
|
|
7 |
import os.path as osp
|
8 |
import imageio
|
9 |
from copy import deepcopy
|
10 |
|
11 |
import loguru
|
12 |
import torch
|
13 |
-
from oee.models.loftr import LoFTR, default_cfg
|
14 |
import matplotlib.cm as cm
|
|
|
15 |
|
16 |
-
from
|
17 |
-
from
|
18 |
-
from
|
|
|
19 |
|
20 |
|
21 |
class ElevEstHelper:
|
@@ -28,13 +26,10 @@ class ElevEstHelper:
|
|
28 |
_default_cfg = deepcopy(default_cfg)
|
29 |
_default_cfg['coarse']['temp_bug_fix'] = True # set to False when using the old ckpt
|
30 |
matcher = LoFTR(config=_default_cfg)
|
31 |
-
|
|
|
32 |
if not osp.exists(ckpt_path):
|
33 |
-
|
34 |
-
os.makedirs("weights", exist_ok=True)
|
35 |
-
import gdown
|
36 |
-
gdown.cached_download(url="https://drive.google.com/uc?id=19s3QvcCWQ6g-N1PrYlDCg-2mOJZ3kkgS",
|
37 |
-
path=ckpt_path)
|
38 |
matcher.load_state_dict(torch.load(ckpt_path)['state_dict'])
|
39 |
matcher = matcher.eval().cuda()
|
40 |
cls._feature_matcher = matcher
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
import os
|
2 |
+
import cv2
|
3 |
+
import numpy as np
|
4 |
import os.path as osp
|
5 |
import imageio
|
6 |
from copy import deepcopy
|
7 |
|
8 |
import loguru
|
9 |
import torch
|
|
|
10 |
import matplotlib.cm as cm
|
11 |
+
import matplotlib.pyplot as plt
|
12 |
|
13 |
+
from ..loftr import LoFTR, default_cfg
|
14 |
+
from . import plt_utils
|
15 |
+
from .plotting import make_matching_figure
|
16 |
+
from .utils3d import rect_to_img, canonical_to_camera, calc_pose
|
17 |
|
18 |
|
19 |
class ElevEstHelper:
|
|
|
26 |
_default_cfg = deepcopy(default_cfg)
|
27 |
_default_cfg['coarse']['temp_bug_fix'] = True # set to False when using the old ckpt
|
28 |
matcher = LoFTR(config=_default_cfg)
|
29 |
+
current_dir = os.path.dirname(os.path.abspath(__file__))
|
30 |
+
ckpt_path = os.path.join(current_dir, "weights/indoor_ds_new.ckpt")
|
31 |
if not osp.exists(ckpt_path):
|
32 |
+
raise FileNotFoundError(f"Checkpoint not found at {ckpt_path}")
|
|
|
|
|
|
|
|
|
33 |
matcher.load_state_dict(torch.load(ckpt_path)['state_dict'])
|
34 |
matcher = matcher.eval().cuda()
|
35 |
cls._feature_matcher = matcher
|
{one2345_elev_est/oee β elevation_estimate}/utils/plotting.py
RENAMED
File without changes
|
{one2345_elev_est/oee β elevation_estimate}/utils/plt_utils.py
RENAMED
File without changes
|
{one2345_elev_est/oee β elevation_estimate}/utils/utils3d.py
RENAMED
File without changes
|
elevation_estimate/utils/weights/.gitkeep
ADDED
File without changes
|
{one2345_elev_est/tools β elevation_estimate/utils}/weights/indoor_ds_new.ckpt
RENAMED
File without changes
|
one2345_elev_est/tools/estimate_wild_imgs.py
DELETED
@@ -1,35 +0,0 @@
|
|
1 |
-
import tqdm
|
2 |
-
import imageio
|
3 |
-
import json
|
4 |
-
import os.path as osp
|
5 |
-
import os
|
6 |
-
|
7 |
-
from oee.utils import plt_utils
|
8 |
-
from oee.utils.elev_est_api import elev_est_api
|
9 |
-
|
10 |
-
|
11 |
-
def visualize(img_paths, elev):
|
12 |
-
imgs = [imageio.imread_v2(img_path) for img_path in img_paths]
|
13 |
-
plt_utils.image_grid(imgs, 2, 2, label=f"elev={elev}")
|
14 |
-
|
15 |
-
|
16 |
-
def estimate_elev(root_dir):
|
17 |
-
# root_dir = "/home/linghao/Datasets/objaverse-processed/zero12345_img/wild"
|
18 |
-
# dataset = "supp_fail"
|
19 |
-
# root_dir = "/home/chao/chao/OpenComplete/zero123/zero123/gradio_tmp/"
|
20 |
-
# obj_names = sorted(os.listdir(root_dir))
|
21 |
-
# results = {}
|
22 |
-
# for obj_name in tqdm.tqdm(obj_names):
|
23 |
-
img_dir = osp.join(root_dir, "stage2_8")
|
24 |
-
img_paths = []
|
25 |
-
for i in range(4):
|
26 |
-
img_paths.append(f"{img_dir}/0_{i}.png")
|
27 |
-
elev = elev_est_api(img_paths)
|
28 |
-
# visualize(img_paths, elev)
|
29 |
-
# results[obj_name] = elev
|
30 |
-
# json.dump(results, open(osp.join(root_dir, f"../{dataset}_elev.json"), "w"), indent=4)
|
31 |
-
return elev
|
32 |
-
|
33 |
-
|
34 |
-
# if __name__ == '__main__':
|
35 |
-
# main()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
one2345_elev_est/tools/example.py
DELETED
@@ -1,38 +0,0 @@
|
|
1 |
-
import imageio
|
2 |
-
import numpy as np
|
3 |
-
|
4 |
-
from oee.utils import plt_utils
|
5 |
-
from oee.utils.elev_est_api import elev_est_api
|
6 |
-
import argparse
|
7 |
-
|
8 |
-
|
9 |
-
def visualize(img_paths, elev):
|
10 |
-
imgs = [imageio.imread_v2(img_path) for img_path in img_paths]
|
11 |
-
plt_utils.image_grid(imgs, 2, 2, label=f"elev={elev}")
|
12 |
-
|
13 |
-
|
14 |
-
def main():
|
15 |
-
parser = argparse.ArgumentParser()
|
16 |
-
parser.add_argument("--img_paths", type=str, nargs=4, help="image paths",
|
17 |
-
default=["assets/example_data/0_0.png",
|
18 |
-
"assets/example_data/0_1.png",
|
19 |
-
"assets/example_data/0_2.png",
|
20 |
-
"assets/example_data/0_3.png"])
|
21 |
-
parser.add_argument("--min_elev", type=float, default=30, help="min elevation")
|
22 |
-
parser.add_argument("--max_elev", type=float, default=150, help="max elevation")
|
23 |
-
parser.add_argument("--dbg", default=False, action="store_true", help="debug mode")
|
24 |
-
parser.add_argument("--K_path", type=str, default=None, help="path to K")
|
25 |
-
args = parser.parse_args()
|
26 |
-
|
27 |
-
if args.K_path is not None:
|
28 |
-
K = np.loadtxt(args.K_path)
|
29 |
-
else:
|
30 |
-
K = None
|
31 |
-
|
32 |
-
elev = elev_est_api(args.img_paths, args.min_elev, args.max_elev, K, args.dbg)
|
33 |
-
|
34 |
-
visualize(args.img_paths, elev)
|
35 |
-
|
36 |
-
|
37 |
-
if __name__ == '__main__':
|
38 |
-
main()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|