Применение марковских случайных полей в глубоком обучении

искусственный интеллект глубокое обучение алгоритм Нейронные сети

предисловие

В глубоком обучении многие реализации заключаются не только в построении и обучении нейронных сетей, но и в использовании ряда традиционных методов в сочетании с ними для усиления эффекта реализации глубокого обучения, в семантической сегментации (semantic segmentation) и переносе стиля ( Концепция MRF-Markov Random Field (Markov Random Field) использовалась при переносе стилей и дала хорошие результаты.

«Применение марковского случайного поля (MRF) в обработке изображений — сегментация изображения, передача текстуры» Стиль, полученный с помощью синтеза изображений MRF, более абстрактен, чем перенос стиля.

«Применение марковского случайного поля (MRF) в обработке изображений — сегментация изображения, передача текстуры» В Deeplab-v2 для оптимизации результатов используется полносвязное условное случайное поле.

Стоит изучить идею вероятностной модели традиционного метода сети Маркова.Эта статья в основном объясняет случайное поле Маркова, а также анализирует и описывает проекты глубокого обучения с использованием метода MRF.

Предзнаменование концепции

Прежде всего, давайте вкратце поговорим о некоторых базовых знаниях, которые нам нужно будет ввести позже.Эти знания на самом деле являются курсами, которые мы изучали на наших университетских курсах. Подробно это описано в «Теории вероятностей», «Введении в алгоритмы» и «Статистических методах». Это всего лишь краткое введение, но оно очень полезно для понимания марковского случайного поля.

Условная вероятность и теорема Байеса

Условная вероятность, когда мы используем это понятие, часто используется для решенияобратная задача, то есть процесс вывода причины известного результата. И классическая формула теоремы Байеса:

condition_probability

Мы часто используем эту формулу для выводаПроблемы, которые мы не можем наблюдать напрямую, сначала поймите концепцию: в приведенной выше формулеAэто результат,Bявляется причиной. Задача, которую мы должны решить с помощью приведенной выше формулы:

  • известныйP(A|B)иP(B)(P(A)в состоянии пройтиP(A)={\sum }^{n}P(A|B)\times P(B_{i} )рассчитано)
  • ТребоватьP(B|A)

мы обычно называемP(原因)заАприорная вероятность,P(原因|结果)называетсяАпостериорная вероятность, соответствующие априорному и апостериорному распределениям.

случайная прогулка

Случайное блуждание — это типичный случайный процесс, точно так же, как мы бросаем кости и делаем количество шагов. Но здесь мы просто делим его на две возможности: предположим, мы подбрасываем монету и делаем один шаг вверх, если орел, и один шаг вниз, если решка.

Этот процесс очень простой, то есть вероятность спуска и подъема равна 50%, то есть устанавливаем:

X_0 = 0, X_t = X_{t-1} + Z_t

Тогда на рисунке ниже приведены некоторые конкретные наблюдения.

TIM截图20180618204004

Есть две характеристики случайных блужданий, на которые следует обратить внимание:

  • каждый раз, когда ты действуешь,Следующее действие не имеет ничего общего с предыдущими шагами, и не имеет значения предыдущие шаги., что означает, что мы не можем вывести будущее состояние из текущего состояния
  • Поскольку каждый шаг не имеет ничего общего с окружающими действиями, мы можем знать, что как бы ни менялась верхняя линия графика, вероятность его возникновения одинакова (принцип отражения).

если бы мы былиt=9Когда полилиния перевернута, вероятность этой ситуации такая же, как и раньше.

TIM截图20180618205256

Неориентированные и ориентированные графовые модели

Модель графа обычно используется для представления взаимодействия между случайными величинами.Мы привносим случайные величины в граф.Каждая точка на графике является пикселем в нашем фактическом графе, и каждый пиксель соединен «ребрами».

Вероятностная неориентированная графическая модель (вероятностная неориентированная графическая модель) также известна какМарковское случайное полеили сеть Маркова. Модели ориентированного графа часто называют сетями убеждений или сетями убеждений.Байесовская сеть. Для этого мы должны различать немного.

Каждое ребро ориентированного графа имеет направление, и направление стрелки указывает точку распределения вероятности случайной величины, например, стрелка от узла a к узлу b, эта стрелка указывает, что вероятность узла b определяется , Решите. Давайте возьмем простой пример (пример взят из Библии глубокого обученияP342 Используйте диаграммы для описания структуры модели):

Предположим, что это эстафета. Время завершения Алисы равноt_0, время завершения Боба равноt_1, а время завершения Кэрол равноt_2. Как было сказано ранее,t_2в зависимости отt_1t_1в зависимости отt_0t_2косвенно зависит отt_0.

TIM截图20180618213431

Другими словами, время завершения Кэрол связано с Бобом и Алисой и зависит от одного направления.

TIM截图20180618213652

В этой статье мы говорим о марковском случайном поле.Марковское случайное поле представляет собой модель неориентированного графа, то есть между двумя точками нет четкой связи между двумя точками вперед-назад и направления.Хотя между двумя точками существует взаимодействие, этот эффект Только между соседними точками и не имеет ничего общего с дальнейшими точками или самыми передними точками.

TIM截图20180618213803

Выразите это формулой:

TIM截图20180618220741

Представим это формально:

Марковское случайное поле

Марковское случайное поле было кратко упомянуто ранее. Мы знаем, что его характеристика состоит в том, что причинно-следственная связь между двумя точками не имеет четкого направления. Возьмем другой пример для иллюстрации (пример взят изA friendly introduction to Bayes Theorem and Hidden Markov Models):

Этот пример является классикойгипотеза настроения погоды, предполагая, что человек справа на картинке ниже — Боб, он, скорее всего, будет счастлив, когда погода солнечная, и может быть подавлен, когда идет дождь.Теперь все, что нам нужно сделать, это угадать текущую информацию о погоде, основываясь на настроении Боба.

Это типичноЗнайте результат (настроение Боба), чтобы определить причину (погодные условия).

TIM截图20180618171624

Конечно, нам нужна какая-то другая вероятностная информация (то есть информация, которая нам нужна в задаче, которую мы должны решить в приведенной выше теореме Байеса).П (причина)иP(результат|причина)), мы получаем необходимую информацию о вероятности, подсчитывая погоду за определенный период времени и изменения настроения Боба.

