MCPcopy Create free account
hub / github.com/drinkingcoder/FlowFormer-Official / validate_kitti

Function validate_kitti

evaluate_FlowFormer.py:113–149  ·  view source on GitHub ↗

Peform validation using the KITTI-2015 (train) split

(model)

Source from the content-addressed store, hash-verified

111
112@torch.no_grad()
113def validate_kitti(model):
114 """ Peform validation using the KITTI-2015 (train) split """
115 model.eval()
116 val_dataset = datasets.KITTI(split='training')
117
118 out_list, epe_list = [], []
119 for val_id in range(len(val_dataset)):
120 image1, image2, flow_gt, valid_gt = val_dataset[val_id]
121 image1 = image1[None].cuda()
122 image2 = image2[None].cuda()
123
124 padder = InputPadder(image1.shape)
125 image1, image2 = padder.pad(image1, image2)
126
127 flow_pre = model(image1, image2)
128
129 flow_pre = padder.unpad(flow_pre[0]).cpu()[0]
130
131 epe = torch.sum((flow_pre - flow_gt)**2, dim=0).sqrt()
132 mag = torch.sum(flow_gt**2, dim=0).sqrt()
133
134 epe = epe.view(-1)
135 mag = mag.view(-1)
136 val = valid_gt.view(-1) >= 0.5
137
138 out = ((epe > 3.0) & ((epe/mag) > 0.05)).float()
139 epe_list.append(epe[val].mean().item())
140 out_list.append(out[val].cpu().numpy())
141
142 epe_list = np.array(epe_list)
143 out_list = np.concatenate(out_list)
144
145 epe = np.mean(epe_list)
146 f1 = 100 * np.mean(out_list)
147
148 print("Validation KITTI: %f, %f" % (epe, f1))
149 return {'kitti-epe': epe, 'kitti-f1': f1}
150
151
152if __name__ == '__main__':

Callers 1

Calls 3

padMethod · 0.95
unpadMethod · 0.95
InputPadderClass · 0.90

Tested by

no test coverage detected