无意摘花
这个作者很懒,什么都没留下…
展开
-
图片识别——需求篇
最近由于工作的关系,学习了一些关于图片识别的知识,并成功用于解决实际问题当中,特此一一记录下来,以备后用,同时希望对大家有用。场景 企业端用户在注册时,会上传一下公司的Logo。上传的步骤是:选择本地Logo图片,点上传,图片被上传至公司图片服务器(此时这张图片有了一个id:id_a);由于用户的图片尺寸不一定适合网页的展示,因此要用户做一下截取并保存(此时这张图片有了新的id:id_b),图片服务器会根据这张图片,缩略为大中小等多个长图以适用不同场景的页面展示使用。数据库里把id_b...原创 2020-05-18 19:50:50 · 2297 阅读 · 0 评论 -
图片识别——均值哈希算法
均值哈希算法(Average hash algorithm,AHA)第一次是从著名的阮一峰阮老师的博文《相似图片搜索的原理》看到的。而此篇文章与阮老师也很类似Looks Like It - The Hacker Factor Blog。这里不对原谅做摘抄,有兴趣的自己看一下,在此对学习过程中的心得和遇到过的问题做一下总结。 均值哈希算法,是感知哈希算法中最简单的一种,基本原理是对图片降频。对于图片,高频有很多细节,如颜色、亮度、透明度等等,而低频丢弃细节,只有图像结构。算法步骤 ...原创 2020-05-18 19:34:44 · 4408 阅读 · 1 评论 -
图片识别——感知哈希算法
所谓感知哈希算法(Perceptual hash algorithm,PHA),它是用于对多种格式的数据生成一个指纹的算法。当然本文只讨论图片格式。感知哈希不同于密码哈希(如md5云云),它对于相似特征的输入,会有相似的输出;而密码哈希,依赖于雪崩效应,对于非常微小的输入,都会有完全不同的输出。感知哈希算法被广泛应用于网络上的侵权查找,还有数字取证,因为它有能力可以发现两个相似的数据(根据比特位对比)。Perceptual hashing - Wikipedia、Looks Like It - Th...原创 2020-05-18 19:37:44 · 4328 阅读 · 0 评论 -
图片识别——差异哈希算法
差异哈希算法(Different Hash Algorithms,dHash),像aHash和pHash一样,dHash易于实现,相比于它的简单,其实它的识别更为准确。作为一种感知算法的实现,dHash比aHash相近,但比aHash效果更好。aHash关注于平均值,pHash关注频率模式,dHash则基于渐变。下面介绍下dHash算法的工作原理。算法步骤缩小尺寸。最快速去掉高频和细节的办法就是缩小民族教育。在这里,收缩到9*8的大小,以便它有72的像素点(之后会解释为什么这样)。通过忽略...原创 2020-05-18 19:45:27 · 2141 阅读 · 0 评论 -
图片识别——三种哈希算法性能与准确度比较
前面几篇文章对图片的三种哈希算法做了简单的介绍:均值哈希算法,感知哈希算法,差异哈希算法。本篇将对上面算法做一个总结。并对在性能方面做些对比。性能和准确度 目前有个超过150,000张图片的实验,有几张已知出现次数的待查找测试图片。比如一张图片(针)在150,000张图片(草堆)中出现一次,另外一张出现两次,第三张测试图片出现了32次。 分别使用aHash、pHash、dHash三种算法在这一“草堆”查找一只“针”。为了作比较,没有预先缓存图片库中的任何哈希值。比较值(汉明距离...原创 2020-05-18 19:47:35 · 3374 阅读 · 0 评论 -
图片识别——汉明距离
汉明距离是以理查德·卫斯里·汉明的名字命名的。在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。 例如: 1011101 与 1001001 之间的汉明距离是 2。 2143896 与 2233796 之间的汉明距离是 3。 "toned" 与 "roses" 之间的汉明距离是 3。 汉明重量是字符串相对于同样长度的零字符串的汉明距离,也就是说,它是字符...原创 2020-05-18 19:48:38 · 1302 阅读 · 0 评论 -
汉明距离——提高海量查询性能的方法
在前面讨论的三种图片识别的哈希算法,最后都是通过比较哈希的相似度,即汉明距离实现的。虽然比较两个hash值的汉明距离非常快,但受不住数据的爆发式增长,在海量的数据中找出两个相似的hash值,性能也会慢慢变差,显然这种最基本的顺序查找,无法扩展到数以亿计的数据中。 在图片的识别中,汉明距离在0~10之间认为是相似的。如果采用顺序查找,查询完的次数为1万次。算法原理 如果把hash值分成11份,那么两个hash值相同,则必有一块区域是完全相同的。这个分法不太科学,我们可以把has...原创 2020-05-18 19:49:33 · 498 阅读 · 0 评论