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

教程  https://www.yahboom.com/build.html?id=1999&cid=257

项目地址  https://github.com/revotu/ItChat

xp3g

本项目的具体需求是:树莓派启动微信服务和OpenCV服务,OpenCV对摄像头实时视频监控,当检测到人脸后后拍照,将拍摄到的照片通过微信发送给用户的个人好友。

本项目中,对于微信的操作,我们需要用到的API是itchat。 itchat是一个微信对于python封装的api,它的功能非常强大,我们可以使用它和python对自己微信的很多信息进行爬取。

首先使用pip安装itchat:

Windows用户可以直接打开cmd输入:

pip install itchat

Mac用户由于没有对anaconda的python配置环境变量,需要先在终端输入:

curl https://bootstrap.pypa.io/get-pip.py | python3

树莓派版本无需下载pip,直接下载itchat输入:

pip install itchat

pip命令和pip3的区别是:pip3可以直接下载适合python3 使用的package。对于树莓派,我们可以根据spyder中python的版本使用pip2或pip3下载itchat:

pip2 install itchat

首先要进行的操作是:

import itchat

itchat.auto_login(hotReload=True)

这两句代码的作用是引入itchat后自动登录,itchat.auto_login()可以自动生成一个二维码,将hotReload设置为True的作用是微信支持本机的热登录,意思是:用户第一次启动程序并扫描二维码登录后,之后再次运行本程序的时候程序将不需要用户重复扫描二维码。

之后进行人脸检测,当检测到人脸后通过cv2.imwrite将当前帧保存到out.png中,当前itchat的版本已经不支持直接用itchat.send将消息或文件发送给自己的好友了,但是我们可以用:

itchat.send("@[email protected]%s"%‘out.png‘,"filehelper")

将消息发送给“文件传输助手”,或者直接省略第二个参数将文件发送给自己。本问题的解决方法是利用

itchat.search_friends(name=‘friend1’)这个方法将放回一个昵称为friend1的好友的详细信息的类似json的数组。然后用.send将信息发出。

itchat.send(“@[email protected]%s”%’out.png‘,account[0][‘UserName‘])

除此之外,为了避免同样的图片在短时间内被重复发送,对于本程序,我们在每次发送图片前后都设置时间戳,如果距离上一次发送图片的时间间隔小于10分钟,放弃发送图片。

运行效果,程序的源码位于/home/pi/yahboom/wechat_face/wachat_face.py将检测到的人脸视频留帧,发送给好友昵称为“senge”的用户,在图片上记录拍照时间:

 

progressive:上文程序中将照片发送给了“friend1”,微信又一个名为“文件传输助手”的应用,它的“昵称”为“filehelper”。请查阅资料,实现向“filehelper”发送照片

#!/usr/bin/env python2
# -*- coding: utf-8 -*-

from __future__ import division
import cv2
import time
import sys
reload(sys)
sys.setdefaultencoding(‘utf8‘)
import os.path
import itchat
#自动登录,微信会自动生成二维码,可以在屏幕上弹出二维码
#设置hotreload为真,可以热启动,也就是说之后几次
itchat.auto_login(hotReload=True)
#摄像头操作
cap=cv2.VideoCapture(0)
cap.set(3,320)
cap.set(4,320)
face_cascade=cv2.CascadeClassifier(‘123.xml‘)
sendDate=0

while True:
    #人脸识别的模块
    ret,frame=cap.read()
    gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
    faces=face_cascade.detectMultiScale(gray)
    max_face=0
    value_x=0
    font=cv2.FONT_HERSHEY_SIMPLEX
    cv2.putText(frame,time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()),(20,20),font,0.8,(255,255,255),1)
    #找到人脸后进行一系列操作
    if len(faces)>0:
        #设置时间戳
        currentDate=time.time()
        for (x,y,w,h) in faces:
            cv2.rectangle(frame,(x,y),(x+h,y+w),(0,255,0),2)
            result=(x,y,w,h)
            x=result[0]
            y=result[1]
        if currentDate-sendDate>600:
            #如果在10分钟内没有发送过图片,
            #将当前帧写入独立png中
            cv2.imwrite("out.png",frame)
            #先通过search_friend爬去friend1的数据
            #因为现在itchat不支持直接通过friend1发送消息
            account=itchat.search_friends(name=‘senge‘)
            print(account[0][‘UserName‘])
            #发送
            itchat.send("@[email protected]%s"%‘out.png‘,account[0][‘UserName‘])
            #记录时间
            sendDate=time.time()
    cv2.imshow("capture",frame)
    if cv2.waitKey(1)==119:
        break
cap.release()
cv2.destroyAllWindows()

  

原文地址:https://www.cnblogs.com/kekeoutlook/p/11123647.html

时间: 2024-08-01 07:41:53

(19) 树莓派发送微信人脸识别报警的相关文章

树莓派 opencv Python 人脸识别

sudo apt-get update sudo apt-get upgrade sudo apt-get install python-opencv sudo apt-get install python-pip sudo apt-get install python-dev sudo pip install picamera 以上是安装环境(目前opencv 只支持python 2.7:更高版本运行会报"No module named 'cv2'" 错误)

