2019杭州云栖大会大师零距离大咖有约,达摩院高级算法专家渊捷带来以“看图时代:图像搜索与识别技术的迭代”为题的演讲。本文以拍立淘为例对大规模图像搜索和识别技术以及在图像搜索中的应用进行了详细的描述,另外,还对图像的实拍图匹配和海量数据这两大挑战的解决方案进行了阐述。
视频直播回顾
以下为精彩视频内容整理:
阿里巴巴数字生态系统
在阿里巴巴的整个生态系统中,包括电商、数字娱乐、物流、本地服务中,无时无刻都在产生着大量的数据。借助阿里云这个大规模平台,以及这个平台上先进的AI相关技术,可以对这些大数据进行一个实时的处理,从而可以不断的提升商品的价值和用户的使用形态,以及能够不断的创造用户的价值。
接下来以电商领域中的拍立淘AI产品为例,对看图时代的图像搜索与识别技术的迭代进行分享和介绍。
拍立淘
首先介绍一下拍立淘是什么,拍立淘是一项基于深度学习以图搜图的图像系统,包括图像的搜索与识别。拍立淘包含阿里巴巴所有商品的图像数据,而且一个商品可能有多个图像。目前拍立淘可以通过手机打开淘宝,然后点击右上角摄像的图标进入。拍立淘每天有2000万的用户进行访问,这些用户会将他们想要搜索的图片放到拍立淘进行搜索。
为什么需要图像搜索
为什么需要图像搜索呢?由于传统的搜索都是基于文字进行搜索的,而在电商领域有许多非标准的商品,例如衣服、鞋子、包、挂饰很难通过文字精准的描述出来是什么。比如想要搜索图中的包,用文字搜索就是输入“红色的真皮手提包”,可以看到搜出来的东西和自己想要的并不一样,总会有很多的差别。但是用以图搜图的形式进行搜索的话,就可以精准的描述商品,同样可以精准的搜索出自己想要的商品。
应用场景
以下是以图搜图的几种比较典型的场景:
场景一:第一个场景是街拍场景,比如说在街上看到别人穿的衣服,想要买同款,就可以拍下来进行搜索购物了。
场景二:第二个场景是网络爆款场景,比如说看到微信朋友圈、微博有很多人分享这个商品,如果想要买同样的商品,就可以通过拍立淘进行搜索和比价。
场景三:第三个场景是海淘场景,当我们在海外时,可能碰到好多不认识的牌子,这样就可以通过拍立淘进行拍照搜索获取信息。
拍立淘发展历程
拍立淘是从2014年开始上线的,到现在已经有五年的历程了。最开始拍立淘要解决的是识别图像难的问题。随着用户的需求和时间的推进,拍立淘团队为了能够不断的迭代线上的效果,开始不断的扩大数据规模,以及扩大引擎容量。同时,团队也不断地对用户反馈数据和可点击数据进行挖掘,用以提高整个系统的响应速度。
接下来讲一下为什么需要对图像进行识别,对于搜索而言,其实是不能理解用户传的图像是什么,只能找出相近的图像。但是如果有了识别能力,那么就可以告诉计算机是什么,进而搜索到对应的商品。
拍立淘支持的类目
这是拍立淘的类目,类目包括服饰类、包类、鞋类、装饰类等等,在淘宝上成交比较多的类目就是服饰类。
拍立淘效果展示
为了比较清晰的展示算法能力,接下来对拍立淘效果展示示例进行详细介绍。
示例一:示例一是一个连衣裙实例,拍立淘能够对不是正面拍出的连衣裙图像进行识别,进而得出连衣裙图像的类目。
示例二:示例二是一个包的实例,很明显这个包的图像是倒着拍的,传统的算法很难识别出是包,但是基于深度学习的算法就能够解决这个难题。
示例三:示例三是一个不均匀光照的鞋子图像,通过算法也可以找到同款。
示例四:在示例四这种情况下,我们并不难找出同款,我们这个有很强的语义信息和表达能力,能够容易的找到相似的款式。
示例五:示例五是一个海淘的示例,算法能够比较准确的对带有标签的保健品、药品等商品进行识别。
以图搜图流程
接下来讲一下拍立淘以图搜图的流程,其实对一个搜索而言,都会有一个在线和离线的搜索过程。离线就是把候选的图像建立一个数据库,然后进行一个入库和删除的操作,当一个离线的图像要进库时,首先要做一个离线的检测,因为有可能图像中既有衣服又有眼镜,如果检测到是衣服,那么接着就需要对衣服进行一个特征提取,特征提取会将图像数据转换成一系列的数字,接着将两个图像之间进行一个计算,差值越小,代表两张图越相似。
挑战一:实拍图匹配
怎么进行实拍图匹配呢?商品的图像搜索会有两种图片,其中离线的是比较高质量的图像,因为离线的图像都是模特在摄影棚里用高端的相机拍的,可以看到商家的图像都是高质量精美的图片。但是用户所拍的上传的图像会出现很多低质量的图片,所以说识别图像匹配是一个需要解决的关键性问题。
Deep ranking
为了解决图像匹配的问题,采用了深度学习中的Deep ranking方法。若想要将一个识别搜索或者其它AI系统做到极致,首先需要大量的数据,而这些数据可以通过用户的交互行为来获得。例如用户上传了一个图像,经过系统检测后系统会反馈给用户一些图像,用户点击的图像会比没点击的图像相似度要高,我们就可以拿这个数据作为特征训练的监督的信息。接着把用户上传的图像和用户点击的一个图像还有用户没有点击的一个图像一起传送到共享CNN网络中,然后经过多层的特征提取,就可以得到数据特征的数据,这就是所谓的训练的基本框架。但这个框架有一个致命的问题,因为我们一个样本涉及到三幅图,导致计算量是很大的,针对于此,研发了一种大规模数据分布式训练。
大数据分布式训练
在大规模分布式训练中,数据的运行模式中需要N个机器,每个机器中都含有数据,每个机器中独立的数据经过CNN网络的特征提取后,会把所有的特征汇集到一台总机器上,这样做的好处就是能够更多的构造副样本,并且它们之间可以共享,这样就可以更高效的运用数据,进而提高运算速度。
虚拟ID
训练过程中看不到全部图像,只能看到局部图像的问题,因此导致训练效率比较低的问题。针对这个问题提出了虚拟ID训练,虚拟ID训练会给图像标注一个虚拟label,然后以label作为分类监督的信息,接着把CNN网络中的响应拿出来进行比较。用户在点击商品的两个图时,我们会认为这两个图像在某种程度上是有一定的相似度。因此,让手机用户点击所有的图像时形成一个编码,然后把图像的label做一个聚类。这个训练不仅速度比上文中的大数据分布式训练速度提升十倍以上,而且训练效果能达到90%以上。
挑战二:海量数据
图像搜索与识别技术的第二个挑战就是海量数据的挑战,拍立淘有高达30亿的图片,对图片逐一对比是做不到的,因此需要对这些向量引擎进行聚类操作,聚类操作会产生聚类标码,若标码一致就搜索,标码不一致不搜索。
图像搜索云产品
除了拍立淘是手机淘宝的应用,同样在去年2月份还发布了图像搜索的云产品。同时,在海外还有了第一个客户THE ICONIC,它是一个卖包、鞋子的网站。
纺织图像搜索
除了商品搜索,也把图像搜索扩展到了其它领域,例如纺织图像搜索。
万物识别
图像搜索并不能让计算机知道是什么,要想让计算机知道是什么,就还需要对图像进行识别,这就需要算法做支撑,在拍立淘上已经能够对车、宠物等进行搜索与识别,也就意味着万物识别已经在路上。