То есть 10 из 15 дней солнечные (вероятность того, что какой-то день солнечный, равна10/15=2/3), 5 дней пасмурно (вероятность того, что день будет пасмурным, равна5/15=1/3). А вероятность того, что вчера было солнечно, сегодня равна 0,8, вероятность того, что вчера было облачно, а сегодня солнечно, равна 0,2, вероятность того, что вчера было облачно, а сегодня облачно, равна 0,6, а вероятность того, что вчера было облачно, а сегодня солнечно, равна 0,4. .

TIM截图20180618171515

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

TIM截图20180618171608

Ну, все вероятности, которые нам нужны, рассчитаны, затем все, что нам нужно, это построить HMM (скрытая модель Мардова) в марковской модели.

hidden_markov_model

Чтобы говорить о HMM, мы должны сначала поговорить о цепи Маркова.

Цепь Маркова

Цепь Маркова — это формула преобразования солнечных дней (B) в пасмурные дни (A) на рисунке выше:

markov_chain_1

Возьмем приведенный выше пример в качестве примера. Есть два состояния A и B (B представляет собой солнечные дни, а A представляет облачные дни). Существует четыре возможных вероятности перехода, а именно A->A, A->B, B-> Б, Б->А. Вы можете увидеть распределение вероятностей в правой части рисунка ниже (P(A|A)То есть вероятность солнечных и солнечных дней равна 0,8, а остальные вероятности такие же, как и указанные выше солнечные и пасмурные дни),Кроме того, вероятности каждой строки матрицы перехода вероятности справа составляют в сумме 1.

markov_chain_2

Через цепь Маркова этой погоды мы можем получить следующие погодные условия (S представляет собой солнечный солнечный день, R представляет собой дождливый дождливый день):

markov_chain_3

Конечно, приведенное выше представление является простой цепью Маркова, если это сложная цепь Маркова:

markov_chain_4

Очевидно, что правая часть представляет собой матрицу переходов вероятностей этой цепи Маркова, а значения вероятностей каждой строки в сумме дают 1.

