Commit ·
0f99554
1
Parent(s): 3ab843d
Make pyrender optional for headless skeleton inference
Browse files- skeleton/utils/save_utils.py +14 -2
skeleton/utils/save_utils.py
CHANGED
|
@@ -21,9 +21,15 @@ from collections import deque, defaultdict
|
|
| 21 |
from scipy.cluster.hierarchy import linkage, fcluster
|
| 22 |
from scipy.spatial.distance import cdist
|
| 23 |
|
| 24 |
-
from data_utils.pyrender_wrapper import PyRenderWrapper
|
| 25 |
from data_utils.data_loader import DataLoader
|
| 26 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 27 |
def save_mesh(vertices, faces, filename):
|
| 28 |
|
| 29 |
mesh = trimesh.Trimesh(vertices=vertices, faces=faces)
|
|
@@ -597,6 +603,12 @@ def render_mesh_with_skeleton(joints, bones, vertices, faces, output_dir, filena
|
|
| 597 |
"""
|
| 598 |
Render the mesh with skeleton using PyRender.
|
| 599 |
"""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 600 |
loader = DataLoader()
|
| 601 |
|
| 602 |
raw_size = (960, 960)
|
|
@@ -645,4 +657,4 @@ def save_args(args, output_dir, filename="config.json"):
|
|
| 645 |
os.makedirs(output_dir, exist_ok=True)
|
| 646 |
config_path = os.path.join(output_dir, filename)
|
| 647 |
with open(config_path, 'w') as f:
|
| 648 |
-
json.dump(args_dict, f, indent=4)
|
|
|
|
| 21 |
from scipy.cluster.hierarchy import linkage, fcluster
|
| 22 |
from scipy.spatial.distance import cdist
|
| 23 |
|
|
|
|
| 24 |
from data_utils.data_loader import DataLoader
|
| 25 |
|
| 26 |
+
_PYRENDER_IMPORT_ERROR = None
|
| 27 |
+
try:
|
| 28 |
+
from data_utils.pyrender_wrapper import PyRenderWrapper
|
| 29 |
+
except Exception as exc:
|
| 30 |
+
PyRenderWrapper = None
|
| 31 |
+
_PYRENDER_IMPORT_ERROR = exc
|
| 32 |
+
|
| 33 |
def save_mesh(vertices, faces, filename):
|
| 34 |
|
| 35 |
mesh = trimesh.Trimesh(vertices=vertices, faces=faces)
|
|
|
|
| 603 |
"""
|
| 604 |
Render the mesh with skeleton using PyRender.
|
| 605 |
"""
|
| 606 |
+
if PyRenderWrapper is None:
|
| 607 |
+
raise RuntimeError(
|
| 608 |
+
"PyRender is unavailable in this runtime. "
|
| 609 |
+
f"Original import error: {_PYRENDER_IMPORT_ERROR}"
|
| 610 |
+
)
|
| 611 |
+
|
| 612 |
loader = DataLoader()
|
| 613 |
|
| 614 |
raw_size = (960, 960)
|
|
|
|
| 657 |
os.makedirs(output_dir, exist_ok=True)
|
| 658 |
config_path = os.path.join(output_dir, filename)
|
| 659 |
with open(config_path, 'w') as f:
|
| 660 |
+
json.dump(args_dict, f, indent=4)
|