Press "Enter" to skip to content

打造万物识别之利器——微信扫一扫名画识别篇

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

 

导语

 

名画作为生活中最常见的艺术品,是人类艺术中最珍贵的文化遗产,是展示大家艺术认知的重要媒介。日常生活中很多常见的名画我们却不知其名为甚,为了分享名画背后的故事,解读名画背后的小知识,提升大家对艺术的认知能力, 扫一扫识物上线了名画识别功能 ,本文将介绍其中所涉及的技术。

 

背景

 

扫一扫识物上线以来已经从商品领域扩充到动植物、地标、汽车等垂类领域。扫一扫已经逐渐从一个扫码的通用入口升级为信息获取的窗口,我们可以通过扫一扫来认识未知的事物。

 

随着信息的高速发展,以前只能在博物馆里见到的创世画作目前已经有了大量的网络资源,其中不乏我们熟知的画作,如梵高、莫奈的画作等,也有不少我们经常见到却不认识的画作。

 

名画识别就是要帮助大家提升艺术修养,增加对艺术作品的认知。 目前扫一扫名画识别已经支持30W+名画作品的识别 ,包括国内外绘画作品,早期名画及近当代作品的识别,涉及油画、水墨画、版画等。

 

 

图1-1 名画样例

 

名画识别目前不仅在扫一扫识物中存在入口,同时 公众号、朋友圈、聊天窗口中 ,通过搜一搜我们也能获取名画识别的结果。

 

 

图1-2 名画识别入口展示

 

名画识别难点分析

 

针对名画识别,解决思路就是给定一张query,从gallery里面找到距离最近的图片,同时需要限制这个距离剔除库中不存在此名画的情况。实现名画识别的主要难点如下:

 

● 数据极度不均衡,部分有名的作品我们可以获取到各种场景下的名画数据,但对于一些较为冷门的名画数据仅能获取少量几张图片

 

● 名画类别庞大,且不同源数据获取时会存在交叠类别,难以清洗

 

● 名画拍摄角度多样,受场景变化影响较大,椒盐噪声、多重滤镜等

 

● 二次创作问题,部分名画会被二次创作,加大了识别难度

 

● 部分画作过于真实,给名画检测带来很大混淆,从而会使大量负样本进入识别流程

 

整体解决方案

 

为了实现名画识别,首先需要获取一个特征表达能力强的检索模型。检索模型训练可以采用无监督学习和有监督学习两种策略进行,两者主要的区别在于是否需要标注信息,本节将对这两种策略进行对比分析。

 

▍ 无监督学习

 

考虑到名画每个子类的样本都很少,大部分都是只有一张图片,因此首先想到的是基于无监督训练的模型来获取特征。由于数据量不断增加,大量的人工标注成本过高,无监督学习在最近几年受到了学者的广泛关注,其中较为着名的有SimCLR和Moco算法,两者都基于对比学习的方案。

 

MocoV2中将SimCLR的两个提升方案(MLP头部、更多的数据增强)引入Moco显着提升了对比无监督学习的性能,因此我们采用基于MocoV2的无监督训练策略进行模型训练,通过数据增强实现同类样本的扩充,学习过程如图3-1所示,对于给定的一个样本x, 选择一个(或者一批)正样本y(这里正样本的对于图像上的理解就是x的不同数据增强方式生成的样本)。

 

然后选择一批负样本(对于图像来说,就是除了x之外的图像), 然后设计loss function来将x与正样本之间的距离拉近,负样本之间的距离推开。

 

 

图3-1 无监督训练示意图

 

然而实验中我们发现无监督训练的Moco模型对于一些肖像画或者纹理较为近似的画作的特征表达能力不足,容易使得一些非同款样本的距离小于同款样本导致出错,导致top1召回失败,如图3-2所示。 可见无监督学习对于细粒度特征的关注能力显得有些不足。

 

 

图3-2 无监督学习badcase示意

 

▍ 有监督学习

 

考虑到无监督学习存在的缺陷,我们继续探索了有监督学习的方案,如此可以沿用其他垂类(如植物识别)的相关策略。有监督训练的主要问题是数据样本获取较为困难,通过爬虫爬取图像很难获取足量的数据并且容易引入各种不易清洗的噪声,而30W类的样本通过人工收集显然标注成本太高,不太现实。

 

分析名画数据带来的识别难点,我们注意到名画出现场景多为聊天截图、壁挂画等场景,于是我们想到 通过合成样本的方式引入了更多带框或者带背景的样本 。

 

通过多背景、多画框来实现名画场景变换这一数据特性的复原,同时对于常见的滤镜转换风格,网络转载导致的模糊和椒盐噪声等,以及截断问题也都通过数据增强来模拟。

 

最终我们设计了一套在线数据合成的方案来实现名画数据的扩充,首先获取一批画框样本图片进行内边框的标注,然后随机合成带有画框的样本,此外我们也加入一些常见的背景图片作为合成素材。

 

生成过程中,我们随机选用滤镜风格变换、图像分类中常用的各种数据增强(旋转、翻转、颜色亮度等)、保留画作大部分主体的特制裁剪方式、椒盐噪声、模糊等。对于一张图像的部分生成样本如图3-2所示。

 

 

图3-3 针对性数据增强示意图

 

确定数据增强策略后,我们采用植物识别同款算法进行模型训练及部署,由于大部分算法一致,本文不再赘述,具体可参考: 打造万物识别之利器——微信扫一扫植物识别篇。

 

最后,我们对比有监督与无监督训练在线下评测集上top1的指标能有8个点的差距,并且线上的对比结果也很直观的反应了有监督模型的优势,可见 有监督学习下名画的视觉特征表达能力更强。

 

Global Feature VS Local Feature

 

识别模型提取的是Global Feature,此特征用于在海量的数据中匹配距离最近的图片。实际上线后我们发现存在很多badcase,如图4-1所示。

 

主要是一些样本内容比较单一的简单绘画,与库中相似图片的距离较小导致出错,这也反应了 global feature过分关注于全局信息而忽视了局部特征上的匹配。

 

 

图4-1 部分badcase

 

识别模型在训练过程中仅针对名画进行,对于一些非名画的负样本表达能力不够,所以模型对于一些非画作图像、极简画、书法作品等表达能力并不强。

 

当存在上述情况时,仅通过Global Feature容易出现误召回,并且名画库中每类仅有一张图像,无法通过投票等策略来作进一步限制,因此我们引入了Local Feature来进行二次验证,防止误出。

 

我们采用SIFT提取local feature,通过局部特征点的匹配进一步确认top1于query是否是同一幅画,由此解决了上述的badcase。

 

整体流程便是先经过识别模型来对query提取global feature,基于此特征完成gallery库中的faiss搜索得到输出,再根据top1的距离判断是否小于某个阈值,若是则通过SIFT提取Local Feature进行二次验证,若匹配上则输出相应top1的识别结果。

 

总结

 

名画识别相对其他垂类样本数量更大,且单图便是一个类别,难以获取海量数据直接进行监督学习,通过合成数据的方式能够涵盖大部分的名画出现场景,通过多样化的数据使模型能够好的关注到名画的局部特征。

 

最后由于名画仅预测top1的情况,我们需要对最终的结果二次验证来消除误判。

 

我们的整体算法框架支持随意增加名画样本,如需新增名画识别种类仅需再将新增样本加入gallery即可,同时也无需判断是否有重复,重复加入图像完全 不影响最终的结果,扩展性很强。

 

我们将继续介绍其他扫一扫识物的相关算法,更多关于扫一扫的技术文章可以到 微信扫一扫技术系列文集 查看了解。

 

参考文献

 

[1] He K, Fan H, Wu Y, et al. Momentum contrast for unsupervised visual representation learning[C]

 

[2] Chen X, Fan H, Girshick R, et al. Improved baselines with momentum contrastive learning[J]. arXiv preprint arXiv:2003.04297, 2020.

 

[3] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]

 

[4] Szegedy C, Ioffe S, Vanhoucke V, et al. Inception-v4, inception-resnet and the impact of residual connections on learning[C]

 

[5] Chen T, Kornblith S, Norouzi M, et al. A simple framework for contrastive learning of visual representations[C]

 

[6] https://zhuanlan.zhihu.com/p/265786990

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注