前面的内容请看:
链接: 人脸口罩智能检测的微信小程序实现(一).
四 、项目设计
4.1项目总体设计
人脸口罩智能检测的微信小程序实现,主要以微信小程序作为载体,以python的django框架为后端,对本地照片进行人脸口罩智能检测。
4.2 运行环境
Windows系统
Pycharm软件搭建django后端
微信开发者工具
Python主要模型:PaddleHub口罩检测 下载方法:pip install paddlehub
4.3项目详细设计
4.3.1微信小程序的前端设计
前端效果展示如图:
启动微信小程序,首先是欢迎页,如图4-1
图4-1 欢迎页
之后自动跳转至介绍页,如图4-2
图4-2 介绍页
点击开始检测之后,进入检测页,如图4-3
图4-3 检测页
点击选择图片,读取本地照片如图4-4
图4-4 选择图片
点击查看结果后,将图片数据传递给后端,后端检测后,返回结果给微信小程序。检测结果有两种可能性。如图4-5和图4-6
图4-5 有人没戴口罩
图4-6 正常戴口罩
4.3.1后端设计
(1)后端是由python的django框架支持。
Python下有许多款不同的 Web 框架。Django是重量级选手中最有代表性的一位。许多成功的网站和APP都基于Django。
Django 是一个开放源代码的 Web 应用框架,由 Python 写成。
(2)这里主要详细介绍用到的python第三方库的核心模型模块:PaddleHub口罩检测
PaddleHub是一个深度学习模型开发工具。它基于飞桨领先的核心框架,精选效果优秀的算法,提供了百亿级大数据训练的预训练模型,方便用户不用花费大量精力从头开始训练一个模型。PaddleHub可以便捷地获取这些预训练模型,完成模型的管理和一键预测。
而paddlehub开源的的口罩检测模型具体实现,一共就只有四个步骤:
• 1.引入模块和图片
• 2.载入模型
• 3.分类与预测
• 4.结果展示
把我们需要测试的图片保存在该代码文件的同一目录下,命名为3.jpg:
代码展示:
import paddlehub as hub
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
1.待预测图片
test_img_path = [“./3.jpg”]
2.载入模型
module = hub.Module(name=“pyramidbox_lite_mobile_mask”)
3.预测
input_dict = {“image”: test_img_path}
results = module.face_detection(data=input_dict)
4.结果展示
img = mpimg.imread(“detection_result/3.jpg”)
plt.figure(figsize=(10, 10))
plt.imshow(img)
plt.axis(‘off’)
plt.show()
结果图:
(3)paddlehub结合到本微信小程序项目的实际运用:
在本项目中,前端把图片数据传给后端后,后端调用paddlehub模型进行分析出结果图,然后对结果图的no mask数据与mask数据进行分析,传回1和0给前端。并不是把结果图传回前端。然后前端得到1和0返回值,便触发不戴口罩与戴口罩的相应事件。