Приведенная выше анимация взята из ссылки:Markov Chains.

HHM Скрытая марковская модель

После разговора о цепи Маркова давайте объясним скрытую модель Маркова HMM.

Давайте еще раз посмотрим на предыдущую картинку:

hidden_markov_model

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

Описанный выше процесс имеет две характеристики:

  • Вывод (настроение Боба) по-прежнему связан только с текущим состоянием (сегодняшняя погода).
  • Если вы хотите рассчитать последовательность наблюдений (узнать настроение Боба в течение многих дней подряд и рассчитать наиболее вероятные погодные условия для последовательных дней), вам нужно только рассчитать ее в соответствии с вероятностью максимального правдоподобия.

TIM截图20180618171529

следующееO_1,O_2,...,Q_tто есть наблюдения (погода Боба), аS_1,S_2,...,S_tДля промежуточного состояния (погодные условия).

TIM截图20180618222108

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

TIM截图20180618222215

Выбирается и увязывается (перемножается) поочередно один из наиболее вероятных вероятностных случаев.0.085 = P(O_1|S_1) * P(O_2|S_2) = (0.67 * 0.8) * (0.8 * 0.2), 0,67 в первом случае — это вероятность предположить, что было солнечно, не зная, какая погода была вчера, а 0,8 во втором — потому что вчера было солнечно, поэтому вероятность того, что сегодня будет солнечно, равна 0,8:

TIM截图20180618222448

В приведенном выше расчете настроения погоды мы хотим судить о погоде в течение определенного периода времени в соответствии с настроением Боба в течение определенного периода времени Нам нужна только дорога с наибольшей вероятностью среди всех условий округа, но на практике наш расчет сумма по-прежнему очень высока.Сложность расчета по одному будет постепенно увеличиваться.ViterbiАлгоритм вычисляет единицу и использует метод динамического программирования для расчета пути с наибольшей условной вероятностью. Также вForward-Backward算法(Baum-Welch)Для оценки матрицы перехода вероятности, конечно, здесь подробно описываться не будет, если интересно, можете посмотреть ссылкуA friendly introduction to Bayes Theorem and Hidden Markov Models.

Связь и различие между условными случайными полями и марковскими случайными полями

Условное случайное поле (CRF) — это условная модель распределения вероятностей набора выходных случайных величин при заданном наборе входных случайных величин. Например, мы вводим многомерный сигналXЗатем получите соответствующий многомерный выводY, в это время мы строим модель для расчетаP(Y|X)это распределение вероятностей. Марковское случайное поле представляет собой совместное распределение вероятностейP(A,B), что дает вам неориентированный графG, мы можем вычислить его несколькими способами (или несколькими путями)P(Y|X=x).

Другими словами, наши обычные задачи, такие как типичная задача классификации изображений в глубоком обучении, мы передаем на входX(изображение), чтобы получитьY(Результаты классификации). Это типичное обучение с учителем, когда мы предоставляем информацию через ввод.X(набор данных) иY(метка) выполнить для достиженияP(Y|X)(Или скажем так:Y=f(X)), контролируемое обучение делится на два типа, один из которых представляет собой генеративную модель (MRF), которая изучает совместное распределение P (X, Y) из данных, а затем получает указанную выше условную вероятность:

P(Y|X)=\frac{P(X,Y)}{P(X)}

Дискриминационная модель учится напрямуюX(k-среднее) или обучениеP(Y|X)(CRF), то есть дискриминантная модель заботится о том, что является входом, а что на выходе, напрямую прогнозируя.

Более подробно условное случайное поле похоже на логистическую регрессию, которая использует входное распределение для нахождения выходного распределения, которое можно рассматривать как заданную случайную величину.Xусловие, случайная величинаYСлучайное поле Маркова , обратите внимание на вызывающий метод здесь, случайное поле Маркова - это просто совместное распределение вероятностей, а не условное распределение (вход X выход Y). Можно считать, что выходные случайные величины условного случайного поля составляют марковское случайное поле.

