图像识别引擎-引擎收集知识地图~

图像识别引擎-引擎收集知识地图

识图如今搜索结果还是不够理想,有非常大的提升空间。以下介绍几个比較专业的图片搜索引擎。

1: https://images.google.com/ http://www.google.com/imghp (旧版:http://similar-images.googlelabs.com)

临时的替代品:http://54.250.200.50/imghp http://203.208.46.200/imghp

Google实验室类似图片搜索:输入一个关键词后,比如“bird”。返回的页面里面点击某个图片的以下的Similar images。运用Google类似图片搜索功能引擎,即刻为你把类似的图片所有搜索出来。展示给用户以便查看。

其准确率、相似率相对照较高。

Google图片相识搜索的原理

非常多人都用过Google 图片搜索功能。

你能够用一张图片,搜索互联网上全部与它相似的图片。

你输入网片的网址。或者直接上传图片,Google就会找出与其相似的图片。

以下这张图片是美国女演员Alyson Hannigan。

上传后。Google返回例如以下结果:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveW91dGhsenU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

这样的技术的原理是什么?计算机怎么知道两张图片相似呢?

依据Neal
Krawetz
博士的解释,原理很easy易懂。

我们能够用一个高速算法,就达到主要的效果。

这里的关键技术叫做"感知哈希算法"(Perceptual hash algorithm),它的作用是对每张图片生成一个"指纹"(fingerprint)字符串,然后比較不同图片的指纹。结果越接近。就说明图片越相似。

以下是一个最简单的实现:

第一步。缩小尺寸。

将图片缩小到8x8的尺寸,总共64个像素。

这一步的作用是去除图片的细节。仅仅保留结构、明暗等基本信息,摒弃不同尺寸、比例带来的图片差异。

第二步。简化色彩。

将缩小后的图片。转为64级灰度。也就是说。全部像素点总共仅仅有64种颜色。

第三步,计算平均值。

计算全部64个像素的灰度平均值。

第四步,比較像素的灰度。

将每一个像素的灰度,与平均值进行比較。大于或等于平均值,记为1;小于平均值,记为0。

第五步,计算哈希值。

将上一步的比較结果,组合在一起,就构成了一个64位的整数,这就是这张图片的指纹。组合的次序并不重要。仅仅要保证全部图片都採用相同次序即可了。

得到指纹以后。就能够对照不同的图片。看看64位中有多少位是不一样的。在理论上,这等同于计算"汉明距离"(Hamming distance)。假设不同样的数据位不超过5。就说明两张图片非常相似;假设大于10,就说明这是两张不同的图片。

详细的代码实现,能够參见Wote用python语言写的imgHash.py

代码非常短。仅仅有53行。

使用的时候,第一个參数是基准图片。第二个參数是用来比較的其它图片所在的文件夹,返回结果是两张图片之间不同样的数据位数量(汉明距离)。

这样的算法的长处是简单高速,不受图片大小缩放的影响,缺点是图片的内容不能变更。

假设在图片上加几个文字,它就认不出来了。所以,它的最佳用途是依据缩略图。找出原图。

实际应用中。往往採用更强大的pHash算法和SIFT算法,它们可以识别图片的变形。

仅仅要变形程度不超过25%,它们就能匹配原图。

这些算法尽管更复杂,可是原理与上面的简便算法是一样的,就是先将图片转化成Hash字符串,然后再进行比較。

2: http://tineye.com/ TinEye找图

TinEye是典型的以图找图搜索引擎,输入本地硬盘上的图片或者输入图片网址,就可以自己主动帮你搜索相似图片,搜索精确度相对来说还比較令人惬意。

3: http://cn.bing.com/images 微软bing识图

http://cn.bing.com/images/searchbyimage?FORM=IRSBIQ

cbir=sbi

imgurl=::$URL::

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveW91dGhsenU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

4: http://shitu.baidu.com 百度识图

5: http://image.so.com 360识图

http://st.so.com/stu?

a=list&imgkey=t0144cfa2e52a0870a2.jpg&tp=imgurl&src=image

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQveW91dGhsenU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" >

6. http://pic.sogou.com/ris?

query=[url]
搜狗识图

版权声明:本文博主原创文章。博客,未经同意不得转载。

时间: 2024-10-12 21:11:05

图像识别引擎-引擎收集知识地图~的相关文章

(转载)虚幻引擎3--基础知识

这是虚幻引擎3UDN的技术文档,共有六个章节.以下将分别把中文译本贴出来,方便懒人学习[偷笑]  一.虚幻引擎 3 基础知识 概述 -------------------------------------------------------------------- 有几个游戏性元素实际上是所有使用虚幻引擎3或虚幻开发工具包创建的项目所共有的.自定义这些元素可以创建出完全独特的.外观和行为符合期望的游戏.没有任何两个项目是相同的,尽管虚幻引擎提供了这些元素的默认实现,但是肯定需要对它们进行很大

