首页 > 解决方案 > 元搜索 - 删除不同分辨率的重复图片 - 改进当前方法

问题描述

假设来自一台主机的一张不同分辨率的图片多个副本。

在 metasearcher 阶段,我想检查 2 张图片是否具有相同的名称,但不是琐碎的名称(例如 image.jpg、photo.jpg ...)。在这种情况下,我只想包含分辨率更高的图片。

示例:搜索“城市”

https://znews-photo.zadn.vn/w480/Uploaded/lerl/2017_10_07/DJI_005701_zing.jpeg

​<a href="https://znews-photo.zadn.vn/Uploaded/lerl/2017_10_07/DJI_005701_zing.jpeg" rel="nofollow noreferrer">https://znews-photo.zadn.vn/Uploaded/lerl /2017_10_07/DJI_005701_zing.jpeg

第一个不应该退回。

这是来自网络搜索团队的工作分配,因此我非常关心性能。

我目前的做法:

*) 为避免名称琐碎,遍历图片搜索的测试查询,统计每个token在用“/”标记后从不同URL出现的次数,并手动选择URL中出现次数最多的类似于“photo”的token ”、“图片”、“背景”等等……最后,我会有一组琐碎的名字。

*) 对于同名的图片,每张图片我得到它的dHash,它的分辨率,对于每对 dHash 差异小于某个阈值的图片,我丢弃分辨率较小的图片。

编辑:在咨询了我的经理后,我意识到我误解了要求。我应该只在 URL 上工作而不访问实际图像(这太昂贵了)。使用上面的示例,我应该能够根据两者的 URL 差异丢弃第一张图像。此外,结果,期望准确度不高,任何> 85%的东西都应该不错。

我非常感谢任何关于改进我当前方法的想法/见解。

标签: algorithmsearchheuristics

解决方案


如果不访问图像内容,您将无法针对此问题实施可靠的解决方案。但是,如果您仍想直接使用 URL,请注意以下几点:

  1. 原始图像的网址中通常包含“orig”或“original”关键字,而缩略图包含“thumb”或“thumbnails”关键字
  2. 缩略图的 URL 通常包含宽度和高度数字(例如 640、768、1024)
  3. 通常,较长的 URL(来自同一主机)表示缩略图。这是因为在生成缩略图时,通常会在其名称后附加宽度/高度数字。

完全不同的方法是通过发出 HTTP HEAD 请求来检索图像字节大小。在 99% 的情况下,服务器将返回Content-Length标头。HTTP HEAD 不下载内容,仅下载 HTTP 标头。因此,它并不像下载整个图像那么昂贵。


推荐阅读