Из-за своих характеристик условные случайные поля могут быть относительно простыми для стандартных задач прогнозирования.(P(Y|X=x))Моделирование проводится, потому что цель ясна и точность соответственно выше, но оно может делать только стандартные задачи прогнозирования. А марковские случайные поля — это типичные генеративные модели, которые могут смоделировать любую проблему, которую вы хотите предсказать. Например, если вы по какой-то причине потеряли входную переменную x, то MRF может смоделировать полное распределение вероятностей отсутствующей переменной, то есть у вас есть y, а затем вы можете использовать y, чтобы найтиP(X|Y=y), что не относится к CRF. Но обратите внимание, что x и y здесь не являются ни вводом, ни выводом, а просто переменными в этом случайном поле.

в заключении:Поля условной вероятности являются частным случаем марковских случайных полей.

Приложение MRF

Из предыдущего обсуждения мы знаем, что байесовская сеть является моделью ориентированного графа, в то время как случайное поле Маркова является моделью неориентированного графа, Характеристика модели ориентированного графа заключается в том, что последовательности являются последовательными, и предыдущие результаты будут влиять на последующие результаты оказывают влияние,модель ориентированного графаОбычно применяется в следующих областях:

TIM截图20180618173053

Наше марковское случайное поле отличается. MRF часто используется в изображениях, потому что, хотя MRF также представляет отношение между двумя переменными, оно не используется в модели ориентированного графа. Между двумя точками нет очевидной причинно-следственной связи. Таким образом, вы можете модель много вещей с равенством.

Изображение представляет собой типичное марковское случайное поле.В изображении каждая точка может быть связана с окружающими точками, но не имеет ничего общего с удаленной точкой или начальной точкой.Чем она ближе к этой точке.Больше влияние по этому поводу. (Это легко понять, этот пиксель на изображении черный, и окружающие пиксели, скорее всего, будут черными, но нельзя сделать вывод, что пиксели, удаленные от этого пикселя, тоже черные). Конечно, это соседство, то есть масштаб и размер этого поля, решать нам.

Например, доменная система первого порядка:

\begin{bmatrix}  & 1 &  \\ 6 & 3 & 2 \\  & 4 &  \\ \end{bmatrix}

и доменная система второго порядка:

\begin{bmatrix} 2 & 1 & 9 \\ 6 & 3 & 2 \\ 3 & 4 & 2 \\ \end{bmatrix}

Соответствующая факторная группа:

20150806011428435

Хорошо известно, что подмножество узлов, в котором любые два узла в неориентированном графе G имеют реберную связь, называется кликой.Почему оно называется кликой?факторный кластер, потому что неориентированный граф вероятностей можно разложить на множители, то есть число 18 делится на 3*6, а неориентированный граф вероятностей (MRF) может напрямую умножать вероятность каждого узла из-за его характеристик (упомянутых ранее). максимально правдоподобная вероятность. Этот процесс также называется факторизацией, поэтому мы также называем эти кластеры факторными кластерами.

Сегментация изображения

Возвращаясь к нашей теме, ранее мы говорили, что распределение пикселей на изображении можно рассматривать как марковское случайное поле, поскольку существует взаимная связь между пикселями в определенной области изображения: (Картинка взята изDeep Learning Markov Random Field for Semantic Segmentation).

TIM截图20180619110906

Как и на картинке выше, каждый пиксель на картинке является узлом в неориентированном графе, и каждый узел имеет соединение.То, что мы называем сегментацией изображения, можно также назвать кластеризацией изображения по сути.В этом случае похожие пиксели вl, зная классификационную метку каждой точки пикселя, конечно, картинку можно хорошо сегментировать.

Возьмем предыдущую формулу Байеса:

P(Y|X)=\frac{P(X|Y)*P(Y)}{P(X)}

Здесь мы преобразуем переменные, скажем, наше входное изображениеS, результат классификацииW:

P(W|S)=\frac{P(S|W)*P(W)}{P(S)}

