Примеры / учебные пособия по Adaptive Metropolis для изображений с использованием PyMC

Я ищу примеры или учебные пособия AdaptiveMetropolis пошаговый метод, используемый для обработки изображений.

Единственный смутно связанный с изображениями ресурс, который я нашел до сих пор, - это астрономическая диссертация и связанное с ней GitHub- репо.

Этот более широкий вопрос, похоже, не дает пример кода PyMC.

Как насчет нахождения пика на этом смоделированном массиве?

import numpy as np
from matplotlib import pyplot as plt

sz = (12,18)
data_input = np.random.normal( loc=5.0, size=sz )
data_input[7:10, 2:6] = np.random.normal( loc=100.0, size=(3,4) )

fig = plt.figure()
ax = fig.add_subplot(1,1,1)
im = ax.imshow( data_input )
ax.set_title("input")

1 ответ

Решение

Самое близкое, что я знаю, здесь: http://nbviewer.ipython.org/github/CamDavidsonPilon/Probabilistic-Programming-and-Bayesian-Methods-for-Hackers/blob/master/Chapter5_LossFunctions/LossFunctions.ipynb (см. Пример: Kaggle). конкурс по наблюдению за темным миром)

В этой теме вы задали конкретный вопрос: https://github.com/pymc-devs/pymc/issues/653 о поиске массива в изображении. Вот первая попытка модели:

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

lower_x ~ DiscreteUniform (0, 20)

upper_x ~ DiscreteUniform (0,20)

lower_y ~ DiscreteUniform (0, 20)

upper_y ~ DiscreteUniform (0, 20)

высота ~ нормальная (100, 1)

шум ~ InvGamma(1, 1)

означает = нули ((20, 20))

означает [[lower_x:upper_x,lower_y: upper_y]] = высота # это должно быть детерминированным

данные ~ нормальные (mu= значит, sd= шум)

Возможно, будет лучше кодировать upper_x как смещение, а затем выполнить lower_x: lower_x + offset_x, в противном случае вам потребуется потенциал для принудительного применения lower_x

Другие вопросы по тегам