Примеры / учебные пособия по 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