предисловие
В глубоком обучении многие реализации заключаются не только в построении и обучении нейронных сетей, но и в использовании ряда традиционных методов в сочетании с ними для усиления эффекта реализации глубокого обучения, в семантической сегментации (semantic segmentation) и переносе стиля ( Концепция MRF-Markov Random Field (Markov Random Field) использовалась при переносе стилей и дала хорошие результаты.
«Применение марковского случайного поля (MRF) в обработке изображений — сегментация изображения, передача текстуры» Стиль, полученный с помощью синтеза изображений MRF, более абстрактен, чем перенос стиля. «Применение марковского случайного поля (MRF) в обработке изображений — сегментация изображения, передача текстуры» В Deeplab-v2 для оптимизации результатов используется полносвязное условное случайное поле.Стоит изучить идею вероятностной модели традиционного метода сети Маркова.Эта статья в основном объясняет случайное поле Маркова, а также анализирует и описывает проекты глубокого обучения с использованием метода MRF.
Предзнаменование концепции
Прежде всего, давайте вкратце поговорим о некоторых базовых знаниях, которые нам нужно будет ввести позже.Эти знания на самом деле являются курсами, которые мы изучали на наших университетских курсах. Подробно это описано в «Теории вероятностей», «Введении в алгоритмы» и «Статистических методах». Это всего лишь краткое введение, но оно очень полезно для понимания марковского случайного поля.
Условная вероятность и теорема Байеса
Условная вероятность, когда мы используем это понятие, часто используется для решенияобратная задача, то есть процесс вывода причины известного результата. И классическая формула теоремы Байеса:
Мы часто используем эту формулу для выводаПроблемы, которые мы не можем наблюдать напрямую, сначала поймите концепцию: в приведенной выше формулеэто результат,является причиной. Задача, которую мы должны решить с помощью приведенной выше формулы:
- известныйи(в состоянии пройтирассчитано)
- Требовать
мы обычно называемP(原因)
заАприорная вероятность,P(原因|结果)
называетсяАпостериорная вероятность, соответствующие априорному и апостериорному распределениям.
случайная прогулка
Случайное блуждание — это типичный случайный процесс, точно так же, как мы бросаем кости и делаем количество шагов. Но здесь мы просто делим его на две возможности: предположим, мы подбрасываем монету и делаем один шаг вверх, если орел, и один шаг вниз, если решка.
Этот процесс очень простой, то есть вероятность спуска и подъема равна 50%, то есть устанавливаем:
Тогда на рисунке ниже приведены некоторые конкретные наблюдения.
Есть две характеристики случайных блужданий, на которые следует обратить внимание:
- каждый раз, когда ты действуешь,Следующее действие не имеет ничего общего с предыдущими шагами, и не имеет значения предыдущие шаги., что означает, что мы не можем вывести будущее состояние из текущего состояния
- Поскольку каждый шаг не имеет ничего общего с окружающими действиями, мы можем знать, что как бы ни менялась верхняя линия графика, вероятность его возникновения одинакова (принцип отражения).
если бы мы былиКогда полилиния перевернута, вероятность этой ситуации такая же, как и раньше.
Неориентированные и ориентированные графовые модели
Модель графа обычно используется для представления взаимодействия между случайными величинами.Мы привносим случайные величины в граф.Каждая точка на графике является пикселем в нашем фактическом графе, и каждый пиксель соединен «ребрами».
Вероятностная неориентированная графическая модель (вероятностная неориентированная графическая модель) также известна какМарковское случайное полеили сеть Маркова. Модели ориентированного графа часто называют сетями убеждений или сетями убеждений.Байесовская сеть. Для этого мы должны различать немного.
Каждое ребро ориентированного графа имеет направление, и направление стрелки указывает точку распределения вероятности случайной величины, например, стрелка от узла a к узлу b, эта стрелка указывает, что вероятность узла b определяется , Решите. Давайте возьмем простой пример (пример взят из Библии глубокого обученияP342 Используйте диаграммы для описания структуры модели):
Предположим, что это эстафета. Время завершения Алисы равно, время завершения Боба равно, а время завершения Кэрол равно. Как было сказано ранее,в зависимости от,ив зависимости от,икосвенно зависит от.
Другими словами, время завершения Кэрол связано с Бобом и Алисой и зависит от одного направления.
В этой статье мы говорим о марковском случайном поле.Марковское случайное поле представляет собой модель неориентированного графа, то есть между двумя точками нет четкой связи между двумя точками вперед-назад и направления.Хотя между двумя точками существует взаимодействие, этот эффект Только между соседними точками и не имеет ничего общего с дальнейшими точками или самыми передними точками.
Выразите это формулой:
Представим это формально:
Марковское случайное поле
Марковское случайное поле было кратко упомянуто ранее. Мы знаем, что его характеристика состоит в том, что причинно-следственная связь между двумя точками не имеет четкого направления. Возьмем другой пример для иллюстрации (пример взят изA friendly introduction to Bayes Theorem and Hidden Markov Models):
Этот пример является классикойгипотеза настроения погоды, предполагая, что человек справа на картинке ниже — Боб, он, скорее всего, будет счастлив, когда погода солнечная, и может быть подавлен, когда идет дождь.Теперь все, что нам нужно сделать, это угадать текущую информацию о погоде, основываясь на настроении Боба.
Это типичноЗнайте результат (настроение Боба), чтобы определить причину (погодные условия).
Конечно, нам нужна какая-то другая вероятностная информация (то есть информация, которая нам нужна в задаче, которую мы должны решить в приведенной выше теореме Байеса).П (причина)иP(результат|причина)), мы получаем необходимую информацию о вероятности, подсчитывая погоду за определенный период времени и изменения настроения Боба.
То есть 10 из 15 дней солнечные (вероятность того, что какой-то день солнечный, равна), 5 дней пасмурно (вероятность того, что день будет пасмурным, равна). А вероятность того, что вчера было солнечно, сегодня равна 0,8, вероятность того, что вчера было облачно, а сегодня солнечно, равна 0,2, вероятность того, что вчера было облачно, а сегодня облачно, равна 0,6, а вероятность того, что вчера было облачно, а сегодня солнечно, равна 0,4. .
Кроме того, есть настроение Боба в эти дни, которое можно суммировать отдельно, вероятность настроения Боба в солнечные и пасмурные дни.
Ну, все вероятности, которые нам нужны, рассчитаны, затем все, что нам нужно, это построить HMM (скрытая модель Мардова) в марковской модели.
Чтобы говорить о HMM, мы должны сначала поговорить о цепи Маркова.
Цепь Маркова
Цепь Маркова — это формула преобразования солнечных дней (B) в пасмурные дни (A) на рисунке выше:
Возьмем приведенный выше пример в качестве примера. Есть два состояния A и B (B представляет собой солнечные дни, а A представляет облачные дни). Существует четыре возможных вероятности перехода, а именно A->A, A->B, B-> Б, Б->А. Вы можете увидеть распределение вероятностей в правой части рисунка ниже (То есть вероятность солнечных и солнечных дней равна 0,8, а остальные вероятности такие же, как и указанные выше солнечные и пасмурные дни),Кроме того, вероятности каждой строки матрицы перехода вероятности справа составляют в сумме 1.
Через цепь Маркова этой погоды мы можем получить следующие погодные условия (S представляет собой солнечный солнечный день, R представляет собой дождливый дождливый день):
Конечно, приведенное выше представление является простой цепью Маркова, если это сложная цепь Маркова:
Очевидно, что правая часть представляет собой матрицу переходов вероятностей этой цепи Маркова, а значения вероятностей каждой строки в сумме дают 1.
Приведенная выше анимация взята из ссылки:Markov Chains.
HHM Скрытая марковская модель
После разговора о цепи Маркова давайте объясним скрытую модель Маркова HMM.
Давайте еще раз посмотрим на предыдущую картинку:
Мы знаем, что приведенная выше формула преобразования для солнечных и облачных дней представляет собой цепь Маркова, о которой мы упоминали ранее, но в задаче, которую мы объяснили ранее, мы должны сделать вывод о сегодняшней погоде, наблюдая за настроением Боба. Это,Вышеупомянутые изменения погоды (от солнечных дней до пасмурных дней) являются случайными изменениями, и настроение Боба (изменения настроения, вызванные погодой) также является случайным изменением Весь процесс представляет собой так называемый двойной случайный процесс..
Описанный выше процесс имеет две характеристики:
- Вывод (настроение Боба) по-прежнему связан только с текущим состоянием (сегодняшняя погода).
- Если вы хотите рассчитать последовательность наблюдений (узнать настроение Боба в течение многих дней подряд и рассчитать наиболее вероятные погодные условия для последовательных дней), вам нужно только рассчитать ее в соответствии с вероятностью максимального правдоподобия.
следующеето есть наблюдения (погода Боба), аДля промежуточного состояния (погодные условия).
Итак, если мы хотим рассчитать наиболее вероятные погодные условия по изменению настроения Боба в течение нескольких дней подряд, наиболее вероятной будет следующая картина:
Выбирается и увязывается (перемножается) поочередно один из наиболее вероятных вероятностных случаев., 0,67 в первом случае — это вероятность предположить, что было солнечно, не зная, какая погода была вчера, а 0,8 во втором — потому что вчера было солнечно, поэтому вероятность того, что сегодня будет солнечно, равна 0,8:
В приведенном выше расчете настроения погоды мы хотим судить о погоде в течение определенного периода времени в соответствии с настроением Боба в течение определенного периода времени Нам нужна только дорога с наибольшей вероятностью среди всех условий округа, но на практике наш расчет сумма по-прежнему очень высока.Сложность расчета по одному будет постепенно увеличиваться.Viterbi
Алгоритм вычисляет единицу и использует метод динамического программирования для расчета пути с наибольшей условной вероятностью. Также вForward-Backward算法(Baum-Welch)
Для оценки матрицы перехода вероятности, конечно, здесь подробно описываться не будет, если интересно, можете посмотреть ссылкуA friendly introduction to Bayes Theorem and Hidden Markov Models.
Связь и различие между условными случайными полями и марковскими случайными полями
Условное случайное поле (CRF) — это условная модель распределения вероятностей набора выходных случайных величин при заданном наборе входных случайных величин. Например, мы вводим многомерный сигналЗатем получите соответствующий многомерный вывод, в это время мы строим модель для расчетаэто распределение вероятностей. Марковское случайное поле представляет собой совместное распределение вероятностей, что дает вам неориентированный граф, мы можем вычислить его несколькими способами (или несколькими путями).
Другими словами, наши обычные задачи, такие как типичная задача классификации изображений в глубоком обучении, мы передаем на вход(изображение), чтобы получить(Результаты классификации). Это типичное обучение с учителем, когда мы предоставляем информацию через ввод.(набор данных) и(метка) выполнить для достижения(Или скажем так:), контролируемое обучение делится на два типа, один из которых представляет собой генеративную модель (MRF), которая изучает совместное распределение P (X, Y) из данных, а затем получает указанную выше условную вероятность:
Дискриминационная модель учится напрямую(k-среднее) или обучение(CRF), то есть дискриминантная модель заботится о том, что является входом, а что на выходе, напрямую прогнозируя.
Более подробно условное случайное поле похоже на логистическую регрессию, которая использует входное распределение для нахождения выходного распределения, которое можно рассматривать как заданную случайную величину.условие, случайная величинаСлучайное поле Маркова , обратите внимание на вызывающий метод здесь, случайное поле Маркова - это просто совместное распределение вероятностей, а не условное распределение (вход X выход Y). Можно считать, что выходные случайные величины условного случайного поля составляют марковское случайное поле.
Из-за своих характеристик условные случайные поля могут быть относительно простыми для стандартных задач прогнозирования.Моделирование проводится, потому что цель ясна и точность соответственно выше, но оно может делать только стандартные задачи прогнозирования. А марковские случайные поля — это типичные генеративные модели, которые могут смоделировать любую проблему, которую вы хотите предсказать. Например, если вы по какой-то причине потеряли входную переменную x, то MRF может смоделировать полное распределение вероятностей отсутствующей переменной, то есть у вас есть y, а затем вы можете использовать y, чтобы найти, что не относится к CRF. Но обратите внимание, что x и y здесь не являются ни вводом, ни выводом, а просто переменными в этом случайном поле.
в заключении:Поля условной вероятности являются частным случаем марковских случайных полей.
Приложение MRF
Из предыдущего обсуждения мы знаем, что байесовская сеть является моделью ориентированного графа, в то время как случайное поле Маркова является моделью неориентированного графа, Характеристика модели ориентированного графа заключается в том, что последовательности являются последовательными, и предыдущие результаты будут влиять на последующие результаты оказывают влияние,модель ориентированного графаОбычно применяется в следующих областях:
Наше марковское случайное поле отличается. MRF часто используется в изображениях, потому что, хотя MRF также представляет отношение между двумя переменными, оно не используется в модели ориентированного графа. Между двумя точками нет очевидной причинно-следственной связи. Таким образом, вы можете модель много вещей с равенством.
Изображение представляет собой типичное марковское случайное поле.В изображении каждая точка может быть связана с окружающими точками, но не имеет ничего общего с удаленной точкой или начальной точкой.Чем она ближе к этой точке.Больше влияние по этому поводу. (Это легко понять, этот пиксель на изображении черный, и окружающие пиксели, скорее всего, будут черными, но нельзя сделать вывод, что пиксели, удаленные от этого пикселя, тоже черные). Конечно, это соседство, то есть масштаб и размер этого поля, решать нам.
Например, доменная система первого порядка:
и доменная система второго порядка:
Соответствующая факторная группа:
Хорошо известно, что подмножество узлов, в котором любые два узла в неориентированном графе G имеют реберную связь, называется кликой.Почему оно называется кликой?факторный кластер, потому что неориентированный граф вероятностей можно разложить на множители, то есть число 18 делится на 3*6, а неориентированный граф вероятностей (MRF) может напрямую умножать вероятность каждого узла из-за его характеристик (упомянутых ранее). максимально правдоподобная вероятность. Этот процесс также называется факторизацией, поэтому мы также называем эти кластеры факторными кластерами.
Сегментация изображения
Возвращаясь к нашей теме, ранее мы говорили, что распределение пикселей на изображении можно рассматривать как марковское случайное поле, поскольку существует взаимная связь между пикселями в определенной области изображения: (Картинка взята изDeep Learning Markov Random Field for Semantic Segmentation).
Как и на картинке выше, каждый пиксель на картинке является узлом в неориентированном графе, и каждый узел имеет соединение.То, что мы называем сегментацией изображения, можно также назвать кластеризацией изображения по сути.В этом случае похожие пиксели в, зная классификационную метку каждой точки пикселя, конечно, картинку можно хорошо сегментировать.
Возьмем предыдущую формулу Байеса:
Здесь мы преобразуем переменные, скажем, наше входное изображение, результат классификации:
Изображение — это классифицированное изображение, которое мы хотим ввести, пиксели в изображении, то W — результат нашей сегментации, при условии, что наш результат сегментации — 4 класса:. Мы используем априорную вероятность(при условии, что мы знаем класс, который нужно классифицировать заранее) и условная вероятность, эта условная вероятность является частью HMM (скрытое марковское случайное поле, упомянутое выше), потому что нам нужно получить S через W, W — значение наблюдения, а S — цепочка переходов подразумеваемой вероятности в HMM (эта часть немного немного больше Если вы сомневаетесь, вы можете просмотреть предыдущее объяснение настроения и погоды Боба).
В то же время этодаизФункция правдоподобия, что такое функция правдоподобия, функция правдоподобия должна получить максимальное значение, чтобы указать, что соответствующие параметры могут сделать статистическую модель наиболее разумной. Наша задача - искать, информация о классификации получается в соответствии с входным изображением, иЧтобы узнать вероятность точек пикселей, представленных этой информацией классификации, необходимо знать информацию о классификации, указывающую на взаимосвязь между каждой точкой пикселя нашей классификации и реальным распределением точек пикселя.
В итоге осталось, это дистрибутив нашего входного изображения, конечно же мы знаем этот дистрибутив, и он не изменится. При расчете это считается фиксированным значением.
Если это не просто для понимания, его можно объединить с предыдущим примером. Давайте взглянем на взаимосвязь между тем, что мы сейчас обсуждаем, и предыдущим расчетом настроения Боба.Если вы ее понимаете, то можете пропустить этот шаг:
- Зная погоду, настроение Боба, спроси погоду.
- Выясните наиболее вероятный сценарий погоды, правильно ли он отражает настроение Боба.
- Ситуация с настроением Боба.
- => Погода солнечная или облачная.
Хорошо, вернемся к теме, в приведенном выше распределении изображений мы понимаем эту задачу сегментации изображения в форме HMM, то есть мы знаем вероятностное отношение между каждым пикселем и отношение между двумя пикселями. Отношения — это просто «текущие отношения». , "отношение между вчера и сегодня, а не позавчера.
Конечно, на практике мы определяем отношения между двумя пикселями по соседству, т.Вероятность значения определенной точки пикселя связана только с соседними точками и не имеет ничего общего с другими удаленными точками.
Вернемся к предыдущей формуле:
мы основаны напросить, а затем рассмотрим:
- наша просьбафункция правдоподобия
- - априорная вероятность этой модели
Давайте начнем, который представляет наш необходимый токен классификации (), предыдущие четыре категории — это только наши предположения, мы не знаем, на сколько категорий разбито это изображение, мы хотим создать что-то из ничего? В это время необходимо обратиться к распределению Гиббса (выборка Гиббса).
Следующая формула представляет собой распределение Гиббса:
в, является статистической суммой, а также нормализующей константой,чем больше этоЧем ровнее окно, тем больше,впредставляет собой набор групп потенциальной энергии, и:
- потенциальная энергия группы потенциальной энергии. в- коэффициент связи,это два соседних пикселя
Что такое группа потенциальной энергии? Мы можем объединить факторную группу, упомянутую ранее. Это так загадочно. На самом деле принцип тот же. Пиксельные узлы на картинке образуют так называемую группу. Используя приведенное выше распределение Гиббса, мы можно найти нашу информацию о распределении сегментации.
в соответствии сHammersley Clifford
Теоретически марковское случайное поле и распределение Гиббса согласованы, т. е.Распределение удовлетворяет распределению Гиббса. Конечно, это теоретическое доказательство не будет повторяться здесь. Если вам интересно, вы можете прочитать соответствующие исследования. Здесь мы кратко объясним, почему наше распределение меток сегментации похоже на распределение Гиббса.
Выборка Гиббса (выборка Гиббса) - это метод выборки, который использует условное распределение для выполнения ряда операций, чтобы окончательно аппроксимировать совместное распределение. Соответственно, распределение Гиббса означает, что информация о распределении, удовлетворяющая распределению Гиббса, может быть получена путем нахождения соответствующей условной вероятности для аппроксимации совместного распределения этой информации о распределении. (используя знатьP(A|B)
иP(B|A)
приблизительныйP(A,B)
), в то время как на этом изображении мы можем знатьЭто своего рода отношение локального действия, то есть, если пиксель помечен как класс 1 (), то какова информация о метке вокруг пикселя, вычислить вероятность распределения информации о метке вокруг него, чтобы определить, является ли метка классификации этого пикселя правильной или нет и нуждается ли в обновлении, но в фактических расчетах мы часто вычисляют только этот пиксель Количество окружающих тегов используется для определения того, к какому классификационному тегу принадлежит этот пиксель.
и мы заметили, так что спрашивайтеТо есть спросить:,
вТо есть совместное распределение вероятности изображения и информации о сегментации, поэтому мы используем распределение Гиббса для представления,иявляется константой.
Используя распределение Гиббса, наше случайное поле может быть преобразовано в задачу потенциальной энергии, а условная вероятность MRF определяется функцией энергии, так что она глобально непротиворечива. То есть посредством простого локального взаимодействия одного пикселя и его окружения MRF может получить сложное глобальное поведение, то есть использовать локальное распределение Гиббса для получения глобальных статистических результатов.
На практике получаем,Его можно получить с помощью функции потенциальной энергии, упомянутой ранее, иТо есть использовать информацию метки для оценки значения этого пикселя, предполагая, что распределение пикселей в определенной классификации меток удовлетворяет распределению Гаусса (при условии, что большинство пикселей в классификации 2 соответствуют значению серого 50-100, center равен 80), мы можем судить, к какой категории относится пиксель, исходя из значения пикселя:
Например, оттенки серого определенной точки равны 60. Из приведенного выше рисунка видно, к какой категории этот пиксель, скорее всего, относится (на рисунке ниже показано, что этот пиксель, скорее всего, относится ко второй категории), и другие оттенки серого Мы также можем видеть значение.
Эквивалентно распределению Гаусса:
выяснитьа также. вколичество пикселей по определенной классификации,количество пикселей во всем изображении,это значение пикселя.
Таким образом, поМожно оценить классификацию сегментации каждого пикселя, и, наконец, мы преобразуем апостериорную вероятность в произведение априорной вероятности и функции правдоподобия () и постепенно обновлять метки, чтобы чем выше вероятность выше, тем наилучшая сегментация получалась.
Приведенную выше формулу также можно понимать как энергию, генерируемую отрицательным логарифмом (преобразованную в логарифмическую правдоподобие для максимизации апостериорной вероятности):
Здесь нечего сказать.
(Окрестности Марковской модели случайного поля)На следующем рисунке представлена входная и результирующая карта сегментации изображения с использованием MRF Автор заранее отметил классификацию, а затем сегментировал:
Следующий код сегментации взят из: 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
синтез текстуры изображения
Синтез текстуры часто встречается при переносе разделения изображения. Перенос стиля — очень классный проект в области глубокого обучения. Мы извлекаем глубокую информацию об изображении через нейронную сеть, а затем сравниваем содержимое и стиль с помощью различных функций потерь.передача стиля. Позже я напишу статью с обзором переводов различных стилей.
Синтез текстуры изображения заключается в выполнении миграции текстуры на изображении, предоставлении части (а), а затем получении изображений, аналогичных (б) и (в), связанных:
Зная, что такое текстурный синтез, мы можем понять, что объект текстурного синтеза также является типичным марковским случайным полем.В изображении мы предполагаем, что текстурная информация изображения представляет собой MRF,Другими словами, возможное распределение значений вероятности пикселя в изображении связано только с пространственной информацией о пикселях вокруг пикселя и связано с остальными пикселями в изображении, то есть с парой пикселей, за исключением ее окружения. пиксели изображения, отличные от других пикселей изображения, независимы
Поговорим об использовании марковских случайных полей для синтеза текстур.Поток алгоритма:
Предположениеэто карта результата, которую мы хотим получить, мы начинаем с карты образца (), чтобы получить информацию о текстуре для создания этого, предполагая, что пиксельдапиксель в , топредставляет собой квадратный блок на изображении, иявляется центром блока.
а затем определитьПредставляет некоторое интуитивное расстояние между двумя блоками. Тогда предполагаем, что вНа этом изображении все пиксели, кромеМы все знаем, что мы хотим получить значение этого пикселя, сначала нам нужна условная вероятность. Затем используйте эту вероятность, чтобы найти значение пикселя.
Через MRF мы можем узнать, что этот пиксельдля этой картиныдругие пиксели в (кроме) является независимым.
На этом этапе давайте немного нормализуем и определим коллекцию:
В этом сборнике собраны всевозможный (или существующий) в, то есть мы можем пройти всеРаспределение гистограммы внутреннего центрального пикселя оценивается в этом пикселе в данный момент.Условная функция распределения вероятностей . (Грубо говоря, значение этого пикселя определяется по пикселям вокруг пикселя. Конечно, мы должны выбрать самый подходящий среди окружающих пикселей. Какой самый подходящий, конечно, чем больше расстояние между двумя точками. Чем меньше, тем лучше, мы располагаем все центральные пиксели вокруг определенного пикселя, чтобы сформировать гистограмму, а ордината - это частота этих пикселей).
Когда вышеописанное является гипотетической ситуацией, потому что на практике мы не можем найти наиболее подходящийи нашРасстояние равно 0, мы обычно используемПредставлять. Мы выбираем самые подходящие, то находим набор:
Затем используйте эту коллекцию для создания этогогистограмма . Найдите наиболее вероятное значение.
Аналогично описанному выше процессу, слева находится нашТо есть заданная карта текстур.Правая часть синтезируется попиксельно по вышеописанному алгоритму.Квадрат это размер нашего окна.Примерный процесс таков,что окно сканирует все патчи возле этого пикселя,а затем случайным образом находит нужный центр патча.пиксели для создания новых пикселей.
Следует отметить, что расстояние, как выбрать формулу измерения расстояния для выражения, мы обычно используем SSD (то есть соответствующие пиксели вычитаются, а затем возводятся в квадрат), но у этого есть недостаток, потому что синтез текстуры, как мы надеемся, сможет лучше синтезировать информацию о близлежащей текстуре, то есть близлежащая текстура для нас , более важные, чем дальние.
Нам нужно углубить значение веса пикселей, которые находятся достаточно близко к нам, чтобы при оценке совпадения текстуры чем ближе пиксель, тем больше влияние на наше суждение. На самом деле это простая особенность: мы можем использовать двумерное ядро Гаусса (см. Распределение Гаусса или нормальное распределение, если вы не понимаете) в сочетании с расстоянием SSD.
Кратко проанализируем результаты синтеза текстур (patchmatch):
Эта карта текстуры:
Это случайное изображение (гауссов шум):Результирующий график, когда размер окна равен 3:График результатов, когда размер окна равен 5:Соответствующий код не закреплен из-за ограниченного места, вы можете увидеть его здесь:GITHUB
постскриптум
Есть много применений марковских случайных полей в глубоком обучении.При сегментации изображений deeplab-v2 в сочетании с MRF добился хороших результатов.При передаче стиля также существует комбинация матрицы Грама и MRF для передачи текстуры для лучшего захвата изображений стиля. Информация о локальных функциях (а не глобальные характеристики матрицы граммов), результирующая текстура графа является более «абстрактной» и более художественной. Поэтому с точки зрения глубокого обучения сочетание обработки ваших изображений и традиционных методов является основной тенденцией, которая заслуживает нашего внимания.
Заинтересованная детская обувь может обратить внимание на продолжение этой статьи, а затем выбрать некоторые приложения, чтобы подробно объяснить.
Ссылаться на
- Математика для программистов: вероятность и статистика
- Библия глубокого обучения
- «Статистические методы обучения»
- «Компьютерное зрение — алгоритмы и приложения»
- От байесовской теории к марковским случайным полям изображений
- A friendly introduction to Bayes Theorem and Hidden Markov Models
- Explained Visually
- Марковская модель случайного поля (MRF-Markov Random Field)
- What is the difference between Markov Random Fields (MRF's) and Conditional Random Fields (CRF's)? When should I use one over the other?
- Машинное обучение — вероятностные графические модели (марковские и условные случайные поля)
- Использование pytorch для реализации передачи в стиле нейронной сети Neural Transfer
- Роль соответствия гистограммы в передаче стиля
- Texture Synthesis by Non-parametric Sampling
Статья взята из блога OLDPAN, добро пожаловать в гости:Блог Олдпан
Добро пожаловать, чтобы обратить внимание на общедоступную учетную запись блога Oldpan и продолжать готовить статьи о глубоком обучении: