v1.1基于树莓派的opencv-python摄像头人脸追踪系统(更新系统含演示视频)(代码片段)

网易独家音乐人MikeZhou 网易独家音乐人MikeZhou     2023-03-29     329

关键词:

【V1.1】基于树莓派的OpenCV-Python摄像头人脸追踪系统(更新系统、含演示视频)

该系统目前结合了树莓派+51单片机
树莓派主要用于运行Python程序 追踪人脸 同时用GPIO口给出信号
单片机用于控制42步进电机导轨左右移动

资源:
download.csdn.net/download/weixin_53403301/83189467

视频:

【V1.1】基于树莓派的OpenCV-Python摄像头人脸追踪系统(更新系统、含演示视频)

先前的文章:
blog.csdn.net/weixin_53403301/article/details/122898050
人脸追踪部分:
blog.csdn.net/weixin_53403301/article/details/120497427
单片机控制42步进电机导轨部分:
blog.csdn.net/weixin_53403301/article/details/122658780

代码如下:

import cv2
import threading
import RPi.GPIO as GPIO
# import time

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.OUT)
GPIO.setup(24, GPIO.OUT)
GPIO.output(23, GPIO.HIGH)
GPIO.output(24, GPIO.HIGH)

cap = cv2.VideoCapture(0)  # 开启摄像头
classifier = cv2.CascadeClassifier('haarcascade_frontalface_alt2.xml')

ok, faceImg = cap.read()  # 读取摄像头图像
if ok is False:
    print('无法读取到摄像头!')
high=faceImg.shape[0]
width=faceImg.shape[1]
left_point = width/2+25
right_point = width/2-25
gray = cv2.cvtColor(faceImg,cv2.COLOR_BGR2GRAY)
faceRects = classifier.detectMultiScale(gray,scaleFactor=1.2,minNeighbors=3,minSize=(32, 32))
close=0
def LEFT():
    GPIO.output(23, GPIO.LOW)
    GPIO.output(24, GPIO.HIGH)
    
def RIGHT():
    GPIO.output(23, GPIO.HIGH)
    GPIO.output(24, GPIO.LOW)
    
def STOP():
    GPIO.output(23, GPIO.HIGH)
    GPIO.output(24, GPIO.HIGH)

def track():
    while close==0:
        gray = cv2.cvtColor(faceImg,cv2.COLOR_BGR2GRAY)
        faceRects = classifier.detectMultiScale(gray,scaleFactor=1.2,minNeighbors=3,minSize=(32, 32))
        if len(faceRects):
            x,y,w,h = faceRects[0]
            # 框选出人脸   最后一个参数2是框线宽度
    #         cv2.rectangle(faceImg,(x, y), (x + w, y + h), (0,255,0), 2)
            central_point = x+w/2 
            if central_point > left_point:
                LEFT()
                print("Left")
            elif central_point < right_point:
                RIGHT()
                print("Right")
            else:
                STOP()
                print("Central")
    STOP()
    print("Stop")

thread1 = threading.Thread(target=track)
thread1.start()

# 循环读取图像
while True:
    faceImg = cap.read()[1]  # 读取摄像头图像
    cv2.imshow("faceImg",cv2.flip(faceImg,1))
    if cv2.waitKey(10) == 27:   # 通过esc键退出摄像
        break

# 关闭摄像头
cap.release()
cv2.destroyAllWindows()
close=1
STOP()
print("Stop")

py打包

Pyinstaller打包exe(包括打包资源文件 绝不出错版)

依赖包及其对应的版本号

PyQt5 5.10.1
PyQt5-Qt5 5.15.2
PyQt5-sip 12.9.0

pyinstaller 4.5.1
pyinstaller-hooks-contrib 2021.3

Pyinstaller -F setup.py 打包exe

Pyinstaller -F -w setup.py 不带控制台的打包

Pyinstaller -F -i xx.ico setup.py 打包指定exe图标打包

打包exe参数说明:

-F:打包后只生成单个exe格式文件;

-D:默认选项,创建一个目录,包含exe文件以及大量依赖文件;

-c:默认选项,使用控制台(就是类似cmd的黑框);

-w:不使用控制台;

-p:添加搜索路径,让其找到对应的库;

-i:改变生成程序的icon图标。

如果要打包资源文件
则需要对代码中的路径进行转换处理
另外要注意的是 如果要打包资源文件 则py程序里面的路径要从./xxx/yy换成xxx/yy 并且进行路径转换
但如果不打包资源文件的话 最好路径还是用作./xxx/yy 并且不进行路径转换

def get_resource_path(relative_path):
    if hasattr(sys, '_MEIPASS'):
        return os.path.join(sys._MEIPASS, relative_path)
    return os.path.join(os.path.abspath("."), relative_path)

而后再spec文件中的datas部分加入目录
如:

a = Analysis(['cxk.py'],
             pathex=['D:\\\\Python Test\\\\cxk'],
             binaries=[],
             datas=[('root','root')],
             hiddenimports=[],
             hookspath=[],
             hooksconfig=,
             runtime_hooks=[],
             excludes=[],
             win_no_prefer_redirects=False,
             win_private_assemblies=False,
             cipher=block_cipher,
             noarchive=False)

而后直接Pyinstaller -F setup.spec即可

如果打包的文件过大则更改spec文件中的excludes 把不需要的库写进去(但是已经在环境中安装了的)就行

这些不要了的库在上一次编译时的shell里面输出
比如:


然后用pyinstaller --clean -F 某某.spec

基于树莓派的家庭智能监控系统如何实现?

基本描述基于树莓派的家庭智能监控系统。需求大概如下:用各类传感器,树莓派,摄像头和云台构造一个家用智能监控系统。红外、超声波、声音等传感器检测周边环境,遇到情况树莓派自动控制摄像头开始录像,并且发送警... 查看详情

基于树莓派的人脸识别解锁门锁设计

点击查看:基于树莓派的人脸识别解锁门锁设计 查看详情

基于树莓派的人脸识别门禁系统(代码片段)

一、树莓派Opencv以及扩展模块的安装1、概述:本次在树莓派上安装Opencv及其扩展模块,考虑到树莓派的SD卡容量和内存的限制,不采用直接pip安装方法,而采用编译Opencv源码的方式进行安装。2、遇到的问题及解决... 查看详情

基于树莓派的微型气象站设计与开发

前言  树莓派(RaspberryPi,RPi)是专门为学生计算机编程教育而设计,只有信用卡大小的卡片式电脑,可以运行Linux或者Windows10IoTCore操作系统。本文将利用树莓派和UWP(UniversalWindowsPlatform)开发技术搭建一个可以实时监控的气... 查看详情

基于树莓派的无线路由器改造

估计是昨天台风的影响,家里的渣渣路由罢工了,只能链接却无法上网。本来打算上网淘一个回来,结果昨晚收拾东西的时候发现大学买来做人脸识别的树莓派在墙角吃灰很久,于是打算对其进行改造。太久没动树莓派,上电没... 查看详情

在windowsiot上使用网络摄像头

在树莓派上可以使用它官方标配的摄像头,但是这个摄像头似乎不能被WindowsIoT识别和使用。但是,可以在树莓派的USB口上插入任意型号的摄像头,就可以实现树莓派的拍摄功能。关于摄像头的寻找和拍摄,我将其封装成一个类... 查看详情

hisparkipccamera开发环境搭建(基于v1.1.4)

...发系统:Ubuntu20.04Harmony版本:code-v1.1.4-LTS.tarHiSparkIPCCamera基于华为海思Hi3518芯片,支持LiteOS、OpenHarmony,广泛应用于智能摄像头、安防监控等场景。本文将介绍如何搭建HiSparkIPCCamera开发环境,OpenHarmony主要在Linux平台上开发,因此... 查看详情

