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

2017-02-17 14:27:11 +08:00
 Reign

刚刚看了一下阮一峰老师的博文: 相似图片搜索原理 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 代码更好,谢谢

6838 次点击
所在节点    程序员
32 条回复
whx20202
2017-02-17 14:39:50 +08:00
我毕业论文也搞了点图像,是结合应用那种的,我就随便说说

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

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

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

我记得还有一种算法 2016 年 CVPR 发的,人家只用了 16 位还是多少来着,但是算法很复杂,效果还可以。。。相似度也还不错
rock_cloud
2017-02-17 14:51:47 +08:00
只能说这种算法只能分辨这么多种吧。。。然后你这个数也不对啊?
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
2017-02-17 14:54:51 +08:00
哈哈 我毕业论文也是关于这个的
cnZary
2017-02-17 14:55:30 +08:00
只是你那个分辨率只能存在这么多张图片吧?
murmur
2017-02-17 14:56:22 +08:00
楼主这数学。。。
一个图片按 640x 480 分辨率算,也就是这么多点,每个点的颜色可能取值为 255x255x255
那么有多少种可能呢
数量级都不对哦
murmur
2017-02-17 14:57:49 +08:00
楼主最好好好理解下特征是什么意思,特征提取是有损的,而且损失信息量相当大
举个例子来说,满屋的青蛙有一只狗,你说有个东西没戴眼镜,我一眼就能找出来是啥
但是万千世界你让我同样找这条狗,恐怕这信息就不够用了
function007
2017-02-17 14:58:49 +08:00
散列是无限集对有限集,必然会有撞的啊。。
mortal
2017-02-17 14:59:36 +08:00
@murmur #7 有点暴力…
ynyounuo
2017-02-17 14:59:54 +08:00
压缩成 8×8 大小的小图片
取灰度平均值

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

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


既然是 hash ,就肯定有碰撞呀
BlackBerry
2017-02-17 15:30:48 +08:00
这么大的数也不小了,放心吧,没有那么多图片的
Phariel
2017-02-17 15:35:10 +08:00
@murmur 蛤?暗中观察?
neurocomputing
2017-02-17 15:43:00 +08:00
瞧你说的,要是没有 hash ,是不是世界就不存在了
hash 不过都是从无限集到有限集的映射罢了
misaka20038numbe
2017-02-17 15:56:47 +08:00
放心好了,要是不够了 hash 长度可以加的嘛。
panlilu
2017-02-17 16:05:15 +08:00
@murmur #7 青蛙为什么会有眼镜?太暴力了。。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/341184

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX