朱晓龙 ( xiaolongzhu )
本文作者:朱晓龙博士,2015 年毕业于中国香港大学,主攻计算机视觉和机器学习方向,涉及物体检测,位姿估计,人脸特征点定位,3D 视觉等课题。本科期间参与北京大学智能车环境感知项目,基于 LIDAR 的图像理解工作发表在机器人顶级会议上。2015 年底加入腾讯,在 TEG 内部搜索部工程平台中心参与深度学习平台的开发与应用。长按以下二维码,在腾讯KM上查看本文
Introduction: 交互方式决定未来
云对雨,雪对风,晚照对晴空。——《声律启蒙》
随着设备的迭代,数据的形态也越来越丰富。PC 时代的键鼠,带来了文字输入;移动设备的普及,使得语音和图像更易获取。摄像头带来了海量的图像和视频,在许多场景下,这些数据极具检索价值。另一方面,不同的交互方式,生产着不同形态的信息,相对应也需要不同的处理方式。相比理解文字或一维信号语音来说,图像的理解更具挑战。怎样从图像中提取有价值的信息,一直是计算机视觉所要解决的重要问题。世人都说 2015 年是 AI 的元年,那么 2016 年 AI 已满岁,是时候通过眼睛去探索这个世界了。内搜在文字处理和搜索上浸淫多年,在 AI 领域的积累,始于文字,又不止于文字,面对新的图像场景,再次起航,开发了一套基于兴趣区域理解的图像垂直检索框架。
图:交互方式的变化产生着不同模态的数据
Review: 两条线的再次碰撞
易有太極,是生兩儀。兩儀生四象,四象生八卦。——《易传》
图像检索技术兴起于 90 年代。在这短短的二十几年之中,学界和业界相互影响,推动着检索技术的发展。我们在这里简单地将其归类为四代:1. 第一代,直方图时代。从最初的颜色直方图 [1],到纹理特征 [2],再到 gist [3], Tiny Image [4],都是在全局上去描述图像的视觉特性。这些方法对于视觉上一致的图片可以进行很好的描述,然而成像条件稍作变化,在检索效果上就会相差很大。2. 第二代,词袋时代。千禧年后,文本检索的 Bag of Words 模型大行其道。CV 界受到其启发,提出了 Bag of Features 模型 [5],开始尝试描述图像中物体的局部特征,强调对拍照环境的不变性。这些局部描述子,开启了地标建筑,视频,图书,唱片等细分领域的精确检索。3. 第三代,物体检测时代。DPM [6] 的成功,一方面刷新了经典物体识别数据集如 PASCAL VOC 07 / 12上的新纪录,另一方面也催生出了基于物体检测识别的图像检索新思路,使很多商品检索系统成为可能。业界代表作如在 KDD2015 大放光彩的 Pinterest 视觉搜索 [7]。它定义了框选区域的检索交互新方式,完成了从产品检索到标注的闭环。4. 第四代,深度学习时代。Deep Learning 在 ImageNet [8],MSCOCO [9] 等大规模数据集上每一年都有振奋人心的结果。这里的玩家,不但有 Google, Microsoft, Facebook, Yahoo, Baidu 等老牌劲旅,也有 Yelp, Pinterest, Snapchat 等视觉新贵。近两年的发展,无论从物体检测到特征描述,都可以在深度学习的框架下完成。我们吸收了传统方法与深度学习的优点,开发了一套基于深度学习的图像检索框架,填补了垂直领域图像搜索的空白,与云搜一起支撑着各项业务。
表:CBIR 迭代划分
Our Approach:一步两步
Not all images are created equal. - VisualGraph
搜索,核心是内容的索引和结果的排序。内容的索引,需要将一片文档中有价值的主体记录下来,建立倒排索引。而排序的好坏,直接影响着用户的观感。好的检索系统,就是能全面地记录有价值的信息,同时又能有准确的检索结果。
在图像场景下,这两个问题与文字检索类似,也有着很大的不同。举个例子,如下图,假设我们想从垂直场景的服装搜索出发,将街拍图片里的服饰对应到电商的商品链接上来。首先,需要先定义要索引什么样的内容,这就需要知道用户想要搜索什么。试想,如果以全图作为输入,必然会带来冗余的噪声,影响 query 的质量。而用户的意图,必然是想框选出图像中的物体,如衣服。在离线部分,如果要与检索 query 对应,势必要将库中值得搜索的内容先检测出来,就像 NLP 中的中文分词一样,把信息细化,实体化,以方便建立倒排索引。另外,在搜索结果上,需要在款式、颜色、图案等方面要与 query 相似,这就需要开发相应的打分库,支持灵活配置策略,满足具体应用场景的要求。
图:服装搜索示例 Street2shop [17]因此,针对类似的垂直搜索场景,我们提出了两步走的方法论。对于产品团队,只需要思考以下两个问题,便可以确定这个场景是否可行。1. 索引什么?也就是搜索的主体,可以是场景,也可以是具体物体。只要可以用一个兴趣区域去描述,那么就满足第一个条件。具体到服装搜索上来,在这一步需要确定搜的主体包括衣服、裤子、裙子、鞋、包等等。
- 怎样叫相似?与文字检索一样,图像检索也需要对检索结果进行排序,到底应该用到哪些特征。这些特征,可以是材质、颜色、款式、性别等等。最后结果排序的相似度,可以人工定义,也可以用机器学习的方法学习出来。
图:两步架构
然而,实现这两步并不是一个简单的事情。它需要部门在图像理解,检索系统,机器学习系统上提供强有力的支撑。
-
针对索引主体确立,我们开发了一套完整的 ROI Detection 算法;2. 在排序上,我们将问题抽象成 region2vec 算法,使得两个实体的比较可以通过计算 cosine distance 或者排序网络来实现;
-
在整个算法或产品的深度学习模块迭代过程中,我们提供了一套并行计算框架 DistMind,方便实验的开展,记录以及比较。
核心技术一:ROI Detection 算法
在索引方面,我们开发了一套通用的物体检测框架 ROI Detector。用户只需要提供原始图片和感兴趣的物体(Region of Interest)标注框,剩下的工作都可以通过 AI 算法完成。
在设计开发 ROI Detector 的过程中,我们参考了计算机视觉物体检测的发展脉络。自早期 HOG + DPM [6] 的框架开始,物体检测就基本形成了基于标注框(Bounding Box)的形式。之后,深度学习被引入到物体检测中来,代表作如 2013 年 Facebook 在 OverFeat 中提出的 Sliding Window + CNN 的模式 [10]。但是由于其效率较低,逐渐被之后 Ross Girshick 提出的 Box Proposal + CNN 思路所替代 [11]。自 Shaoqing Ren 和 Ross Girshick 在 2015 年共同提出了可以生成 Bounding Box 的 RPN 模型之后 [12],现在物体检测模型已经可以在深度学习的框架下统一完成训练。深入观察可以发现,图像中很多情况其实不只有物体,还有物体之间的关系,例如拿手机,打电话,扔飞盘等等,这些也可以用 Bounding Box 来描述和检测。因而,我们将物体和物体间关系统一抽象成 ROI,用于锁定图像中的值得索引的概念,之后针对不同输出设计不同损失函数,利用神经网络模型(如下图)统一训练。
图:ROI Detector 模型示意图
继续以衣服检测为例,我们目前的算法目前可以在百毫秒完成衣服主体的检测和识别,对于电商网站的典型图片构图,如纯背景,自然场景,拼图,以及旋转的情况,都可以做到很好的检测,示例如下图。通过优化 RPN 网络,以及 Recognition 网络,这部分的耗时还可以继续减小。
图:电商图片检测结果
核心技术二:Region2Vec 算法
在排序上方面,除了结合文智 NLP 平台,对图像周围文字信息做相关性排序以外,我们还对图像提取相应的颜色、纹理、类别等特征去表述图像中物体的特性。
受 word2vec 启发,我们设计了 region2vec 算法,将 ROI 区域映射至线性空间来计算 cosine similarity 去描述两个区域的相似度。传统方法如 Pinterest 的 visual search,直接提取图像区域的 CNN feature,如 VGG16 中的 fc6-fc8 层,去计算相似度。但在垂直细分场景,我们发现,只利用这样的通用特征仅能在类别上具有很好的区分性。因此,在实际问题中,我们引入其他信息作为监督信号对 CNN 模型进行微调。在离线部分,我们对图文数据做了标签清理和匹配,之后利用标签信息的 one-hot 表示作为监督信号;在线部分,利用灰度测试的点击日志,将排序结果作为监督信号,利用 Siamese Network [13] 计算样本对的相似度(如下图),做到端对端的训练。
图:排序网络示意图
下图展示了在服饰样本集上,在 region2vec 算法输出的线性空间上,仅使用 kNN 查找的效果。当样本集继续扩大后,检索的类别、款式相似性会更高。
图:k 近邻算法效果
当数据量变大后,为了维持检索效率,可以在性能上做了进一步优化。具体来说,vec 信息可以通过压缩做 binary encoding,以支持计算二进制串 hamming distance,进而大大降低计算相似度的时间,同时保持排序的效果。下图展示了服装样本集内按与第一例样本 hamming distance 排序的结果。在此基础上,通过文字或者其他图像特征的精排,进一步优化效果。
图:基于 hamming distance 的召回效果
最后,我们将其中 10000 块 region 对应的 vec 按照 54 个类别做了 2D t-SNE [14] 可视化,结果如下图。为了增加颜色的区分性,我们将 54 个类别分成 4 组,在 4 个子图中展示。可以看到,向量空间下的样本类内凝聚度很高。进一步放大黑框中的几个区域的样本,如太阳眼镜、上衣、裤子、外套、白鞋、帽子,可以看出样本在颜色、款式、类别等方面有很高的相似性。
图:t-SNE 可视化结果
核心技术三:分布式训练框架DistMind
一个高性能的并行计算平台是深度学习算法实现的基石,提升算法加速比以及合理的资源调度是工程实现上最核心的问题。考虑框架的兼容性以及通信的高效性,我们实现了支持 CPU / GPU、单机多卡 / 多机多卡、同步 / 异步、分布式参数、系统容灾、柔性一致性等特征的分布式深度学习平台 。
易用性上,平台提供一套完全兼容 caffe,可轻易扩展到其他框架的计算接口。业务可无障碍地从单机测试迁移到该平台上进行多卡接近线性加速比的性能提升。以 GoogleNet 为例,使用单卡 GPU 训练 ImageNet 数据集(128 万张图片)需要 407 个小时,而我们开发的框架下在 16 个 GPU 上取得了 14 倍的加速比,只需要 29 小时就可以完成 GoogleNet 的训练。
表:GoogleNet 在 DistMind 上的训练效果训练方法上,业内目前支持异步训练的并不多。我们参考了 DistBelief、mxnet、bosen 和 TensorFlow 的异步实现思想,采用 Parameter Server 框架 [15],实现了可柔性的版本控制策略,业务可灵活地设置参数,借助调度模块,完成批量的异步调参实验。
调度方法上,底层参考 Apache Yarn 的设计思想对资源进行管理与调度,根据资源的空闲程度灵活地从 FIFO 调度、公平调度、优先级调度等策略中进行切换。用户从可视化的任务提交界面申请资源,配置实验组参数,提交数据训练任务,监控实验组的执行进度。未来还将实现参数的流式可视化、结果的可视化等多项功能,敬请期待。
Beyond Search:从 1 到 N
大圣见天色将晚,即拔毫毛一把,丢在口中,嚼碎了喷将出去,叫声:“变!”就变了千百个大圣。
——《西游记》
基于兴趣区域 ROI,可以做的还有很多。一方面,我们正在完善支持图文混排的垂直搜索引擎;另一方面,我们也结合自身 NLP 的优势,进一步尝试结合语言模型去开发其他有趣的图像应用。
垂直搜索
依靠部门在搜索平台和产品运营领域积累的丰富经验,我们快速地将此技术引入到了图像搜索领域,同时借助部门在文本搜索领域的优势,将文本和图像两者相结合,用图文混排的方式获得更优的搜索效果,并且实现了技术方案的通用性,具体技术方案如下图所示:
图:垂直场景的图像搜索框架
从上图框架可以看出,图文混排的模式具有很高的通用性,可以很快地切入各垂直领域,如人脸搜索、车辆搜索、食物搜索,OCR 等。以美食搜索为例,业务方只需要定义问题范围,我们可以外站爬取平台,对美食网站的数据进行清理,抽取,完成数据端的冷启动。同时,食物的检测和分析模型也可以基于 DistMind 平台进行训练调优。在上线后的检索效果评价时,也可以通过收集日志的方式,对 Bad Case 进行特别标注,优化排序算法。
Image Captioning
利用多年的自然语言处理积累,这个框架可以很自然地拓展到图像文字描述的问题上来。这样,基于图像内容的自然语言检索便成为可能。我们测试了 QQ 空间里用户的随机上传的一些图片,文字生成效果如下图。可以看到相比传统图像打标签,我们可以生成更丰富的文字描述内容,更好地去描述图片中有价值的信息。
图:基于 ROI 的图像文字描述在 QQ 空间图片上的效果
Image Q&A
同样的,在图像问答场景中,也可以引入 NLP 中经典的 seq2seq 框架 [18],设计一套基于 ROI 的图像问答 AI 出来。例如,可以拓展 MPI 2015 年提出的 Visual Turing Test 框架 [16],将图片的 CNN feature 按区域细化,从而更准确直接地回答问题。
图:Visual TuringTest, MPI [16]
Conclusion: 结语
To improve is to change. To be perfect is to change often. - Winston Churchill
搜索的梦,就是「连接一切」。曾经,我们做出了文字搜索,支持了腾讯大部分产品的搜索任务。这一次,我们再度起航,将图像搜索从无变有,在新的时代激发更多的可能。
Reference[1] John R Smith and Shih-Fu Chang. Tools and Techniques for Color Image Retrieval. SPIE, 1996 pp. 426-437.
[2] B. S. Manjunath and Wei-Ying Ma. Texture Features for Browsing and Retrieval of Image Data. PAMI, 1996 vol. 18 (8) pp. 837-842.
[3] Aude Oliva and Antonio Torralba. Modeling the Shape of the Scene: A Holistic Representation of the Spatial Envelope. IJCV, 2001 vol. 42 (3) pp. 145-175.
[4] Antonio Torralba, Robert Fergus, and William T Freeman.80 Million Tiny Images: A Large Data Set for Nonparametric Object and Scene Recognition. PAMI, 2008 vol. 30 (11) pp. 1958-1970.
[5] Fei-Fei Li and Pietro Perona. A Bayesian Hierarchical Model for Learning Natural Scene Categories. CVPR, 2005 pp. 524-531.
[6] Pedro F. Felzenszwalb, Ross B Girshick, David A McAllester, and Deva Ramanan.Object Detection with Discriminatively Trained Part-Based Models. PAMI, 2010 vol. 32 (9) pp. 1627-1645.
[7] Yushi Jing, David Liu, Dmitry Kislyuk, Andrew Zhai, Jiajing Xu, Jeff Donahue, and Sarah Tavel. Visual Search at Pinterest. KDD, 2015 pp. 1889-1898.
[8] Jia Deng, Wei Dong, Richard Socher, Li-Jia Li, Kai Li, and Fei-Fei Li. ImageNet: A large-scale hierarchical image database. CVPR, 2009 pp. 248-255.
[9] T. Y. Lin, M Maire, S. Belongie, J. Hays, and P. Perona. Microsoft coco: Common objects in context. ECCC, 2014.
[10] Pierre Sermanet, David Eigen, Xiang Zhang, Michaël Mathieu, Rob Fergus, and Yann LeCun. OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks. arXiv, 2013 vol. cs.CV.
[11] R. Girshick, J. Donahue, and T. Darrell. Rich feature hierarchies for accurate object detection and semantic segmentation. CVPR, 2014.
[12] S. Ren, K. He, R. Girshick, and J. Sun. Faster R-CNN: Towards real-time object detection with region proposal networks. NIPS, 2015.
[13] Sumit Chopra, Raia Hadsell, and Yann LeCun. Learning a Similarity Metric Discriminatively, with Application to Face Verification. CVPR, 2005 pp. 539-546.
[14] L. Van der Maaten and G. Hinton. Visualizing data using t-SNE. Journal of Machine Learning, 2008.
[15] Mu Li, David G Andersen, Jun Woo Park, Alexander J Smola, Amr Ahmed, Vanja Josifovski, James Long, Eugene J Shekita, and Bor-Yiing Su. Scaling Distributed Machine Learning with the Parameter Server. OSDI, 2014 pp. 583-598.
[16] M. Malinowski, M. Rohrbach, and M. Fritz.Ask your neurons: A neural-based approach to answering questions about images. CVPR, 2015.
[17] M. Hadi Kiapour, Xufeng Han, Svetlana Lazebnik, Alexander C. Berg and Tamara L. Berg. Where to Buy It: Matching Street Clothing Photos in Online Shops. ICCV, 2015.[18] Ilya Sutskever, Oriol Vinyals, Quoc V. Le. Sequence to Sequence Learning with Neural Networks. NIPS 2014.