Изображение — это классифицированное изображение, которое мы хотим ввести, пиксели в изображенииp \subset S, то W — результат нашей сегментации, при условии, что наш результат сегментации — 4 класса:w_1,w_2,w_3,w_4 \subset W. Мы используем априорную вероятностьP(W)(при условии, что мы знаем класс, который нужно классифицировать заранее) и условная вероятностьP(S|W), эта условная вероятность является частью HMM (скрытое марковское случайное поле, упомянутое выше), потому что нам нужно получить S через W, W — значение наблюдения, а S — цепочка переходов подразумеваемой вероятности в HMM (эта часть немного немного больше Если вы сомневаетесь, вы можете просмотреть предыдущее объяснение настроения и погоды Боба).

В то же время этоP(S|W)даP(W|S)изФункция правдоподобия, что такое функция правдоподобия, функция правдоподобия должна получить максимальное значение, чтобы указать, что соответствующие параметры могут сделать статистическую модель наиболее разумной. Наша задача - искатьP(W|S), информация о классификации получается в соответствии с входным изображением, иP(S|W)Чтобы узнать вероятность точек пикселей, представленных этой информацией классификации, необходимо знать информацию о классификации, указывающую на взаимосвязь между каждой точкой пикселя нашей классификации и реальным распределением точек пикселя.

В итоге осталосьP(S), это дистрибутив нашего входного изображения, конечно же мы знаем этот дистрибутив, и он не изменится. При расчете это считается фиксированным значением.

Если это не просто для понимания, его можно объединить с предыдущим примером. Давайте взглянем на взаимосвязь между тем, что мы сейчас обсуждаем, и предыдущим расчетом настроения Боба.Если вы ее понимаете, то можете пропустить этот шаг:

  • P(S|W)Зная погоду, настроение Боба, спроси погоду.
  • P(W|S)Выясните наиболее вероятный сценарий погоды, правильно ли он отражает настроение Боба.
  • P(W)Ситуация с настроением Боба.
  • P(S)=> Погода солнечная или облачная.

Хорошо, вернемся к теме, в приведенном выше распределении изображений мы понимаем эту задачу сегментации изображения в форме HMM, то есть мы знаем вероятностное отношение между каждым пикселем и отношение между двумя пикселями. Отношения — это просто «текущие отношения». , "отношение между вчера и сегодня, а не позавчера.

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

Вернемся к предыдущей формуле:

P(W|S)=\frac{P(S|W)*P(W)}{P(S)}

мы основаны наP(S|W),P(W)проситьP(W|S), а затем рассмотрим:

  • P(S|W)наша просьбаP(W|S)функция правдоподобия
  • P(W)- априорная вероятность этой модели

Давайте начнемP(W), который представляет наш необходимый токен классификации (w_1,w_2,w_3,w_4 \subset W), предыдущие четыре категории — это только наши предположения, мы не знаем, на сколько категорий разбито это изображение, мы хотим создать что-то из ничего? В это время необходимо обратиться к распределению Гиббса (выборка Гиббса).

Следующая формула представляет собой распределение Гиббса:

P(W)=z^{-1}e^{-\dfrac{1}{T}U_2(W)}

вz=\sum_{w}e^ {-\dfrac{U_2(w)}{T}}, является статистической суммой, а также нормализующей константой,Tчем больше этоP(W)Чем ровнее окно, тем большеU_2(w)= \sum_{c\in C}V_c(w_c)Cпредставляет собой набор групп потенциальной энергии, и:

V_c(w_c) = V_{s,r}(w_s,w_r)= \begin{cases} -\beta & w_s=w_t \\ \beta & w_s\ne w_t \end{cases}

- потенциальная энергия группы потенциальной энергии. в\beta- коэффициент связи,s,tэто два соседних пикселя

Что такое группа потенциальной энергии? Мы можем объединить факторную группу, упомянутую ранее. Это так загадочно. На самом деле принцип тот же. Пиксельные узлы на картинке образуют так называемую группу. Используя приведенное выше распределение Гиббса, мы можно найти нашу информацию о распределении сегментации.

20150806011428435

в соответствии сHammersley CliffordТеоретически марковское случайное поле и распределение Гиббса согласованы, т. е.P(W)Распределение удовлетворяет распределению Гиббса. Конечно, это теоретическое доказательство не будет повторяться здесь. Если вам интересно, вы можете прочитать соответствующие исследования. Здесь мы кратко объясним, почему наше распределение меток сегментации похоже на распределение Гиббса.

