摘要:AI成为传统文化发展的助推器,助力传统文化朝着大众化、数字化、个性化、精准化方向发展,赋予传统文化新的生机,延续传统文化新的生命。“斗鱼团队”从五个方面进行阐述“纵横西安”这个民俗文创产品实现的背后技术。

在科技引领生活日新月异变化的现在,新文创应运而生。随着人工智能技术不断发展,“文化+AI”成为文化与科技融合的最新亮点。AI也成为了传统文化发展的助推器,助力传统文化朝着大众化、数字化、个性化、精准化方向发展,赋予传统文化新的生机,延续传统文化新的生命。

“冲天香阵透长安,满城尽带黄金甲。”长安即是如今的西安,历史上前后有13个王朝在此建都,是今人追寻遗迹的首选之地。

为了帮助大家能够熟识西安那耸立城墙内外的诸多事务,在故都之旅中奔驰无阻。斗鱼超管团队开发了一款名为“纵横西安”Android端APP,它能够通过图片秒速识别,显示图片内容中背后的那些事儿。

纵横西安APP logo设计上采用了西安两字纵向拼接为城楼,辅以“陕”字的篆书阴刻,在开屏页采用了富有秦朝元素的的暗纹,以添庄重。

进入APP后,可以通过打开相册和实时拍照两种方式,选择待识别的素材。选定图片后,可选择是否剪裁图片,以便更好地进行识别。值得一提的是,在图片的识别动效画面,以及欢迎页的暗纹还是loading跳动的icon,都采用了兵马俑、肉夹馍、景泰蓝等西安特色,让用户现实所见和产品体验相互交融,浑然一体。

APP 的图片识别率接近99%,速度不到1s。最终识别结束,会生成一张雅致的书签,并为用户提供了一键保存,分享到微信和朋友圈的功能,满足用户获取知识、分享旅行见闻的需求。

纵横西安APP识别的类别有美食、景点、工艺品、民俗和特产五大类。斗鱼超管团队对这些类别做了区别处理:如果识别的结果是美食,用户可直接点击大众点评按钮,搜索美食所在的方位;若识别结果是景点,则可直接点击地图按钮,搜索景点的具体位置;若识别结果为工艺品、民俗或者特产,则可直接点击淘宝按钮,进行搜寻和购买。

图中展示的是书签的具体样式,设计精美的书签中不仅包含了识别结果,也包含了这些结果的具体介绍,非常利于传播。总结一下,这是一款小而美的应用,希望为西安民俗文化的推动尽一份力。

看到这么一个精美的APP 应用,斗鱼团队会好奇这个应用是怎么做出来了?背后都运用了哪些技术?接下来就给大家从解题思路、数据处理、模型训练、实验结果和应用介绍五个方面进行阐述这个民俗文创产品实现的背后技术。

解题思路

  1. 此次项目可以看做是一个图像分类的任务,面对机器学习项目,斗鱼团队首先要做的就是数据分析,分析和校验数据可能达到事半功倍的效果;
  2. 选择一个好的baseline模型,选择常用的网络结构进行结果比对,基于较优的网络进行参数调试;
  3. 分析badcase,找出错误样本并分析出错原因,针对性地调整数据和算法;
  4. 持续迭代优化,步骤3中针对性优化后,再进行结果验证,对badcase分析和优化,直到结果满意为止。

数据处理

拿到初始数据后,斗鱼团队对数据的类别进行了分析,如图中所示,类别之间存在着严重的不均衡,图中红色框标出的是数据特别少的类别,最少的类别只有23张,最多的类别有1400张,将近有60倍的差距。

斗鱼团队通过数据爬取和数据增强的方式,对训练集进行了均衡化处理,图中是斗鱼团队均衡化后的结果。

在数据增强方面,斗鱼团队做了一些常见的增强方式,例如加噪、仿射变换、翻转、颜色变换等。还包括Mixup对两个类别的图片进行混合叠加,提升模型的泛化能力;等比缩放,保持图片的宽高比一致;随机剪裁,增加模型的鲁棒性。

模型训练

在baseline模型选择方面,斗鱼团队选取了最常用的resnext101系列和efficientNet 系列,分别尝试了不同规模的5个模型,最终efficientnet-b7的结果最好,但efficientnet-b7在线上预测超时了,resnext101 32*16d和efficientnet-b5准确率差不多。经过斗鱼团队团队内部商议,由不同的成员对这两个模型分别进行优化,采用内部竞争的方式更能激发大家的开发热情。

简单介绍一下resnext网络,resnext是resnet的升级版,图中左边是resnet的一个区块,右图是resnext的区块,从左到右主要就是把单路卷积变成了多个支路的多路卷积,用一种平行堆叠相同拓扑结构的blocks代替原来的block,在不明显增加参数量级的情况下提升了模型的准确率。

