谈谈基于深度学习的图像搜索

本文涉及的产品
图像搜索,7款服务类型 1个月
简介: 本文介绍了人脸识别技术及其应用,其中详细描述了向量化和余弦相似度的概念。人脸识别通过摄像头获取面部信息并与数据库中的信息对比,判断用户身份。向量化包括基于特征和基于卷积神经网络的方法,而余弦相似度则用于计算两个向量之间的相似程度,值越接近1表示越相似。通过具体实例和公式推导,展示了如何计算向量间的余弦相似度。

1.引入

人脸识别(Human Face Recognition)是使用应用软件中鉴别软件的操作者是不是期待的操作者的一种普遍的技术,用户通过用户名和密码的方法正在逐渐被人脸识别的方法所取代。操作者通过摄像头获取使用软件者的面部信息,与存在数据库中面部基础信息进行比对,然后判断软件的操作者是不是期待的操作者。类似于这样的技术还有声音识别(通过声音鉴别发声者是不是你),视频识别(通过视频寻找你是不是在这个视频中)等。这些应用在人工智能深度学习中都属于向量搜索的技术范畴,现在给大家简单介绍一下向量搜索。

2.人脸识别的案例

一般而言基础信息中的图像、音频、视频信息通过向量化存储在数据库中。比如一张面部照片存储在数据库中是一个经过向量化处理过的数据,而且这个向量化数据高达上千维,比如A=[1.34,5.43,9.12,2.11,323.80,…,43.01,711.20];在使用这个软件的时候,获取的实时脸部图像信息也通过相同的向量化算法转为一个向量数据。比如是B=[2.56,7.43,6.43,2.28,78.68,…,120.04,11.37];然后获得向量A与向量B的余弦相似度进行辨别,如果余弦相似度接近1,表明人脸识别成功;否则认为识别失败。下面分别来介绍一项向量化和余弦相似度两个概念。

3.向量化

向量化是把图像、音频、视频信息转换为向量的方法。向量化的方法主要分为基于特征的向量化方法和基于卷积神经网络的向量化两种方法。

基于特征的向量化方法主要是通过提取图像的色彩、纹理、形状等特征,然后将这些特征转化为向量。由于基于特征的向量化方法在处理复杂、模糊的图像时效果不太理想,所以一般不使用。

基于卷积神经网络的向量化可以自动学习从原始像素到高级语义特征的映射关系,从而提取出更加复杂和抽象的特征。这些特征向量不仅包含了图像的底层信息,还包含了高级的语义信息,因此可以更好地表示图像的内容。

深入了解基于特征的向量化和基于卷积神经网络的向量化需要具备高等数学的知识,在这里不进行介绍,有兴趣的同学可以寻找相关资料学习。

4.余弦相似度

4.1余弦相似度与余弦相似度公式

余弦相似度即计算向量A与向量B夹角的余弦值,如果这个值接近1,表明被识别两个对象相似;否则认为识别两个对象不相似。余弦相似度公式为:

对于向量A与B,cos(θ)=A·B/|A|*|B|。

假设一个二维向量A与B:

向量A(x1,y1,…,m1);

向量B(x2,y2,…,m2);

向量A(x1,y1,…,m1)与向量B(x2,y2,…,m2)夹角为θ。

那么:

cos(θ)=A·B/|A|*|B|=(x1x2+y1y2+…+m1m2)/(x12+y12+…+m12)1/2*(x22+y22+…+m22)1/2

4.2 一个例子

比如向量A[1,2,3],向量B[4,5,6],那么

代码语言:javascript

复制

cosθ=A·B/|A|*|B|

由于:

代码语言:javascript

复制

A·B=1*4+2*5+3*6=4+10+18=32
|A|*|B|=(1*1+2*2+3*3)1/2*(4*4+5*5+6*6)1/2
=(1+4+9)1/2*(16+25+36)1/2
=141/2*771/2
=3.74*8.77
=32.8

那么:

代码语言:javascript

复制

cosθ=A·B/|A|*|B|=32/32.8=0.98

所以向量A[1,2,3]与向量B[4,5,6]余弦相似度接近于1,这两个向量相似。

4.3余弦相似度公式的证明

下面分别通过平面几何和解析几何的方法来证明两个二维向量的余弦相似度公式。

4.3.1平面几何方法来证明

构造如下图形:

通过长边,得知:

代码语言:javascript

复制

cos(α-β)=cos(θ)=cos(α)cos(β)+sin(α)sin(β)

对于向量A(x1,y1)夹角为α

所以

代码语言:javascript

复制

cos(α)=x1/|A|; sin(α)=y1/|A|

对于向量B(x2,y2)夹角为β

所以:

代码语言:javascript

复制

cos(β)=x2/|B|; sin(β)=y2/|B|

因此:

代码语言:javascript

复制

cos(α)cos(β) = x1/|A|*x2/|B|=x1x2/|A||B|
sin(α)sin(β) =y1/|A|*y2/|B|=y1y2/|A||B|
cos(θ)=cos(α)cos(β)+sin(α)sin(β)
      =x1x2/|A||B|+y1y2/|A||B|
      =(x1x2+y1y2)/|A||B|
      =A·B/|A||B|

4.3.2解析几何方法来证明

如下图所示:

对于向量A(x1,y1)夹角为α,对于向量B(x2,y2)夹角为β。

