树莓派之人脸识别与智能家居

news2024/11/24 17:27:39

访问【WRITE-BUG数字空间】_[内附完整源码和文档]

树莓派加上摄像头之后就可以拍照、录视频等各种功能了,这样做一个树莓派相机已经是非常简单的事情了。我们在这里做一个简单的人脸区域检测的功能实验,然后我们在下一个实验让树莓派来控制风扇转动。发现有人脸了,就开始转动风扇。这也是生活中的一个场景,当然加入实验3的温度检测根据温度和人脸一起决定是否吹风扇会更加精确化。

raspberry4
树莓派之人脸识别与智能家居

树莓派加上摄像头之后就可以拍照、录视频等各种功能了,这样做一个树莓派相机已经是非常简单的事情了。我们在这里做一个简单的人脸区域检测的功能实验,然后我们在下一个实验让树莓派来控制风扇转动。发现有人脸了,就开始转动风扇。这也是生活中的一个场景,当然加入实验 3 的温度检测根据温度和人脸一起决定是否吹风扇会更加精确化。

实验材料准备:原装树莓派 800 万像素 CSI 摄像头。

软件:rasbian 系统、opencv

安装必要的依赖库:

安装 OpenCV

sudo apt-get update

sudo apt-get upgrade

sudo apt-get install libopencv-dev

sudo apt-get install python-opencv

安装 PiCamera 库:

sudo apt-get install python-pip

sudo apt-get install python-dev

sudo pip install picamera

测试人脸识别代码
import io
import picamera
import cv2
import numpy

Create a memory stream so photos doesn’t need to be saved in a file

stream = io.BytesIO()

Get the picture (low resolution, so it should be quite fast)

Here you can also specify other parameters (e.g.:rotate the image)

with picamera.PiCamera() as camera:
camera.resolution = (320, 240)
camera.capture(stream, format=‘jpeg’)

Convert the picture into a numpy array

buff = numpy.fromstring(stream.getvalue(), dtype=numpy.uint8)

Now creates an OpenCV image

image = cv2.imdecode(buff, 1)

Load a cascade file for detecting faces

face_cascade = cv2.CascadeClassifier(‘/usr/share/opencv/haarcascades/haarcascade_frontalface_alt.xml’)

Convert to grayscale

gray = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)

Look for faces in the image using the loaded cascade file

faces = face_cascade.detectMultiScale(gray, 1.1, 5)
print “Found “+str(len(faces))+” face(s)”

Draw a rectangle around every found face

for (x,y,w,h) in faces:
cv2.rectangle(image,(x,y),(x+w,y+h),(255,255,0),2)

Save the result image

cv2.imwrite(‘result.jpg’,image)
cv2.imshow(‘face_detect’, image)
c = cv2.waitKey(0)
cv2.destroyAllWindows()在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/508311.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电机转矩、功率、转速之间的关系及计算公式

电机转矩、功率、转速之间的关系及计算公式 REF 电机功率和转矩、转速之间的关系 - 知乎 电机转矩、功率、转速、电压、电流之间关系及计算公式 - 豆丁网 电机转矩、功率、转速、电压、电流之间关系及计算公式 - 豆丁网 【技术】电动机功率、转速、扭矩的关系 实际上应该是…

系统分析师之项目管理(十七)

一、范围管理 范围管理:确定项目的边界,即哪些工作是项目应该做的,哪些工作不应该包括在项目中。 二、时间管理 时间管理:也叫进度管理,就是用科学的方法,确定目标进度,编制进度计划和资源供应计…

第十章 聚类算法

聚类算法 算法概括聚类(clustering)聚类的概念聚类的要求聚类与分类的区别 常见算法分类聚类算法中存在的问题 距离度量闵可夫斯基距离欧式距离(欧几里得距离)曼哈顿距离切比雪夫距离皮尔逊相关系数余弦相似度杰卡德相似系数 划分…

将本地和服务器图片上传至七牛云

少量图片上传七牛云 如果是少量图片时推荐手动上传 多张图片上传七牛云 如果是多张图片较大时,推荐使用七牛云官方提供工具(qshell) qshell 链接地址:命令行工具(qshell)_实用工具_对象存储 - 七牛开发者中心 (qiniu.com) 我们项目常用于服务器&…

JVM系列-第6章-方法区

方法区 栈、堆、方法区的交互关系 从线程共享与否的角度来看 ThreadLocal:如何保证多个线程在并发环境下的安全性?典型场景就是数据库连接管理,以及会话管理。 栈、堆、方法区的交互关系 下面涉及了对象的访问定位 Person 类的 .class …

BM61-矩阵最长递增路径

题目 给定一个 n 行 m 列矩阵 matrix ,矩阵内所有数均为非负整数。 你需要在矩阵中找到一条最长路径,使这条路径上的元素是递增的。并输出这条最长路径的长度。 这个路径必须满足以下条件: 对于每个单元格,你可以往上&#xff…

万字长文详解如何使用Swift提高代码质量 | 京东云技术团队

