AI / Статистические методы определения названия цвета - PullRequest
5 голосов
/ 07 августа 2010

Я думаю о том, чтобы написать небольшую библиотеку, чтобы угадать название цвета (значение RGB) из заранее определенного списка кандидатов.

Моя первая попытка была основана исключительно на пифагорейском расстоянии в пределахтрехмерное цветовое пространство RGB - это не было массовым успехом, так как большинство названных цветовых точек были по краям пространства (например, Blue в 0, 0, 255), поэтому для большинства цветов в середине пространстваназванный цвет, к которому он был ближе всего, был довольно произвольным.

Итак, я думаю о лучших подходах и нашел несколько кандидатов

  • Цилиндрическое расстояниев цветовом пространстве HSV, которое может иметь проблемы, аналогичные описанным выше, однако HSV представляется более значимым в человеческом смысле, чем RGB, что может быть полезным.

  • Любойвышеупомянутого, но с каждой именованной цветовой точкой, взвешенной с произвольным значением, которое обозначает силу ее притяжения к точкам в окружающем пространстве.нг пространство.есть ли название для такой модели?Я понимаю, что это немного расплывчато, но мне кажется, что это довольно интуитивная идея.

  • Байесовская сеть, которая проверяет свойства цвета HSV и возвращает наиболее вероятное название цвета (IЯ представляю себе узлы, похожие, например, на P (черный | насыщенность <10), P (красный | оттенок = 0). Однако это кажется не идеальным - например, вероятность того, что данный цвет является красным, пропорциональна тому, какего значение близко к 0, а не к дискретному значению. Существует ли способ адаптации байесовских сетей для обработки вероятностей, которые непрерывны на тестируемой переменной? </p>

  • Наконец, ямне было интересно, есть ли какая-то классификация на основе опорных векторов в цветовом пространстве HSV или RGB, но я не очень хорошо знаком с ними, я не уверен, даст ли это какое-то конкретное преимущество по сравнению с подходом, основанным на пифагорейском расстоянии, который я пробовал изначально,тем более, что я имею дело только с трехмерным пространством.

Поэтому мне было интересно, есть ли у кого-нибудь из вас опыт с подобными проблемами или вам известны какие-либо ресурсы, которые могут помочь мне принять решение о подходе?Если бы кто-нибудь мог указать мне правильное направление (будь то одно из вышеперечисленных или что-то совсем другое), я был бы чрезвычайно благодарен.

Приветствия!

Тим

Ответы [ 3 ]

5 голосов
/ 07 августа 2010

Назовите этот цвет , кажется, определяет имя на основе значений RGB и HSL, возможно, вы могли бы использовать что-то подобное.

После быстрого просмотра сценария кажется, что он выбирает цвет, наиболее близкий к данному цвету в терминах RGB и HSL. По сути, это просто большая карта предопределенных цветов, которая ничего не продвигает, например, взвешенные значения, но, учитывая большое количество имен определенных цветов, она может быть «достаточно хорошей» в зависимости от ваших требований.

0 голосов
/ 12 августа 2010

Что касается моего ответа, я собираюсь думать за пределами коробки Байса. Если бы мне пришлось решать эту проблему, я бы попробовал один из трех подходов:

1) Нечеткая логика, возможно, основанная на эмпирических данных, собранных от пользователей. Возможно, что нечеткая логика может захватить и упростить автоматическое определение того, что люди имеют в виду, когда говорят о цвете лучше, чем четкие статистические показатели. (Существуют также методы, сочетающие логический вывод Байса и нечеткую логику, IIRC.)

2) Однажды я поиграл с идеей использования сетей Кохонена для автоматической классификации цветов. Я не зашел слишком далеко, но первые результаты были многообещающими в том, что сети имели тенденцию сходиться в решениях, которые были приятными и интуитивно понятными с человеческой точки зрения. Узлы имели тенденцию группироваться в узоры, которые, казалось, соответствовали человеческим меткам, таким как «красный», «оранжевый», и имели очевидные переходные зоны, такие как «красно-оранжевый».

3) Я также провел несколько экспериментов, в которых использовались генетические алгоритмы для разработки оптимизированных палитр для конкретных изображений. Опять же, я не зашел слишком далеко, но первые тесты показали многообещающие результаты.

0 голосов
/ 11 августа 2010

Есть ли способ адаптации байесовских сетей для обработки вероятностей, которые непрерывны на тестируемой переменной?

Да.Я не лучший человек, чтобы ответить, как это сделать, но должна существовать информация о том, как это сделать.Просто используйте «непрерывный» во время поиска.

...