Введение

Подавление шума в изображениях, вероятно, является одной из наиболее хорошо изученных областей в области визуальных вычислений. Основная идея шумоподавления изображения довольно проста. Имея зашумленное изображение Î(x,y), к которому применен случайный шум или отсутствуют некоторые измерения, мы пытаемся восстановить исходное изображение I(x,y), выполнив процесс шумоподавления. Существует множество различных алгоритмов шумоподавления изображения. Некоторые из классических методов включают фильтрацию Гаусса, медианную фильтрацию и фильтрацию Винера. В этом посте среднего размера я буду обсуждать один из этих подходов, представляя метод логического вывода для шумоподавления изображения с помощью сэмплирования Гиббса.

Обзор выборки Гиббса

Цепь Маркова Монте-Карло (MCMC) и выборка Гиббса — сложные темы для понимания, поскольку они обычно представляют собой как минимум целую главу в университете или на уровне аспирантуры. Но чтобы дать вам краткое введение, MCMC — это метод вывода на основе выборки, который вычисляет быстрое и точное приближение статистической модели [1]. Наиболее интуитивно понятным примером выборки может быть подбрасывание монеты. Даже если мы не знаем, честная монета или нет, мы можем оценить вероятность выпадения орла путем выборки, другими словами, бросив монету 100 раз и подсчитав количество орлов. Эту концепцию можно расширить до методов Монте-Карло, где мы используем случайно сгенерированные выборки x из цепи Маркова для аппроксимации интересующего распределения p(x). Это часто называют методами Монте-Карло с цепями Маркова (MCMC). Выборка Гиббса является наиболее известным методом MCMC, который хорошо зарекомендовал себя при решении широкого круга задач, включая проблемы, связанные с шумоподавлением изображения.

Базовая геометрическая интуиция марковского случайного поля (MRF)

Шумоподавление в сэмплировании Гиббса можно понимать как предсказание неизвестных нам значений пикселей на основе зашумленного изображения, которое мы наблюдаем. Начнем с того, что сэмплер Гиббса генерирует апостериорные выборки, просматривая и обновляя каждую переменную в так называемом марковском случайном поле (MRF). MRF в основном представляет собой двумерную структуру Цепь Маркова модель. Его можно интерпретировать как набор случайных величин, являющихся значениями пикселей в случае шумоподавления изображения, представленных в виде графической модели [2]. Если мы предположим, что X является зашумленным изображением, X_ij будет значением каждого пикселя X в строке i и столбце j. Точно так же, если Y — исходное изображение, которое мы хотим восстановить, то Y_ij соответствует узлу внутри Y.

Теперь, когда мы знаем, как устроена MRF, я могу объяснить, что такое зависимости. Зависимости в основном представляют связи между узлами, которые определяют, как будет рассчитываться апостериорное распределение. Здесь мы делаем важное предположение, что зависимости существуют только от непосредственных соседей узла в MRF. Это означает, что узел Y_5 (узел в середине изображения выше) будет зависеть только от соседей — Y_2, Y_4, Y_8, Y_6, X_5 — и не будет зависеть ни от каких других узлов. Это также означает, что узлы на краю имеют меньше соседей, которые часто дополняются произвольными значениями, чтобы гарантировать, что все пиксели имеют в общей сложности пять соседей. Концепция зависимостей будет объяснена далее в следующих нескольких разделах.

Двигаясь дальше, теперь можно делать прогнозы о неизвестном состоянии узлов в MRF на основе того, что мы уже знаем. Этот процесс прогнозирования можно понимать как вывод, и мы можем удалить шум с изображения, сделав вывод. Существует также ряд математических подходов к выводу. Самый простой алгоритм вывода называется точный вывод, который включает в себя суммирование экспоненциального количества данных в качестве доказательства для вычисления нормализующей константы z в знаменателе. Даже если мы возьмем в качестве примера простое бинарное изображение, где все значения пикселей находятся в диапазоне от 0 до 1, вычисления становятся экспоненциально сложными. Предположим, мы наблюдаем X и пытаемся вычислить апостериорное распределение по Y. Мы можем получить уравнение для апостериорного распределения из основного правила Байеса, например:

Математически говоря, подход точного вывода найдет истинное апостериорное распределение, но даже если мы рассматриваем бинарные изображения, сумма в знаменателе (которая часто обозначается как константа z) превышает 2^n возможных конфигураций y, что делает расчет неудобный.

Вывод максимального апостериорного (MAP)

Поскольку точный вывод не подходит для решения реальных задач, мы можем вместо этого сделать приближение, чтобы своевременно получить отличный результат. Вывод MAP пытается аппроксимировать решение, находя Y, который имеет наибольшую вероятность с учетом некоторой наблюдаемой переменной X, и с точки зрения контекста шумоподавления наилучшей реконструкцией является та, которая максимизирует апостериорную вероятность. Математическая интуиция может быть понята с помощью основной теоремы Байеса [2]. Предположим, у нас есть апостериорное распределение p(y|x), которое мы хотим максимизировать:

Argmax p(y|x) можно вычислить, взяв журнал с обеих сторон, который расширяется до:

Таким образом, вывод MAP сводится к максимизации апостериорного p(y|x) или, что эквивалентно, к минимизации -logp(x|y)-logp(y). Следовательно, вышеприведенное действует как функция потерь, и обычно используется во многих алгоритмах, таких как выборка Гиббса, градиентный спуск, распространение доверия, разрезание графа и имитация отжига [3]. .

Выборка Гиббса и функция потерь

Теперь, когда мы объяснили функцию потерь MAP, давайте вернемся к разговору о выборке Гиббса. Напомним, что идея выборки заключается в оценке желаемой вероятности по точкам выборки. Другими словами, цель будет состоять в том, чтобы сгенерировать набор из одной или нескольких возможных выборок случайного вектора и оценить апостериорную вероятность на них, выбрав выборку, которая максимизирует апостериорное распределение. Это можно повторять много раз, пока не будет выбран наилучший возможный набор образцов и не будет решен вывод MAP [4].

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

Теперь мы понимаем MAP и то, как мы хотим минимизировать -logp(x|y)-logp(y) из апостериорного P(y_ij |y_N(ij)), где N указывает сосед Y. Сначала нам нужно построить совместную вероятность X и Y для получения апостериорного распределения. Обозначения здесь такие же, как и обозначения, которые я использовал в разделе геометрической интуиции. Если мы считаем, что Y_ij имеет значения i = {1….N} и j = {1….M}, совместная вероятность будет:

Здесь Z — нормирующая константа, а η и β — гиперпараметры. Определив совместную вероятность, мы можем перейти к определению апостериорной вероятности на основе правила Байеса. Я не буду углубляться в математический вывод, но если мы выведем функцию потерь из апостериорного P(y_ij |y_N(ij)), получится следующее:

Эту функцию потерь иногда называют функцией энергии. Низкая энергия означает более высокие шансы на получение образца [2]. Автор [2] также утверждает, что функцию энергии можно уточнить еще больше, включив в расчет предположение об изображении (априорном градиенте).

Псевдокод выборки Гиббса

Ниже приведен псевдокод процесса выборки Гиббса, который даст более конкретное представление о том, как будет работать выборка [2] на практике:

Как вы можете ясно видеть, выборка Гиббса является стохастическим алгоритмом, поскольку он вычисляет выборки по одной за раз [4]. Процесс выборки продолжается до конвергенцииили, по крайней мере, до достаточно близкого с точки зрения точности, что означает, что выборочные значения имеют такое же распределение, как если бы они были взяты из истинного апостериорного распределения суставов [ 5] исходного изображения. Этот процесс сначала потребует случайной инициализации значений, что приводит к генерированию плохих выборок в начале. Лучше всего отфильтровать эти значения в период проработки [6] и соответствующим образом обновить значения Y. Таким образом, после определенного периода записи соберите точки выборки для создания изображения с шумоподавлением.

Реализация Python

Я также завершил базовую реализацию алгоритма на Python, и коды можно найти здесь по следующей ссылке GitHub: https://github.com/chophilip21/gibbs_denoising. Если вы посмотрите на рисунок выше, к изображению слева был добавлен гауссовский шум (обратитесь к gaussian_noise.py), чтобы сгенерировать изображение в середине. Выборка Гиббса была проведена для устранения шума на изображении и получения изображения справа на рисунке. Количество итераций было зафиксировано на 1000. Скорость обучения и бета-значение в функции потерь также были зафиксированы равными 1, но их можно было изменить, чтобы получить лучший результат. Некоторая степень шума все еще была видна на финальном выходе, но алгоритм все же дал достойный результат. Однако производительность значительно снижается, когда исходное изображение содержит много деталей, и в этих случаях для получения лучшего результата требуется большее количество итераций.

Ссылка

[1] Дж. Гриммер, «Введение в байесовский вывод с помощью вариационных приближений», Расширенный доступ к политическому анализу,vol. 19, нет. 1, стр. 32–47, 2010.

[2] К. Юэ, «Марковские случайные поля и выборка Гиббса для шумоподавления изображения», 2018.

[3] А. Барбу, «Обучение активного случайного поля для шумоподавления изображения в реальном времени», Общество обработки сигналов IEEE,vol. 18(11), стр. 2451–2462, 2009.

[4] Н. Пейрард, «Точный или приблизительный вывод в графических моделях: почему выбор определяется шириной дерева и как можно использовать исключение переменных», Статистический журнал Австралии и Новой Зеландии,vol . 61, нет. 2, стр. 89–133, 2019.

[5] И. Йилдирим, «Байесовский вывод: выборка Гиббса», Рочестерский университет, Департамент мозга и когнитивных наук, Рочестер, 2012.

[6] К. Гирхарт, «Реализация выборки Гиббса в рамках байесовского вывода и ее применения в актуарной науке», Кентукки, 2018.