EfficientNets是一种多维度混合的模型优化方法。从左到右分别是基础模型,增加模块的宽度,增加模型的深度,增加模型输入的分辨率,和三种方式混合的优化方案。EfficientNet在ImageNet上,利用复合系数统一缩放模型的所有维度,实现了最好的精度。

在训练策略方面,斗鱼团队主要是使用了预训练模型来加快模型的收敛速度,调整损失函数、优化器、学习率及学习率优化函数等超参数。

使用标签平滑来提升模型的泛化能力,通过空间注意力和通道注意力来增强模型的特征提取能力;使用传统的SVM算法替换softmax层,来提升分类器的效果;通过知识蒸馏的方案使用一个较大的模型来指导较小模型的训练。

在得到一个相对较好的模型后,斗鱼团队对badcase进行了分析。例如图中的鼓楼和钟楼,它们的特征极为相似,非常容易混淆,如果对西安不是特别熟悉,或者没有去过现场,根本无法区分这两张图是否是同一场景。

决赛中新加的小烧泡馍和葫芦头泡馍,与羊肉泡馍极其相似,通过查阅相关资料,斗鱼团队才清楚地知道这些类别之间的差异。羊肉泡馍的特点是以水煮为主,色彩较为白皙,小炒泡馍以炒为主,色彩较为鲜艳,而葫芦头泡馍则包含了肥肠的元素。通过了解类别之间的差异,使斗鱼团队对西安的景点、美食、工艺品、民俗和特产有了更加深刻地认识,感受到了西安深厚的历史文化底蕴。

这是斗鱼团队尝试不同训练策略的实验结果。包括刚才提到的损失函数、优化器和超参数、训练数据集均值和方差的重新计算,标签平滑、注意力机制,SVM,知识蒸馏和Focal Training。在斗鱼团队的实验中有些策略的效果并不理想,例如SVM和损失函数的替换,对斗鱼团队模型提升较大的有:标签平滑、知识蒸馏和Focal Training,下面我将重点介绍这三种策略。

对于分类问题,类别向量为one-hot vector,one-hot vector容易造成过拟合,平滑是将概率为1或者0的标签分别变成一个0到1之间的概率值,如图中公式所示,平滑过后的样本交叉熵损失不仅考虑到了训练样本中正确的标签损失,也考虑到了错误标签的损失,使模型的学习能力提升。

知识蒸馏是一种通过教师网络来指导学生网络训练的方法,通常教师网络是一个较大的模型,而学生网络的模型较小,具体的训练方法如图中公式所示,最后再使用学生网络进行分类预测。

针对错误较多的类别,斗鱼团队做的一个创新点是将难例类别特殊处理。在训练一个相对较优的模型后,分析badcase得到难例类别,单独训练难例类别的数据和模型,然后再用全量的数据微调网络模型。实验结果证明,这是一种有效提升难例类别准确率的方案。

实验结果

斗鱼团队的模型在初赛中排名第三,在复赛中排名第四。

最后总结一下在开发产品中,对斗鱼团队提升最明显的三种优化方案。1、标签平滑可以降低噪声数据对训练精度的影响;2、知识 蒸馏迁移大模型的学习能力,使小模型也能达到较好的效果;3、Focal Training针对难例类别着重处理,提升难例类别的准确率。

正如斗鱼超管团队说的“这是一款小而美的应用,希望为西安民俗文化的推动尽一份力。” AI技术的运用,能够深度挖掘传统文化的内涵,提高了文化传播效率,在用户有需求的时候把最有用的内容提供给信息接受者,创造性地保护和传承文化、艺术遗产。

点击这里→了解更多精彩内容

相关推荐

基于ModelArts AI市场算法MobileNet_v2实现花卉分类,支持CPU、GPU、Ascend推理

华为专家亲述:如何转型搞 AI?

软件工程师的AI模型训练起步

华为云推出新冠肺炎AI辅助诊断服务,CT量化结果秒级输出

深度理解AI概念、算法及如何进行AI项目开发

A-Tune:基于AI的自优化能力,让应用发挥极致性能

