Атака на клоны
Яндекс. Картинки научились находить одинаковые изображения в интернете. Поиск точных копий картинок никогда не был сложным для поисковиков, но любые небольшие модификации, изменение размеров, добавление надписей и даже просто пережатие JPG помогали картинке стать уникальной и попасть в результаты поиска в виде дубликата.
Наше исследование картинок Рунета показало, что из 600 млн картинок половина уникальна (300 млн), вторая половина склеивается в отношении 3:1, 200 из 300 млн имеют дубликаты только на своем сайте.

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

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

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

Во-первых, это помогает пользователям, которые догадались, что иногда через поиск по картинкам можно найти сайт с интересующей их информацией. Во-вторых, мы сами того не желая, рассказываем веб-мастерам о сайтах, которые без разрешения или же во благо воспользовались их творениями. Для этого достаточно лишь найти свою картинку в поиске.
Задача поиска дубликатов оказалась технически сложной. Есть много научных работ на тему интеллектуального сравнения двух изображений, а для специалистов по «компьютерному зрению» задача опознать пару изображений, полученных изменением размеров, не является серьезной задачей. Однако никто из этих специалистов не имел возможности поработать с базой из 600 млн картинок. Попарное их сравнение на одном компьютере потребовало бы около 300 млн лет. К сожалению, обычными методами с помощью хеш-функций задачу решить тоже не удается. Но мы это сделали!
Дмитрий Михалёв, Федор Романенко. Яндекс. Картинки
комментарии (51)
2 одинаковые картинки :)
* Вязаный Айфон
* 200×272 … 353×480
* www.oiphone.ru
* Полцарства за айфон
* 267×300 … 366×350
* www.computerra.ru
Или есть ссылка на картинку, как быть?
Всеже интересно, как :)
С момента формулировки общего подхода до запуска в продакшн нам пришлось преодолеть большое количество практических проблем, которые разрешались разнообразными остроумными алгоритмами. Оказалось, что одной простой идеи — недостаточно.
Большинство известных алгоритмов по поиску дубликатов или похожих изображений основаны на поиске особых точек (feature extraction) на картинках или наборов статистических свойств изображений. Первый подход позволяет «выравнивать» и отождествлять изображения, полученные обрезанием, но требует почти квадратичной сложности вычисления, поэтому используется на ограниченных коллекциях, например, на выдаче поиска по одному запросу. Второй подход не дает достаточно хорошей разрешающей способности на больших коллекциях.
Вот ручками и модерят.
А если ролики немного отличаются?
В любом случае — вы же здесь, уже хорошо :)
help.yandex.ru/search/?id=481939
Применив некоторое количество смекалки вы сможете соорудить форму, возможно, с JavaScript, которая будет показывать дубликаты по урлу картинки. Нужно только учитывать, что Яндекс кладет в индекс не все урлы картинок, а только те, описания которых он отобрал для поиска по запросу.
А как вам такое предложение: после стоковых фотографий (например) в поисковиках так и хочется кнопочку «найти похожие». Но её нету. Хотя, чую, что сделать не сложно — ключевые слова-то есть.
— не совсем понятно, что будет выдавать такой поиск, и удовлетворит ли это разных пользователей? Поняние «похожие картинки» — слишком неопределенно и означает разное для разных людей и задач. А для того, чтобы хорошо решать задачу, мы должны ее как минимум хорошо формулировать. Настройка качества поиска всегда основывается на измерениях на размеченной человеком базе. Те, кто ее размечают, должны сначала между собой договориться о том, что они считают правильным?
— юзабилити тестирование говорит нам о том, что любая лишняя ссылка в интерфейсе ухудшает качество сервиса для пользователей, которым она не нужна. Поэтому при включении фич в массовый продукт мы должны 10 раз подумать о том, как это отзовется нам всех пользователях в целом.
Даже такая фича Яндекс. Картинок, как поиск картинок с разным преобладающим цветом, вызывает непонимание у некоторых пользователей.
Окончательное решение о том, запускать ли конкретную функцию в нашем сервисе, мы будем принимать, исходя из многих факторов, и расскажем о нем, видимо, сразу после запуска.
kanojo.ru/image/id/10532/
уровень от 5 до 7 дает достаточно точные результаты.