前言 京喜APP最早在2019年引入了Swift,使用Swift完成了第一个订单模块的开发。之后一年多我们持续在团队/公司内部推广和普及Swift,目前Swift已经支撑了70%以上的业务。通过使用Swift提高了团队内同学的开发效率,同时也带来了质量的提升&…

工服智能监测预警算法 yolov8

工服智能监测预警系统通过yolov8网络模型算法,工服智能监测预警算法对现场人员未按要求穿戴工服工装则输出报警信息,通知后台人员及时处理。Yolo算法采用一个单独的CNN模型实现end-to-end的目标检测,核心思想就是利用整张图作为网络的输入&am…

Deepmotion: AI动作捕捉和3D身体追踪技术平台

【产品介绍】 Deepmotion是一家专注于使用AI技术进行动作捕捉和3D身体追踪的公司。自2014年成立以来,Deepmotion一直致力于让数字角色通过智能的动作技术变得栩栩如生。 Deepmotion提供了多种与动作数据相关的服务,其中最引人注目的是Animate 3D&#xf…

Java 如何在 Array 和 Set 之间进行转换

概述 在本文章中,我们对如何在 Java 中对 Array 和 Set 进行转换进行一些说明和示例。 这些示例通过使用 Core Java 和一些第三方的转换工具,例如 Guava 和 Apache Commons Collections。 更多有关的文章,请访问:Java - OSSEZ 相…

笔试强训--Day2

1.题目: 排序子序列 排序子序列https://www.nowcoder.com/questionTerminal/2d3f6ddd82da445d804c95db22dcc471?orderBy HotValue1&page1&onlyReferencefalse 【题目解析】: 本题要求解的是排序子序列,排序子序列为非递增或者非递减&#xff0…

空气炸锅CE认证/FCC认证/PSE认证/SAA认证以及METI备案

空气炸锅属于厨房小电器,出口到各个亚马逊站点的空气炸锅建议做如下认证: 美国站:FCC认证,UL测试,FDA测试,加州65测试等。 欧洲站:CE认证,RoHS认证。 德国站:GS认证。 …

【沐风老师】一步一步教你在3dMax中进行UVW贴图和展开UVW的方法

将简单或程序材质应用于对象并不难。但是当表面需要在其上显示某种纹理时,它会变得更加复杂。任何纹理贴图都放在材质的 Diffuse 插槽中,但渲染的结果可能无法预测。这就是为什么我们需要了解 3DMAX 如何将纹理应用于 3D 对象,什么是 UVW 贴图…

【STL】模拟实现vector(详解)

文章目录 前言vector的模拟实现一,搭建框架二,实现构造函数三,构造的其他方式传统写法1.拷贝构造2. 重载赋值操作符3. 使用迭代器构造4. 初始化为N个val的vector 现代写法1. 拷贝构造2. 赋值重载 四,实现vector相关函数1. reserve…

Linux centos安装Redis数据库并远程连接

目录 前言 1. Linux(centos8)安装redis数据库 2. 配置redis数据库 3. 内网穿透 3.1 安装cpolar内网穿透 3.2 创建隧道映射本地端口 4. 配置固定TCP端口地址 4.1 保留一个固定tcp地址 4.2 配置固定TCP地址 4.3 使用固定的tcp地址连接 前言 Redis作为一款高速缓存的ke…

周杰伦官宣数智人“周同学”,数智人与数字人,不止一字之差

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 5月8日,周杰伦亮相中国移动元宇宙总部,与中国移动达成元宇宙领域系列合作,共同推出了数智人“周同学”。 周杰伦从 2003 年开始代言“动感地带”,可以说是中国移动 20 年的忠实…

6. 神经网络

6.1 非线性假设 假设有一个监督学习分类问题,训练集如图 如果利用logistic回归来解决这个问题,我们可以构造一个包含很多非线性项的logistic回归函数。 但在这个训练集只给出了两个特征,如果一旦特征变多了,多项式就会变得很多。…

1951-2023最新中国基础地理信息,包括水系、行政区、DEM高程、气象站经纬位置、土地利用,这些数据获取方法介绍

水系: 流域内所有河流、湖泊等各种水体组成的水网系统,称作水系。其中,水流最终流入海洋的称作外流水系,如太平洋水系、北冰洋水系;水流最终流入内陆湖泊或消失于荒漠之中的,称作内流水系。 [1] 流域面积的…

File 类和 InputStream, OutputStream 的用法

目录 1.文件系统操作 File 类 2.文件内容操作 InputStream 1.创建InputStream类对象 2.读文件 OutputStream 1.创建OutputStream类对象 2.写文件 上篇博客我们详情介绍了文件系统的相关知识。在文件系统操作中,由于文件是在硬盘上的,直接写代…

分布式系统入门概述

前言 随着互联网、物联网、人工智能等技术的广泛应用,计算机系统正在逐渐从单机转向网络化和分布式的趋势。那么,什么是分布式系统呢? 分布式概要 简而言之,分布式系统是由多个节点组成的,这些节点运行在不同的计算机上…