mirror of
https://github.com/facebookresearch/pytorch3d.git
synced 2025-08-02 20:02:49 +08:00
Summary: Implements 3 basic raysamplers. Reviewed By: nikhilaravi Differential Revision: D24110643 fbshipit-source-id: eb67d0e56773c7871ebdcb23e7e520302dc1b3c9
40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
# Copyright (c) Facebook, Inc. and its affiliates. All rights reserved.
|
|
|
|
import itertools
|
|
|
|
from fvcore.common.benchmark import benchmark
|
|
from pytorch3d.renderer import (
|
|
GridRaysampler,
|
|
MonteCarloRaysampler,
|
|
NDCGridRaysampler,
|
|
FoVOrthographicCameras,
|
|
FoVPerspectiveCameras,
|
|
OrthographicCameras,
|
|
PerspectiveCameras,
|
|
)
|
|
from test_raysampling import TestRaysampling
|
|
|
|
|
|
def bm_raysampling() -> None:
|
|
case_grid = {
|
|
"raysampler_type": [GridRaysampler, NDCGridRaysampler, MonteCarloRaysampler],
|
|
"camera_type": [
|
|
PerspectiveCameras,
|
|
OrthographicCameras,
|
|
FoVPerspectiveCameras,
|
|
FoVOrthographicCameras,
|
|
],
|
|
"batch_size": [1, 10],
|
|
"n_pts_per_ray": [10, 1000, 10000],
|
|
"image_width": [10, 300],
|
|
"image_height": [10, 300],
|
|
}
|
|
test_cases = itertools.product(*case_grid.values())
|
|
kwargs_list = [dict(zip(case_grid.keys(), case)) for case in test_cases]
|
|
|
|
benchmark(TestRaysampling.raysampler, "RAYSAMPLER", kwargs_list, warmup_iters=1)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
bm_raysampling()
|