树莓派 --- 人脸口罩识别智能监控

Posted So istes immer

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树莓派 --- 人脸口罩识别智能监控相关的知识,希望对你有一定的参考价值。

目录

初步效果设想

像SIRI那样的语音唤醒,开启服务
只有当摄像头检测到人脸时,舵机才开始调整位置,让人脸保持C位
检测人脸是否戴口罩了,没带就发出“提示”,戴了就不管
长时间不戴例如8s,就拍一张照,并发到我的qq邮箱

应用场景:疫情期间,超市、食堂、餐厅用该装置,相比让工作人员去提醒,可以省去大量人力、财力

分五大模块开发:语音唤醒、人脸追踪定位、控制舵机、人脸口罩识别、将拍的人脸图片发送至qq邮箱

1.语音唤醒模块

2.人脸追踪定位模块

3.控制舵机模块

4.人脸口罩识别模块 

5.图片发送模块

①先基于下文进行配置  

 树莓派 --- 开机自动发送IP到自己的QQ邮箱

②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度控制也是一个缺陷

以上是关于树莓派 --- 人脸口罩识别智能监控的主要内容,如果未能解决你的问题,请参考以下文章

智能家居项目之树莓派+摄像头进行人脸识别

树莓派实现人脸打卡机

人脸识别——树莓派+单片机+python+百度云aip

AI人脸识别/车辆识别/口罩识别智能分析网关烟火检测算法的配置及使用

(19) 树莓派发送微信人脸识别报警

基于树莓派的智能魔镜,支持人脸识别情感监测热词唤醒语音交互,以及与手机APP交互的实现