学习记录之PaddleHub一键式口罩检测

PaddleHub口罩检测示例

环境配置:

python版:python3.7

框架版本:PaddlePaddle 1.7.1

模型:该模型基于2018年度百度在国际顶级计算机视觉会议ECCV2018的论文PyramidBox而研发,可以在公共场景检测大量的人脸同时,将佩戴口罩和未佩戴口罩的人脸快速识别标注。基于此预训练模型,我们仅需使用少量自有数据,便可快速完成自有的场景模型的开发。

 

PaddleHub已提供PyramidBox预训练模型(pyramidbox_lite_mobile_mask/pyramidbox_lite_server_mask)用于一键检测人们是否佩戴口罩。

本示例基于pyramidbox_lite_mobile_mask完成佩戴口罩检测。

如果在本地运行该项目示例的话,需要安装PaddleHub

一、定义待预测数据

以当前文件夹下数据集文件夹data30915下的4.jpg为待预测图片.以下代码就是导入相应的包,读入待预测图片,然后通过对待预测图片进行预处理后进行显示。

import matplotlib.pyplot as plt 
import matplotlib.image as mpimg 

# 待预测图片
test_img_path = ["/home/aistudio/data/data30915/4.jpg"]
img = mpimg.imread(test_img_path[0]) 

# 展示待预测图片
plt.figure(figsize=(10,10))
plt.imshow(img) 
plt.axis('off') 
plt.show()

学习记录之PaddleHub一键式口罩检测_第1张图片

二、加载预训练模型

这里PaddleHub口罩检测提供了两种预训练模型,一个是pyramidbox_lite_mobile_mask和pyramidbox_lite_server_mask。不同点在于pyramidbox_lite_mobile_mask(本示例所使用的预训练模型)是针对移动端优化过的模型,适合部署于移动端或者边缘检测等算了受限的设备上。

接下来就是导入下载好的paddlehub,并用paddlehub导入已经存在的pyramidbox_lite_mobile_mask模型,这是paddle已经做好的模型,不需要自己构建。

import paddlehub as hub

module = hub.Module(name="pyramidbox_lite_mobile_mask")
# module = hub.Module(name="pyramidbox_lite_server_mask")
#也可使用下面的模型试试效果

学习记录之PaddleHub一键式口罩检测_第2张图片

显示已经导入成功,既然预训练的模型已经建成,那就可以直接用建好的模型进行预测了。

三、预测

PaddleHub对于支持一键预测的module,可以调用相对应预测API,完成预测功能。接下的代码就是使用PaddleHub的预训练模型进行预测并输出预测的结果。

input_dict = {"image": test_img_path}#输入预测图像的路径

# 口罩检测预测
results = module.face_detection(data=input_dict)#使用预训练模型进行预测
for result in results:
    print(result)#输出预测结果

# 预测结果展示
img = mpimg.imread("/home/aistudio/data/data30915/4.jpg")
plt.figure(figsize=(10,10))
plt.imshow(img) 
plt.axis('off') 
plt.show()
#把结果放进地址为"/home/aistudio/data/data30915/4.jpg,并进行处理

结果显示如下,其中戴口罩的用红框标出。代码运行后还会显示标签,即是否戴口罩,以及戴口罩的口罩位置。

学习记录之PaddleHub一键式口罩检测_第3张图片

你可能感兴趣的:(学习记录)