Exemplo n.º 1
0
 def test_iou_should_return_1_when_masks_are_identical(self):
     # Given
     mask = np.random.randint(2, size=(2, 4))
     # When
     iou_result = iou(mask, mask)
     # Then
     expected_result = 1.0
     self.assertEqual(expected_result, iou_result)
Exemplo n.º 2
0
 def test_iou_should_return_0_when_masks_are_opposites(self):
     # Given
     mask1 = np.random.randint(2, size=(2, 4))
     mask2 = np.ones((2, 4)) - mask1
     # When
     iou_result = iou(mask1, mask2)
     # Then
     expected_result = 0.0
     self.assertEqual(expected_result, iou_result)
Exemplo n.º 3
0
 def test_iou_should_return_0_25_when_mask_2_is_included_in_mask_1_and_masks_have_25_percent_overlap(self):
     # Given
     mask1 = np.ones((2, 4))
     mask2 = np.concatenate((np.ones((2, 1)), np.zeros((2, 3))), axis=1)
     # When
     iou_result = iou(mask1, mask2)
     # Then
     expected_result = 0.25
     self.assertEqual(expected_result, iou_result)
Exemplo n.º 4
0
 def test_iou_should_return_x_when_mask_2_is_not_included_in_mask_1_and_common_areas_are_50_percent_of_each_mask(
         self):
     # Given
     mask1 = np.concatenate((np.zeros((2, 1)), np.ones((2, 2)), np.zeros((2, 1))), axis=1)
     mask2 = np.concatenate((np.ones((2, 2)), np.zeros((2, 2))), axis=1)
     # When
     iou_result = iou(mask1, mask2)
     # Then
     expected_result = 1/3.0
     self.assertEqual(expected_result, iou_result)
Exemplo n.º 5
0
def compute_iou_for_query(batch_labels, batches, output, stick, testname):
    classiou = 0
    for i in range(0, batches.size()[0]):
        # get prediction
        pred = output.data.cpu().numpy()[i][0]

        pred[pred <= 0.5] = 0
        pred[pred > 0.5] = 1
        # vis
        demo = cv2.cvtColor(pred, cv2.COLOR_GRAY2RGB) * 255
        stick[224 * 3:224 * 4, 224 * i:224 * (i + 1), :] = demo.copy()

        testlabel = batch_labels.numpy()[i][0].astype(bool)
        testlabel[testlabel <= 0.5] = 0
        testlabel[testlabel > 0.5] = 1
        # compute IOU
        iou_score = iou(pred, testlabel)
        classiou += iou_score
    classiou /= 1.0 * batches.size()[0]
    #print('iou=%0.4f for %s' % (classiou, testname))
    return classiou, stick, i