背景
疫情当前,戴口罩已成为出行必备的防护措施。随着各地返程高峰期的到来,机场、火车站、商超、办公楼等公共场所将面临巨大的人流量,如果单靠人工检测口罩是否佩戴以及是否佩戴规范,不仅效率低下且容易出现疏漏。因此,如何利用人工智能等技术,来帮助减少公共场所监督佩戴口罩所带来的人力消耗、提高检查效率迫在眉睫。
人脸口罩检测服务产品化,开箱即用
近日,UCloud AI团队依托于原有的口罩检测医疗项目,借助于UAI-Train AI训练平台的简单易用和UAI-Inference平台的快速服务部署能力,在一周时间内快速完成了人脸口罩精细分类算法的研发、上线。目前,该算法实现了是否佩戴口罩判断准确率99%, 以及是否规范佩戴口罩判断准确率95.1%的较好效果。同时,为了方便用户将口罩检测集成到自己的系统中,口罩检测API服务已完成在线部署,并集成在UAI-Censor产品中。
UAI-Censor是UAI团队推出的内容审核产品,依托UCloud底层云服务,基于海量训练数据,并结合深度学习识别技术,提供99.9%的服务稳定性保障。UAI-Censor的应用算法服务能够精准识别图片、视频中的低俗内容,从而降低业务层面的违规风险,大大减轻了人工审核的投入成本。
UAI-Censor本次新增的人脸口罩检测服务将在公共场所的疫情防控监督方面发挥重要作用,比如可以快速定位暴露在风险中的未戴口罩人员具体位置信息,通知工作人员快速前往处理,降低群众感染风险;在企事业单位的办公楼管理方面,集成了口罩检测的闸机门禁,可以将未戴口罩的人挡在办公区域以外,保障办公区域的安全。
除了疫情所需的场景外,医院手术室、餐饮食品制造生产线、化工生物实验室等场所的人员佩戴口罩安全管理,也将是人脸口罩检测服务体现重要价值的场景。
接下来,我们将重点介绍UCloud人脸口罩检测服务的算法研发以及技术实现。
人脸口罩检测服务的算法实现
人脸口罩检测场景传统的做法一般是采用人脸检测+图像分类的方式来做,该方法需要大量的场景数据来保证算法的泛化能力。UAI团队摒弃传统的检测+分类的模式,采用基于精准的人脸检测算法+人脸关键点定位算法+口罩实例分割算法的方案,对是否规范佩戴作出精准判断,既保证了准确率,也提高了算法的泛化能力。
1.主要难点
本次算法的目标是通过AI算法来自动从摄像头采集的图片中识别出是否有人脸、是否佩戴口罩以及口罩是否佩戴规范。一般的算法研发流程如下,主要包括三个部分:数据准备、模型开发训练、服务部署。其中模型训练、服务部署可以使用一些简单易用的PaaS产品,如UCloud的AI训练服务UAI-Train和AI在线服务UAI-Inference。 因此主要难点是由于AI需求一般对数据量的要求比较高,对于这次紧急的新算法需求,数据准备成为较大的瓶颈。
2.常规方案
口罩是否佩戴规范的识别一般可以采用检测+分类的算法来做,如下图所示。通过人脸检测定位到人脸的位置,然后通过分类网络将人脸图像分为无口罩、未规范佩戴口罩和规范佩戴口罩三种类别。
这种方案需要准备大量的三个类别的图像数据,同时由于佩戴口罩的规范程度不同,佩戴是否规范需要进行比较精细的区分。为了保证分类算法的精细区分,同时保证泛化能力,需要收集不同规范程度的图像,并对数据做大量标注。对于时间紧急的需求,该方案明显的缺点是数据难获取、数据的多样性难以保证。没有数据的保证,算法的泛化能力会存在比较大的风险。
3.UAI团队方案
为了克服数据获取难、数据多样性不足的问题,UAI团队提出了自己的解决方案:人脸检测 + 关键点定位 + 口罩实例分割 + 逻辑判断。算法的基本流程如下图所示。
- 利用人脸检测器确定出人脸的位置,多数AI团队都有自己预训练好的模型,常用的网络结构有MTCNN, RetinaNet和SeetaFace。
- 对检测到的人脸做关键点定位,如人脸5点或68点。可以采用MTCNN输出的五点信息,或者加入专门的Landmark网络。
- 对口罩进行实例分割,得到口罩的mask,如下图的橙色区域。一般常用的实例分割网络有U-Net.
- 通过检测出的关键点和口罩的mask区域,制定合适的逻辑判断策略。
由于人脸检测、口罩实例分割对戴口罩人脸数据的需求量相对分类网络要小,因此在训练数据紧张的情况下,该方案能够快速启动算法研发,明显优于常规的分类方案。另外人脸关键点和口罩mask的逻辑判断可以对佩戴是否规范做精细的定制,同时无需重新训练算法(算法的训练一般比较耗时)。
UAI-Train + UAI-Inference实现快速部署
算法的问题解决了,那么如何在较短的时间内实现人脸口罩检测服务的部署上线呢?通常来说,构建人工智能服务包括三个步骤:数据的收集与处理、AI模型的训练和AI模型的在线服务,其中每一个环节都需要高性能的GPU资源。而GPU硬件成本高、采购周期长,还面临GPU空闲资源的闲置浪费等问题。
UAI-Train平台基于GPU云主机集群构建,为AI训练任务提供充足的计算能力,同时还提供一站式训练任务托管服务,包括自动实现计算节点调度、训练环境准备、数据上传下载以及任务容灾等功能。而UAI-Inference 采用类似 Serverless 的架构,通过请求调度算法、定制扩缩容策略,自动完成 AI 请求的负载均衡,实行节点动态扩容和回收,可提供数万的 AI 在线推理服务节点。
最后,UAI团队借助于UAI-Train的简单易用,大大缩短了模型训练的周期。同时借助UAI-Inference对算法推理服务实现快速部署,使得整个人脸口罩检测服务能够在一周时间内快速完成产品化。
功能演示
上传一张图片,通过算法实现口罩检测的结果如图:
返回的结构化信息为:
{ "Timestamp": 1582013070169, "Message": "OK", "Code": 0, "Results": \[ { "Landmark": \[ 308.7552185058594, 1094.84765625, 450.3834228515625, 1088.732421875, 391.5843505859375, 1159.5794677734375, 333.65771484375, 1236.141845703125, 452.4123229980469, 1234.0186767578125 \], "Color": "TODO", "Type": 0, "Rect": \[ 175, 933, 383, 383 \], "Uncovered": \[ "NOSE", "MOUSE" \] }, { "Landmark": \[ 3591.298583984375, 971.9404296875, 3680.833984375, 961.0682983398438, 3639.876220703125, 1024.175048828125, 3605.352294921875, 1061.894775390625, 3681.801025390625, 1055.1746826171875 \], "Color": "TODO", "Type": 2, "Rect": \[ 3517, 883, 220, 220 \], "Uncovered": \[\] }, { "Landmark": \[ 803.4312744140625, 1154.7069091796875, 952.501220703125, 1165.9229736328125, 852.082763671875, 1228.607666015625, 798.9873046875, 1312.8236083984375, 932.0880737304688, 1325.908935546875 \], "Color": "TODO", "Type": 2, "Rect": \[ 695, 1004, 408, 408 \], "Uncovered": \[\] }, { "Landmark": \[ 1841.0994873046875, 891.4661865234375, 1931.974853515625, 880.6146240234375, 1877.4466552734375, 951.571533203125, 1851.3187255859375, 998.5130004882812, 1919.263916015625, 994.3466796875 \], "Color": "TODO", "Type": 2, "Rect": \[ 1783, 816, 220, 220 \], "Uncovered": \[\] } \]}
目前,UCloud人脸口罩检测服务完全免费,同时,接下来UAI 团队会对产品进行持续优化,以满足更多场景需求。