PaddleHub体验口罩识别

PaddleHub 口罩检测示例

防控疫情,众志成城。人工智能技术正被应用到疫情防控中来。
工程资源
工程md文件
百度积极响应号召,为了助推全社会的力量将AI技术应用于防疫工作,决定免费开源自研的“口罩人脸识别”预训练模型,该模型基于2018年百度在国际顶级计算机视觉会议ECCV 2018的论文PyramidBox而研发,可以在公共场景检测大量的人脸同时,将佩戴口罩和未佩戴口罩的人脸快速识别标注。基于此预训练模型,开发者仅需使用少量自有数据,便可快速完成自有场景模型开发。

飞桨预训练模型管理与迁移学习工具PadddleHub已提供PyramidBox预训练模型(pyramidbox_lite_mobile_mask/pyramidbox_lite_server_mask)用于一键检测人们是否佩戴口罩。同时PaddleHub还提供了飞桨生态下的高质量预训练模型,涵盖了图像分类、目标检测、词法分析、语义模型、情感分析、视频分类、图像生成、图像分割、文本审核、关键点检测等主流模型。更多模型详情请查看官网:https://www.paddlepaddle.org.cn/hub 和 PaddleHub repo:https://github.com/PaddlePaddle/PaddleHub

本示例利用目标检测轻量化模型pyramidbox_lite_mobile_mask完成佩戴口罩检测。

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

1.解压图片

zip_file = zipfile.ZipFile('detection.zip')
zip_list = zip_file.namelist()
for f in zip_list:
    zip_file.extract(f, r'./data')
    # print(f)

2.待预测图片

test_img_path = ["./data/detection/test_mask_detection.jpg"]
img = mpimg.imread(test_img_path[0])

3.展示待预测图片

plt.figure(figsize=(10, 10))
plt.imshow(img)
plt.axis('off')
plt.show()

4.显示内容

with open('./data/detection/test.txt', 'r') as f:
    test_img_path = []
    for line in f:
        test_img_path.append(line.strip())

加载预训练模型

PaddleHub口罩检测提供了两种预训练模型,pyramidbox_lite_mobile_mask和

pyramidbox_lite_server_mask。不同点在于,pyramidbox_lite_mobile_mask

是针对于移动端优化过的模型,适合部署于移动端或者边缘检测等算力受限的设备上。

import paddlehub as hub
import os

口罩检测

module = hub.Module(name="pyramidbox_lite_server_mask")
test_img_path[0] = test_img_path[0].strip('.').strip('/')
test_img_path[0] = os.path.join('./data/detection/', test_img_path[0])
print(50 * '*')
print('test_img_path: %s', test_img_path[0])
print(50 * '*')

PaddleHub对于支持一键预测的module,可以调用module的相应预测API,完成预测功能。

input_dict = {"image": test_img_path}
print("input_dict %s", input_dict)
print(50 * '*')
results = module.face_detection(data=input_dict)
for result in results:
    print(result)

预测结果

img = mpimg.imread("./detection_result/test_mask_detection.jpg")
plt.figure(figsize=(10, 10))
plt.imshow(img)
plt.axis('off')
plt.show()

你可能感兴趣的:(python)