У меня есть небольшой набор аэрофотоснимков, на которых различные местности, видимые на изображении, были помечены экспертами-людьми. Например, изображение может содержать растительность, реку, скалистые горы, сельскохозяйственные угодья и т. д. Каждое изображение может иметь одну или несколько таких помеченных областей. Используя этот небольшой помеченный набор данных, я хотел бы подогнать гауссовскую смешанную модель для каждого из известных типов местности. После того, как это будет завершено, у меня будет N GMM для каждых N типов местности, которые я могу встретить на изображении.
Теперь, учитывая новое изображение, я хотел бы определить для каждого пикселя, к какой местности он принадлежит, назначив пиксель наиболее вероятному GMM. Это правильное направление мысли? И если да, то как я могу кластеризовать изображение с помощью GMM?
Интуитивно ваш мыслительный процесс верен. Если у вас уже есть ярлыки, это значительно упрощает задачу.
Например, давайте возьмем очень известный и непараметрический алгоритм, такой как известные ближайшие соседи https://en.wikipedia.org/wiki/K-nearest_neighbors_algorithm.
В этом алгоритме вы берете свои новые «пиксели», которые затем находят ближайшие k-пиксели, подобные тому, который вы сейчас оцениваете; где ближайший определяется некоторой функцией расстояния (обычно евклидовой). Оттуда вы затем назначите этот новый пиксель наиболее часто встречающейся метке классификации.
Я не уверен, что вы ищете конкретную рекомендацию по алгоритму, но KNN был бы очень хорошим алгоритмом для начала тестирования этого типа упражнений. Я видел, как вы отмечены sklearn
, scikit Learn имеет очень хорошая реализация KNN, я предлагаю вам прочитать.
Это не кластеризация, если вы используете помеченные обучающие данные!
Однако вы можете легко использовать функцию маркировки кластеризации GMM.
Для этого вычислите априорные вероятности, средние и ковариационные матрицы, инвертируйте их. Затем классифицируйте каждый пиксель нового изображения по максимальной плотности вероятности (взвешенной по предыдущим вероятностям), используя многомерные гауссианы из обучающих данных.
Кластеризацию можно использовать для создания меток, да. Но если у вас уже ярлыки эксперта, какой смысл искать низшие ярлыки? «Дано новое изображение…» — HuckleberryFinn явно запрашивает классификация пикселей в новом изображении в соответствии с обучающими метками.
Есть такая проблема, как "присвоение метки". Когда вы запускаете любой неконтролируемый алгоритм кластеризации для выполнения кластеризации по пикселям, вы в конечном итоге получаете N кластеров, каждому из этих кластеров случайным образом назначается некоторая метка от 0 до N-1. GT можно использовать для назначения истинных меток сгруппированным областям путем изучения некоторых статистических данных данного кластера по сравнению со статистикой известных кластеров.
Скорее всего, существует нет сопоставление хорошо 1-на-1. Если у вас есть метки, лучше использовать их более эффективно, чем для поиска наименее плохого такого сопоставления...
Вы можете создавать кластеры из размеченных данных. Фактически, это часто является точкой кластеризации; для создания этикеток