Поиск изображений в интернете уже давно стал привычным: пользователь ожидает от поисковой системы точного, быстрого и полного ответа так же, как и при поиске текстовой информации. Большинство популярных поисковых систем следом за поиском веб-страниц с текстовой информацией начали работать над поиском изображений.
Компания Picsearch выпустила первую публичную версию поиска по изображениям в сентябре 2001 года. В июле того же года запустил свой поиск по картинкам Google. Яндекс.Картинки официально открылись в июле 2002 года, став первым российским поисковиком, ищущим изображения. В ноябре 2003 г. Yahoo! добавил справа от поисковой строки меню с опцией поиска по изображениям в том числе.
На начальном этапе своего существования поиск изображений основывался исключительно на извлечении и анализе метаданных, связанных непосредственно с изображениями: атрибутов alt, заголовков страниц и текстов ссылок на изображения. Постепенно для поиска изображений стали учитывать также и текст, расположенный на той же веб-странице, что и картинка. Таким образом, задача поиска изображений некоторое время ограничивалась нахождением всей возможной относящейся к нему текстовой информации, и определением степени правдоподобия, с которой эта информация относится именно к изображению.
Параллельно с поиском изображений по метаданным развивалось, и продолжает успешно развиваться, другое направление – поиск изображений по их содержанию. Этот вид поиска основывается на технологии компьютерного зрения. Она призвана обучить машину смотреть на изображение глазами человека, понимать и анализировать его содержимое: цвета и формы объектов, их текстуру, взаимное расположение. Набор метаданных, характеризующих изображение, ограничен, а компьютерное зрение позволяет значительно расширить количество атрибутов, которые учитываются при поиске картинок и ранжировании результатов.
Наглядным примером внедрения технологии поиска изображений по содержанию являются разнообразные фильтры в расширенном поиске Яндекс.Картинок: преобладание цвета, клипарт, графика, фотография, портрет. В основе работы этих фильтров – анализ одного или нескольких свойств изображения: цвет, градиенты, наличие однородного фона и другие. Каждый раз, когда пользователь включает тот или иной фильтр, происходит сравнение всех найденных изображений с некой абстрактной моделью-образцом, которая идеально соответствует данному типу изображения. Таким образом из результатов поиска исключаются изображения, не обладающие свойствами этой идеальной модели, либо обладающие ими не в той степени.
Более сложная задача, которая решается с помощью технологии поиска изображений по содержанию, - это поиск похожих изображений.
Какие картинки более схожи между собой?
Разные
люди по-разному ответят на этот вопрос. Для одних – важнее цветовая
схожесть, для других – схожесть форм, для третьих – текстур, а иногда -
всё вместе в одинаковой пропорции. Какие же критерии являются
определяющими? Даже человек, не говоря уже о машине, затрудняется порой
объяснить, на чём основан его выбор в данном конкретном случае. Это
всегда совокупность факторов при частом доминировании одного из них.
Сложность в том, чтобы обучить машину понимать, какой фактор важнее в
каждом конкретном случае. К тому же при поиске похожих изображений, в
отличие от упомянутой выше работы фильтров, сравнение каждый раз
происходит с новой картинкой-образцом, а не с одной и той же моделью.
Для этого нужно обучить машину анализировать не отдельные свойства
изображения, а всю их совокупность. Она должна за сотые доли секунды
находить среди миллионов проиндексированных картинок изображения,
максимально похожие на картинку-образец, учитывая при этом представления
о похожести у разных пользователей.
На Яндекс.Картинках появилась первая версия поиска похожих изображений. В результатах поиска рядом с большинством картинок можно увидеть ссылку «похожие», при клике на которую открывается страница с изображениями, похожими на выбранное. Таким образом, используются оба направления поиска изображений - картинка-образец ищется по метаинформации, а похожие - с помощью технологии поиска изображений по их содержанию.
Конечно, мы будем совершенствовать поиск похожих изображений и дальше развивать функционал Яндекс.Картинок. Результаты можно будет увидеть в самое ближайшее время :)
Александр Крайнов, Николай Штуркин и команда Яндекс.Картинок