V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
LeeReamond
V2EX  ›  问与答

有大佬能描述一下用于查重的提取图像特征的算法吗?

  •  
  •   LeeReamond · 2021-11-09 05:09:36 +08:00 · 983 次点击
    这是一个创建于 1109 天前的主题,其中的信息可能已经有所发展或是发生改变。

    如题,自己收藏的壁纸有约一万张,大体上都是 16:9 比例的图,少部分有一些 16:10 的和 21:9 的。

    想要写个东西检查一下里面有没有重复的图像。(重复的图像指比如原图经过压缩生成新图像,分辨率相同但 hash 不同。或者分辨率经过缩放也有可能,毕竟都是网上的图)

    这种有什么办法可以查重吗?能否根据图像内容生成一个特征表示这个图像?比如用 4096 个比特描述一张图,然后我设置一个阈值(比如 100 ),两个特征向量的差异小于 100 就认为是同一张图?

    7 条回复    2021-11-09 10:27:52 +08:00
    binux
        1
    binux  
       2021-11-09 05:21:05 +08:00 via Android
    搜 GitHub image hash
    LeeReamond
        2
    LeeReamond  
    OP
       2021-11-09 05:32:34 +08:00
    @binux 排名最高的论文项目看不懂。看了看 python 最高 star 的实现代码,似乎是通过比较全局每个像素和平均值的大小关系,大于平均值就记为 1 ,小于平均值就记为 0 ,这么搞出来个一串的 hash 。这个如果调整过图片亮度之类的会不会就认为是两张图了
    elfive
        3
    elfive  
       2021-11-09 06:38:20 +08:00 via iPhone
    图片去重,我推荐这个工具软件。
    https://www.duplicatecleaner.com/
    zcf0508
        4
    zcf0508  
       2021-11-09 07:33:14 +08:00 via Android
    @LeeReamond 求图片 hash 有很多种,你可以搜搜阮一峰关于图片搜索的文章
    binux
        5
    binux  
       2021-11-09 09:27:58 +08:00
    @LeeReamond 很多份代码都有多个实现,你直接用就好了
    3dwelcome
        6
    3dwelcome  
       2021-11-09 10:13:37 +08:00
    这个简单,学 jpeg 压缩原理,DCT 后是可以末尾截断的,多截断一些位数,就变成了图片的模糊 hash 值。
    3dwelcome
        7
    3dwelcome  
       2021-11-09 10:27:52 +08:00
    再说一下原理,DCT 末尾截断,本质上就是把图片里的高频信号给去掉。

    就好比你直接去比较两张壁纸,是不相同的,但是你放到 photoshop 里,高斯模糊一下后,把细节都去掉,壁纸看起来就很相似了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1254 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:30 · PVG 07:30 · LAX 15:30 · JFK 18:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.