MCPcopy Create free account
hub / github.com/thygate/stable-diffusion-webui-depthmap-script / compute_metrics

Function compute_metrics

dzoedepth/utils/misc.py:202–245  ·  view source on GitHub ↗

Compute metrics of predicted depth maps. Applies cropping and masking as necessary or specified via arguments. Refer to compute_errors for more details on metrics.

(gt, pred, interpolate=True, garg_crop=False, eigen_crop=True, dataset='nyu', min_depth_eval=0.1, max_depth_eval=10, **kwargs)

Source from the content-addressed store, hash-verified

200
201
202def compute_metrics(gt, pred, interpolate=True, garg_crop=False, eigen_crop=True, dataset='nyu', min_depth_eval=0.1, max_depth_eval=10, **kwargs):
203 """Compute metrics of predicted depth maps. Applies cropping and masking as necessary or specified via arguments. Refer to compute_errors for more details on metrics.
204 """
205 if 'config' in kwargs:
206 config = kwargs['config']
207 garg_crop = config.garg_crop
208 eigen_crop = config.eigen_crop
209 min_depth_eval = config.min_depth_eval
210 max_depth_eval = config.max_depth_eval
211
212 if gt.shape[-2:] != pred.shape[-2:] and interpolate:
213 pred = nn.functional.interpolate(
214 pred, gt.shape[-2:], mode='bilinear', align_corners=True)
215
216 pred = pred.squeeze().cpu().numpy()
217 pred[pred < min_depth_eval] = min_depth_eval
218 pred[pred > max_depth_eval] = max_depth_eval
219 pred[np.isinf(pred)] = max_depth_eval
220 pred[np.isnan(pred)] = min_depth_eval
221
222 gt_depth = gt.squeeze().cpu().numpy()
223 valid_mask = np.logical_and(
224 gt_depth > min_depth_eval, gt_depth < max_depth_eval)
225
226 if garg_crop or eigen_crop:
227 gt_height, gt_width = gt_depth.shape
228 eval_mask = np.zeros(valid_mask.shape)
229
230 if garg_crop:
231 eval_mask[int(0.40810811 * gt_height):int(0.99189189 * gt_height),
232 int(0.03594771 * gt_width):int(0.96405229 * gt_width)] = 1
233
234 elif eigen_crop:
235 # print("-"*10, " EIGEN CROP ", "-"*10)
236 if dataset == 'kitti':
237 eval_mask[int(0.3324324 * gt_height):int(0.91351351 * gt_height),
238 int(0.0359477 * gt_width):int(0.96405229 * gt_width)] = 1
239 else:
240 # assert gt_depth.shape == (480, 640), "Error: Eigen crop is currently only valid for (480, 640) images"
241 eval_mask[45:471, 41:601] = 1
242 else:
243 eval_mask = np.ones(valid_mask.shape)
244 valid_mask = np.logical_and(valid_mask, eval_mask)
245 return compute_errors(gt_depth[valid_mask], pred[valid_mask])
246
247
248#################################### Model uilts ################################################

Callers 2

validate_on_batchMethod · 0.90
validate_on_batchMethod · 0.90

Calls 1

compute_errorsFunction · 0.85

Tested by

no test coverage detected