【V1.0】基于树莓派的OpenCV-Python摄像头人脸追踪系统
【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摄像头人脸追踪系统相关推荐
- OpenCV + python 实现人脸检测(基于照片和视频进行检测)
OpenCV + python 实现人脸检测(基于照片和视频进行检测) Haar-like 通俗的来讲,就是作为人脸特征即可. Haar特征值反映了图像的灰度变化情况.例如:脸部的一些特征能由矩形特征 ...
- python dlib opencv人脸识别准确度_基于dlib和opencv库的人脸识别
基于dlib和opencv库的人脸识别 需下载68个特征点的人脸检测模型: http://dlib.net/files/ 文件名为shape_predictor_68_face_landmarks.d ...
- 基于 OpenCV + Python 的人脸识别上课签到系统
目录 前言 安装第三方库 第一步:采集人脸图像 (1)修改姓名学号 (2)运行capture_face.py (3)采集人脸图像 (4)查看采集到的人脸图像 第二步:训练模型 第三步:识别签到 (1) ...
- 基于树莓派实现平菇栽培种 自动种植系统的设计和实现
基于树莓派实现平菇栽培种 自动种植系统的设计和实现 徐征宇 韩佳辰 摘 要:本文从树莓派实现温湿度和二氧化碳浓度远程监测控制系统的搭建.平菇种植的特点.远程控制支持三个层次介绍了基于树莓派实现平菇栽 ...
- 为树莓派安装opencv并进行人脸识别
为树莓派安装opencv并进行人脸识别 1.更改modules文件 2.确认树莓派摄像头安装成功 3.在树莓派上安装运行在Python2上的OpenCV 4.下载人脸识别代码和xml文件并运行 参考: ...
- Spacecube V1.0:适应多任务应用的可重构SpaceCube处理系统
摘要 本文着重介绍了采用可重构SpaceCube系统来解决各种空间飞行任务的复杂应用需求的方法和有效性.SpaceCube是一个可重构的.模块化的.紧凑的.多处理平台,用于需要极高处理能力的空间飞行应 ...
- 【毕业设计/Matlab系列】基于PCA和BP神经网络的人脸识别系统(附matlab代码)
Date: 2022.4.26 文章目录 前言 1.总体介绍 2.详细分析 2.1.训练程序 2.2.测试程序 3.测试效果图 4.测试部分matlab代码 前言 在毕业设计中实现了基于PCA和BP神 ...
- 【毕业设计/Matlab系列】基于PCA和BP神经网络的人脸识别系统(基于AR人脸库)
Date: 2022.5.30 文章目录 前言 1.算法原理 2.实现效果 3.测试matlab代码 前言 在大学毕业设计的时候,在毕业设计中实现了基于PCA和BP神经网络的人脸识别系统,采用matl ...
- 在树莓派上用python实现人脸识别(face_recognition,PIL,opencv)
小白一路按照领导的要求自己摸索的,若有不对之处,还望各位大佬指正. 一. 环境准备 1.python版本 树莓派4b自带的python版本是2.7的,所以需要我们把这个默认的版本设置改一下,以下的方法 ...
最新文章
- 54. spring boot日志升级篇—logback【从零开始学Spring Boot】
- 软件工程(2019)第一次结对作业
- 终于好像懂motan了!!!
- Linux网络编程基础_6_应用层(下)--E-mail,WWW(大结局)
- java里的字符流_javaIO流中字符流的应用
- leetcode 433. Minimum Genetic Mutation | 433. 最小基因变化(图的DFS)
- CLion for mac安装配置
- cf1561D Up the Strip(D1D2)
- 这个库厉害了,自动补全 Python 代码,节省 50% 敲码时间
- SpringBoot实战(六):Redis Pipeline 轻松实现百倍性能提升
- 接口自动化测试中的用例编写问题总结
- 高校应该使用 Drupal 的10大理由
- 论文降重神器,一键毕业,真香!错过就后悔一整年的论文降重指南
- 任正非:从未想干翻苹果|用友云SaaS产品“云直播”上市 |【软件网每日新闻播报│第9-28期】
- 移动硬盘做PE启动盘的技巧
- 去除XP桌面图标的阴影
- Bandizip6.27百度网盘
- 【数据库基础】正则化(Normalization)P1:UNF、1NF、2NF、3NF
- python字符串居中对齐_Python center()字符串居中对齐方法详解
- Problem B Problem I
热门文章
- [oeasy]python0096_游戏娱乐行业_雅达利_米洛华_四人赛马_影视结合游戏
- Intel酷睿桌面CPU品牌各代情况
- 中国改性淀粉市场深度调研报告(2022版)
- 【前端实例代码】Html5+css3+JavaScript实现新拟态新拟物风格(Neumorphism)图标按钮动效网页效果~手把手教学~新手必会~超简单 ~
- 人工智能导论(1)——人工智能概述
- 模拟演讲者视图_PPT中设置演讲者视图的方法
- android还原代码混淆proguard日志的工具--retrace和SmartRetrace
- ffmpeg-音视频精准截取
- 使用Python进行图像处理,调整图片大小
- 销售管理软件:助力企业建立新零售生态系统的基本准则及数字化渠道管理