Объект: моделирование вероятностного распределения контекста изображения, например. в наборе данных PASCAL VOC2012.

Предварительная обработка данных

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

Здесь мы делаем что-то смешанное этими задачами. Сегментная маркировка, я бы назвал это. Это процесс, когда мы делим предварительно сегментированное изображение на m x n блоков одинакового размера и даем метку каждому блоку. Метка блока зависит от основного сегмента в блоке, что означает, что класс сегмента с наибольшей площадью в блоке будет представлять блок. В предположении, что мы разбиваем изображение сегмента из Pascal VOC2012 на равные блоки 3x3, проиллюстрировано следующим образом.

Мы применяем одинаковую предварительную обработку для всех изображений сегментов в Pascal VOC 2012. Результаты всех матриц можно сохранить в массиве Numpy, который мы можем вызвать для нашей модели позже.

Марковская модель

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

Модели Маркова первого порядка как простейшая интерпретация модели Маркова преуспели во многих моделях последовательностей и во многих задачах управления.

Фундаментальным свойством всех марковских моделей является отсутствие памяти. Они удовлетворяют марковскому свойству первого порядка, если вероятность перехода в новое состояние St+1 зависит только от текущего состояния St, а не от какого-либо предыдущего состояния, где t — текущее время. Иными словами, учитывая настоящее состояние, будущее и прошлое состояния независимы. Формально стохастический процесс обладает марковским свойством первого порядка, если условное распределение вероятностей будущих состояний процесса (условное как от прошлых, так и от настоящих значений) зависит только от текущего состояния:

P(st+1|s1,s2,…,st)=P(st+1|st)

Основываясь на этом уравнении, мы предполагаем, что наше обычное изображение представляет собой последовательное событие на уровне пикселей, интенсивность следующего пикселя t+1 зависит только от интенсивности текущего пикселя t. Однако в двухмерном мире есть 4 направления, и мы точно не знаем пространственных отношений следующего и текущего пикселя. Они могли простираться сверху вниз, снизу вверх, справа налево, слева направо. Для каждого пикселя есть 4 возможные последовательности. При этом нам нужны 4 марковские модели для двумерных задач изображения. Каждая направленная марковская модель записывает отношение вероятностей для определенной последовательности пикселей изображения.

Подробно, одна марковская модель записывает распределение вероятностей правого соседнего пикселя, когда известен центральный пиксель. Одна марковская модель записывает распределение вероятностей левого соседнего пикселя, когда известен центральный пиксель. Точно так же один записывает верхний соседний пиксель, а последний записывает нижний соседний пиксель.

Для визуализации частотного распределения мы можем использовать один из инструментов Python NLP — nltk, в случае, если мы закодировали все классы в Pascal VOC2012 с номером класса от 1 до 20. На следующем снимке экрана показаны наши входные данные (слева) и таблица частотного распределения. левого соседнего пикселя (правого). Помимо этой одной таблицы, есть еще 3 таблицы частотного распределения.

Марковские модели предоставляют нам все пространственные распределения вероятностей между двумя соседними пикселями/блоками. Это основа всего изображения, поскольку изображение фактически комбинируется со многими парами двух пикселей. До сих пор мы успешно моделировали распределение вероятностей матрицы меток для пар пикселей. Кроме того, мы можем заполнить пробелы в неполной матрице на основе цепного правила. Мы используем 4 таблицы частотного распределения пар пикселей и вычисляем вероятность того, что класс будет позади другого. Вероятности могут быть переданы с помощью цепного правила, даже самый дальний пиксель мало влияет на следующий неизвестный пиксель. Чем меньше расстояние между пикселями, тем больше влияние. На следующих рисунках показано, как мы делаем предсказание неизвестного блока с полным использованием известного контекста изображения. На левом подрисунке есть предполагаемый пример, где правый нижний блок каким-то образом не помечен. На среднем рисунке показаны все влияния на прогнозируемый блок, где пунктирная стрелка означает, что существует множество подходов к его влиянию, а сплошная стрелка представляет подход с абсолютным влиянием. Для случая, показанного справа, мы берем среднее влияние всех возможных подходов, потому что все подходы уже являются кратчайшими с одинаковым расстоянием. Для влияния от другого пикселя мы используем алгоритм средневзвешенного значения в зависимости от расстояния.

Контрольная работа

после того, как мы определили все вышеперечисленные процессы в python, мы можем протестировать нашу модель в тестовом наборе, который содержит 200 матриц меток изображений. Для каждой матрицы тестовых меток 3x3 мы делаем пустой блок из 9 блоков. Основываясь на остальных 8 известных блоках, мы можем восстановить метку пустого блока по сравнению с правдой. На следующем снимке экрана число 0 в «исходном изображении» означает пустой блок, мы можем распечатать все распределения вероятностей с помощью марковских моделей. Мы ищем классы с первой и второй максимальной вероятностью в качестве наших прогнозов, которые сравниваются с земной истиной. После 200-кратного цикла мы получаем вывод, что наш подход для одного неизвестного блока в матрице меток 3x3 Pascal VOC2012 достиг топ-1 ACC с 76,0% и топ-2 ACC с 95,0%. Это абсолютно неплохо. Подводя итог, мы рассмотрим процесс маркировки сегментов, который зависит от других действительно маркированных меток сегментов, которые предоставляют контекстную информацию на изображении для прогнозирования неизвестных сегментов. Тем не менее, есть и недостатки: расчет цепочки вероятностей немного замедляется, когда мы увеличиваем размерность матрицы, например. 5х5, 10х10. Для получения результатов расчета по изображению требуется несколько минут.

КАК НАШ СЛУЧАЙ: мы можем решить проблемы со зрением, которые возникают в реальном мире, например. слепые пятна на изображении, восстановление потерянной информации в сценах.

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

Ссылка: Abbeel, Pieter, and Andrew Y. Ng. «Изучение марковских моделей первого порядка для управления. Достижения в области нейронных систем обработки информации. 2005.» Матье Коморовски, Джесси Раффа, «Марковские модели и анализ экономической эффективности: приложения в медицинских исследованиях