AI战「疫」:百度开源业界首个口罩人脸检测及分类模型

机器之心原创

参与:泽南、思

开工上班,各地应该如何做好疫情防护?人工智能技术正在为抗击新冠肺炎疫情的工作提供必要的帮助。

2019 新冠肺炎疫情爆发,让人们的出行发生了很大的变化——自 1 月 24 日武汉宣布封城之后,各省市陆续启动重大突发公共卫生事件一级响应以控制人口流动。很多城市都已规定必须佩戴口罩、测量体温才能搭乘公共交通。2 月 10 号返工日之前,上海、北京等重点城市也陆续放出新规:出入机场、轨道交通、长途汽车站、医疗卫生机构、商场超市等公共场所,未佩戴口罩者将被劝阻。

正确佩戴口罩出门是为了防止疫情扩散,此举得到了人们的广泛支持。但也带来了很多挑战——高密度的人流让基层排查人员面临着人手不足,以及接触疑似患者的风险,只有适应新情况的人工智能技术才能减轻他们的工作压力。

AI战「疫」:<mark data-type=institutions data-id=5896450e-2901-4458-8dc6-36debf202d02>百度</mark>开源业界首个口罩<mark data-type=tech_tasks data-id=86024a1e-9cc5-4feb-affa-448d571c0cd2>人脸检测</mark>及分类模型

2 月 13 日,百度飞桨宣布开源业界首个口罩人脸检测及分类模型。基于此模型,可以在公共场景检测大量的人脸同时,把佩戴口罩和未佩戴口罩的人脸标注出来,快速识别各类场景中不重视、不注意防护病毒,甚至存在侥幸心理的人,减少公众场合下的安全隐患。同时构建更多的防疫公益应用。

大灾面前,这家科技公司可谓用行动回应了民政部司长陈越良的呼吁:「一个有益的公益软件比捐 10 个亿还管用!」

业内首度开源口罩人脸检测及分类模型

口罩人脸检测及分类模型,由两个功能单元组成,可以分别完成口罩人脸的检测和口罩人脸的分类。经过测试,口罩人脸检测部分在准确度上达到了 98%,且口罩人脸分类部分准确率同样达到了 96.5%,性能上也是属于业界领先水平。

同时,它做到了模型的极致轻量化,可在大部分端边云设备上实现实时处理(海思 3559 芯片耗时仅需 17ms)。百度也将持续更新这一模型,不断提升效果。

百度表示,如此高的准确率是大量数据训练的结果,新模型采用了超过十万张图片的训练数据,确保样本量足够且有效。另一方面,人脸检测模型基于百度自研的冠军算法,整个研发过程都是基于百度开源的飞桨深度学习平台,能够进行高效、便捷的模型开发、训练、部署。

我们可以先看看口罩人脸检测及分类模型的效果,其中绿色边界框为戴口罩人脸、红色边界框为不戴口罩人脸。百度团队还提供了在线演示页面,我们可以自己上传图片,并测试模型的效果:

AI战「疫」:<mark data-type=institutions data-id=5896450e-2901-4458-8dc6-36debf202d02>百度</mark>开源业界首个口罩<mark data-type=tech_tasks data-id=86024a1e-9cc5-4feb-affa-448d571c0cd2>人脸检测</mark>及分类模型


在线演示地址:https://www.paddlepaddle.org.cn/hub/scene/maskdetect

预训练模型,立即部署

如果我们自己有需求且有数据,那么使用深度学习框架从头开始训练也是非常不错的选择。但是毫无疑问成本较高,而与此同时,百度将自己训练出来的口罩人脸检测及分类模型,通过预训练模型的方式开放,可以极大的帮忙开发者节省资源,提升效率。

百度飞桨通过预训练模型管理工具 PaddleHub,将口罩人脸检测及分类预训练模型开源出来。只要开发者有基本的 Python 编程能力,即可快速搭建本地或者 serving 服务调用模型。如果具有一定的移动端 APP 开发能力,也可以快速将模型部署到移动端上。

  • 预训练模型介绍:https://www.paddlepaddle.org.cn/hubdetail?name=pyramidbox_lite_server_mask&en_category=ObjectDetection
  • 预训练模型示例代码:https://aistudio.baidu.com/aistudio/projectDetail/267322

顶尖算法与数据

