图像搜索的分析和理解
现在大火的人工智能更多时候是以别的名字进入公众视野的,主要是:语音识别,自然语言处理,计算机视觉,推荐系统等等。其中比较成熟的,我知道的应用有:
语音识别+自然语言处理:amazon echo,google assistant/home,siri,国内一大票智能音箱
计算机视觉:微博面孔专辑(商汤提供的 cv 能力),海康威视/格林深瞳的安防,拍立淘(手机淘宝里面的相机入口),百度识图(百度 app 里面的相机入口),Google Photo
推荐系统:手机淘宝主页往下翻有个栏目叫猜你喜欢,qq/网易音乐的每日推荐歌曲等
今天谈一谈图像搜索(Content based image retrieval)这个技术的落地产品。平时我们用的百度搜索或者 google,通常都是以文字作为关键字来进行搜索的,但是如果我们手上有一张照片,但是我们无法很好的描述照片中的内容,不能提取出对应的关键字,也就无法拿到我们想要的搜索结果,认知需求没有得到很好的满足。在卷积神经网络应用和计算机算力跟上之前,图像搜索一直处于“不可用”的状态,随着技术的发展,现在图像搜索已经比较好用了。
产品形态
图像搜索显产品入口是搜索框旁边的小相机。
拍立淘
找到入口之后,先看一下使用场景。
场景和问题:我手上有一个杯子(或者是印着我读不懂的外文的化妆品),我不知道这个杯子(化妆品)到底读做什么名字,功能是什么,也不能详细的描述他的颜色和外形然后去百度一下,但是我有认知需求,我想知道这个是什么东西,值多少钱,在哪里买。
在我知道拍立淘之前,或者时间退回到 2013 年及以前,我很有可能去百度知道,贴吧,天涯猫扑这种地方发个帖子,把图贴上去,请求场外观众的援助。
淘宝拍立得就能很好的解决这个问题。
使用过程还是比较简单的,即进入相机,拍照然后获得结果,值得注意的有几点:
结果页中每一个结果都是一个“宝贝”,列出了宝贝的标题和价格,点击进去是宝贝详情页
提供了简单筛选方式,包括按销量/综合排序,选择不同的类目,在当前结果中搜索结果,来使得用户更接近他们想要的结果
只能搜索到淘宝内部的商品结果,不能搜索到其他的淘宝生态内/外的内容,比如对于这个宝贝的买家秀或者评价/评测
淘宝内部的相同的图片或者相似的图片是非常多的,所以这里需要对重复或者高度相似的图片、宝贝进行去重
在编辑页中,使用了移动端卷积神经网络技术,自动框选出主体,以主体发起搜索,可以显著提高搜索结果的质量[1]
目前来看,拍立淘的主要业务为“以图片搜索淘宝内的宝贝”,不涉及到非淘宝内部的搜索,包括网络上的相关评论,评测,更多的相关图片等等。
百度识图
使用的场景和拍立淘类似,百度识图也是传入一张图片(拍照或者相册选取)然后获得相关的搜索结果,百度识图有以下特点:
搜索结果为全网,除开抓不到的数据,因为淘宝屏蔽了外部的爬虫,所以百度上是没有淘宝“宝贝”的数据,但是有京东的商品数据
某些图可以出现猜词,即上图中我搜索了一个象印的杯子,搜索结果页中出现了品牌“象印”,和“保温杯”等关键字
可以搜索到相似的图片,点击图片可以跳转到包含相似图的网页,用户可以从网页中获得信息
百度识图同样拥有端上卷积神经网络技术,可以主动框选主体以获得更好的搜索结果
Google 和 Bing 也都有图像搜索的业务,Google 叫做以图搜图,搜索的结果的质量也很高,但是入口有点隐蔽,在谷歌主页的右上角有一个 images,点进去以后搜索框有了一个相机的 icon,同样可以根据你上传的图片猜出这个东西是什么并给出一个关键字。
Google 为以图搜图做了一个单独的 app,在 17 年 IO 大会发布,18 年最新的 Android 系统上面有一个叫 Google Lens 的独立 app,应该算是以图搜图的独立 app。另外 Google Photo 的背后也使用了图像搜索的技术,现在只需要上传你的照片,个人无需做任何的事情,等着 Google 的模型跑一下结果,你就可以直接以文字为关键字,搜索自己的照片了。这个用起来很 6,可以用的关键词包括不限于毕业,身份证,游戏,耳机,这些关键词 Google 都能搜索出来不错的结果。虽然是以词搜图,但背后的机器学习的技术是相似的。
苹果在今年的 WWDC 也宣布在 iOS 12 里的相册也将拥有类似功能,不需要把照片上传的服务器,可以本地脱敏处理。
Bing 的图像搜索业务目前来看只能拿到相似图,搜索出来的结果比较弱,这里就不展开说了。
图像搜索的基本原理
这里会简单的介绍一个图像搜索的基本原理,受限于个人水平,介绍的技术拍立淘或者百度识图的技术会有差异或者写出来的内容有错误,欢迎在评论区指出。
图片来自于网络[2],我添加了一点注解,用来说明深度学习或者说卷积神经网络(以下简称 CNN)在图像搜索引擎里面是如何被用到的,也正是因为卷积神经网络在图像应用上的突破,今天的图像搜索才会变得可用。
从上图的左边开始看起,首先我们要做图像搜索的话,得有一个很大的图片数据库,我们希望数据库里面包括了网络上所有的图片,这样可以保证有结果
接着我们把这些图片的特征取出,这些特征是用来比较图片是不是相似的关键数据
把这些特征数据保存起来
从右边看起,输入一个我们想要搜索的图片
提取 query 图的特征
把 query 图的特征和数据库里面的特征对比,排序,然后拿到结果
这些是图像搜索的主要步骤。
更多详细内容请关注:https://ai.aliyun.com/imagesearch?spm=a2c6h.12873639.article-detail.4.132b56690wAyqP
评论