AI / Статистические методы определения названия цвета

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

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

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

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

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

  • Байесовская сеть, которая исследует свойства цвета HSV и возвращает наиболее вероятное название цвета (я воображаю узлы, похожие, например, на P (черный | насыщенность ‹ 10), P (красный | оттенок = 0), однако это кажется меньше идеального — например, вероятность того, что данный цвет красный, пропорциональна тому, насколько его оттенок близок к 0, а не является дискретным значением. переменная проверяется?

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

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

Ваше здоровье!

Тим


person mistertim    schedule 07.08.2010    source источник


Ответы (3)


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

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

person Niels van der Rest    schedule 07.08.2010
comment
Мне это нравится : Будучи типичным парнем, я понятия не имею, как выглядят цвета Лаванда и Лиловый. Итак, я сделал это маленькое приложение... - person Simon_Weaver; 07.08.2010
comment
Ааа, это интересно! Хороший совет по поводу установки большого количества названий цветов, чтобы найти более близкие совпадения - будем исследовать! - person mistertim; 07.08.2010

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

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

person Carlos Rendon    schedule 10.08.2010

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

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

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

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

person TechNeilogy    schedule 12.08.2010