这一方案中,用于识别人脸的模型基于 2018 年百度在国际顶级计算机视觉会议 ECCV 2018 的论文 PyramidBox 而研发,基于自研的飞桨开源深度学习平台进行训练,并通过 paddle-slim 等模型小型化技术使得算法能够高效运行在一些算力有限的设备上。

  • 算法代码地址:https://github.com/PaddlePaddle/models/tree/develop/PaddleCV/face_detection

口罩人脸检测及分类模型,可在公共场所高密度人流的环境中,对佩戴口罩和未佩戴口罩的人脸进行快速识别标注。基于此预训练模型,开发者仅需使用少量代码,便可快速完成自有场景模型开发。

该模型可广泛适用于海关、火车站、园区小区入口等不同类型的区域,同时提供服务器和移动端版本,便于开发商集成到不同类型硬件平台上满足不同场景要求。非常适合于重点区域的布控,以及未佩戴口罩人员的及时预警。

如果口罩人脸检测及分类模型获得广泛应用,对于检测结果的统计数据还可以为更加深入的研究提供基础。百度表示,检测结果可以可以在疫情分析、智慧城市、智慧社区等场景发挥较大作用。

在这段时间里,很多科技公司陆续推出了有关体温检测、人脸识别等工作的 AI 算法。而百度提出的方法,是首个开源的口罩人脸检测及分类模型。从飞桨深度学习技术平台,到高效精确的人脸检测及识别算法,再到硬件部署方案等,百度提出的方法可以与和其他工具实现完整、高效的整体协同。

实践怎么用

整个预训练模型只要求安装 PaddlePaddle 与 PaddleHub,只需要了解基础 Python 就能跑得动。如下短视频展示了我们测试戴口罩人脸检测模型:

如上展示了最简单的本地推断,只要五行代码,我们就可以在自己的计算机处理口罩人脸检测。为了展示效果,我们设置了每张图像停留 2 秒。实际在我们采用 CPU 的情况下,检测基本是实时的,推断速度非常快。以下为调用预训练模型的核心代码,其中我们在当前文件夹下放了一张测试图像:

importpaddlehubashub#加载模型,本例为服务器端模型pyramidbox_lite_server_mask#移动端模型参数可以换成pyramidbox_lite_mobile_maskmodule=hub.Module(name="pyramidbox_lite_server_mask")#设置输入数据input_dict={"image":["test.jpg"]}fordatainmodule.face_detection(data=input_dict):print(data)

百度提供了口罩人脸检测及分类的示例代码,通过 Notebook 文件,我们能更形象地了解模型使用的完整过程:

地址:https://aistudio.baidu.com/aistudio/projectDetail/267322

更重要的是,作为一项完善的开源工作,除了本地推断以外,其还需要考虑如何将模型部署到服务器或移动设备中。若能快速部署到各平台,那么才真正意味着它可以作为「战疫」的基础工具。

目前,百度提供了两个预训练模型,即服务器端口罩人脸检测及分类模型「pyramidbox_lite_server_mask」、以及移动端口罩人脸检测及分类模型「pyramidbox_lite_mobile_mask」,这两者能满足各种下游任务。

1. 一步部署服务器

借助 PaddleHub,服务器端的部署也非常简单,直接用一条命令行在服务器启动口罩人脸检测与分类模型就行了:

hubservingstart-mpyramidbox_lite_server_mask-p8866

是的,在服务器端这就完全没问题了。相比手动配置各种参数或者调用各种框架,PaddleHub 部署服务器实在是太好用了。

只要在服务器端完成部署,剩下在客户端调用就不会有多大问题了。如下百度展示了调用服务器做推断的示例:制定要预测的图像列表、发出推断请求、返回并保存推断结果。

#coding:utf8importrequestsimportjsonimportbase64importos#指定要检测的图片并生成列表[("image",img_1),("image",img_2),...]file_list=["test.jpg"]files=[("image",(open(item,"rb")))foriteminfile_list]#指定检测方法为pyramidbox_lite_server_mask并发送post请求url="http://127.0.0.1:8866/predict/image/pyramidbox_lite_server_mask"r=requests.post(url=url,files=files)results=eval(r.json()["results"])#保存检测生成的图片到output文件夹,打印模型输出结果ifnotos.path.exists("output"):os.mkdir("output")foriteminresults:withopen(os.path.join("output",item["path"]),"wb")asfp:fp.write(base64.b64decode(item["base64"].split(',')[-1]))item.pop("base64")print(json.dumps(results,indent=4,ensure_ascii=False))

