Атака на клоны

24 октября 2008, 14:07

Яндекс.Картинки научились находить одинаковые изображения в интернете. Поиск точных копий картинок никогда не был сложным для поисковиков, но любые небольшие модификации, изменение размеров, добавление надписей и даже просто пережатие JPG помогали картинке стать уникальной и попасть в результаты поиска в виде дубликата. Наше исследование картинок Рунета показало, что из 600 млн картинок половина уникальна (300 млн), вторая половина склеивается в отношении 3:1, 200 из 300 млн имеют дубликаты только на своем сайте. Когда мы начали решать задачу поиска дубликатов, мы просто хотели "почистить" выдачу от повторяющихся картинок и сделать выдачу более разнообразной. Но впоследствии мы поняли, что в наших руках оказалось нечто большее. Веб-мастера не любят в свои страницы вставлять картинки, которые загружаются с других сайтов, они их копируют, и зачастую меняют размеры, чтобы вписать в свой дизайн. Каждой копии картинки доставалось меньше подписей, поэтому не всегда просто было понять, насколько картинка соответствует запросу? Склейка дубликатов позволила найти тот небольшой процент изображений, который интересен многим веб-мастерам, а значит и пользователям. Для таких картинок у нас много подписей, мы можем сравнить их друг с другом и с запросом, чтобы понять, насколько картинка хорошо ему соответствует. Самый многочисленный класс картинок, оказавшийся в выигрыше, это пары - исходное изображение и его уменьшенная копия, лежащие на одном сайте. Оказывается, что маленькие картинки гораздо чаще хорошо подписаны, но они не попадают на первые страницы поисковиков из-за своих размеров. Благодаря новой технологии мы научились находить маленькую картинку, а показывать ее большой оригинал. На странице просмотра картинки мы показываем табличку копий картинки на разных сайтах. Во-первых, это помогает пользователям, которые догадались, что иногда через поиск по картинкам можно найти сайт с интересующей их информацией. Во-вторых, мы сами того не желая, рассказываем веб-мастерам о сайтах, которые без разрешения или же во благо воспользовались их творениями. Для этого достаточно лишь найти свою картинку в поиске. Задача поиска дубликатов оказалась технически сложной. Есть много научных работ на тему интеллектуального сравнения двух изображений, а для специалистов по "компьютерному зрению" задача опознать пару изображений, полученных изменением размеров, не является серьезной задачей. Однако никто из этих специалистов не имел возможности поработать с базой из 600 млн картинок. Попарное их сравнение на одном компьютере потребовало бы около 300 млн лет. К сожалению, обычными методами с помощью хеш-функций задачу решить тоже не удается. Но мы это сделали!

