MRF и Graph Cut: от уравнения к коду? - PullRequest
0 голосов
/ 26 ноября 2018

Я пытаюсь написать научную статью, но у меня возникли проблемы.Статья посвящена сегментации переднего плана / фона, где передний план - это движущийся объект, а фон - статическая сцена.Я получил вероятность для каждого пикселя, что он принадлежит переднему плану или фону с помощью алгоритма KDE.Теперь я должен использовать алгоритм Graph Cut для попарного MRF.Вот энергия для минимизации: energy_function

l_i и l_j - это метка, которую я хочу найти для каждого пикселя.p (x_i | phi_f) - это вероятность того, что пиксель x_i принадлежит переднему плану, а p (x_i | phi_b) - фону.Эти вероятности оцениваются с помощью KDE.

Каждый узел MRF представляет собой пиксель на изображении.Имеются ребра между пикселем и его четырьмя соседями, а также ребра между каждым пикселем и источником и приемником (один для переднего плана и один для фона).

Мне нужна помощь для перехода от этого уравнения к коду.

Если я понимаю, первое слагаемое - это попарная стоимость, для гладкости и определения веса по краям между пикселем и его соседями.В соответствии с уравнением я вычисляю лямбду как вес для каждого ребра.

Второе слагаемое представляет собой одинарную стоимость и определяет вес на ребрах между пикселем, источником и приемником.Здесь вес между пикселем и источником такой же, как между пикселем и стоком?Я прав?

Я использую Python с KernelDensity от sklearn и PyMaxflow для вырезания графика.Другой вопрос о коде: функция Score_samples () возвращает значение inf для некоторого пикселя.Как я могу использовать эти значения в Graph Cut?

Спасибо за вашу помощь!

...