Клипарт и графика в Яндекс.Картинках

Один из главных источников информации о потребностях пользователей – анализ их запросов. На Яндекс.Картинках достаточно часто встречаются запросы на поиск специфичных видов изображений. Например,  [клипарт День Победы], [клипарт люди], [раскраски], [схема двигателя внутреннего сгорания], [схема для вышивания] и т.п. Словом, это запросы, направленные на поиск клипарта (изображения объектов на однородном фоне) и графики (рисованные картинки, эскизы, схемы, раскраски, изображения объектов, созданные тонкими линиями).

Чтобы такие изображения было проще найти, мы сделали новые фильтры в расширенном поиске Яндекс.Картинок. Эти фильтры так и называются: «клипарт» и «графика».

 

 

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

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

Чтобы научить машину автоматически принимать решения о принадлежности картинки к какому-либо классу, использовался классификатор на основе метода опорных векторов (Support Vector Machine). Для обучения системы применялась выборка из нескольких тысяч изображений. Каждое из них было вручную размечено по шкале «клипарт – не клипарт» и «графика – не графика», а также соотнесено с заранее вычисленными атрибутами, о которых упоминалось выше.

Эти данные подаются на вход классификатора, который представляет изображения в виде точек в многомерном пространстве. Координаты этих точек зависят от наличия и степени выраженности атрибутов. Задача классификатора – подобрать функцию, которая разделяет пространство на области, содержащие объекты одного и того же класса. 

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

 

или графикой:

 

Нам потребовалось улучшить качество атрибутов и вычислить новые, а также расширить тестовую выборку и собрать дополнительные оценки.

Результаты разметки помещаются в индекс в виде битовых флажков и используются для фильтрации запросов.

 

Помимо клипарта и графики Яндекс.Картинки помогут найти изображения по размеру, цвету, формату и ориентации. Эти и другие возможности вы найдете на странице расширенного поиска.


Дмитрий Котляров, Николай Штуркин и команда Яндекс.Картинок

9 комментариев
Очень круто!
Дмитрий Ничипорчук
26 ноября 2015, 17:50
Супер! Спасибо!
Спасибо! 
Было бы хорошо, если бы настройки вида изображения выводились на страницу выдачи, а то не очень удобно лазить в "расширенный поиск".
ура ура ))
уже заценил
спасибо!
Спасибо.

Пожелание: отличать(искать) анаглифические
стерео 3D картинки
.
Пока ни один поисковик не ищет, а
3Д наступает.
Здорово, молодцы разработчики - нужные функции придумали.
Ая даже и не знала :)