doanh25032004's picture
Upload folder using huggingface_hub
872b0a0 verified
Raw
History Blame Contribute Delete
1.98 kB
from evaluation_utils import *
def process_depth(gt_depth, pred_depth, min_depth, max_depth):
mask = gt_depth > 0
pred_depth[pred_depth < min_depth] = min_depth
pred_depth[pred_depth > max_depth] = max_depth
gt_depth[gt_depth < min_depth] = min_depth
gt_depth[gt_depth > max_depth] = max_depth
return gt_depth, pred_depth, mask
def eval_depth(gt_depths,
pred_depths,
min_depth=1e-3,
max_depth=80, nyu=False):
num_samples = len(pred_depths)
rms = np.zeros(num_samples, np.float32)
log_rms = np.zeros(num_samples, np.float32)
abs_rel = np.zeros(num_samples, np.float32)
sq_rel = np.zeros(num_samples, np.float32)
d1_all = np.zeros(num_samples, np.float32)
a1 = np.zeros(num_samples, np.float32)
a2 = np.zeros(num_samples, np.float32)
a3 = np.zeros(num_samples, np.float32)
for i in range(num_samples):
gt_depth = gt_depths[i]
pred_depth = pred_depths[i]
mask = np.logical_and(gt_depth > min_depth, gt_depth < max_depth)
if not nyu:
gt_height, gt_width = gt_depth.shape
crop = np.array([0.40810811 * gt_height, 0.99189189 * gt_height,
0.03594771 * gt_width, 0.96405229 * gt_width]).astype(np.int32)
crop_mask = np.zeros(mask.shape)
crop_mask[crop[0]:crop[1], crop[2]:crop[3]] = 1
mask = np.logical_and(mask, crop_mask)
gt_depth = gt_depth[mask]
pred_depth = pred_depth[mask]
scale = np.median(gt_depth) / np.median(pred_depth)
pred_depth *= scale
gt_depth, pred_depth, mask = process_depth(
gt_depth, pred_depth, min_depth, max_depth)
abs_rel[i], sq_rel[i], rms[i], log_rms[i], a1[i], a2[i], a3[
i] = compute_errors(gt_depth, pred_depth, nyu=nyu)
return [abs_rel.mean(), sq_rel.mean(), rms.mean(), log_rms.mean(), a1.mean(), a2.mean(), a3.mean()]