Buckets:
| import argparse | |
| import json | |
| from pathlib import Path | |
| import numpy as np | |
| from real2sim import video | |
| from real2sim.sim.physics import PhysicsScene | |
| def main(): | |
| parser = argparse.ArgumentParser() | |
| parser.add_argument("folder", type=Path) | |
| parser.add_argument("--asset", type=Path, required=True) | |
| parser.add_argument("--result", type=Path, required=True) | |
| parser.add_argument("--output", type=Path) | |
| args = parser.parse_args() | |
| parameters_file = args.result / "parameters.npz" | |
| if not parameters_file.is_file(): | |
| parameters_file = args.result / "best_parameters.npz" | |
| with np.load(parameters_file) as saved: | |
| parameters = saved["parameters"] | |
| scene = PhysicsScene(args.folder, args.asset) | |
| try: | |
| with np.load(args.result / "rollout.npz") as saved: | |
| reference = saved["object_qpos"] | |
| target_masks = saved["masks"] | |
| result = scene.rollout(parameters, np.arange(len(scene.timestamps)), rgb=True) | |
| error = float(np.max(np.abs(result["object_qpos"] - reference))) | |
| mask_errors = int(np.count_nonzero(result["masks"] != target_masks)) | |
| if error > 1e-9 or mask_errors: | |
| raise RuntimeError( | |
| f"Replay differs: qpos={error}, mask pixels={mask_errors}" | |
| ) | |
| output = args.output or args.result / "verified_replay.mp4" | |
| video.write( | |
| output, result["rgb"], 1 / float(np.median(np.diff(scene.timestamps))) | |
| ) | |
| metrics = { | |
| "frames": len(scene.timestamps), | |
| "qpos_max_error": error, | |
| "mask_pixel_errors": mask_errors, | |
| } | |
| (args.result / "replay_verification.json").write_text( | |
| json.dumps(metrics, indent=2) + "\n" | |
| ) | |
| print(json.dumps(metrics), flush=True) | |
| finally: | |
| scene.close() | |
| if __name__ == "__main__": | |
| main() | |
Xet Storage Details
- Size:
- 1.87 kB
- Xet hash:
- 51a02b234b6a4124ecd9d8c643bab7a6c2cef764692a9d34fb0ce368987cdaf4
·
Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.