ПоискПочтаКартыМаркетНовостиСловариБлогиВидеоКартинки
Войти

Технологии / Поисковые технологии

Яндекс.Картинки и дубликаты изображений

Поиск по картинкам нужен в тех случаях, когда лучше увидеть, чем прочитать. Например, если надо узнать, как выглядит лиса [фенек], фотография зверька будет полезнее длинного текста про строение его ушей и длину хвоста. Иногда картинка — это хороший вспомогательный материал к основному ответу. Например, в ответ на запрос к Яндексу [Айвазовский] в результатах поиска будут присутствовать и репродукции его картин.

Яндекс ищет картинки через так или иначе связанный с ними текст, например, расположенное рядом с картинкой описание, её заголовок в html-коде страницы (и alt, и title), заголовок самой страницы или ссылка на картинку с другого сайта. Яндексу известны миллиарды изображений. Половина из них — уникальные, а остальные — так называемые дубликаты, то есть картинки, которые не отличаются вообще или отличаются незначительно.

 

Более половины изображений в интернете — это дубликаты того или иного вида.

Яндекс.Картинки различают четыре вида дубликатов

Точные дубликаты — абсолютно одинаковые изображения, которые не отличаются ни одним битом.

Тумбнейлерные дубликаты (от англ. «thumbnail» — миниатюра) — изображения, которые различаются только размером, например, репродукция на сайте картинной галереи и маленькая картинка, которая на неё ссылается.

Полудубликаты — картинки c полупрозрачными надписями поверх изображения, незначительной цветокоррекцией, обрезкой или рамкой.

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

 

У каждого изображения в интернете есть в среднем три дубликата. Чтобы результаты поиска Яндекс.Картинок не состояли из одинаковых изображений, сервис группирует дубликаты и показывает их в результатах поиска «стопками».

 

Поиск и группировка дубликатов

Чтобы компьютер мог понять, что изображено на картинках, и распознать дубликаты, изображения нужно «перевести» на понятный ему язык — язык чисел. В Яндекс.Картинках этим занимается специальная компьютерная система, программы которой обходят интернет, находят изображения и обрабатывают их — узнают необходимые данные о картинке, например, размер, цвет, формат (JPG, PNG и т.п.) и создают числовую характеристику изображения — сигнатуру.

На каждом изображении программа выделяет ключевые фрагменты. Затем уменьшает их до размера 16х16 пикселей, и каждому из 256 пикселей присваивает число, соответствующее яркости этого пикселя. Полученные комбинации чисел и есть сигнатуры.

Программа объединяет в группы изображения, у которых есть похожие ключевые фрагменты (то есть схожи их сигнатуры). Внутри этих групп выделяются еще более близкие изображения — у которых совпадают минимум два фрагмента. Изображения с похожими фрагментами становятся кандидатами в дубликаты. В них программа выделяет области, объединяющие все совпавшие фрагменты. Следующим шагом эти области уменьшаются до размера примерно 60х60 пикселей, переводятся в числовую характеристику и сравниваются между собой. Дубликатами признаются изображения, у которых области совпадают.

Использование дубликатов

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

Допустим, у фотографии длинного синего запорожца есть сорок дубликатов. Пятнадцать из них подписаны «запорожец», десять — «синий запорожец», пять — «зелёный запорожец» и ещё десять — «лимузин».

Поделив количество упоминаний каждого слова в подписях на общее число картинок, получится, что степень правдоподобия описаний следующая:

[запорожец] — 0.75 (30 картинок из 40)

[синий] — 0.25 (10 картинок из 40)

[лимузин] — 0.25 (10 картинок из 40)

[зеленый] — 0.125 (5 картинок из 40)

Соответственно, эта фотография будет релевантным ответом на запросы [синий запорожец] или [запорожец лимузин], хотя последнего словосочетания изначально в описаниях не было. Если у дубликатов встречаются противоречащие друг другу описания, как «синий» и «зелёный» в этом примере, то выбирается наиболее частое.

Все дубликаты найденной картинки пользователи могут увидеть на странице просмотра изображения. Там есть список «Копии картинки» и ссылка на страницу со всеми известными Яндексу дубликатами. С помощью этого списка, например, пользователь может выбрать подходящий размер искомой картинки, автор изображения найти поклонников своего творчества, а веб-мастер — узнать, в каком фотобанке можно приобрести нужное изображение.

Распознавание дубликатов используется не только на сервисе Яндекс.Картинки. Например, оно помогает лучше определять сайты, содержащие материалы для взрослых, и учитывать их при включении семейного и умеренного фильтра. В базе сигнатур есть числовые характеристики изображений с порносайтов, известных Яндексу. Если сигнатуры новых картинок совпадают с ними, то ресурс, на котором они были найдены, подвергнется дополнительной проверке. Специальная программа изучит подозрительный сайт и подтвердит или опровергнет наличие на нём материалов для взрослых. Такие сайты и изображения с них пользователь может убрать из результатов поиска, включив фильтр «Семейный поиск».

 

Самые популярные дубликаты

Чаще всего пользователи копируют изображения знаменитостей и товаров. Количество дубликатов одного изображения — это может быть, например, фотография популярного сотового телефона — порой достигает нескольких десятков тысяч. Примерно на каждый сайт приходится 460 изображений. Средний размер одной картинки — 300х500 пикселей.

ruRu