{ "dataset": "ibims", "data_root": "/root/vepfs/Infinity/data", "partition": "val", "pn": "1M", "max_samples": 0, "input_dir": "/root/vepfs/Infinity/outputs/normal_eval/2026-06-17/12-17-47/ibims/_eval_set/images", "eval_set_dir": "/root/vepfs/Infinity/outputs/normal_eval/2026-06-17/12-17-47/ibims/_eval_set", "source_eval_set_dir": "", "eval_image": "", "methods": [ "ours" ], "ours_checkpoints": [ "/root/vepfs/Infinity/outputs/normal_estimation/2026-06-11/04-33-27/checkpoints/step_0003500_val_ar_nyu_deg_103.7338.pth" ], "normal_tokenizer_ckpt": "/root/vepfs/Infinity/outputs/results/checkpoints/original_tokenizer_infinity_vae_d32reg.pth", "visible_cuda_devices": [ "0", "1", "2", "3" ], "parallel_shards": "auto", "compare_inference_time": true, "timing_warmup": 3, "timing_repeats": 5, "ours_kv_cache_fast": false, "inference_time_protocol": "Batch-size-1 per-image model inference latency measured inside each predictor with time.perf_counter and CUDA synchronization around the model-call section only. Each image uses unmeasured warmup iterations followed by measured repeats. Model loading, process startup, dataset export, image file I/O, metric computation, visualization writing, and result serialization are excluded.", "normal_conventions": { "canonical": "camera_left_up_backward", "dataset_targets": { "nyuv2": { "name": "nyuv2_raw_right_forward_up", "to_eval_perm": [ 0, 2, 1 ], "to_eval_signs": [ -1, 1, -1 ], "description": "NYUv2 parquet normals. Canonical mapping: (x, y, z) -> (-x, z, -y)." }, "hypersim": { "name": "camera_left_up_backward", "to_eval_perm": [ 0, 1, 2 ], "to_eval_signs": [ 1, 1, 1 ], "description": "Canonical metric convention: +x left, +y up, +z backward." }, "scannet": { "name": "camera_left_up_backward", "to_eval_perm": [ 0, 1, 2 ], "to_eval_signs": [ 1, 1, 1 ], "description": "Canonical metric convention: +x left, +y up, +z backward." }, "ibims": { "name": "camera_left_up_backward", "to_eval_perm": [ 0, 1, 2 ], "to_eval_signs": [ 1, 1, 1 ], "description": "Canonical metric convention: +x left, +y up, +z backward." }, "sintel": { "name": "camera_left_up_backward", "to_eval_perm": [ 0, 1, 2 ], "to_eval_signs": [ 1, 1, 1 ], "description": "Canonical metric convention: +x left, +y up, +z backward." } }, "model_outputs": { "ours": { "name": "ours_model_xyz", "to_eval_perm": [ 0, 1, 2 ], "to_eval_signs": [ 1, 1, 1 ], "description": "Infinity normal output already matches the exported eval convention." }, "marigold": { "name": "marigold_normals_xyz", "to_eval_perm": [ 0, 1, 2 ], "to_eval_signs": [ -1, 1, 1 ], "description": "Marigold normals_npy output. Canonical mapping: (x, y, z) -> (-x, y, z)." }, "geowizard": { "name": "geowizard_normal_xyz", "to_eval_perm": [ 0, 1, 2 ], "to_eval_signs": [ 1, 1, 1 ], "description": "GeoWizard normal_npy output already matches the canonical convention." }, "stablenormal": { "name": "stablenormal_xyz", "to_eval_perm": [ 0, 1, 2 ], "to_eval_signs": [ 1, 1, 1 ], "description": "StableNormal output already matches the canonical convention." }, "lotusg": { "name": "lotus_g_xyz", "to_eval_perm": [ 0, 1, 2 ], "to_eval_signs": [ 1, 1, 1 ], "description": "Lotus-G output already matches the canonical convention." }, "lotusd": { "name": "lotus_d_xyz", "to_eval_perm": [ 0, 1, 2 ], "to_eval_signs": [ 1, 1, 1 ], "description": "Lotus-D output already matches the canonical convention." }, "dsine": { "name": "dsine_xyz", "to_eval_perm": [ 0, 1, 2 ], "to_eval_signs": [ 1, 1, 1 ], "description": "DSINE output already matches the canonical convention." }, "metric3dv2": { "name": "metric3d_v2_xyz", "to_eval_perm": [ 0, 1, 2 ], "to_eval_signs": [ -1, -1, -1 ], "description": "Metric3D v2 output. Canonical mapping: (x, y, z) -> (-x, -y, -z)." }, "omnidata_v2": { "name": "omnidata_v2_xyz", "to_eval_perm": [ 0, 1, 2 ], "to_eval_signs": [ 1, 1, 1 ], "description": "Omnidata V2 adapter output already matches the canonical convention." }, "marigold_e2eft": { "name": "marigold_e2eft_xyz", "to_eval_perm": [ 0, 1, 2 ], "to_eval_signs": [ 1, 1, 1 ], "description": "Marigold E2E-FT output already matches the canonical convention." } }, "display_from_eval": { "perm": [ 0, 1, 2 ], "signs": [ 1, 1, 1 ], "description": "Direct normal-map display: RGB = (canonical normal + 1) / 2." } } }