Дмитрий Михалёв, Федор Романенко. Яндекс.Картинки
34 комментария
Подписаться на комментарии к посту
Яндекс умеет склеивать дубли картинок, если на дубли наложены полупрозрачные надписи?Леонид Румянцев
Да, это работает, но не всегда. Мы настраивали алгоритм так, чтобы закрыть наиболее частотные случаи, например, фотографии товаров в интернет-магазинах. При этом алгоритм должен быть достаточно консервативным, чтобы давать меньше ложных срабатываний.Федор Романенко
Как раз сегодня меня эта функция заинтересовала, спасибо!Дмитрий Сержантов
Было бы здорово иметь возможность указать оригинал картинки, т.е. тот экземпляр картинки, который был размещен в сети раньше найденного в результатах, и страницу, на которой это изображение появилось впервые. Так же будет не плохо, если пользователи смогут сами добавлять дубликаты картинок к результату посика. Думаю проверить правдободобность этих данных не является сложной задачей, т.к. сравнивать картинки вы уже умеете.Андрей
История и причины появления конкретных дубликатов картинки могут быть очень разными. Для товарных картинок оригинальное изображение может быть на сайте зарубежного производителя. Для новостных - в закрытом фотобанке. К тому же, в интернете нет стандартных точных средств определения даты публикации изображения или страницы, погрешность имеющихся алгоритмов может составлять несколько недель. При построении таблицы копий картинки со ссылками на сайты могут быть использованы данные от веб-поиска об авторитетности и оригинальности сайта, что может влиять на выбор и порядок позиций в таблице. Однако, принимать решение о том, что данная копия является пиратской, программа, конечно же, не может. Федор Романенко
>>от веб-поиска об авторитетности и оригинальности сайта, что может влиять на выбор и порядок позиций в таблице. сие новшество меня как оптимизатора не очень устраивает. потому как есть случай: Я сделал клиенту новый сайт, вылизал его но увы тексты, как и у всех остальных сайтов с дисков предоставляемых дилерам производителем продукции о которой сайт и я по этой причине не могу попасть в яндекс каталог, разве что тематику сайту и регион присвоили, спасибо. По некоторым запросам я ниже говносайтов, что прикажите выдумывать тексты из пальца или спамить ссылками? - не хочу у вас новые дикие фильтры, вот и сайт http://www.rrkservice.rumaslin andrey
Молодцы! Здорово!Максим
Спасибо! Нам тоже очень нравится то, что у нас получилось ;)Федор Романенко
А если картинки украли и уже опубликовали на десятках сайтов? определяется ли первоисточник? будет ли борьба с клонами? Рязанцева Евгения
Более развернутый ответ на аналогичный вопрос я дал чуть выше. Мы обязательно будем учитывать знания Яндекса о качестве и оригинальности сайтов с картинками, что может влиять на выбор копий картинок для показа. В качестве пожелания мы попросим веб-мастеров, которые заботятся о судьбе своих картинок, описывать их не хуже тех, кто их неправомерно использует. Ну и, разумеется, заботиться о качестве своего сайта, что будет влиять не только на его позицию в выдаче Яндекса, но также и на выбор копий в поиске по картинкам. Федор Романенко
Так может уже пора дать ответ буржуйскому Tineye.com, который не индексирует толком Интернет?Amazing
Интересно, что несколько анонсов первых в интернете технологий поиска дубликатов произошли в одно время. По нашей информации сервис tineye.com решает задачу, которая немного отличается от нашей. Яндекс заранее просчитывает все пары и группы дубликатов в множестве известных ему картинок, что помогает в ранжировании результатов поиска. Tineye.com ищет дубликаты к одной картинке только в момент обращения пользователя. Это позволяет снять некоторые ограничения на алгоритм, однако не позволяет решить задачу в нашей постановке и помочь поиску картинок по запросу. Фактически Яндекс.Картинки предоставляют аналогичный сервис для тех картинок, которые находятся в его поиске. Но мы ориентировали наш интерфейс в первую очередь на массового пользователя, т.е. людей, у которых (пока) нет собственных сайтов. Хотя, безусловно, новые возможности Я.Картинок будут полезны и веб-мастерам.Федор Романенко
Так я как раз о том, чтобы добавить в поиск возможность искать дубликаты картинок, вводя URL картинки или загружая её на сервер (как у tineye.com). Вы ж можете сделать - сделайте :-)Amazing
Присоединяюсь к предыдущему оратору. Сейчас Яндекс.Картинки нельзя использовать для поиска дубликатов, если у нас картинка, но мы не можем найти ни одной ее копии, проиндексированной Яндексом. Было бы здорово, если бы можно было загрузить эталон для поиска дубликатов со своего компьютера.Александр Коноваленко
Вот бы этот алгоритм прикрутить к Я.Фоткам, чтобы можно было бы вмиг найти дупликаты и ворованные фотки. П.С. Нельзя ли полностью проиндексировать Я.Фотки поисковиком от Я.Картинок?Michel Budnyatsky
Спасибо за совет. Отмечу, что мы не берем в поиск все фотографии с фотохостингов, ибо они бывают плохо или неинформативно подписаны: фото в альбоме "Я на отдыхе" с тегами "природа, отпуск". Кроме того, у поискового робота могут быть задержки, которые мы стараемся сокращать. Ворованные фотографии, видимо, гораздо более актуально искать по всему интернету, а не в пределах одного хостинга.Федор Романенко
Да, тут ничего не поделаешь, сторонние фото-хостинги сложно обязать прикручивать подробные описаняи к фоткам, но в рамках своего хостинга (Я.Фотки) это вполне реализуемо и было бы отлично, если бы хотя бы Я.Фотки были бы полностью проиндексированы. Что касается поиска ворованных картинок/фоток, то да, лучше их искать сразу по всему инету, но при отсутствии данной возможности поиск хотя бы внутри такого крупного ФХ, как МЯФ тоже неплох.Michel Budnyatsky
наверное, если вырезать часть картинки, то алгоритм не найдет оригинал, или найдет? Конечно, приведенный пример не очень удачен, по моему мнению. Фактически это много кратное повторение одного куска. Ну и понятно, что просто хэш функциями не удасться решить задачу, но сделав не очень сложное преобразование и записав его результат в базу, можно получить достаточно информации для отлавливания дубликатов, даже взяв прсто спектр цветов, хотя из 600 млн....Монк
Очень интересная и сложная задача. Молодцы! Завидую, большой белой завистью, возможности поработать с 600 млн. картинок :) Серега Рогожкин
600 млн. картинок за 300 млн. лет? Это где-то 2 картинки в год. Это НАСТОЛЬКО сложно? :)Островский Дмитрий
Замечу, что среди 600 млн. картинок количество пар равно (600 000 000 * 599 999 999) / 2. ;) Федор Романенко
Пессимистический расчёт, думаю можно картинки метить служебной информацией (например преобладающие цвета) и полное сравнение пойдет намного быстрее, хотя всё равно долго....marc
с помощью хеш-функций задачу решить тоже удается. мой хеш весит 7 байт. с удовольствием потестировал бы на больших объемах, ради спортивного интереса.W.Ed.
круто! 5+Денис
А что имеется в виду под "подписи картинки"? Значения alt и title у тега img или большее, например окружающий картинку текст?Hajduevich Hajdu
Яндекс.Картинки используют набор эвристик по извлечению текста, который может отождествляться с картинкой, с учетом структуры html. В различных случаях это может быть alt, title для картинки, текст рядом с картинкой, заголовки разного уровня. Федор Романенко
Скажите, какие санкции со стороны Яндекса будут накладываться на сайт с дублями изображенйи? Возможно ли "выпадение" сайта из поиска по картинкам?Vladimirovich Igor
http://images.yandex.ru/yandsearch?p=18&ed=1&text=%D0%B6%D0%B8%D1%80%D0%B0%D1%84&spsite=e-au.ru&img_url=e-au.ru%2Fuploads%2Ftx_kesmallads%2F5_02.JPG&rpt=simage Посмотрите как жёлтый жираф склеился с чёрными серёжками =) Они явно клоны ;-)Леонид Румянцев
так вот почему сервисы Я.ру глючат.. все ресурсы на сравнение картинок пошли. ))YeroRomano
молодцы, побольше Вам удачных технических решенийsupervizor
Склейка картинок вещь хорошая и нужная. Но не могли бы Вы направить часть ресурсов на индексацию картинок. 3 МЕСЯЦА НАЗАД МЫ ОТКРЫЛИ ДОСТУП РОБОТУ ПОИСКОВЫХ СИСТЕМ К БАНКУ БОЛЬШИХ КАРТИНОК 640*480 САЙТА http://www.studio-art.ru/. ГУГЛ УЖЕ ПРОИНДЕКСИРОВАЛ А ЯНДЕКС ТОРМОЗИТ. СОВЕСТЬ НАДО ИМЕТЬ!!!Ярослав
А на чем основан Ваш уникальный алгоритм?andry
Склейка дубликатов позволила найти тот небольшой процент изображений, который интересен многим веб-мастерам, а значит и пользователям freshwater fish aquarium guide тексты песен лирика тексты песен лирика seropol5. Для таких картинок у нас много подписей, мы можем сравнить их друг с другом и с запросом, чтобы понять, насколько картинка хорошо ему соответствует.

А у картинок существует "Трастовость" и "Ранжирование"?