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)