防控疫情,众志成城。人工智能技术正被应用到疫情防控中来。
工程资源
工程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
zip_file = zipfile.ZipFile('detection.zip')
zip_list = zip_file.namelist()
for f in zip_list:
zip_file.extract(f, r'./data')
# print(f)
test_img_path = ["./data/detection/test_mask_detection.jpg"]
img = mpimg.imread(test_img_path[0])
plt.figure(figsize=(10, 10))
plt.imshow(img)
plt.axis('off')
plt.show()
with open('./data/detection/test.txt', 'r') as f:
test_img_path = []
for line in f:
test_img_path.append(line.strip())
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 * '*')
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()