【华为云技术分享】用人工智能技术推动西安民俗文化,斗鱼超管团队有一套相关推荐

  1. 【华为云技术分享】“技术-经济范式”视角下的开源软件演进剖析-part 3

    4. 微观层面 4.1 个体动机 在开源软件发展之初, 商业组织的投入很少甚至没有, 完全是靠Richard Stallman 或者 linus Torvalds 这样的个人在努力推动开源软件艰难前行 ...

  2. 【华为云技术分享】“技术-经济范式”视角下的开源软件演进剖析-part 1

    前言 以互联网为代表的信息技术的迅猛发展对整个经济体系产生了巨大的影响.信息技术的发展一方面使知识的积累和传播更加迅速,知识爆炸性的增长:另一方面,使信息的获取变得越来越容易,信息交流的强度逐渐增加, ...

  3. 【华为云技术分享】三大前端技术(React,Vue,Angular)探密(下)

    [华为云技术分享]三大前端技术(React,Vue,Angular)探密(上) [Angular] Angular(通常被称为 "Angular 2+"或 "Angula ...

  4. 【华为云技术分享】直播回顾丨激发数据裂变新动能,HDC.Cloud云数据库前沿技术解读

    3月24日14:00-17:00,HDC.Cloud开发者沙龙系列云数据库专场直播线上开启,此次华为云数据库通过三场直播从NoSQL数据库新技术.数据库迁移.行业解决方案等方面对云端数据库进行深度解读 ...

  5. 【华为云技术分享】基于自动机器学习的心脏病预测模型(1)

    前言 Technology developed using artificial intelligence (AI) could identify people at high risk of a f ...

  6. 【华为云技术分享】AI 开发路漫漫,什么才是真正的极客精神?

    摘要:AI开发看上去很美,实践起来却不是一件容易的事.一个聪明的开发者知道借助工具提升开发效率,一个智能的平台则会站在开发者的立场,为用户提供贴心服务. "理想很丰满,现实很骨感." ...

  7. 【华为云技术分享】数据湖数据库,别再傻傻分不清了

    什么是数据湖 如果需要给数据湖下一个定义,可以定义为这样:数据湖是一个存储企业的各种各样原始数据的大型仓库,其中的数据可供存取.处理.分析及传输. 数据湖从企业的多个数据源获取原始数据,并且针对不同的 ...

  8. 【华为云技术分享】解析:物联网数据分析服务如何做?

    [摘要] 物联网设备正在产生大量的数据,如何为开发者提供简单有效的数据分析服务,简化开发过程,提升开发效率,让IoT数据快速变现是一个摆在我们面前的问题. 没有疑问,我们已经身处物联网时代了,每天都有 ...

  9. 【华为云技术分享】在 K8S 大规模场景下 Service 性能如何优化?

    摘要:Kubernetes 原生的 Service 负载均衡基于 Iptables 实现,其规则链会随 Service 的数量呈线性增长,在大规模场景下对 Service 性能影响严重.本文分享了华为 ...

最新文章

  1. libev源码解析——总览
  2. 关闭浏览器当前页面:Ctrl+W
  3. 技术QA:在 Outlook 2000 里为何不能取消“对已读回执的请求的使用”?
  4. 11月2日科技联播:销量不及预期苹果市值跌破万亿美元;腾讯表示封杀抖音因微信规则...
  5. 读取xml忽略dtd验证
  6. JVM盘点家底查看初始默认值
  7. 编译安装mysql5.6.16_CentOS 6.4下编译安装MySQL 5.6.16
  8. Spring 面试问题 TOP 50,你会哪些?
  9. EOS 源代码解读 (2)插件-流程
  10. 33个优秀的 jQuery 图片展示插件分享
  11. JAVA NIO是什么(zz)
  12. 【解题报告】Leecode 35. 搜索插入位置——Leecode刷题系列
  13. 以下实例在用户点击按钮后对字符串进行反转操作
  14. 杭电计算机2016年机试真题详解
  15. Redis 低成本、高可用设计,牛逼!
  16. 【Python学习笔记】《和孩子一起学编程》第2章 记住内存和变量
  17. 软件开发人员简历项目经验怎么写
  18. 【文学杂谈】徐宥 - 我的大学
  19. 玩转JS|解放双手,快手一键取消多个关注教程
  20. /*深度优先建立深林,孩子兄弟法*/

热门文章

  1. CSS3 多列布局的column-gap 和 column-rule属性
  2. 平板android优化网络,Android版Firefox更新 针对平板设备优化
  3. LeetCode:递增的三元子序列【334】
  4. 读取数据库并写入excel表中 发送邮件
  5. Metro 应用无法打开解决办法
  6. 白话 discuz加密解密算法,包你懂
  7. datatable select 性能
  8. mysql面试题2020_2020年MySQL数据库面试题
  9. 怎么开启队友无伤_王者荣耀:张飞辅助怎么玩才厉害?出装、打法,为你全面解析...
  10. eureka上的微服务不能通过服务名调用_掌门教育微服务体系 Solar | 阿里巴巴 Nacos 企业级落地上篇...