【V1.0】基于树莓派OpenCV的摄像头人脸追踪系统

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

资源:
https://download.csdn.net/download/weixin_53403301/80270053

最新:
https://blog.csdn.net/weixin_53403301/article/details/123252275

视频:
【V1.0】基于树莓派的OpenCV-Python摄像头人脸追踪系统-哔哩哔哩 https://b23.tv/gk7YVaO
【V1.0】基于树莓派的OpenCV-Python摄像头人脸追踪系统

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

树莓派Python代码如下:

import cv2
import threading
import RPi.GPIO as GPIO
# import timeGPIO.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)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)cap = cv2.VideoCapture(0)  # 开启摄像头
classifier = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
def track():faceRects = classifier.detectMultiScale(gray,scaleFactor=1.2,minNeighbors=3,minSize=(32, 32))if len(faceRects):for faceRect in faceRects:x,y,w,h = faceRect# 框选出人脸   最后一个参数2是框线宽度cv2.rectangle(faceImg,(x, y), (x + w, y + h), (0,255,0), 2)
#                print(x+w/2)if x+w/2 > width/2+50:print("Left")LEFT()
#                 time.sleep(0.1)elif x+w/2 < width/2-50:print("Right")RIGHT()
#                 time.sleep(0.1)elif width/2-50 < x+w/2 < width/2+50:print("Central")STOP()
# 循环读取图像
while True:ok, faceImg = cap.read()  # 读取摄像头图像if ok is False:print('无法读取到摄像头!')break#    faceImg = imghigh=faceImg.shape[0]width=faceImg.shape[1]
#    print(width,high)gray = cv2.cvtColor(faceImg,cv2.COLOR_BGR2GRAY)cv2.imshow("faceImg",faceImg)# 展示图像thread = threading.Thread(target=track)thread.start()if cv2.waitKey(10) == 27:   # 通过esc键退出摄像break# 关闭摄像头
cap.release()
cv2.destroyAllWindows()

纯Python代码如下:

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)
#
#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)cap = cv2.VideoCapture(0)  # 开启摄像头
classifier = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
def track():faceRects = classifier.detectMultiScale(gray,scaleFactor=1.2,minNeighbors=3,minSize=(32, 32))if len(faceRects):for faceRect in faceRects:x,y,w,h = faceRect# 框选出人脸   最后一个参数2是框线宽度cv2.rectangle(faceImg,(x, y), (x + w, y + h), (0,255,0), 2)
#                print(x+w/2)if x+w/2 > width/2+50:print("Left")
#                LEFT()
#                 time.sleep(0.1)elif x+w/2 < width/2-50:print("Right")
#                RIGHT()
#                 time.sleep(0.1)elif width/2-50 < x+w/2 < width/2+50:print("Central")
#                STOP()
# 循环读取图像
while True:ok, faceImg = cap.read()  # 读取摄像头图像if ok is False:print('无法读取到摄像头!')break#    faceImg = imghigh=faceImg.shape[0]width=faceImg.shape[1]
#    print(width,high)gray = cv2.cvtColor(faceImg,cv2.COLOR_BGR2GRAY)cv2.imshow("faceImg",faceImg)# 展示图像thread = threading.Thread(target=track)thread.start()if cv2.waitKey(10) == 27:   # 通过esc键退出摄像break# 关闭摄像头
cap.release()
cv2.destroyAllWindows()