Выборка Гиббса (выборка Гиббса) - это метод выборки, который использует условное распределение для выполнения ряда операций, чтобы окончательно аппроксимировать совместное распределение. Соответственно, распределение Гиббса означает, что информация о распределении, удовлетворяющая распределению Гиббса, может быть получена путем нахождения соответствующей условной вероятности для аппроксимации совместного распределения этой информации о распределении. (используя знатьP(A|B)иP(B|A)приблизительныйP(A,B)), в то время как на этом изображении мы можем знатьP(w_1|w_2)Это своего рода отношение локального действия, то есть, если пиксель помечен как класс 1 (w_1), то какова информация о метке вокруг пикселя, вычислить вероятность распределения информации о метке вокруг него, чтобы определить, является ли метка классификации этого пикселя правильной или нет и нуждается ли в обновлении, но в фактических расчетах мы часто вычисляют только этот пиксель Количество окружающих тегов используется для определения того, к какому классификационному тегу принадлежит этот пиксель.

и мы заметилиP(S|W)*P(W) =P(S,W), так что спрашивайтеargmax_{w}P(W|S)=\frac{P(S|W)*P(W)}{P(S)}То есть спросить:argmax_{w}P(W|S)= \frac{P(S,W)}{P(S)},

вP(S,W)То есть совместное распределение вероятности изображения и информации о сегментации, поэтому мы используем распределение Гиббса для представленияP(W)P(S)является константой.

Используя распределение Гиббса, наше случайное поле может быть преобразовано в задачу потенциальной энергии, а условная вероятность MRF определяется функцией энергии, так что она глобально непротиворечива. То есть посредством простого локального взаимодействия одного пикселя и его окружения MRF может получить сложное глобальное поведение, то есть использовать локальное распределение Гиббса для получения глобальных статистических результатов.

На практике получаемP(S|W)*P(W),P(W)Его можно получить с помощью функции потенциальной энергии, упомянутой ранее, иP(S|W)То есть использовать информацию метки для оценки значения этого пикселя, предполагая, что распределение пикселей в определенной классификации меток удовлетворяет распределению Гаусса (при условии, что большинство пикселей в классификации 2 соответствуют значению серого 50-100, center равен 80), мы можем судить, к какой категории относится пиксель, исходя из значения пикселя:

Например, оттенки серого определенной точки равны 60. Из приведенного выше рисунка видно, к какой категории этот пиксель, скорее всего, относится (на рисунке ниже показано, что этот пиксель, скорее всего, относится ко второй категории), и другие оттенки серого Мы также можем видеть значение.

Эквивалентно распределению Гаусса:

P(S|w=1,2,3,4) = \frac {1}{\delta\sqrt{2\pi}} e^{-\frac{(x-\mu)^2}{2\delta^2}}

выяснить\mu=\frac{1}{N_w}\sum{s}а также\delta^2=\frac{1}{N_w}\sum{(y-u)^2},\pi=\frac{N_w}{N}. вN_wколичество пикселей по определенной классификации,Nколичество пикселей во всем изображении,yэто значение пикселя.

Таким образом, поP(S|w_1),P(S|w_2),P(S|w_3),P(S|w_4)Можно оценить классификацию сегментации каждого пикселя, и, наконец, мы преобразуем апостериорную вероятность в произведение априорной вероятности и функции правдоподобия (P(W)*P(S|W)) и постепенно обновлять метки, чтобы чем выше вероятность выше, тем наилучшая сегментация получалась.

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

E(W,S) =argmin(E_1(w,S)+E_2(w))

Здесь нечего сказать.

TIM截图20180620143347
(N_4Окрестности Марковской модели случайного поля)

На следующем рисунке представлена ​​входная и результирующая карта сегментации изображения с использованием MRF Автор заранее отметил классификацию, а затем сегментировал:

TIM截图20180620152825

Следующий код сегментации взят из: https://blog.csdn.net/on2way/article/details/47307927.