如何增加树莓派的 fps 以进行对象检测

】如何增加树莓派的fps以进行对象检测【英文标题】:howtoincreasefpsforraspberrypiforobjectdetection【发布时间】:2019-07-1918:27:23【问题描述】:我的树莓派实时物体检测的fps很低我使用笔记本电脑windows10在我自己的数据集上训练了yolo-d... 查看详情

hisparkipccamera开发环境搭建(基于v1.1.4)(代码片段)

...:Ubuntu20.04Harmony版本:code-v1.1.4-LTS.tarHiSparkIPCCamera基于华为海思Hi3518芯片,支持LiteOS、OpenHarmony,广泛应用于智能摄像头、安防监控等场景。本文将介绍如何搭建HiSparkIPCCamera开发环境,OpenHar 查看详情

python自动化编程-树莓派的介绍与使用

...编程教育而设计),只有信用卡大小的微型电脑,其系统基于Linux。 随着Windows10IoT的发布,我们也将可以用上运行Windows的树莓派。研发树莓派的目的是通过低价硬件及自由软件来推动学校的基础计算机学科教育。但很快树莓... 查看详情

树莓派进阶之路(036)-树莓派的音频部分

...节声音。  方法二:mocp使用命令  mocp`是一款开源的基于控制台的音乐播放器,也就是说在文本字符界面下使用的音乐播放器,支持`MP3` 查看详情

树莓派(raspberrypi)4b使用摄像头拍照篇(代码片段)

前言首先呢你需要去购买下摄像头,毕竟树莓派默认不带摄像头_安装摄像头这是树莓派的板子,在红色CSI接口处插入摄像头配置安装完成后,就是配置了,由于我们下载的树莓派os是带有很多东西的,也就没必要在进行一些依赖... 查看详情

树莓派(raspberrypi)4b使用摄像头拍照篇(代码片段)

前言首先呢你需要去购买下摄像头,毕竟树莓派默认不带摄像头_安装摄像头这是树莓派的板子,在红色CSI接口处插入摄像头配置安装完成后,就是配置了,由于我们下载的树莓派os是带有很多东西的,也就没必要在进行一些依赖... 查看详情

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

目录效果演示第三方库的安装 换源魔镜界面绘制服务器部署人脸识别流程图 源码地址效果演示天气新闻日期热点等更新【录屏】 第三方库的安装importpaho.mqtt.clientaspahomqttfromPyQt5importQtCore,QtGui,QtWidgetsfromPyQt5.QtWidgetsimportQApplicatio... 查看详情

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

目录效果演示第三方库的安装 换源魔镜界面绘制服务器部署人脸识别流程图 源码地址效果演示天气新闻日期热点等更新【录屏】 第三方库的安装importpaho.mqtt.clientaspahomqttfromPyQt5importQtCore,QtGui,QtWidgetsfromPyQt5.QtWidgetsimportQApplicatio... 查看详情

向sd卡写入树莓派的操作系统

...用的操作系统,其中Raspbian是官方支持的操作系统,它是基于Linux的Debian发行版。如果没有特殊要求,一般都会使用Raspbian。操作系统文件将近有1GB的大小,在这段空闲里去喝口茶吧。&n 查看详情

在树莓派的交叉编译 qt 中构建应用程序时出错

...莓派中的交叉编译qt5上构建和应用程序。这个应用程序是基于这个rf24l01library。当我从RPi编译cpp程序时,一切正常,但是当我从运行ubuntu12.04(32bits)的电脑上尝试时,出现 查看详情

基于树莓派的智能魔镜,支持人脸识别情感监测热词唤醒语音交互,以及与手机app交互温湿度/新闻热点/日期显示等

目录​​功能清单​​​​界面演示​​​​系统框图​​​​设计方案​​​​整体结构​​​​网站设计​​​​ app设计​​​​ 魔镜界面设计​​​​ 温湿度传感器​​​​ 光电传感器​​​​相关教程... 查看详情