口罩人脸识别模型升级,奇怪的东西误判率下降

作者: 佚名 2020-02-28 13:35:49

 此前百度开源了业界首个口罩人脸检测及分类模型,该模型可以有效检测在密集人流区域中携带和未携戴口罩的所有人脸,同时判断是否佩戴口罩。

开发者针对口罩人脸检测与分类模型的技术应用展开了充分的讨论,有些开发者实战反馈,模型在实际场景下还是有一些提升空间。

比如这样,一张神秘形状的纸被判断为口罩,

再比如这样的,一个销魂的手指挡住了口鼻,

除了 badcase 本身,很多开发者还遇到了各种各样的问题,比如实际的环境很复杂,中远景模型效果还不错,但是近景就会不太理想。还有的是监控摄像头的像素分辨率,也会带来不同的判断结果。同时,更多的需求也反馈出来:

  1.  能不能开放模型的一些接口出来?
  2.  在 PC 端,除了 python 部署,有没有高性能的 C++部署教程呀?
  3.  如果想做视频流的检测,应该怎么办呀?

需求很多,百度飞桨给出的答案是肯定的,以下是其回应:

第一波:口罩模型性能升级

针对用户提出的 badcase 问题,口罩人脸检测与分类模型研发人员也是高度重视,并且迅速开展了 V1.1.0 的优化,增补了更多的数据集,使得训练准确率进一步提升。通过开放接口,增加金字塔策略等方式,使得在各种极端尺寸下检测不到人脸的问题得到改善,召回率也有明显提升。同时,口罩分类模型也经过一周有效的数据迭代,准确率从之前的 96.5% 提升到 97.27%,优化效果对比:

左侧为优化前右侧为优化后。

可以看到,新加入大量数据集重训之后的第二版模型,在一些特别的场景下:比如面部异物、口鼻遮挡、侧脸等 case 下都有明显的质量提升。

而且,随着更多开发者提供的更加庞大的数据和 badcase 增加,数据模型仍在不断的改进中。

那么,有开发者肯定想问了,我想用新模型应该怎么用啊?非常简单,1 个参数搞定

第二波:PaddleHub 新 Feature

选择升级到新版本

