java中的接口是类吗
591
2022-11-04
【计算机视觉40例】案例11:以图搜图
以图搜图是搜索引擎网站和购物网站的必备功能。看到一件衣服很好看,把它拍下来,到购物网站上通过搜图就可以找到与它一样的款式。如1所示,左侧是一张裙子的照片,右侧是将其上传到某购物网站后,搜索得到的大量与该裙子相似的款式。
图1 以图搜图
我们可以通过图2观察以图搜图的基本原理和过程。
图2 基本原理
从图中可以看到,在检索图像时,先提取所有图像的特征值(感知哈希),然后比较检索图像和数据库中所有图像的特征值差值。数据库中和检索图像差值最小的图像,就是检索结果。
例如,图2中针对检索图像寻找相似图像时。图像库内第2行第1个图像的特征值489与检索图像的特征值462之差为27,是所有的差值中最小的,因此该图像就是检索结果。
从上述分析可以看出,检索的关键点在于找到特征值,并计算距离。这里涉及到图像处理领域中最关键的三个问题,分别是:
提取哪些特征。特征有很多,我们要找到有用的特征,这是关键的第1步;如何量化特征。简单来说就是要用数字来表示特征,让特征变为可计算的;如何计算距离。距离的计算有很多种不同的方式,我们要选择一种合适的距离计算方式,书中我们使用了汉明距离来衡量距离差值。
下面简要介绍特征提取、计算距离。
1特征提取
以图搜图时,我们需要有效地提取图像的特征值。书中采用了感知哈希值作为图像的特征值,该值能够有效地代表图像的特征。其提取过程如图3所示,主要包含:
缩小:将图像调整为8*8像素大小降维:将图像处理为一个64个长度的二值串。比较:该步骤将图像进行二值化处理。将图像的每个像素值与均值比较。大于均值的处理为1,小于等于均值的处理为0。减色:将图像处理为灰度值
上述过程得到的二值串作为图像的哈希值,参与到后续的图像检索中。
图3 哈希值
2距离计算
比较感知哈希值时,可以采用汉明距离来衡量二者的差异大小。具体来说,将两个感知哈希值不同的位的个数,作为二者的距离。例如,感知哈希值test值为“1011”:
感知哈希值x1,其值为“1010”。则test1与x1,二者仅仅在第4位上的这一位的值不同,因此二者的距离为1;感知哈希值x2,其值为“1011”。则test1与x2,二者完全相同,因此二者距离为0;感知哈希值x3,其值为“0010”。则test1与x3,二者在第1位、第4位上的值均不同,因此二者的距离为2;
以图搜图程序演示如图4所示,图中:
左侧是检索图像O右上侧是被检索的文件夹F右下侧是根据检索图像O从文件夹F中检索到的与图像O最相似的3幅图像
图4 以图搜图
在《计算机视觉40例——从入门到深度学习(OpenCV-Python)》一书中,从算法原理、实现流程等角度系统深入地介绍了该案例的理论基础和实现过程,并对具体的代码实现进行了细致的介绍与解释。欢迎大家阅读第11章《以图搜图》获取详细内容。
《计算机视觉40例——从入门到深度学习(OpenCV-Python)》在介绍Python基础、OpenCV基础、计算机视觉理论基础、深度学习理论的基础上,介绍了计算机视觉领域内具有代表性的40个典型案例。这些案例中,既有传统的案例(数字识别、答题卡识别、物体计数、缺陷检测、手势识别、隐身术、以图搜图、车牌识别、图像加密、指纹识别等),也有深度学习案例(图像分类、风格迁移、姿势识别、实例分割等),还有人脸识别方面的案例(表情识别、驾驶员疲劳监测、识别性别与年龄等)。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~