【问题收集·知识储备】Xcode只能选择My Mac,不能选择模拟器如何解决?

网友问题:请问打开一个应用,只能选择My Mac,不能选择模拟器如何解决? 答案: 下面将问答过程记录如下: CHENYILONG Blog 请问打开一个应用,只能选择My Mac,不能选择模拟器如何解决? 网友的问题 09:59:32 请问打开一个应用,只能选择My Mac,不能选择模拟器如何解决? 我的回答 10:00:32 你打开的是别人的应用吧 网友的问题 10:00:36 对 我的回答 10:01:06 别人的应用,有时候打开xcode是不行的 网友的问题 10:01:22 那有没有什

Jenkins知识地图

这篇文章大概写于三个月前,当时写了个大纲列表,但是在CSDN上传资源实在不方便,有时上传了莫名审核不通过,如果以前有人上传过,也会导致上传 失败.现在把之前工作中找到的好东西和各位分享.现在不搞这些了,也算是个归档吧.内容主要涉及Hudson/Jenkins的使用,维护,以及插件开 发,开发的东西更多些吧. 首先说下Jenkins能干什么?说下两个典型的应用场景. 1. Git/Repo + Gerrit + Jenkins 打造强大的Android持续集成环境.用户上传代码到Gerrit进行c

如何制作一款HTML5 RPG游戏引擎——第一篇,地图类的实现

一,话说天下大事 前不久看到lufy的博客上,有一位朋友想要一个RPG游戏引擎,出于兴趣准备动手做一做.由于我研究lufylegend有一段时间了,对它有一定的依赖性,因此就准备将这个引擎基于lufylegend.暂时命名为lufylegendRPG.毕竟基于lufylegend,如果名称中不加上lufylegend这几个字的话,有点说不通啊...最近发布了0.1.0版,但是不理想,连一惯都是鼓励和赞赏我的lufy老先生都是出于真心的表示不满意.想了解0.1.0版的朋友可以看看这里(其实最好别看

Javascript模板引擎插件收集

为什么要用JS的模板引擎,打个比方,如果你要通过接口绑定数据,最终要加进去DOM中,我们普遍的做法就是不断的+,最终append进去,但是这样的做法就是后续人员压根就没法维护.所以这时模板引擎出来了.让每一个人都读懂一套规范的模板语言,使接手的人一看即懂. 模板引擎: baiduTemplate(百度) artTemplate(腾讯) juicer(淘宝) doT tmpl handlebars easyTemplate underscoretemplate mustache kissytemp

白鹭引擎Egret入门知识补充

<围住神经猫>的一夜蹿红,让一个h5游戏引擎也跟着火热起来了--egret. (官网传送门:http://www.egret-labs.org/) 安装和helloworld的demo官网给了很简明易懂的文档,这里就不啰嗦.不过官网给的helloworld的demo的背景图片,实在没法不让人不吐槽. 项目目录如下:需要关心的有两个文件夹:launcher.src. launcher 文件夹下面,需要关心的是 index.html文件,改文件是项目的入口.egret帮助建立的,自己可以自行修改里

MySQL引擎的相关知识

MySQL数 据库引擎取决于MySQL在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引 擎:ISAM.MYISAM和HEAP.另外两种类型INNODB和BERKLEY(BDB),也常常可以使用.如果技术高超,还可以使用MySQL++ API自己做一个引擎.下面介绍几种数据库引擎:     ISAM:ISAM是一个定义明确且历经时间考验的数据表格管理方法,它在设计之时就考虑到 数据库被查询的次数要远大于更新的次数.因此,ISAM执行读取操

互联网相似图像识别检索引擎 —— 基于图像签名的方式

源地址:http://grunt1223.iteye.com/blog/828192 一.引言 多媒体识别是信息检索中难度较高且需求日益旺盛的一个问题.以图像为例,按照图像检索中使用的信息区分,图像可以分为两类:基于文本的图像检索和基于内容识别的图像检索(CBIR:Content Based Image Retrieval).基于文本的图像检索完全不分析和利用图像本身的内容,其检索质量完全依赖于与图像关联的文字信息与图像内容的相关性,因此有必要引入基于内容的图像检索.本为主要讨论后者. 在计算机

今天我看了一个H5游戏EUI的例子,我都快分不清我到底是在用什么语言编译了代码了,作为刚刚学习H5游戏开发的菜鸟只能默默的收集知识

今天看了一个EUI的demo,也是接触H5游戏开发的第五天了,我想看看我能不能做点什么出来,哎,自己写果然还是有问题的.在看EUI哪一个demo的时候就遇见了一些摇摆不定的问题,我觉得提出来 1.toast 当时看见它的时候我不确定是不是我以为的那样,所以就百度了一下,果然它就是我印象中android里面的一种显示信息的机制.(ps:真的是一门汇聚大千语言的技术啊)toast是没有焦点的而且toast显示的时间有限,过一会儿就会自动消失.toast主要用于向用户显示提示消息.项目中它用了一个To