一、简介
以前大夏天戴着口罩别人觉得你不正常,现在上街不戴口罩你不正常。
本文要讲的未戴口罩算法是基于paddlehub提供的模型,paddlehub是百度飞浆(PaddlePaddle)下的深度学习模型开发工具。
PaddleHub旨在为开发者提供丰富的、高质量的、直接可用的预训练模,先看实际效果图。
二、Paddlehub简介与特性
1.【模型种类丰富】: 涵盖CV、NLP、Audio、Video、工业应用主流五大品类的 360+ 预训练模型,全部开源下载,离线可运行
2.【超低使用门槛】:无需深度学习背景、无需数据与训练过程,可快速使用AI模型
3.【一键模型快速预测】:通过一行命令行或者极简的Python API实现模型调用,可快速体验模型效果
4.【一键模型转服务化】:一行命令,搭建深度学习模型API服务化部署能力
5.【十行代码迁移学习】:十行代码完成图片分类、文本分类的迁移学习任务
6.【跨平台兼容性】:可运行于Linux、Windows、MacOS等多种操作系统
三、提供的模型
图像类(212个)
包括图像分类、人脸检测、口罩检测、车辆检测、人脸/人体/手部关键点检测、人像分割、80+语言文本识别、图像超分/上色/动漫化等
文本类(130个)
包括中文分词、词性标注与命名实体识别、句法分析、AI写诗/对联/情话/藏头诗、中文的评论情感分析、中文色情文本审核等
语音类(15个)
1.ASR语音识别算法,多种算法可选
2.TTS语音合成算法,多种算法可选
视频类(8个)
包含短视频分类,支持3000+标签种类,可输出TOP-K标签,多种算法可选。
详细模型可查看下面链接:
https://github.com/PaddlePaddle/PaddleHub/blob/release/v2.2/modules/README_ch.md
四、口罩检测案例代码
安装依赖包
pip install paddlehub
pip install paddlepaddle
pip install opencv-python
import paddlehub as hub
import cv2
# 使用模型可以通过上面的模型说明链接获取
mask_detector = hub.Module(name="pyramidbox_lite_server_mask")
img_path = '1.jpeg'
img = cv2.imread(img_path)
input_dict = {"data": [img]}
result = mask_detector.face_detection(data=input_dict)
result = result[0]['data']
for i in result:
label = i['label']
score = i['confidence']
x1 = i['left']
y1 = i['top']
x2 = i['right']
y2 = i['bottom']
cv2.rectangle(img, (x1, y1), (x2, y2), (255, 0, 255), 2)
# 未戴口罩
if label == 'NO MASK':
cv2.putText(img, label, (x1, y1), 0, 0.5, (255, 0, 255), 2)
else:
cv2.putText(img, label, (x1, y1), 0, 0.5, (255, 0, 255), 2)
cv2.imwrite('result.jpg', img)