现在让向量A(x1,y1)与向量B(x2,y2)逆时针旋转β(由于β是逆时针方向的。现在顺时针方向旋转β角度,所以为逆时针旋转-β角度),使得向量B与X轴重合。

A(x1,y1) 顺时针旋转β后得到:

代码语言:javascript

复制

A′(x1cos(-β)-y1sin(-β),x1sin(-β)+y1cos(-β))
B′(|B|,0)

由于

代码语言:javascript

复制

cos(-β)= cos(β);sin(-β)=- sin(β)

所以

代码语言:javascript

复制

A′(x1cos(β)+y1sin(β),-x1sin(β)+y1cos(β))
B′(|B|,0)

A′与B′的夹角为α-β即θ。

所以

代码语言:javascript

复制

cos(θ)=(x1cos(β)+y1sin(β))/|A|

由于

代码语言:javascript

复制

cos(β)= x2/|B|
sin(β)= y2/|B|
cos(θ)=(x1cos(β)+y1sin(β))/|A|
      =(x1x2/|B|+y1y2/|B|)/|A|
      =(x1x2+y1y2)/|A||B|
       = A·B/|A||B|
目录
相关文章
|
机器学习/深度学习 存储 搜索推荐
深度学习表征的不合理有效性——从头开始构建图像搜索服务(一)
还在为搜索引擎的工作原理感到困惑吗?看完本篇就可以自己动手构建搜图服务了。
5159 1
|
机器学习/深度学习 搜索推荐 计算机视觉
深度学习表征的不合理有效性——从头开始构建图像搜索服务(二)
还在为搜索引擎的工作原理感到困惑吗?看完本篇就可以自己动手构建搜图服务了。
2411 0
|
12天前
|
机器学习/深度学习 传感器 数据采集
深度学习在故障检测中的应用:从理论到实践
深度学习在故障检测中的应用:从理论到实践
57 5
|
4天前
|
机器学习/深度学习 网络架构 计算机视觉
深度学习在图像识别中的应用与挑战
【10月更文挑战第21天】 本文探讨了深度学习技术在图像识别领域的应用,并分析了当前面临的主要挑战。通过研究卷积神经网络(CNN)的结构和原理,本文展示了深度学习如何提高图像识别的准确性和效率。同时,本文也讨论了数据不平衡、过拟合、计算资源限制等问题,并提出了相应的解决策略。
36 19
|
4天前
|
机器学习/深度学习 传感器 人工智能
探索深度学习在图像识别中的应用与挑战
【10月更文挑战第21天】 本文深入探讨了深度学习技术在图像识别领域的应用,并分析了当前面临的主要挑战。通过介绍卷积神经网络(CNN)的基本原理和架构设计,阐述了深度学习如何有效地从图像数据中提取特征,并在多个领域实现突破性进展。同时,文章也指出了训练深度模型时常见的过拟合问题、数据不平衡以及计算资源需求高等挑战,并提出了相应的解决策略。
39 7
|
14天前
|
机器学习/深度学习 自动驾驶 算法
深度学习在图像识别中的应用
本文将探讨深度学习技术在图像识别领域的应用。我们将介绍深度学习的基本原理,以及如何利用这些原理进行图像识别。我们将通过一个简单的代码示例来演示如何使用深度学习模型进行图像分类。最后,我们将讨论深度学习在图像识别领域的未来发展趋势和挑战。
|
14天前
|
机器学习/深度学习 数据采集 算法
深度学习在图像识别中的应用与挑战
本文探讨了深度学习技术在图像识别领域的应用,重点分析了卷积神经网络(CNN)的基本原理、优势以及面临的主要挑战。通过案例研究,展示了深度学习如何提高图像识别的准确性和效率,同时指出了数据质量、模型泛化能力和计算资源等关键因素对性能的影响。
|
14天前
|
机器学习/深度学习 计算机视觉
深度学习在图像识别中的应用与挑战
本文深入探讨了深度学习技术在图像识别领域的应用及其面临的挑战。通过分析深度学习模型如卷积神经网络(CNN)的工作原理,我们揭示了这些模型如何有效地处理和识别图像数据。同时,文章也指出了当前深度学习在图像识别中遇到的一些主要问题,包括过拟合、数据集偏差和模型解释性等,为读者提供了对这一领域全面而深入的理解。
|
15天前
|
机器学习/深度学习 计算机视觉
深度学习在图像识别中的应用与挑战
本文深入探讨了深度学习技术在图像识别领域的应用,分析了当前主流的深度学习模型及其在图像识别中的优势和面临的挑战。通过具体案例分析,揭示了深度学习如何推动图像识别技术的边界,并讨论了未来可能的发展方向。
31 4
|
14天前
|
机器学习/深度学习 人工智能 算法
深度学习在图像识别中的革命性应用####
本文不采用传统摘要形式,直接以一段引人入胜的事实开头:想象一下,一台机器能够比人类更快速、更准确地识别出图片中的对象,这不再是科幻电影的情节,而是深度学习技术在图像识别领域带来的现实变革。通过构建复杂的神经网络模型,特别是卷积神经网络(CNN),计算机能够从海量数据中学习到丰富的视觉特征,从而实现对图像内容的高效理解和分类。本文将深入探讨深度学习如何改变图像识别的游戏规则,以及这一技术背后的原理、关键挑战与未来趋势。 ####
39 1
下一篇
DataWorks