Оранжевое небо, оранжевое море... оранжевый Рунет

18 декабря 2007, 14:50
Когда, глядя на серое осеннее небо, мы делали форму расширенного поиска, нам очень захотелось написать программу определения цвета картинки. Изначально мы разметили порцию картинок вручную. Оказалось, что для 60% картинок не удалось указать преобладающий на них цвет, а для 15% картинок мнения асессоров (людей, размечавших тестовую выборку) разошлись. Как известно, на вкус и цвет товарищей нет. Но в нашем случае это объяснялось не только субъективными оценками, но и различием в настройках мониторов. Разобравшись с тем, какие цвета можно называть красными, какие - синими и т.д., мы перешли к анализу преобладающих цветов. Все сделали по науке - посчитали статистику по цветам радуги в процентах от площади, взяли первый цвет. Но не все так просто в окружающем нас мире. Очень быстро мы столкнулись с тем, что цвета, доля которых составляет на картинки не более 20%, могут явно преобладать, а цвета с долей более 50% оказаться на картинке малозаметными. Например, красная машина на белом фоне, конечно, красная. Картинка с красной машиной на черном фоне не кажется такой уж красной, она, скорее, какая-то мрачная: Красная машина Многое здесь зависит от насыщенности и яркости цвета... но не только. Оказалось, что в ряде случаев на визуальное восприятие картинки очень сильно влияли не сами цвета, а их сочетания. Пришлось даже устроить мини-опрос среди независимых сотрудников Яндекса: "Какого цвета эта картинка?". Например, залитый солнечным светом луг воспринимается глазом как зеленый, и это естественно! На самом деле, картинка более чем наполовину содержит желтые точки - блики солнечного света: Солнечный луг Наши роботы, к сожалению, не умеют (пока!) смотреть на картинки так, как это делают люди. Мы провели ряд экспериментов, которые бы позволили программе по долям различных цветов и их сочетаниям оценивать визуальное преобладание цветов на картинке. Но проверить алгеброй гармонию опять не получилось: нет универсальной формулы! Пришлось индивидуально подобрать диапазон и пороги для разных цветов. В итоге у нас получилось следующее распределение картинок по преобладающим цветам, которое мы назвали "Радугой Рунета": Радуга Рунета Видно, что Рунет в целом очень жизнерадостный. А 7-процентный барьер прошли только оранжевый и белый цвета. ;) Ну и, конечно, мы не забыли про то, что у картинок бывает фон. Компактный синий пылесос на белом фоне стоит признать синим, несмотря на то, что белого фона по статистике гораздо больше. Так и быть, мы учли это в программе, и теперь вы сможете через Яндекс.Картинки выбирать себе пылесос нужного цвета! Нашу «радугу» мы будем улучшать и дальше. Асессоры подтвердили качество первой версии нашего алгоритма. А вам как? Уже нравится?
Хранители картинной галереи Яндекса
12 комментариев
Подписаться на комментарии к посту
Решил посмотреть ссылку примера, а там на первом месте - синий пылесос, все остальные красные - а первый все равно синий. Поигрался с другими цветами - все остальное меняется, но синий пылесос все равно впередиАлимов Павел
Первый пылесос синий потому, что эта горячая ссылка "Яндекс.Маркет" с предложениями купить пылесос. Очевидно, что Я.Маркет пока не различает цвета так, как картинки.Teine
Вы бы тогда эту первую ссылку выделили как-то -- а то ведь как баг выглядит. Релевантность понижает.MM
Я не разработчик, а наблюдательный пользователь. ;)Teine
Жаль, что на странице выдачи красных пылесосов нет ссылки "синие", "желтые" и т.д. Было бы очень удгобно поиграться. А так -- никто не догадается, что надо идти в "Расширенный поиск". Да и где он там на экране -- еще найти надо.AV
А знаете ли вы, что по запросу "синий" с преобладанием белого цвета выдется картинок почти в 2 раза больше, чем по запросу "синий" с преобладанием синего цвета?Сычев Александр
Поле жёлтое, конечно. На зелёное совсем не похоже.Максим
На странице ссылки нашла слово "пылесос" и решила найти поочередно: "пылесос синий", "пылесос желтый", "пылесос белы", "пылесос черный", "пылесос оранжевый" )))) Кое-где выдача, конечно, была правильной не не 100 %, но все-равно порадовала 8)Лиана
Мы это поправим. Спасибо за замечания!Беляев Дмитрий
Я конечно не гинеколог, но решил посмотреть... то есть проверить аудиторию Рунета на психологическом тесте Люшера по выбору цветов. Вот такой ставлю диагноз: Рунет стремится к богатому действиями и переживаниями образу жизни, а также к близости, которая приносит эротическое и эмоциональное удовлетворение. Упрямо стоит на своих требованиях и не хочет идти ни какие уступки. Эгоцентричен и поэтому обидчив. Испытывает неудовлетворенную потребность в объединении с людьми, имеющими такие же высокие духовные стандарты, хочет выделиться из толпы. Чтобы не потерять независимость, умеет обуздывать свою склонность увлекаться. Стремится к переживаниям в идиллических чувтсвенных отношениях, где царит гармония и всегда чувствуешь себя в безопасности. Деятельность сама по себе доставляет ему удовольствие. Честолюбив, стремится к независимости и превосходству. Из всего извлекает собственную выгоду. obsessed
По-моему, преобладание оранжевого объясняется просто - он ближе всего к телесному цвету. В смысле, в интернете много фотографий людей, на которых люди имеют свой естественный "оранжевый" цвет ;)spf