clc
clear
close all
img = double(imread('lena.jpg'));%more quickly
cluster_num = 4;%设置分类数
maxiter = 60;%最大迭代次数
%-------------随机初始化标签----------------
label = randi([1,cluster_num],size(img));
%-----------kmeans最为初始化预分割----------
% label = kmeans(img(:),cluster_num);
% label = reshape(label,size(img));
iter = 0;
while iter < maxiter
    %-------计算先验概率---------------
    %这里我采用的是像素点和3*3领域的标签相同
    %与否来作为计算概率
    %------收集上下左右斜等八个方向的标签--------
    label_u = imfilter(label,[0,1,0;0,0,0;0,0,0],'replicate');
    label_d = imfilter(label,[0,0,0;0,0,0;0,1,0],'replicate');
    label_l = imfilter(label,[0,0,0;1,0,0;0,0,0],'replicate');
    label_r = imfilter(label,[0,0,0;0,0,1;0,0,0],'replicate');
    label_ul = imfilter(label,[1,0,0;0,0,0;0,0,0],'replicate');
    label_ur = imfilter(label,[0,0,1;0,0,0;0,0,0],'replicate');
    label_dl = imfilter(label,[0,0,0;0,0,0;1,0,0],'replicate');
    label_dr = imfilter(label,[0,0,0;0,0,0;0,0,1],'replicate');
    p_c = zeros(4,size(label,1)*size(label,2));
    %计算像素点8领域标签相对于每一类的相同个数
    for i = 1:cluster_num
        label_i = i * ones(size(label));
        temp = ~(label_i - label_u) + ~(label_i - label_d) + ...
            ~(label_i - label_l) + ~(label_i - label_r) + ...
            ~(label_i - label_ul) + ~(label_i - label_ur) + ...
            ~(label_i - label_dl) +~(label_i - label_dr);
        p_c(i,:) = temp(:)/8;%计算概率
    end
    p_c(find(p_c == 0)) = 0.001;%防止出现0
    %---------------计算似然函数----------------
    mu = zeros(1,4);
    sigma = zeros(1,4);
    %求出每一类的的高斯参数--均值方差
    for i = 1:cluster_num
        index = find(label == i);%找到每一类的点
        data_c = img(index);
        mu(i) = mean(data_c);%均值
        sigma(i) = var(data_c);%方差
    end
    p_sc = zeros(4,size(label,1)*size(label,2));
%     for i = 1:size(img,1)*size(img,2)
%         for j = 1:cluster_num
%             p_sc(j,i) = 1/sqrt(2*pi*sigma(j))*...
%               exp(-(img(i)-mu(j))^2/2/sigma(j));
%         end
%     end
    %------计算每个像素点属于每一类的似然概率--------
    %------为了加速运算,将循环改为矩阵一起操作--------
    for j = 1:cluster_num
        MU = repmat(mu(j),size(img,1)*size(img,2),1);
        p_sc(j,:) = 1/sqrt(2*pi*sigma(j))*...
            exp(-(img(:)-MU).^2/2/sigma(j));
    end 
    %找到联合一起的最大概率最为标签,取对数防止值太小
    [~,label] = max(log(p_c) + log(p_sc));
    %改大小便于显示
    label = reshape(label,size(img));
    %---------显示----------------
    if ~mod(iter,6) 
        figure;
        n=1;
    end
    subplot(2,3,n);
    imshow(label,[])
    title(['iter = ',num2str(iter)]);
    pause(0.1);
    n = n+1;
    iter = iter + 1;
end

синтез текстуры изображения

Синтез текстуры часто встречается при переносе разделения изображения. Перенос стиля — очень классный проект в области глубокого обучения. Мы извлекаем глубокую информацию об изображении через нейронную сеть, а затем сравниваем содержимое и стиль с помощью различных функций потерь.передача стиля. Позже я напишу статью с обзором переводов различных стилей.

neuralstyle

Синтез текстуры изображения заключается в выполнении миграции текстуры на изображении, предоставлении части (а), а затем получении изображений, аналогичных (б) и (в), связанных:

style_synthesis

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

Поговорим об использовании марковских случайных полей для синтеза текстур.Поток алгоритма:

ПредположениеIэто карта результата, которую мы хотим получить, мы начинаем с карты образца (I_{smp} \subset I_{real}), чтобы получить информацию о текстуре для создания этогоI, предполагая, что пиксельp \subset IдаIпиксель в , тоw(p) \subset Iпредставляет собой квадратный блок на изображении, иpявляется центром блока.

