@@ -38,8 +38,8 @@ class _Visualizer:
38
38
image_render : torch .Tensor
39
39
image_rgb_masked : torch .Tensor
40
40
depth_render : torch .Tensor
41
- depth_map : torch .Tensor
42
- depth_mask : torch .Tensor
41
+ depth_map : Optional [ torch .Tensor ]
42
+ depth_mask : Optional [ torch .Tensor ]
43
43
44
44
visdom_env : str = "eval_debug"
45
45
@@ -75,9 +75,11 @@ def show_depth(
75
75
viz = self ._viz
76
76
viz .images (
77
77
torch .cat (
78
- (
79
- make_depth_image (self .depth_render , loss_mask_now ),
80
- make_depth_image (self .depth_map , loss_mask_now ),
78
+ (make_depth_image (self .depth_render , loss_mask_now ),)
79
+ + (
80
+ (make_depth_image (self .depth_map , loss_mask_now ),)
81
+ if self .depth_map is not None
82
+ else ()
81
83
),
82
84
dim = 3 ,
83
85
),
@@ -91,42 +93,44 @@ def show_depth(
91
93
win = "depth_abs" + name_postfix + "_mask" ,
92
94
opts = {"title" : f"depth_abs_{ name_postfix } _{ depth_loss :1.2f} _mask" },
93
95
)
94
- viz .images (
95
- self .depth_mask ,
96
- env = self .visdom_env ,
97
- win = "depth_abs" + name_postfix + "_maskd" ,
98
- opts = {"title" : f"depth_abs_{ name_postfix } _{ depth_loss :1.2f} _maskd" },
99
- )
96
+ if self .depth_mask is not None :
97
+ viz .images (
98
+ self .depth_mask ,
99
+ env = self .visdom_env ,
100
+ win = "depth_abs" + name_postfix + "_maskd" ,
101
+ opts = {"title" : f"depth_abs_{ name_postfix } _{ depth_loss :1.2f} _maskd" },
102
+ )
100
103
101
104
# show the 3D plot
102
105
# pyre-fixme[9]: viewpoint_trivial has type `PerspectiveCameras`; used as
103
106
# `TensorProperties`.
104
107
viewpoint_trivial : PerspectiveCameras = PerspectiveCameras ().to (
105
108
loss_mask_now .device
106
109
)
107
- pcl_pred = get_rgbd_point_cloud (
108
- viewpoint_trivial ,
109
- self .image_render ,
110
- self .depth_render ,
111
- # mask_crop,
112
- torch .ones_like (self .depth_render ),
113
- # loss_mask_now,
114
- )
115
- pcl_gt = get_rgbd_point_cloud (
116
- viewpoint_trivial ,
117
- self .image_rgb_masked ,
118
- self .depth_map ,
119
- # mask_crop,
120
- torch .ones_like (self .depth_map ),
121
- # loss_mask_now,
122
- )
123
110
_pcls = {
124
- pn : p
125
- for pn , p in zip (("pred_depth" , "gt_depth" ), (pcl_pred , pcl_gt ))
126
- if int (p .num_points_per_cloud ()) > 0
111
+ "pred_depth" : get_rgbd_point_cloud (
112
+ viewpoint_trivial ,
113
+ self .image_render ,
114
+ self .depth_render ,
115
+ # mask_crop,
116
+ torch .ones_like (self .depth_render ),
117
+ # loss_mask_now,
118
+ )
127
119
}
120
+ if self .depth_map is not None :
121
+ _pcls ["gt_depth" ] = get_rgbd_point_cloud (
122
+ viewpoint_trivial ,
123
+ self .image_rgb_masked ,
124
+ self .depth_map ,
125
+ # mask_crop,
126
+ torch .ones_like (self .depth_map ),
127
+ # loss_mask_now,
128
+ )
129
+
130
+ _pcls = {pn : p for pn , p in _pcls .items () if int (p .num_points_per_cloud ()) > 0 }
131
+
128
132
plotlyplot = plot_scene (
129
- {f"pcl{ name_postfix } " : _pcls },
133
+ {f"pcl{ name_postfix } " : _pcls }, # pyre-ignore
130
134
camera_scale = 1.0 ,
131
135
pointcloud_max_points = 10000 ,
132
136
pointcloud_marker_size = 1 ,
@@ -277,10 +281,10 @@ def eval_batch(
277
281
image_render = image_render ,
278
282
image_rgb_masked = image_rgb_masked ,
279
283
depth_render = cloned_render ["depth_render" ],
280
- # pyre-fixme[6]: Expected `Tensor` for 4th param but got
281
- # `Optional[torch.Tensor]`.
282
284
depth_map = frame_data .depth_map ,
283
- depth_mask = frame_data .depth_mask [:1 ],
285
+ depth_mask = frame_data .depth_mask [:1 ]
286
+ if frame_data .depth_mask is not None
287
+ else None ,
284
288
visdom_env = visualize_visdom_env ,
285
289
)
286
290
0 commit comments