# 加载 pyramidbox_lite_server_mask, 选择最新的模型版本 1.1.0,则会自动升级至该版本

  1. hub.Module(name="pyramidbox_lite_server_mask"version="1.1.0"

接口新参数

  1. def face_detection(  
  2.     data,  
  3.     use_gpu=False 
  4.     batch_size=1 
  5.     shrink=0.5,  
  6.     use_multi_scale=False  

shrink

该参数用于设置图片的缩放比例,输入值应位于区间 (0 ~ 1],默认为 0.5

调用示例

  1. module = hub.Module(name="pyramidbox_lite_server_mask"version="1.1.0" 
  2. input_data = {"image":["/PATH/TO/IMAGE"]}  
  3. module.face_detection(data=input_datashrink=0.2) 

参数影响

shrink 值越大,则对于输入图片中的小尺寸人脸有更好的检测效果,反之则对于大尺寸人脸有更好的检测。同时,shrink 值越大,则模型计算成本越高。

建议用户根据实际应用场景调整该值,尽可能使输入图像的人脸尺寸在缩放后分布于 8 ~ 130pix 之间

use_multi_scale

该参数用于设置是否开启多尺度的人脸检测,默认为关闭

调用示例

  1. module = hub.Module(name="pyramidbox_lite_server_mask"version="1.1.0" 
  2. input_data = {"image":["/PATH/TO/IMAGE"]}  
  3. module.face_detection(data=input_datause_multi_scale=True

参数影响

开启多尺度人脸检测能够更好的检测到输入图像中不同尺寸的人脸,但是会增加模型计算量,降低预测速度,建议在对人脸漏检要求比较低的场景下开启该设置。

这两个关键参数接口的开放,可以满足很大一部分场景下的业务需求,迅速提升性能。

升级后的模型,调参之后准确率妥妥的了,但是开发者落地遇到部署问题又不会了,来来来,PaddleHub 来教你!

第三波:基于 PaddleHub 实现口罩佩戴检测应用落地部署

在第一版的模型发布中,我们提供了一行代码服务器端部署,可以通过 PaddleHub 快速体验模型效果、搭建在线服务,

随着第二版模型的发布,基于飞桨本次开源的口罩佩戴识别模型, 提供了一个完整的支持视频流的 Web Demo,以及高性能的 Python 和 C++集成部署方案, 适用于不同场景下的软件集成。

完整的视频流演示 DEMO:https://github.com/PaddlePaddle/PaddleHub/tree/release/v1.5/demo/mask_detection

该 Demo 演示了对视频的实时口罩佩戴检测,同时可以将没有佩戴的口罩人脸记录下来。类似的应用可以部署在大型场馆出入口,学校,医院,交通通道出入口,人脸识别闸机,机器人上,支持的方案有:安卓方案(如 RK3399 的人脸识别机,机器人),Ubuntu 边缘计算,WindowsPC+摄像头,识别率 80%~90%。如果对于人脸识别机场景,精度要求会比较高,模型应用时需要对清晰度、距离、图像大小等因素进行调整后部署。

视频链接:https://www.bilibili.com/video/av88962128

效果分析

可以看到识别率在 80~90% 之前,稍小的人脸有误识别的情况,有些挡住嘴的场景也被误识别成了戴口罩,一个人带着口罩,鼻子漏出来识别成没有戴口罩,这个是合理的因为的鼻子漏出来是佩戴不规范。这个模型应用在门口,狭长通道,人脸识别机所在位置都是可以的。

也有开发者提到,之前的 PaddleHub 一键服务化部署方案确实非常简单,但是无法满足一些对速度敏感的场景和软件集成得需求。那没问题啊,高性能的部署集成方案百度飞桨也提供。

高性能 Python/C++部署方案

1、首先需要安装 PaddleHub

  •  环境依赖 Python==2.7 or Python>=3.5 for Linux or Mac,Python>=3.6 for Windows,PaddlePaddle>=1.5
  •  安装方式:pip install paddlehub

2、从 PaddleHub 导出预测模型

在有网络访问条件下,执行 python export_model.py 导出两个可用于推理部署的口罩模型,其中:pyramidbox_lite_mobile_mask 为移动版模型, 模型更小,计算量低;pyramidbox_lite_server_mask 为服务器版模型,在此推荐该版本模型,精度相对移动版本更高,也是本次重点精度升级的模型。

成功执行代码后导出的模型路径结构:

  1. pyramidbox_lite_server_mask  
  2.  
  3. ├── mask_detector   # 口罩人脸分类模型  
  4. |   ├── __model__   # 模型文件  
  5. │   └── __params__  # 参数文件  
  6.  
  7. └── pyramidbox_lite # 口罩人脸检测模型  
  8.     ├── __model__   # 模型文件  
  9.     └── __params__  # 参数文件 

3. Python 预测部署编译

支持在 Windows 和 Linux 上编译并部署 Python 项目,内容比较长,建议可以直接参考链接文档:https://github.com/PaddlePaddle/PaddleHub/tree/release/v1.5/demo/mask_detection/python

4. C++预测部署编译

本项目支持在 Windows 和 Linux 上编译并部署 C++项目,流程比较复杂,建议直接参考链接文档:https://github.com/PaddlePaddle/PaddleHub/tree/release/v1.5/demo/mask_detection/cpp

综合预测性能评测

通过内部的数据评测,相比于 PaddleHub 原生 API,借助飞桨高性能预测引擎,在 GPU 条件下速度提升了 300%,CPU 可以提速 50%。

第四波:文档教程丰富与开发者生态贡献交流

此外,也有开发者反馈说之前对 PaddleHub 特性了解不够深入,能不能提供一些系统性的介绍。以下为飞桨团队为开发者提供的教程资源:

目前,开源的口罩人脸检测与识别模型,已经在中油瑞飞等多家企业实际应用落地,对于企业的顺利复工提供安全保障。如果想详细了解更多飞桨 PaddlePaddle 的相关内容,可以参阅以下文档。

口罩 人脸识别 人工智能
上一篇:浅谈人工智能在人脸识别应用方面的优缺点 下一篇:国产深度学习框架MegEngine,三月底即将开源
评论
取消
暂无评论,快去成为第一个评论的人吧

更多资讯推荐

人工智能技术的应用方向

AI是一门非常具有挑战性的科学,但它又是一个边缘学科。这是自然科学与社会科学的交集。主要涉及哲学、认知科学、数学、神经生理学、心理学、计算机科学、信息论、控制论、不定性论、仿生学等学科。

开课吧科科 ·  17h前
AI破解 《死海古卷》背后秘密:不止一位抄写员

据外媒报道,来自格罗宁根大学的研究人员开发了一种新的笔迹分析方法,这为研究《死海古卷》的作者提供了新的线索。

佚名 ·  23h前
医疗机器人已经到来,医学领域将发生巨变

据美国波士顿咨询公司(BCG)预测,2020年全球手术机器人市场规模达到110亿美元,预计可保持20%~25%的复合年增长率,于2023年初达到200亿美元,2025年之前突破300亿美元。

高松 ·  1天前
人工智能教育被列入中小学课堂!

近年来,人工智能领域发展持续升温,人才短缺现状受到关注。国务院于2017年7月发布的《新一代人工智能发展规划》提出,“实施全民智能教育项目,在中小学阶段设置人工智能相关课程”,为人工智能教育赋予了新的任务。

机器人家 ·  1天前
别不懂装懂!机器学习和深度学习弄明白了?

机器学习与深度学习虽然同属于人工智能领域,但它们之间存在很大的差异。三者之间可以理解为,机器学习是AI的子集,而深度学习则是机器学习的子集,就好像一个俄罗斯套娃。

科技星空plus ·  1天前
专家视角丨华先胜:人工智能:是风、是云,还是雨?

人工智能技术广泛应用的今天,各行各业的发展均离不开人工智能的帮助。如何合理利用人工智能技术助力企业发展是每个企业都在思考的问题。阿里巴巴达摩院人工智能中心城市大脑实验室负责人、国际电气与电子工程师协会院士华先胜结合 AI 技术在各个行业的应用实例解析 AI 技术的发展现状,并对未来人工智能的发展做出预测。

佚名 ·  1天前
15张图表带你速览2021人工智能最新趋势

Eliza Strickland ·  1天前
高端芯片能解决智能驾驶的问题吗

随着人工智能算法不断完善,智能化应用逐渐落地,汽车电子架构的发展也在朝着更复杂的方向演进,但出乎意料的是,和宣传视频形成鲜明对比的,正是难以支撑复杂操作的车载系统,也正是前阵子芯片短缺的新闻,才让很多人意识到了车载芯片原来这么落后。

王嘉陆 ·  1天前
Copyright©2005-2021 51CTO.COM 版权所有 未经许可 请勿转载