树莓派 --- 人脸口罩识别智能监控
Posted So istes immer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树莓派 --- 人脸口罩识别智能监控相关的知识,希望对你有一定的参考价值。
初步效果设想
像SIRI那样的语音唤醒,开启服务
只有当摄像头检测到人脸时,舵机才开始调整位置,让人脸保持C位
检测人脸是否戴口罩了,没带就发出“提示”,戴了就不管
长时间不戴例如8s,就拍一张照,并发到我的qq邮箱
应用场景:疫情期间,超市、食堂、餐厅用该装置,相比让工作人员去提醒,可以省去大量人力、财力
分五大模块开发:语音唤醒、人脸追踪定位、控制舵机、人脸口罩识别、将拍的人脸图片发送至qq邮箱
1.语音唤醒模块
2.人脸追踪定位模块
3.控制舵机模块
4.人脸口罩识别模块
5.图片发送模块
①先基于下文进行配置
②send_pic.py封装一个send_mail(file_path)方法,只要传入图片路径file_path,就能实现图片发送到我的qq邮箱
send_pic.py
# coding=utf-8
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr
from email.mime.multipart import MIMEMultipart # 创建附件类型
# 设置发件人和收件人信息
my_sender='xxxxxxxxxxxxxxxxx' # 发件人邮箱账号
my_pass = 'xxxxxxxxxxxxxxxxx' # 发件人邮箱密码(之前获取的授权码)
my_user='xxxxxxxxxxxxxxxxx' # 收件人邮箱账号
msg = MIMEMultipart('related') # 邮件信息为空,相当于信封,related表示使用内嵌资源的形式,将邮件发送给对方
def send_mail(file_path):
ret=True
try:
# 发送信息内容
msg_html = MIMEText('自拍照', 'html', 'utf-8')
msg.attach(msg_html)
# 发送图片,以附件形式
msg_image = MIMEText(open(file_path, 'rb').read(), 'base64', 'utf-8')
msg_image['Content-disposition'] = "attachment;filename='me.jpg'" # 设置图片在附件中的名字
msg.attach(msg_image)
msg['From']=formataddr(["Jack",my_sender]) # 括号里的对应发件人邮箱昵称、发件人邮箱账号
msg['To']=formataddr(["Rose",my_user]) # 括号里的对应收件人邮箱昵称、收件人邮箱账号
msg['Subject']="我的自拍照" # 邮件的主题,也可以说是标题
server=smtplib.SMTP("smtp.qq.com", 587) # 发件人邮箱中的SMTP服务器,端口是587
server.login(my_sender, my_pass) # 括号中对应的是发件人邮箱账号、邮箱密码
server.sendmail(my_sender,[my_user,],msg.as_string()) # 括号中对应的是发件人邮箱账号、收件人邮箱账号、发送邮件
server.quit() # 关闭连接
except Exception:
ret=False
return ret
③测试上面封装的send_mail(file_path)函数
main.py (main.py、send_pic.py、test.jpg在同一目录)
from send_pic import send_mail
if __name__ == '__main__':
if send_mail('test.jpg'):
print('发送邮件成功!')
else:
print('发送邮件失败!')
6.模块整合
7.深入思考
①如果很多人不戴口罩,用qq邮件一张张发送人脸照片太麻烦了,还不如存到一个固定文件夹中
②如果一个人在监控范围内因为长时间不戴口罩(尽管有语音提示)而被记录下人脸,他走出监控范围才戴了口罩,第二次进入监控范围,如何消除上次记下的人脸记录?
其实我想了想,长时间不戴口罩就已经算是危险分子了,就不消除记录了吧,哈哈
③在超市、餐厅这样的地方,需要放多个这样的装置才能覆盖更大的范围
④人脸追踪云台监控相比传统固定监控,优势在于扩大了监控的范围
⑤舵机不能360度控制也是一个缺陷
以上是关于树莓派 --- 人脸口罩识别智能监控的主要内容,如果未能解决你的问题,请参考以下文章