微信日志开发之人脸识别开发

这节我们将简单介绍在微信日志中如何实现人脸识别功能 人脸识别我们将会使用Face++提供的api. 需要使用的id以及AppKey请到官网首页注册获取. (一)实现步骤 1.将用户发送信息获取并提交到服务器 2.服务器端处理信息并返回处理结果 3.将信息返还给用户 (二)实现代码 1.信息提取 在微信日志的主函数中我们有用户输入信息获取的函数,人脸识别的相关信息也可以在其中实现 public function __construct() { global $wpdb; if(isset($_GE

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

人脸识别 树莓派 联网程序主体与百度云API接驳 单片机 摄像头获取图片并发送到树莓派上 python 丰富的第三方库,易于上手人工智能安装baidu-aip依据官方文档编程 百度云api 百度云控制台,产品:人工智能>人脸识别>立即使用>创建应用>勾选相应选项得到AppID/API Key/Secret Key ->python程序中使用 人脸识别--树莓派+单片机+python+百度云aip 原文地址:http://blog.51cto.com/13521168/2121

微信好友大揭秘,使用Python抓取朋友圈数据,通过人脸识别全面分析好友,一起看透你的“朋友圈”

微信:一个提供即时通讯服务的应用程序,更是一种生活方式,超过数十亿的使用者,越来越多的人选择使用它来沟通交流. 不知从何时起,我们的生活离不开微信,每天睁开眼的第一件事就是打开微信,关注着朋友圈里好友的动态,而朋友圈中或虚或实的状态更新,似乎都在证明自己的"有趣",寻找那份或有或无的存在感. 有人选择在朋友圈记录生活的点滴,有人选择在朋友圈展示自己的观点.有时我们想去展示自己,有时又想去窥探着别人的生活,而有时又不想别人过多的了解自己的生活,或是屏蔽对方,或是不给对方看朋友圈,又或是不

微信小程序人脸识别功能

本文档以微信小程序为例,微信小程序开发人脸核身功能需要两个申请:腾讯云申请人脸识别服务和小程序申请人脸识别服务(注意:只有符合以下条件的机构才能在小程序端申请) 政务:政府机构或事业单位金融:银行.保险医疗:公立医疗机构运营商:电信运营商教育:公立教育机构交通:航空.客运.网约车.交通卡.共享交通.轨道交通.租车旅游:酒店物流:快递.邮政.物流 主要参考文档: 1.腾讯云人脸核身文档 :https://cloud.tencent.com/product/faceid/developer 2.腾讯

PHP实现人脸识别技术

这次人脸识别技术,是实现在微信端的,也就是说利用公众微信平台,调用第三的API来实现人脸识别这项技术的. 实现的思路: 首先呢,将收集的照片,建立一个照片库,然后利用在微信平台发送的照片,去到照片库进行匹配,那么怎么匹配呢? 这就要利用第三方的API了. 这个是收集信息,然后存储到信息库(包括图谱库) 部分代码: <html> <head> <meta charset="utf-8"/> <meta name="viewport&qu

40行代码的人脸识别实践【转】

转自:http://blog.csdn.net/xingchenbingbuyu/article/details/68482838?ref=myrecommend 版权声明:本文为博主原创文章,转载请联系作者取得授权. 目录(?)[+] 40行代码的人脸识别实践 40行代码的人脸识别实践 前言 一点区分 所用工具 Dlib 人脸识别 前期准备 识别流程 代码 运行结果 前言 很多人都认为人脸识别是一项非常难以实现的工作,看到名字就害怕,然后心怀忐忑到网上一搜,看到网上N页的教程立马就放弃了.这些

借助百度云API进行人脸识别

前言:本篇博客是笔者第一次使用百度云api进行人脸检测,主要内容包括两部分,一是获取接口,二是借助接口进行人脸检测,最终可以给出一个百分比判别两张人脸是否属于同一个人.笔者也是初步了解这方面的内容,也是参考了杂七杂八的博文,内容可能存在错误及其他毛病,欢迎指出. 1:在百度AI里面创建应用 在百度AI开放平台使用百度的人脸识别能力,只需要三个核心步骤即可操作完成: 获取接口权限 准备接口调用工具 进行接口调用. 获取接口权限 获取接口权限是调用接口的前提,主要分为以下几步: 1.进入百度云的人脸

多维活体检测,让人脸识别更安全

今年的315晚会提到人脸识别领域的安全风险,主持人用现场合成的视频通过了活体检测和人脸验证,因此人脸识别的安全性引起大众关注.对于活体检测的安全隐患,腾讯优图团队一直保持高度关注,并依托多年积累的技术能力和业务运营经验,已经对人脸识别技术手段进行过多次安全升级,让人脸识别更安全. 一.目前人脸识别常见攻击手段有什么? 1 .纸片翻拍,通过打印用户的照片进行攻击: 2. 屏幕翻拍,一些3D建模技术可以驱动用户的单张照片或视频做出系统要求的摇头.张嘴.眨眼等动作: 3. 用户戴面具: 二.如何应对人