Пересечение-над-соединение между 2 обнаружениями

Я читал газету : Ferrari et al. в разделе "Меры сродства". Я понял, что Ferrari и соавт. попытки получить сродство с :

  1. расположение сродство-использование области пересечения над союзом между двумя обнаружениями
  2. сродство внешнего вида-использование евклидовых расстояний между гистограммами
  3. KLT точка сродства мера

однако у меня есть 2 основные проблемы:

  1. I не могу понять, что на самом деле подразумевается под пересечением-над-объединением между 2 обнаружениями и как его вычислить
  2. я попробовал немного разную меру сродства внешнего вида. Я преобразовал обнаружение RGB в HSV..объединение оттенка и насыщенности в 1 вектор и использование его для сравнения с другими обнаружениями. Однако использование этой техники не удалось, так как обнаружение мешка имело лучший балл сходства, чем обнаружение головы того же человека (с другим ориентация.)

любые предложения или решения моих проблем, описанных выше? Спасибо, и ваша помощь очень ценится.

2 ответов


1) у вас есть два пересекающихся прямоугольных областей. Вы вычисляете пересечение полей, которое является областью перекрытия. Вы вычисляете объединение перекрывающихся ящиков, которое представляет собой сумму площадей всех ящиков минус площадь перекрытия. Затем вы делите пересечение на союз. Для этого в панели инструментов системы компьютерного зрения есть функция bboxOverlapRatio.

2) как правило, вы не хотите объединить цветовые каналы. Вместо этого вам нужна 3D-гистограмма, где размеры H, S и V


попробуйте пересечение через Union

пересечение через объединение-это оценочная метрика, используемая для измерения точности детектора объектов в конкретном наборе данных.

более формально, чтобы применить пересечение над объединением для оценки (произвольного) детектора объекта, нам нужно:

  1. ограничительные рамки земной правды (т. е. помеченные вручную ограничительные рамки из набора тестов, которые указывают, где на изображении находится наш объект).
  2. в предсказать рамки нашей модели.

ниже я включил визуальный пример ограничивающего прямоугольника земной истины против предсказанного ограничивающего прямоугольника:

enter image description here

предсказанная ограничивающая рамка рисуется красным цветом, а ограничивающая рамка "истина" (т. е. помеченная вручную)-зеленым.

на рисунке выше мы видим, что наш детектор объекта обнаружил наличие стоп-сигнала в изображение.

вычисляя пересечение над соединением можно поэтому определить через:

enter image description here

пока у нас есть эти два набора ограничивающих коробок, мы можем применить пересечение над объединением.

вот код Python

# import the necessary packages
from collections import namedtuple
import numpy as np
import cv2

# define the `Detection` object
Detection = namedtuple("Detection", ["image_path", "gt", "pred"])

def bb_intersection_over_union(boxA, boxB):
    # determine the (x, y)-coordinates of the intersection rectangle
    xA = max(boxA[0], boxB[0])
    yA = max(boxA[1], boxB[1])
    xB = min(boxA[2], boxB[2])
    yB = min(boxA[3], boxB[3])

    # compute the area of intersection rectangle
    interArea = (xB - xA) * (yB - yA)

    # compute the area of both the prediction and ground-truth
    # rectangles
    boxAArea = (boxA[2] - boxA[0]) * (boxA[3] - boxA[1])
    boxBArea = (boxB[2] - boxB[0]) * (boxB[3] - boxB[1])

    # compute the intersection over union by taking the intersection
    # area and dividing it by the sum of prediction + ground-truth
    # areas - the interesection area
    iou = interArea / float(boxAArea + boxBArea - interArea)

    # return the intersection over union value
    return iou

на gt и pred are

  1. gt: ограничивающая рамка "земля-истина".
  2. pred: предсказанная ограничивающая коробка от нашего модель.

для получения дополнительной информации, вы можете нажать этот пост