def test_fb_consistency_with_occlusion(self): # Flows points right and up by 5. flow_01 = np.ones((4, 64, 64, 2), np.float32) * 5 # Flow points left and down by 2.5. flow_10 = -flow_01 * .5 flow_01 = tf.convert_to_tensor(value=flow_01) flow_10 = tf.convert_to_tensor(value=flow_01) occlusion_mask = smurf_utils.compute_occlusions_brox(flow_01, flow_10).numpy() is_ones = np.equal(occlusion_mask, np.ones_like(occlusion_mask)).all() self.assertTrue(is_ones)
def test_fb_consistency_no_occlusion(self): # flows points right and up by 4 flow_01 = np.ones((4, 64, 64, 2), np.float32) * 4. # flow points left and down by 4 flow_10 = -flow_01 flow_01 = tf.convert_to_tensor(value=flow_01) flow_10 = tf.convert_to_tensor(value=flow_10) occlusion_mask = smurf_utils.compute_occlusions_brox(flow_01, flow_10).numpy() is_zeros = np.equal(occlusion_mask[:, 4:-4, 4:-4, :], np.zeros_like(occlusion_mask[:, 4:-4, 4:-4, :])).all() is_ones1 = np.equal(occlusion_mask[:, -4:, :, :], np.ones_like(occlusion_mask[:, -4:, :, :])).all() is_ones2 = np.equal(occlusion_mask[:, :, -4:, :], np.ones_like(occlusion_mask[:, :, -4:, :])).all() self.assertTrue(is_ones1) self.assertTrue(is_ones2) self.assertTrue(is_zeros)