Nano Hash - криптовалюты, майнинг, программирование

Кластеризация Kmeans по разным функциям расстояния в лабораторном пространстве

Задача: Сгруппировать пиксели похожего цвета в CIE LAB с помощью K-средств.

Я хочу использовать CIE 94 для расстояния между 2 пикселями Формула CIE94

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

Итак, как использовать расстояние CIE 94 в LAB SPACE для кластеризации похожих цветов?

Так как же подойти к проблеме? Какой должна быть функция минимизации здесь? КАК сопоставить евклидово пространство с лабораторным пространством, если формула евклидова значения k работает? Любой другой подход здесь?


  • Если какой-либо из предоставленных ответов решает вашу проблему, пожалуйста, примите его, в противном случае дайте комментарий о том, почему он не соответствует тому, что вы ищете! 23.05.2016

Ответы:


1

Причина, по которой CIE LAB часто используется для кластеризации, заключается в том, что он уменьшает цвет до 2 измерений (в отличие от RGB с 3 цветовыми каналами). Вы можете легко придумать цвет для каждого пикселя в декартовой системе координат, вместо точек (x,y) у вас есть точки (a,b) Отсюда вы просто выполняете 2d kmeans.

Как именно вы реализуете kmeans, зависит от вас. Хорошая вещь в сведении цветов к двумерному пространству заключается в том, что мы можем представить данные на сетке, и теперь мы можем использовать любую регулярную меру расстояния, какую захотим. Махалонобис, евклидова, 1 норма, городской квартал и т. д. Возможности здесь действительно безграничны.

Вам не обязательно использовать CIELAB, вы можете так же легко использовать YCbCr, YUV или любое другое цветовое пространство, представляющее цвет в двух измерениях. ЕСЛИ вы хотите попробовать 3d kmeans, вы можете использовать rgb, hsv и т. д. Одной из проблем с более высокой размерностью является разреженность кластеров (большая дисперсия) и, что наиболее важно, увеличение времени вычислений.

Просто для удовольствия я включил два изображения, сгруппированные с использованием kmeans, одно в LAB и одно в YCbCr, вы можете видеть, что кластеризация почти идентична (за исключением того, что метки разные), просто доказывая, что точное цветовое пространство не имеет значения, главное смысл в том, чтобы сопоставить размерность ваших kmeans с размерностью ваших данных

ИЗМЕНИТЬ

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

Вернемся к измерению расстояния. Kmeans имеет два шага: назначение и обновление (это очень похоже на алгоритм максимизации ожидания). Это расстояние используется на шаге назначения k-средних. Вот какой-то псевдокод

for each pixel 1 to rows*cols
    for each cluster 1 to k
        dist[k] = calculate_distance(pixel, mu[k])

    pixel_id = index k of minimum dist

вы должны создать функцию calculate_distance, которая использует расчет delta_e из cielab94. Эта формула использует все 3 канала для расчета расстояния. Надеюсь, это ответит на ваши вопросы

ПРИМЕЧАНИЕ В моих примерах используются только два цветовых канала, игнорируя канал яркости. Я использовал эту технику, поскольку часто целью является группировка цветов, несмотря на несоответствие освещения (например, тени). Мера delta_E не является светоинвариантной. Это может или не может быть проблемой для вашего приложения, но об этом следует помнить.

результаты с использованием квадратного евклидова расстояния lab cluster sq euclideanycbcr кластер кв евклидов

результаты с использованием расстояния городского квартала lab cluster cityblockycbcr кластерный городской квартал

27.05.2015
  • Причиной использования CIELAB было то, что он почти близок к человеческому восприятию. 28.05.2015
  • Цветовое пространство CIELab является абсолютным цветовым пространством, оно точно определяет цвета. Это не зависит от устройств ввода или вывода. Таким образом, будет работать лучше в случае аналогичной проблемы с поиском цвета, когда люди воспринимают разницу в цвете одинаково в случае разницы в CIELAB. Разница, которая хорошо работает, - это CIE 94 в пространстве LAB. Я не знаю, как использовать это расстояние с k, поскольку CIE 94 не является евклидовым расстоянием. 28.05.2015
  • Вы выполнили кластеризацию в пространстве IN LAB, используя kmeans, используя евклидово расстояние, верно? 28.05.2015
  • На самом деле я использовал квадратное евклидово расстояние. Я отредактировал свой ответ, чтобы лучше показать, где именно используется новая мера расстояния. Надеюсь, поможет 28.05.2015

  • 2

    Существуют варианты k-средних для других функций расстояния.

    В частности, k-medoids (PAM) работает с произвольными функциями расстояния.

    27.05.2015
    Новые материалы

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

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

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

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..