【V1.0】基于树莓派的OpenCV-Python摄像头人脸追踪系统相关推荐

  1. OpenCV + python 实现人脸检测(基于照片和视频进行检测)

    OpenCV + python 实现人脸检测(基于照片和视频进行检测) Haar-like 通俗的来讲,就是作为人脸特征即可. Haar特征值反映了图像的灰度变化情况.例如:脸部的一些特征能由矩形特征 ...

  2. python dlib opencv人脸识别准确度_基于dlib和opencv库的人脸识别

    基于dlib和opencv库的人脸识别 需下载68个特征点的人脸检测模型: http://dlib.net/files/ 文件名为shape_predictor_68_face_landmarks.d ...

  3. 基于 OpenCV + Python 的人脸识别上课签到系统

    目录 前言 安装第三方库 第一步:采集人脸图像 (1)修改姓名学号 (2)运行capture_face.py (3)采集人脸图像 (4)查看采集到的人脸图像 第二步:训练模型 第三步:识别签到 (1) ...

  4. 基于树莓派实现平菇栽培种 自动种植系统的设计和实现

     基于树莓派实现平菇栽培种 自动种植系统的设计和实现 徐征宇 韩佳辰 摘 要:本文从树莓派实现温湿度和二氧化碳浓度远程监测控制系统的搭建.平菇种植的特点.远程控制支持三个层次介绍了基于树莓派实现平菇栽 ...

  5. 为树莓派安装opencv并进行人脸识别

    为树莓派安装opencv并进行人脸识别 1.更改modules文件 2.确认树莓派摄像头安装成功 3.在树莓派上安装运行在Python2上的OpenCV 4.下载人脸识别代码和xml文件并运行 参考: ...

  6. Spacecube V1.0:适应多任务应用的可重构SpaceCube处理系统

    摘要 本文着重介绍了采用可重构SpaceCube系统来解决各种空间飞行任务的复杂应用需求的方法和有效性.SpaceCube是一个可重构的.模块化的.紧凑的.多处理平台,用于需要极高处理能力的空间飞行应 ...

  7. 【毕业设计/Matlab系列】基于PCA和BP神经网络的人脸识别系统(附matlab代码)

    Date: 2022.4.26 文章目录 前言 1.总体介绍 2.详细分析 2.1.训练程序 2.2.测试程序 3.测试效果图 4.测试部分matlab代码 前言 在毕业设计中实现了基于PCA和BP神 ...

  8. 【毕业设计/Matlab系列】基于PCA和BP神经网络的人脸识别系统(基于AR人脸库)

    Date: 2022.5.30 文章目录 前言 1.算法原理 2.实现效果 3.测试matlab代码 前言 在大学毕业设计的时候,在毕业设计中实现了基于PCA和BP神经网络的人脸识别系统,采用matl ...

  9. 在树莓派上用python实现人脸识别(face_recognition,PIL,opencv)

    小白一路按照领导的要求自己摸索的,若有不对之处,还望各位大佬指正. 一. 环境准备 1.python版本 树莓派4b自带的python版本是2.7的,所以需要我们把这个默认的版本设置改一下,以下的方法 ...

最新文章

  1. 54. spring boot日志升级篇—logback【从零开始学Spring Boot】
  2. 软件工程(2019)第一次结对作业
  3. 终于好像懂motan了!!!
  4. Linux网络编程基础_6_应用层(下)--E-mail,WWW(大结局)
  5. java里的字符流_javaIO流中字符流的应用
  6. leetcode 433. Minimum Genetic Mutation | 433. 最小基因变化(图的DFS)
  7. CLion for mac安装配置
  8. cf1561D Up the Strip(D1D2)
  9. 这个库厉害了,自动补全 Python 代码,节省 50% 敲码时间
  10. SpringBoot实战(六):Redis Pipeline 轻松实现百倍性能提升
  11. 接口自动化测试中的用例编写问题总结
  12. 高校应该使用 Drupal 的10大理由
  13. 论文降重神器,一键毕业,真香!错过就后悔一整年的论文降重指南
  14. 任正非:从未想干翻苹果|用友云SaaS产品“云直播”上市 |【软件网每日新闻播报│第9-28期】
  15. 移动硬盘做PE启动盘的技巧
  16. 去除XP桌面图标的阴影
  17. Bandizip6.27百度网盘
  18. 【数据库基础】正则化(Normalization)P1:UNF、1NF、2NF、3NF
  19. python字符串居中对齐_Python center()字符串居中对齐方法详解
  20. Problem B Problem I

热门文章

  1. [oeasy]python0096_游戏娱乐行业_雅达利_米洛华_四人赛马_影视结合游戏
  2. Intel酷睿桌面CPU品牌各代情况
  3. 中国改性淀粉市场深度调研报告(2022版)
  4. 【前端实例代码】Html5+css3+JavaScript实现新拟态新拟物风格(Neumorphism)图标按钮动效网页效果~手把手教学~新手必会~超简单 ~
  5. 人工智能导论(1)——人工智能概述
  6. 模拟演讲者视图_PPT中设置演讲者视图的方法
  7. android还原代码混淆proguard日志的工具--retrace和SmartRetrace
  8. ffmpeg-音视频精准截取
  9. 使用Python进行图像处理,调整图片大小
  10. 销售管理软件:助力企业建立新零售生态系统的基本准则及数字化渠道管理