世界上是不是永远最多只能存在 18446744073709552000 张图片? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
Reign
V2EX    程序员

世界上是不是永远最多只能存在 18446744073709552000 张图片?

  •  
  •   Reign 2017-02-17 14:27:11 +08:00 7247 次点击
    这是一个创建于 3214 天前的主题,其中的信息可能已经有所发展或是发生改变。

    刚刚看了一下阮一峰老师的博文: 相似图片搜索原理 http://www.ruanyifeng.com/blog/2011/07/principle_of_similar_image_search.html ,里面说到了一种很简单的图片相似计算方法,就是把一个图片压缩成 8x8 大小的小图片,对这 64 个像素进行遍历,取灰度平均值,每个像素点取和灰度值比较大小的布尔值 1 或者 0 ,最终生成一个 64 位大小的字符串作为其特征码。

    其实目前很多 pHash ( perceptual hash )都是按照这种算法来定性一张图片,如果真的每张图片都对应一种这种算法的 pHash 码,世界上是不是永远最多只能存在 2^64=18446744073709552000 张图片???

    目前 github 了一遍都找不到更好的 pHash 算法, V2 们有没有好点的 pHash 算法示例,有 php 代码更好,谢谢

    32 条回复    2017-02-18 18:38:34 +08:00
    whx20202
        1
    whx20202  
       2017-02-17 14:39:50 +08:00   2
    我毕业论文也搞了点图像,是结合应用那种的,我就随便说说

    很多图像检索的方法,尤其是比较老的,都是这样,把图像弄成一个向量,然后算欧氏距离来计算相似度。
    包括他文中说的 SIFT 也是搞成 128 维向量

    图片肯定是无穷无尽的,你如果使用更加”优秀“的算法,就会有更多的图像向量或者图像摘要

    我当时用的是词袋模型算法, 就是把图像提取 sift 特征,然后把特征点拿出来聚类,再用自然语言处理的方法,把特征点当做自然语言处理领域的 ”词“,然后搞倒排索引,就表示成向量了,最后通过欧氏距离来计算最近邻或者近似最近邻

    我记得还有一种算法 2016 年 CVPR 发的,人家只用了 16 位还是多少来着,但是算法很复杂,效果还可以。。。相似度也还不错
    rock_cloud
        2
    rock_cloud  
       2017-02-17 14:51:47 +08:00   1
    只能说这种算法只能分辨这么多种吧。。。然后你这个数也不对啊?
    baiyi
        3
    baiyi  
       2017-02-17 14:52:53 +08:00
    我前一阵子也研究了下图像识别,最近有项目了,就暂时搁浅了

    首先, 图片肯定是无穷无尽的......

    其次,还是有许多其他的算法的,http://www.ruanyifeng.com/blog/2013/03/similar_image_search_part_ii.html
    阮一峰老师的第二篇博文也讲解了其他算法

    最后,图像这块推荐下 opencv

    php 貌似不太适合把,用 python 或者 c++吧.opencv 对应的接口

    https://github.com/cnbailian/image-recognition
    我也是刚学,代码什么的也是丑陋.随便看一看吧
    iamzhuyi
        4
    iamzhuyi  
       2017-02-17 14:54:51 +08:00
    哈哈 我毕业论文也是关于这个的
    cnZary
        5
    cnZary  
       2017-02-17 14:55:30 +08:00
    只是你那个分辨率只能存在这么多张图片吧?
    murmur
        6
    murmur  
       2017-02-17 14:56:22 +08:00   1
    楼主这数学。。。
    一个图片按 640x 480 分辨率算,也就是这么多点,每个点的颜色可能取值为 255x255x255
    那么有多少种可能呢
    数量级都不对哦
    murmur
        7
    murmur  
       2017-02-17 14:57:49 +08:00   11
    楼主最好好好理解下特征是什么意思,特征提取是有损的,而且损失信息量相当大
    举个例子来说,满屋的青蛙有一只狗,你说有个东西没戴眼镜,我一眼就能找出来是啥
    但是万千世界你让我同样找这条狗,恐怕这信息就不够用了
    function007
        8
    function007  
       2017-02-17 14:58:49 +08:00
    散列是无限集对有限集,必然会有撞的啊。。
    mortal
        9
    mortal  
       2017-02-17 14:59:36 +08:00
    @murmur #7 有点暴力…
    ynyounuo
        10
    ynyounuo  
       2017-02-17 14:59:54 +08:00
    压缩成 8×8 大小的小图片
    取灰度平均值

    然后你会说只能存在 2 张图片?
    njwangchuan
        12
    njwangchuan  
       2017-02-17 15:13:31 +08:00
    https://github.com/jenssegers/imagehash

    实际项目中用于保存图片前 hash
    qian0206
        13
    qian0206  
       2017-02-17 15:17:05 +08:00
    @njwangchuan 保存图片前 hash 的话,对于滤镜处理或者降低分辨率的图片也能识别出来,这类图片的前 hash 也是一样么?求告知,谢谢
    whx20202
        14
    whx20202  
       2017-02-17 15:18:53 +08:00
    @wuhang89 找了半天没找到我说的那个
    倒是找到师妹讲的一个老的。。。 https://icycai.farbox.com/post/summary-of-ITQ
    算了不管了
    ETiV
        15
    ETiV  
       2017-02-17 15:22:03 +08:00 via iPhone
    啥样的脑洞能想出这种结论


    既然是 hash ,就肯定有碰撞呀
    BlackBerry
        16
    BlackBerry  
       2017-02-17 15:30:48 +08:00
    这么大的数也不小了,放心吧,没有那么多图片的
    Phariel
        17
    Phariel  
       2017-02-17 15:35:10 +08:00 via Android
    @murmur 蛤?暗中观察?
    neurocomputing
        18
    neurocomputing  
       2017-02-17 15:43:00 +08:00
    瞧你说的,要是没有 hash ,是不是世界就不存在了
    hash 不过都是从无限集到有限集的映射罢了
    misaka20038numbe
        19
    misaka20038numbe  
       2017-02-17 15:56:47 +08:00
    放心好了,要是不够了 hash 长度可以加的嘛。
    panlilu
        20
    panlilu  
       2017-02-17 16:05:15 +08:00
    @murmur #7 青蛙为什么会有眼镜?太暴力了。。
    flyingghost
        21
    flyingghost  
       2017-02-17 16:07:07 +08:00
    说到了一种(很简单)的图片相似计算方法,就是把一个图片压缩成 ( 8x8 )大小的小图片,对这 ( 64 ) 个像素进行遍历,取灰度平均值,每个像素点取和灰度值比较大小的布尔值 1 或者 0 ,最终生成一个 ( 64 )位大小的字符串作为其特征码。

    同理也可以说:

    说到了一种(稍微复杂点)的图片相似计算方法,就是把一个图片压缩成 ( 800x800 )大小的小图片,对这( 640000 )个像素进行遍历,取灰度平均值,每个像素点取和灰度值比较大小的布尔值 1 或者 0 ,最终生成一个( 640000 )位大小的字符串作为其特征码。

    咦?世界上的图片变多了?(大雾)
    droiz
        22
    droiz  
       2017-02-17 16:09:28 +08:00
    @murmur 老哥稳
    viator42
        23
    viator42  
       2017-02-17 16:26:04 +08:00
    以图找图还是没法分辨细节的东西,我上传一页本子谷歌只能认出这是漫画
    starvedcat
        24
    starvedcat  
       2017-02-17 16:30:38 +08:00
    肯定存在某个二进制排列,该数据为一张图片,其内容是你和[x]的交合场面( x 可为任何人)。只不过这样的图片你还没找到
    icebergSnow
        25
    icebergSnow  
       2017-02-17 16:35:54 +08:00 via Android   1
    @murmur 苟也有眼镜啊?!
    picasso250
        26
    picasso250  
       2017-02-17 17:01:38 +08:00
    你知道 2^64 多大吗?
    picasso250
        27
    picasso250  
       2017-02-17 17:03:52 +08:00
    恰巧和 IPv6 的地址数量一样多
    Kilerd
        28
    Kilerd  
       2017-02-17 18:57:35 +08:00 via iPhone
    全世界只有 26 个英文单词?
    ho121
        29
    ho121  
       2017-02-17 19:02:57 +08:00 via Android
    整个世界是不是只会经历 4294967296 秒?
    ragnaroks
        30
    ragnaroks  
       2017-02-18 09:59:52 +08:00
    @ho121 #29 对一般人来说可能是的,但有一个人例外
    realpg
        31
    realpg  
    PRO
       2017-02-18 10:02:07 +08:00
    如果一个系统采用 crc32 存密码,那么地球上只有 4294967296 种密码?
    QNLvw5fLfr7c
        32
    QNLvw5fLfr7c  
       2017-02-18 18:38:34 +08:00
    我觉得在所有图像中,有意义的图片很少很少,听说(目前为止)不到 100,000,000,000 ,更别说 2^64 了。
    因此使用散列进行匹配是可行的,就像两个人指纹不太可能相同一样。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2432 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 29ms UTC 00:19 PVG 08:19 LAX 16:19 JFK 19:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86