相信只要有一些 Python 基础,在本地预测、以及部署到服务器端都是没问题的,飞桨的 PaddleHub 已经帮我们做好了各种处理过程。

2. 部署到移动端

Paddle Lite 是飞桨的端侧推理引擎,专门面向移动端的模型推理部署。如果我们需要把口罩人脸检测及分类模型嵌入到手机等移动设备,那么 Paddle Lite 这样的端侧推理引擎能帮我们节省很多工作。

在移动端部署口罩人脸检测及分类模型,也只需要三步:①下载预测库,Paddle Lite 会提供编译好的预测库;②优化模型,使用 model_optimize_tool 工具实现模型优化;③通过预测 API 实现调用。

Paddle Lite 介绍:https://github.com/PaddlePaddle/Paddle-Lite/

其中比较重要的是移动端 API 调用方法,具体实现请参考下文给出的 Paddle Lite 的示例地址。

//读取图片cv::Matimg=imread(img_path,cv::IMREAD_COLOR);//加载人脸检测或者口罩佩戴判别模型MobileConfigconfig;config.set_model_dir(model_dir);PaddlePredictor*predictor=CreatePaddlePredictor<MobileConfig>(config);//设置输入Tensor*input_tensor=predictor->GetInput(0);input_tensor->Resize({1,3,img.rows,img.cols});set_input(img,input_tensor);//调用自定义函数//执行predictor->Run();//输出结果Tensor*output_tensor=predictor->GetOutput(0);show_output(img,output_tensor);//调用自定义函数

人脸识别和佩戴口罩判断在移动端部署的示例地址为:https://github.com/PaddlePaddle/Paddle-Lite/tree/develop/lite/demo/cxx

助力开发者,共同抗击疫情

口罩人脸检测及分类模型项目的研发人员向机器之心介绍道,百度在春节期间就已频繁接触到来自社区和合作伙伴反馈的技术需求,并快速启动了对接和应用开发的行动。对此,百度专门成立了针对新冠疫情的技术研发团队,经过论证,开发者们一致认为最终完成的产品应通过开源的方式来赋能更多开发者。

百度很快组织了多部门组成的产研团队,在多个部门的配合下,工程师们快速进入了方案实施落地的阶段。

由于很多城市对于交通进行了管制,在项目的开发过程中,大多数人都是以远程开发的形式参与的。百度研发人员表示,得益于百度内部高效的协同办公、开发系统,整体研发进度可以保持快速迭代。

此前,仅有少数厂商能够提供口罩人脸检测模型的可落地方案,这些技术在密集人流下的识别效果不尽相同。而由于缺乏数据集和模型开发经验,很多解决方案在面临园区、关口等细分场景时显得无从下手。

口罩人脸检测及分类模型可以成为很多应用的基础,除了筛查公共场所佩戴情况之外,检测口罩佩戴是否正确、监测体温的应用都可以通过借助这项能力更快实现落地。此次百度除了开源模型以外,还提供了二次开发工具组件,我们可以开发更适合自己的模型。

在支持的硬件方面,该模型可以高效运行在百度官方和经过第三方认证的硬件平台上。此外,这一模型也支持目前市面上多类主流硬件平台。

除了刚刚开源的算法,百度的 AI 技术已在对抗新冠疫情的很多领域发挥了作用。这家公司与政府部门积极合作,推出了北京官方新型肺炎医生咨询平台,上线了「发热门诊地图」,开通疫情辟谣频道,并将智能外呼平台开放给各地一线疫情防控机构,为基层提供 AI 技术的支持。

春节期间,百度发布了完整的百度 AI 测温系统,并迅速将其投入到新型冠状病毒疫情的防控中。在北京清河火车站,百度 AI 测温系统自 1 月底部署以来,截止 2 月 8 日已完成超过 3.2 万人次的快速体温检测,累计发现了逾 190 人次的体温疑似异常案例,并由工作人员进行了人工复检。

AI战「疫」:<mark data-type=institutions data-id=5896450e-2901-4458-8dc6-36debf202d02>百度</mark>开源业界首个口罩<mark data-type=tech_tasks data-id=86024a1e-9cc5-4feb-affa-448d571c0cd2>人脸检测</mark>及分类模型