а затем определитьd(w_1,w_2)Представляет некоторое интуитивное расстояние между двумя блоками. Тогда предполагаем, что вIНа этом изображении все пиксели, кромеpМы все знаем, что мы хотим получить значение этого пикселя, сначала нам нужна условная вероятностьP(p/w(p)). Затем используйте эту вероятность, чтобы найти значение пикселя.

Через MRF мы можем узнать, что этот пиксельpдля этой картиныIдругие пиксели в (кромеw(p)) является независимым.

На этом этапе давайте немного нормализуем и определим коллекцию:

\Omega (P) = \left \{ w^{'}\subset I_{real}:d(w^{'},w(p))=0\right \}

В этом сборнике собраны всеI_{real}возможный (или существующий) вw(p), то есть мы можем пройти всеw(p)Распределение гистограммы внутреннего центрального пикселя оценивается в этом пикселе в данный момент.pУсловная функция распределения вероятностей . (Грубо говоря, значение этого пикселя определяется по пикселям вокруг пикселя. Конечно, мы должны выбрать самый подходящий среди окружающих пикселей. Какой самый подходящий, конечно, чем больше расстояние между двумя точками. Чем меньше, тем лучше, мы располагаем все центральные пиксели вокруг определенного пикселя, чтобы сформировать гистограмму, а ордината - это частота этих пикселей).

Когда вышеописанное является гипотетической ситуацией, потому что на практике мы не можем найти наиболее подходящийw^{'}и нашw(p)Расстояние равно 0, мы обычно используемI_{smp}Представлять. Мы выбираем самые подходящиеw_{best} = argmin_{w}d(w(p),w) \subset I_{smp}, то находим набор:

\Omega^{'} (P) = \left \{ d(w(p),w) < (1+\varepsilon)d(w(p),w)_{best}\right \},\varepsilon=0.1

Затем используйте эту коллекцию для создания этогоpгистограмма . Найдите наиболее вероятное значение.

TIM截图20180619115905

Аналогично описанному выше процессу, слева находится нашI_{smp}То есть заданная карта текстур.Правая часть синтезируется попиксельно по вышеописанному алгоритму.Квадрат это размер нашего окна.Примерный процесс таков,что окно сканирует все патчи возле этого пикселя,а затем случайным образом находит нужный центр патча.пиксели для создания новых пикселей.

Следует отметить, что расстояние, как выбрать формулу измерения расстояния для выраженияd, мы обычно используем SSD (то есть соответствующие пиксели вычитаются, а затем возводятся в квадрат), но у этого есть недостаток, потому что синтез текстуры, как мы надеемся, сможет лучше синтезировать информацию о близлежащей текстуре, то есть близлежащая текстура для нас , более важные, чем дальние.

Нам нужно углубить значение веса пикселей, которые находятся достаточно близко к нам, чтобы при оценке совпадения текстуры чем ближе пиксель, тем больше влияние на наше суждение. На самом деле это простая особенность: мы можем использовать двумерное ядро ​​Гаусса (см. Распределение Гаусса или нормальное распределение, если вы не понимаете) в сочетании с расстоянием SSD.

Кратко проанализируем результаты синтеза текстур (patchmatch):

Эта карта текстуры:

orig
Это случайное изображение (гауссов шум):
random
Результирующий график, когда размер окна равен 3:
3-4
График результатов, когда размер окна равен 5:
5-1

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

постскриптум

Есть много применений марковских случайных полей в глубоком обучении.При сегментации изображений deeplab-v2 в сочетании с MRF добился хороших результатов.При передаче стиля также существует комбинация матрицы Грама и MRF для передачи текстуры для лучшего захвата изображений стиля. Информация о локальных функциях (а не глобальные характеристики матрицы граммов), результирующая текстура графа является более «абстрактной» и более художественной. Поэтому с точки зрения глубокого обучения сочетание обработки ваших изображений и традиционных методов является основной тенденцией, которая заслуживает нашего внимания.

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

Ссылаться на

Статья взята из блога OLDPAN, добро пожаловать в гости:Блог Олдпан

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