Metasearch - удаление дублированных изображений с разным разрешением - улучшение по текущему подходу - PullRequest
1 голос
/ 24 мая 2019

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

Вна этапе метапоиска, я хочу проверить, имеют ли 2 изображения одинаковые имена , но не тривиальные имена (например, image.jpg, photo.jpg ...).В этом случае я хочу включить только изображение с более высоким разрешением.

Пример: поиск по «городу»

https://znews -photo.zadn.vn / w480 / Загружено/lerl/2017_10_07/DJI_005701_zing.jpeg

https://znews -photo.zadn.vn / Загружено / lerl / 2017_10_07 / DJI_005701_zing.jpeg

Theпервый не должен быть возвращен.

Это назначение работы от команды веб-поиска, поэтому я очень беспокоюсь о производительности.

Мой текущий подход:

*) Чтобы избежать тривиальных имен, повторяйте тестовые запросы для поиска изображений, подсчитайте количество появлений каждого токена с разных URL-адресов после токенизации с помощью "/",и вручную выбрать наиболее появляющиеся токены в URL-адресах, которые похожи на «фото», «рисунок», «фон» и т. д. В конце концов у меня будет набор тривиальных имен.

*) Для изображений с одинаковым именем каждое изображение получает свое dHash , его разрешение, для каждой пары изображений с разницей dHash меньше, чем определенное пороговое значение, я сбрасываю изображение с меньшим разрешением.

Редактировать: После консультации с моим менеджером я понял, что неправильно понял требования.Я должен работать только над URL-адресами без доступа к реальным изображениям (что было бы слишком дорого).В приведенном выше примере я должен быть в состоянии отказаться от первого изображения на основе разницы URL-адресов двух.Кроме того, в результате ожидаемая точность не высока, все> 85% должно быть приличным.

Я очень ценю любые идеи / идеи по улучшению моего текущего подхода.

1 Ответ

0 голосов
/ 24 мая 2019

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

  1. Оригинальные изображения часто содержат ключевые слова "orig" или "original" в своих URL, а миниатюры содержат ключевые слова "thumb" или "thumbnails"
  2. URL-адреса для миниатюр часто содержат числа ширины и высоты (например, 640, 768, 1024)
  3. Как правило, более длинный URL (с того же хоста) означает миниатюру. Это связано с тем, что при создании эскиза числа ширины / высоты обычно добавляются к его имени.

Совершенно другой подход заключается в получении байтовых размеров изображения с помощью запросов HTTP HEAD. В 99% случаев сервер вернет заголовок Content-Length. HTTP HEAD не загружает содержимое, только заголовки HTTP. Таким образом, это не так дорого, как загрузка целых изображений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...