首页 > 作文

图片识别搜索

更新时间:2023-03-23 13:45:03 阅读: 评论:0

罗平-捐书倡议书

图片识别搜索
2023年3月23日发(作者蕾丝女同 :车的档位)

相似图⽚搜索算法介绍

前⾔

之前对图⽚聚类有⼀丢丢的研究,最近发现,使⽤⼀些相似图⽚搜索算法也可以实现图⽚聚类的⽬标:将同类别或差不多的图⽚聚在⼀起。

所以整理出相似图⽚搜索算法介绍这篇⽂章,主要介绍AutoEncoder、badCNN、Hash等算法,细分⼜包括:AutoEncoder、

SiameNetwork、2-channel、Central-surroundtwo-streamnetwork、aHash、pHash、dHash等算法。

AutoEncoder

AE作为⼀种⽆监督算法,通过encode和decode两个过程实现,当encode和decode过程均为⼀层时,AE很类似PCA;多层时,⼜有些类

似神经⽹络。

如上图所⽰,code左侧的为encode层,右侧为decode层,⽬的是使得输⼊的x和输出的x_head越接近越好,所以在误差反向传播时需要

优化x和x_head的差异值。通过encode和decode两个过程,AE可以提取图⽚特征,不断的训练之后就可以通过得到的特征参数对相似图

⽚进⾏搜索。AutoEncoder详细介绍。

我的实现了AutoEncoder对MNIST数据集的特征提取;实现了AutoEncoder对相似图⽚的搜索。

BadCNN

这个板块中的算法来⾃,主要介绍了SiameNetwork、2-channel、Central-surroundtwo-streamnetwork、SSP⼏种算法,并对

⽐他们之间的联系和区别。

SiameNetwork

这个算法最初⽤于⼿写签字的识别,之后⼜应⽤在相似图⽚的处理上⾯,如下图所⽰,patch1和patch2为输⼊图⽚,两张图⽚分别经过卷

积层(包括卷积、ReLU、最⼤池化等过程),得到两个特征问客 向量,接着进⼊黄⾊的全连接层,最后输出两个图⽚的相似度。在Siame

Network算法中,两个patch在卷积层中的权值共享。

论⽂中有对SiameNetwork算法进⾏改梦到被打 进,变为Pudo-siame算法,这个算法与SiameNetwork的区别为:卷积层中的权值不共

享,在下图中间部分可以看到。

2-channel

channel这个词最先是在图⽚灰度上⾯提到的,像MNIST数据集,图⽚都是⿊⽩的,channel为1,彩⾊图⽚channel为3,分为R、G、B三

个channel,顾名思义,这个算法就是由两个channel组成,这两个channel就是要⽐较的两张图⽚,如下图所⽰,与上⾯Siame

Network算法的不同之处在于,这个算法合并了上⾯的两个卷积层,使两张图⽚编程⼀张,举个例⼦,有两张(1,32,32)的⿊⽩图

⽚,放在这个算法中,就相当于是对卷积层输⼊⼀个(2,32,32)的图⽚,然后在经过⼀层全连接,输出⼀个值,这个输出的值就表⽰

两张图⽚的差异。

Central-surroundtwo-streamnetwork

这个算法在2-channel的基础上进⾏了改进,对⽐上下两张图,如果不考虑右侧蓝⾊块,仅考虑左侧的结构,和2-channel是⼀样的,这个

算法的改进之处在于:

⾸先,左侧输⼊的图⽚不再是原图,⽽是经过了处理,如图所⽰,经过了下采样,使得图像变⼩,Paper中介绍的原图patch⼤⼩为

64*64,杰瑞简笔画 那么在左侧的输⼊为32*32。其次,右侧的输⼊图⽚为原始图⽚的中⼼部分,⼤⼩也是32*32,这样⼀来,左右两侧的输⼊图⽚

⼤⼩相等。

SSP

我们平时的输⼊图⽚多为32*32、64*64、128*128这种,图⽚的长和宽都是确定的,如果原始图⽚的长和宽不确定,我们使⽤前需要进

⾏预处理,这样就影响了图⽚的精度,SSP算法就是为了解决这个问题。

HashMethod

Hash算法作为⼤多图⽚搜索引擎的核⼼算寿字书法 法,其准确率和效率均很⾼,本板块将介绍Hash的三种核⼼算法:aHash、pHash、dHash。

aHash

此算法是基于⽐较灰度图每个像素与平均值来实现的。

步骤:

1.缩放图⽚:为了保留结构去掉细节,去除⼤⼩、横纵⽐的差异,把图⽚统⼀缩放到8*8,共64个像素的图⽚。

2.转化为灰度图:把缩放后的图⽚转化为256阶的灰度图。

3.计算平均值:计算进⾏灰度处理后图⽚的所有像素点的平均值。

4.⽐较像素灰度值:遍历灰度图⽚每世界上最长的蛇 ⼀家庭用电安全 个像素,如果⼤于平均值记录为1,否则为0.

5.得到信息指纹:组合64个bit位,顺序随意保持⼀致性即可。

6.对⽐指纹:计算两幅图⽚的指纹,计算汉明距离(从⼀个指纹到另⼀个指纹需要变⼏次),汉明距离越⼤则说明图⽚越不⼀致,反之,汉

明距离越⼩则说明图⽚越相似,当距离为0时,说明完全相同。(通常认为距离>10就是两张完全不同的图⽚)

pHash

平均哈希算法过于严格,不够精确,更适合搜索缩略图,为了获得更精确的结果可以选择感知哈希算法,它采⽤的是DCT(离散余弦变换)

来降低频率的⽅法

步骤:

1.缩⼩图⽚:32*32是⼀个较好的⼤⼩,这样⽅便DCT计算

2.转化为灰度图:把缩放后的图⽚转化为256阶的灰度图。(具体算法见平均哈希算法步骤)

3.计算DCT:DCT把图⽚分离成分率的集合

4.缩⼩DCT:DCT是32*32,保留左上⾓的8*8,这些代表的图⽚的最低频率

5.计算平均值:计算缩⼩DCT后的所有像素点的平均值。

6.进⼀步减⼩DCT:⼤于平均值记录为1,反之记录为0.

7.得到信息指纹:组合64个信息位,顺序随意保持⼀致性即可。

8.对⽐指纹:计算两幅图⽚的指纹,计算汉明距离(从⼀个指纹到另⼀个指纹需要变⼏次),汉明距离越⼤则说明图⽚越不⼀致,反之,汉

明距离越⼩则说明图⽚越相似,当距离为0时,说明完全相同。(通常认为距离>10就是两张完全不同的图⽚)吉他初学

dHash

相⽐pHash,dHash的速度要快的多,相⽐aHash,dHash在效率⼏乎相同的情况下的效果要更好,它是基于渐变实现的。

步骤:

1.缩⼩图⽚:收缩到9*8的⼤⼩,⼀遍它有72的像素点

2.转化为灰度图:把缩放后的图⽚转化为256阶的灰度图。(具体算法见平均哈希算法步骤)

3.计算差异值:dHash算法⼯作在相邻像素之间,这样每⾏9个像素之间产⽣了8个不同的差异,⼀共8⾏,则产⽣了64个差异值

4.获得指纹:如果左边的像素⽐右边的更亮,则记录为1,否则为0.

参考资料

本文发布于:2023-03-23 13:45:01,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/zuowen/583a82600fa15b843e862f526c29fbaa.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

本文word下载地址:图片识别搜索.doc

本文 PDF 下载地址:图片识别搜索.pdf

相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图