百度研发人员告诉我们,从目前接到的需求来看,在防治疫情的工作中,计算机视觉、语音、自然语言处理三大重点领域都有正在开展的应用。其中,自动识别 CT 结果用于辅助诊断等工具已经在确诊病例的工作中起到了重要的作用。

开源的方式,可以让整个社区以最快的速度展开合作。希望通过开发者们的努力,这项新技术可以影响到更多的人和企业,为抗击新冠疫情做出更多贡献。

我们正在寻找AI战疫中优秀的人工智能公司和应用案例,欢迎提供报道线索,请联系houdijing@jiqizhixin.com

产业百度AI人脸检测搜索引擎人脸识别模型优化百度飞桨
1
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

判别模型技术

在机器学习领域,有一种分类方法将模型分为判别模型和生成模型(generative model)两种。 判别模型是一种对未知数据y与已知数据x之间关系进行建模的方法,是一种基于概率理论的方法。已知输入变量x,判别模型通过构建条件概率P(y|x)分布预测结果,或试图直接从输入x的空间学习映射到标签{0,1}(如感知器算法)的函数。生成模型则是考虑x与y之间的联合分布。 在实际应用中判别模型非常常见,如:逻辑回归(logistic regression),支持向量机(support vector machine), 提升方法(Boosting),条件随机场(conditional random fields),神经网络(neural network),随机森林(random forests)典型的生成模型则包括:高斯混合模型(Gaussian Mixture Model),隐马尔科夫模型(hidden markov model),简单贝叶斯(naive Bayes)等。不难看出两者的区别。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

人脸识别技术

广义的人脸识别实际包括构建人脸识别系统的一系列相关技术,包括人脸图像采集、人脸定位、人脸识别预处理、身份确认以及身份查找等;而狭义的人脸识别特指通过人脸进行身份确认或者身份查找的技术或系统。 人脸识别是一项热门的计算机技术研究领域,它属于生物特征识别技术,是对生物体(一般特指人)本身的生物特征来区分生物体个体。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

自然语言处理技术

自然语言处理(英语:natural language processing,缩写作 NLP)是人工智能和语言学领域的分支学科。此领域探讨如何处理及运用自然语言;自然语言认知则是指让电脑“懂”人类的语言。自然语言生成系统把计算机数据转化为自然语言。自然语言理解系统把自然语言转化为计算机程序更易于处理的形式。

推理引擎技术

推理机是实施问题求解的核心执行机构,常见于专家系统。它是对知识进行解释的程序,根据知识的语义,对按一定策略找到的知识进行解释执行,并把结果记录到动态库的适当空间中去。

百度机构

百度是全球最大的中文搜索引擎,是一家互联网综合信息服务公司,更是全球领先的人工智能平台型公司。2000年1月1日创立于中关村,公司创始人李彦宏拥有“超链分析”技术专利,也使中国成为美国、俄罗斯、和韩国之外,全球仅有的4个拥有搜索引擎核心技术的国家之一。

https://www.baidu.com/
模型优化技术

像卷积神经网络(CNN)这样的深度学习模型具有大量的参数;实际上,我们可以调用这些超参数,因为它们原本在模型中并没有被优化。你可以网格搜索这些超参数的最优值,但需要大量硬件计算和时间。改进模型的最佳方法之一是基于在你的领域进行过深入研究的专家的设计和体系结构,他们通常拥有强大的硬件可供使用。常见的简单模型优化技巧包括迁移学习、dropout、学习率调整等

机器之心机构

机器之心,成立于2014年,是国内最具影响力、最专业、唯一用于国际品牌的人工智能信息服务与产业服务平台。目前机器之心已经建立起涵盖媒体、数据、活动、研究及咨询、线下物理空间于一体的业务体系,为各类人工智能从业者提供综合信息服务和产业服务。

https://www.jiqizhixin.com/
人脸检测技术

人脸检测(face detection)是一种在任意数字图像中找到人脸的位置和大小的计算机技术。它可以检测出面部特征,并忽略诸如建筑物、树木和身体等其他任何东西。有时候,人脸检测也负责找到面部的细微特征,如眼睛、鼻子、嘴巴等的精细位置。

推荐文章
暂无评论
暂无评论~