• 在线公开课 | 基于口罩识别模型,探索机器学习自动化的技术应用


    2020年初的战“疫”来势汹汹,科学技术成为打赢这场硬仗的高效武器。其中,AI技术在控制疫情发展方面展示了不可忽视的作用。比如,通过AI技术来预测并区分新冠肺炎的轻重症、帮助医生分诊等,能够极大的提高与病魔赛跑的效率。同时,基于AI技术研发的智能疫情助理、送餐机器人也发挥了极大的作用。遥想2003年非典的时期,恐怕当时谁也难以想象,十几年的时间,科技发展如此迅猛。

    春末夏至,复工复产也在有序进行。由于管控工作、防疫措施的要求,口罩成为出门必备的单品。那么,在口罩遮挡的情况下,该如何做好人群的识别呢?4月15日,京东云与AI人工智能平台部技术总监何云龙老师,在技术公开课《基于口罩识别模型,探索机器学习自动化的技术应用》中,交流了疫情期间人脸口罩识别的意义、方法,延伸出自动化学习的技术优势,并在何云龙老师的带领下,基于口罩识别的模型,一起探索了机器学习自动化的过程及相关技术,并进一步展望未来的AI落地方面的技术,以及未来在这方面能够做的工作。

    基于口罩识别模型,探索机器学习自动化的技术应用

    — 京东云与AI产品研发部架构师 何云龙—

    人脸口罩识别的意义

    疫情期间,有一个关键点就是春节之后的复工。在国内有一个特殊的情况,就是在复工的时候,人员流动量相当庞大。为了控制感染的扩散,必须要有效识别感染人群。但是目前的情况与之前大大不同,因为绝大部分人脸都会被口罩遮挡,无法完全采用原来用于安防等场景的人脸识别技术。那么,如何在戴口罩的情况下精准识别人脸,这是一个很大的挑战。

    比较幸运的是,经过研究,我们科学家发现,即便是口罩遮挡住了大部分的人脸关键点,但我们依旧能够利用有限的人脸关键点来进行精准识别。

    比如京东集团的无感知智能温感筛查系统,能够结合传统的温感技术以及近期快速研发的人脸识别技术,实现大流量背景下的人员跟踪,从而有效控制感染的扩散,协助实现疫情管控的效率提升。

    现在做的一些方法

    1. 数据增强,打破数据量过少的困境

    当前人脸识别模型多是基于深度神经网络,需要获取到足够充分的训练数据用于训练模型。之前做人脸识别的时候,无论是使用公开数据集还是采集实际场景的人脸数据,都有很大的数据量积累。但是现阶段的基于口罩的人脸识别,一个很大的挑战就是数据量非常少,直接从现实场景采集大量带口罩人脸识别训练数据比较困难,时间又很紧迫。那么这个时候怎么办?所以除了少量现实场景数据外,通过数据增强的方式,京东智联云还采用多种方法生成大量模拟带口罩的训练数据。首先我们仔细研究了一般口罩的遮挡区域,并采用自研的人脸106点关键点模型检测人脸关键点,依据人脸关键点生成口罩区域mask,并通过该mask为人脸加上随机颜色的虚拟口罩或者口罩模板,就可以生成大量的戴口罩的人脸新的数据,最后使用这些数据来训练模型。

    2. 大部分的关键点被遮挡,如何去提高人脸识别的精准率

    为了解决这个问题,京东智联云的科学家们做了多种尝试,最后发现口罩上方的人脸部分中,比如眼睛周围的一些关键点,其实还是有很大的区分能力的。其中,眼周注意力机制就是把模型算法的注意力集中在人脸的上半部分,在此基础上能够让人脸的特征模型充分学习到特征,从而显著提升人脸识别的精度。同时,模型迁移技术也是在数据量比较少的情况下采用的一种方法,它能够把之前基于没有戴口罩的人脸数据上训练的模型迁移到当前戴口罩的人脸模型的训练过程中,也能够很好的提升口罩人脸识别模型的精准度。

    在算法模型训练的过程中,为了让模型更关注非口罩区域,京东智联云参考了胶囊网络的建模方式并且引入注意力机制在模型训练中。实验证明,对人脸识别最重要的特征集中于人脸上半部分,尤其是眼睛和眉毛。因此,如果能够让人脸特征模型充分学习到该部分的特征,戴口罩的人脸识别的精度会有显著的提升。

    “我们还发现在不戴口罩数据上训练的模型对戴口罩的人脸依然有一定的识别能力,所以我们先在大量的不戴口罩的常规人脸数据上进行模型训练,然后再通过domain adaptation将模型迁移到戴口罩人脸识别数据上继续训练。”

    目前,完善的模型已经部署到京东智联云。在京东智联云的官网,人脸口罩识别(口罩佩戴检测)、京东智能温感筛查系统已经上线。

    在模型部署使用时,京东智联云技术研发人员先对检测到的人脸进行口罩佩戴检测以及识别口罩是否正确佩戴,识别率达98%以上。同时,利用上述戴口罩的人脸特征模型对戴口罩的人脸进行特征提取,并与底库人脸特征进行比对,从而实现戴口罩的人脸识别。目前,口罩人脸识别模型在公开数据集LFW(添加虚拟口罩)上准确率为98.6%。

    AI快速落地应用的时候,我们还面临哪些其他挑战?

    1. AI人才缺口

    从数据获取、数据处理、模型选择、模型训练以及模型优化和最终上线,根据整个AI落地的大概生命周期,是需要在实际的生长环境里做部署的。为什么AI落地比较困难?是因为在整个生命周期里面,拥有相匹配技能的人才还是非常少的。根据一些权威机构比较一致的评测数据,中国目前的AI人才缺口大概有500万左右。可以想象,这种情况会导致大部分的AI人才被诸多大厂争夺。但是对一些有实际应用落地场景需求的小型公司及传统企业,就无法进行项目的建设和落实。同时,人才缺口短时间内难以弥补。AI落地困难重重,每一个环节上都需要AI的技术人才掌握相匹配的技术,并非是一蹴而就的。

    2. AI落地的速度问题

    在开发模型的过程中,首先在数据处理方面,最常见的挑战就是数据量过小、质量比较差或过于庞杂,导致算法工程师需要做大量数据清洗、转换、兼容等的额外工作。同时在模型训练中,诸多参数的选择也是一个烦琐的探索尝试过程。当模型开发完成,上线前仍需进行模型优化……每一个环节都需要对AI工程师有较高的技术要求。在这样技术挑战下,就会导致AI落地的速度问题。同时为了在业务效果上领先对手,在一个业务上我们往往要投入很多算法工程师,将每一个步骤都做到极致,这样看下来,AI应用怎么可能很容易的落地呢?

    1913年左右,福特应用他的创新理念和反向思维逻辑,提出建立一个汽车组装的流水线。通过流水线的装车方式,汽车生产效率得到非常大的提升。这个事件激发了思考:如果在AI的开发过程中,是不是也能够采取类似的开发方式,形成一个端到端的流水线,从而使AI的快速落地成为可能?当然,在AI领域,这个流水线的每一个环节里,都需要用特别的技术去解决以上这些挑战。这里的关键技术就是AutoML。

    如何应对这些挑战?介绍一些AutoML相关技术

    什么是AI领域流水线的特别技术呢?这些技术统称为AutoML技术

    其实AutoML并不是一个新的概念,从窄义上讲,一般是指神经网络结构的自动搜索,不过这里我们还是采用更广义的叫法,在构建AI的流水线的时候,原有的一些依赖于算法工程师的环节,经过标准化和算法实现后能够自动的完成,我们都称之为AutoML。下面我们看一下具体的AutoML技术有哪些。

    首先在数据处理阶段,常用的一些技术包括自动数据增强、自动特征工程、主动学习等。数据增强可能更多的应用在图象领域。自动的特征工程主要是指结构化的数据,我们也做了很多自动特征工程的工作,能够自动的寻找最优的特征交叉组合。数据标注需要极大的人力成本,此时就要依赖于主动学习方法,通过选择其中需要标注的部分数据,大大降低标注成本,从而使开发效率得到提升。另外一个用于AutoML的技术是预训练的模型。各大学术机构及公司都已经花费巨量的时间和海量的数据生成各种模型,这些模型就可以用在实际场景中。比如,Google推出的BERT模型、微软推出的VL BERT等等。此外,在让机器设计神经网络方面,最近几年,一些大型公司做了诸多尝试。谷歌最先提出自动设计神经网络NAS,基于NAS出现了许多变种。EfficientDet模型在参数量和计算量上有了很大的降低,同时精度又做到了很大的提升。在超参数调优方面,技术相对来讲比较成熟,常用的技术有网格搜索和随机搜索。用高斯过程去寻找一个比较好的超参数,从而让算法工程师集中精力在算法模型本身上面。最后,上线之前的优化方面,又能做哪些工作呢?也有很多工具在探索模型的自动优化,比如TVM,在本身作为优化工具的基础上提出了AutoTVM概念,通过设定一个搜索空间来对优化参数进行搜索,在计算时充分提高硬件执行单元的并行度,从而加快算子的执行效率。

    京东的自动学习机器平台QuickAI

    那么,如何把自动机器学习技术和整个方案结合起来呢?

    把AutoML技术和整个方案结合起来形成一个产品,这是一个比较自然的想法。目前业界也有一些产品在做AutoML方面的工作,但是真正形成的产品比较少,更多的是关注在技术这一块。京东把一些刚才提到的技术都整合成一个大的Pipeline,形成了QuickAI这样一个产品。QuickAI是一个全自动模型服务生产平台,内置了大量预训练模型,能够使用少量标注数据快速训练模型,并一键发布到线上。访问http://quickai.jd.com,即可体验该产品。在QuickAI平台,允许用户自动上传数据,根据数据直接生成一个可用的模型,同时这个模型能够自动发布到线上,效率非常高。

    目前,QuickAI已经支持多个场景,包括图像分类、物体检测、文本识别以及结构化数据的回归预测。对于图象分类和物体检测,QuickAI内置了十多种领先的算法。在文字识别方面,QuickAI只需用户上传一张图片,对图片进行锚点设定,选取需要识别的区域,就相当于做好了一个模板,生成服务之后就可以对这一类的票据进行自动的识别。在文本分类方面,最常见的场景在电商领域做评论分析。在回归预测的场景下,可以通过预测商品的销量或者库存帮助商家进行及时的补货和价格的调整。

    QuickAI可以实现AI模型全流程自动化

    最后,QuickAI的特点包括:

    1. 全流程。QuickAI本身是一个端到端的流程,从数据介入、建模到最后服务上线一站式支持,能够实现全自动化。

    2. 自动化。整个流程AI相关的部分全部自动化,客户可以快速看到AI赋能的效果,在模型迭代中算法工程师不需要或很少参与。

    3. 低成本。算法部分自动化带来了人力成本的大大降低,对业务的快速接入可以节约很大的时间成本,让客户的业务能够快速体验到AI的能力。

    4. 可定制。根据业务特点,用户可定义自己的场景,包括数据和模型服务的规范,算法工程师可以自由向其中增加算法,由此实现新场景的自动化

    5. 高性能。训练和推理阶段集成了包括硬件厂商提供的优化工具,并整合到自动化流程里,可实现快速训练和优化的服务

    6. 可扩展。集群规模可以横向扩展,支持外接其他存储系统,能够满足大规模业务的需要。

    QuickAI平台是开放给客户的,对AI不太了解的人也可以用QuickAI定制化自己的模型,从而大大加速AI落地的效率。QuickAI拥有良好的稳定性和细致优化的性能,客户无需做新的平台的构建,在部署时可以把整个平台直接部署到客户的环境下面,免去了一个开发-部署-构建环境的过程。

    点击阅读可获取“人脸口罩识别”及更多人工智能API使用场景参考:

    • 语音合成(基础音库、精品音库):语音读书、读报等小说和新闻媒体客户端等用户场景;
    • 拍照购:通过【拍照>识物>京东商城购物】的体验给C端用户提供服务;
    • 增值税发票识别:在财务报销、发票审核、账单记录等场景中对发票进行识别,实现信息快速录入;并可与查验平台进行核对发票真伪,及时规避相关风险;
    • 人体检测:智慧零售、安防监控等场景使用广泛。

  • 相关阅读:
    c# 系统校时工具类
    c# 字符串工具类
    c# 自定义排序类(冒泡、选择、插入、希尔、快速、归并、堆排序等)
    c# 获取随机数字/字符/时间
    c# 汉字转拼音
    c# 获取机器硬件信息 (硬盘,cpu,内存等)
    c# 实体处理工具类
    Ubuntu 查看和杀死进程
    shell 脚本杀死后台由php脚本控制运行的所有php脚本和java程序
    【Shell脚本】怎样表示一个for循环
  • 原文地址:https://www.cnblogs.com/jdclouddeveloper/p/12891758.html
Copyright © 2020-2023  润新知