Inosance IOU быстрый расчет на большом изображении - PullRequest
0 голосов
/ 28 июня 2018

У меня есть логическая маска экземпляров, форма которой (448, 1000, 1000) для 448 экземпляров, средний пиксель экземпляра составляет около 100.

Теперь, если у меня есть матрица прогнозирования, форма которой (1000, 1000), и прогнозирование экземпляра с помощью целого числа, т.е. если матрица прогнозирует 500 экземпляров, np.unique (pred) будет 501 (500 класс + 1 фон).

Мне нужно рассчитать IOU (индекс jaccard) для каждой пары прогнозирования и маску, чтобы найти максимальный IOU. Я написал коды ниже, но это очень медленно и неэффективно.

c = 0 #intersection count
u = 0 #union count
pred_used = [] #record prediction used

# loop for every ground truth mask
for idx_m in range(len(mask[:,0,0])):
    m = mask[idx_m,:,:] #take one mask
    intersect_list = []
    union_list = []

    # loop every prediction
    for idx_pred in range(1, int(np.max(pred))+1):
        p = (pred==idx_pred) # take one prediction mask
        intersect = np.sum(m.ravel() * p.ravel()) #calculate intersect
        union = np.sum(m.ravel() + p.ravel() - m.ravel()*p.ravel())
        intersect_list.append(intersect)
        union_list.append(union_list)

    if np.sum(intersect_list) > 0:
        idx_max_iou = np.argmax(np.array(intersect_list))
        c += intersect_list[idx_max_iou]
        u += union_list[idx_max_iou]
        pred_used.append(idx_max_iou)

1 Ответ

0 голосов
/ 03 июля 2018

Итак, у вас есть выходное изображение размером [1000,1000], которое является прогнозируемым массивом / тензором для вашей модели.

Первое, что вы можете сделать, это изменить метки и прогнозы с [1000,1000] на [1000 * 1000,]. Это уменьшает сложность от N ^ 2 до N. Это должно значительно увеличить скорость.

И вы также можете попробовать IoU от Scikit, который может быть немного быстрее, чем ваша версия.

Вы можете найти пример здесь: Как найти IoU по маскам сегментации?

Документ: http://scikit -learn.org / stable / modules / Генерируемый / sklearn.metrics.jaccard_s Similarity_score.html

...