Ejemplo n.º 1
0
 def test_box_corner_distance_loss_on_object_tensors_relative(self):
   (voxel_inputs, voxel_outputs1,
    voxel_outputs2) = self._get_dictionaries_for_distance_loss_relative()
   inputs = {}
   outputs1 = {}
   outputs2 = {}
   for key, value in standard_fields.get_input_voxel_to_object_field_mapping(
   ).items():
     if key in voxel_inputs:
       inputs[value] = [voxel_inputs[key][0, Ellipsis]]
   for key, value in standard_fields.get_output_voxel_to_object_field_mapping(
   ).items():
     if key in voxel_outputs1:
       outputs1[value] = [voxel_outputs1[key][0, Ellipsis]]
   for key, value in standard_fields.get_output_voxel_to_object_field_mapping(
   ).items():
     if key in voxel_outputs2:
       outputs2[value] = [voxel_outputs2[key][0, Ellipsis]]
   loss1 = box_prediction_losses.box_corner_distance_loss_on_object_tensors(
       inputs=inputs,
       outputs=outputs1,
       loss_type='normalized_huber')
   loss2 = box_prediction_losses.box_corner_distance_loss_on_object_tensors(
       inputs=inputs,
       outputs=outputs2,
       loss_type='normalized_huber')
   self.assertGreater(loss2.numpy(), loss1.numpy())
Ejemplo n.º 2
0
def mask_valid_voxels(inputs, outputs):
    """Mask the voxels that are valid."""
    if standard_fields.DetectionResultFields.objects_center in outputs:
        return outputs
    valid_mask = mask_utils.num_voxels_mask(inputs=inputs)
    mask_utils.apply_mask_to_output_voxel_tensors(outputs=outputs,
                                                  valid_mask=valid_mask)
    for key, value in standard_fields.get_output_voxel_to_object_field_mapping(
    ).items():
        if key in outputs:
            outputs[value] = outputs[key]