基于paddleHub的 口罩检测

  在如今面临的新冠疫情的大危机下,每个人带上口罩不仅是对自己负责,同时也是对他人负责,但总有一些人确反而其道,不想戴,极有可能造成感染,为此口罩检测的作用就发挥出来了,以确保每个人都应该戴上口罩,否则施以惩戒措施,还社会一个安全的环境。

  对于该paddleHub的口罩检测,有一下步骤:
  1、定义待预测数据
  2、加载预训练模型
  3、预测
  4、部署服务器
  5、移动端部署

定义待预测数据
# 待预测图片
test_img_path = ["./test_mask_detection.jpg"]


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

img = mpimg.imread(test_img_path[0]) 

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

加载预训练模型
import paddlehub as hub

module = hub.Module(name="pyramidbox_lite_mobile_mask")

实现预测
import os

import cv2

imgs = [cv2.imread(test_img_path[0])]

# 口罩检测预测
# visualization=True 将预测结果保存图片可视化
# output_dir='detection_result' 预测结果图片保存在当前运行路径下detection_result文件夹下
results = module.face_detection(images=imgs, use_multi_scale=True, shrink=0.6, visualization=True, output_dir='detection_result')
for result in results:
    print(result)

# 预测结果展示

path = os.path.join('detection_result', 'test_img.jpg')
img = mpimg.imread(path)
plt.figure(figsize=(10,10))
plt.imshow(img) 
plt.axis('off') 
plt.show()

效果图
基于paddleHub的 口罩检测_第1张图片

部署服务器

$ hub serving start -m pyramidbox_lite_server_mask -p 8866

部署移动端

// 读取图片
cv::Mat img = imread(img_path, cv::IMREAD_COLOR);
// 加载人脸检测或者口罩佩戴判别模型
MobileConfig config;
config.set_model_dir(model_dir);
PaddlePredictor* predictor =
CreatePaddlePredictor(config);
// 设置输入
Tensor* input_tensor = predictor->GetInput(0);
input_tensor->Resize({1, 3, img.rows,img.cols});
set_input(img, input_tensor); //调用自定义函数
// 执行
predictor->Run();
// 输出结果
Tensor* output_tensor = predictor->GetOutput(0);
show_output(img, output_tensor); //调用自定义函数

你可能感兴趣的:(深度学习)