Opencv人脸识别的制作

步骤1:您需要的东西
1.raspberry pi
2.arduino uno/nano
3.16x2 lcd显示屏
4.raspi-camera/webcam(我更喜欢使用网络摄像头以获得更好的效果)
step 2:opencv简介和安装
opencv(开源计算机视觉库)是一个非常有用的库-它提供了许多有用的功能,例如文本识别,面部识别,对象检测,深度图的创建和机器学习。
本文将向您展示如何在raspberry pi上安装opencv和其他库,这将在进行对象检测和其他项目时派上用场。从那里,我们将学习如何通过执行对象识别和机器学习项目来执行图像和视频操作。具体来说,我们将编写一个简单的代码来检测图像中的人脸。
什么是opencv?
opencv是一种开放源代码的计算机视觉和机器学习软件库。 opencv是在bsd许可下发布的,可免费用于学术和商业用途。它具有c ++,python和java接口,并支持windows,linux,mac os,ios和android。 opencv旨在提高计算效率并着重于实时应用。
如何在raspberry pi上安装opencv?
要安装opencv,我们需要安装python。由于raspberry pis已预装python,因此我们可以直接安装opencv。
键入以下命令,以确保您的raspberry pi是最新的,并将raspberry pi上已安装的软件包更新为最新版本。
sudo apt-get更新
sudo apt-get升级
在终端中键入以下命令以安装所需的软件包在树莓派上使用opencv。 》
键入以下命令以在raspberry pi上安装适用于python 3的opencv 3,pip3告知我们将为python 3安装opencv。/p》
sudo pip3安装opencv-contrib-python libwebp6
现在,opencv应该被安装。
(如果发生任何错误:您仍然可以通过以下链接进行操作
https://www.instructables.com/id/raspberry-pi-hand 。..)
现在不要着急,我们需要检查它是否已正确安装
通过以下方法测试您的opencv:
1.go到终端并键入“ python”
2。然后键入“ import cv2”。
3。然后键入“ cv2 .__ version __”。
然后安装这些库
pip3安装python-numpy
pip3安装python-matplotlib
测试代码以检测图像中的人脸:
导入cv2
facecascade = cv2.cascadeclassifier(“ haarcascade_frontalface_default.xml”);
image = cv2.imread(‘您的文件名’) #example-》 cv2.imread(‘home/pi/desktop/filename.jpg’)
您将获得像正方形盒子一样的输出形成在照片中人的脸上e。
步骤3:在实时视频中检测和识别人脸
导入cv2
将numpy导入为np
导入操作系统
导入序列
ser = serial.serial(‘/dev/ttyacm0’,9600,timeout = 1) #/dev/ttyacm0可能根据您的情况而定,取决于arduino
cascadepath =“ haarcascade_frontalface_default.xml”
facecascade = cv2.cascadeclassifier(cascadepath)
识别= cv2.face.createlbphfacerecognizer()
结果
images = []
labels = []

im = cv2.imread(‘数据集/’+文件名,0)
images.append(im)
labels.append(int(filename.split(‘。’)[0] [0]))
#打印文件名
nam es_file =开放( ‘labels.txt’)
名= names_file.read()。分裂( ‘ n’)
recognizer.train(images,np.array(labels))
打印“培训完成”。 。 。 ‘
font = cv2.font _
hershey_simplexcap = cv2.videocapture(1)#您的视频设备
lastres =’‘count = 0
while(1):
_,frame = cap.read()
gray = cv2.cvtcolor(frame,cv2.color_bgr2gray)
面孔= facecascade.detectmultiscale(gray,1.3,5)
count + = 1
为(x,y,w, h):
cv2.rectangle(frame,(x,y),(x + w,y + h),(255,0,0),2 )
如果计数》 20:res = names [recognizer.predict(gray [y:y + h,x:x + w])-1]
如果res!= lastres:
lastres = res
打印lastres
ser.write(lastres)
计数= 0
打破
cv2 .imshow(’frame‘,frame)
k = 0xff&cv2。 waitkey(10)
如果k == 27:
中断
的 cap.release()
ser.close()
cv2.destroyallwindows()
步骤4:运行代码
1。下载上一步中随附的文件
2。将灰色照片(6张图像/样本。..。.)复制到数据集文件夹
1.tom cruise-》 1_1,1_2,1_3,1_4,1_5, 1_6 (用于更多打开的数据集文件夹的数据集图像编号)
2。布拉德·皮特(brad pitt)-》 2_1,2_2,2_3,2_4,2_5,2_6
3。利奥---》 3_1,3_2,3_3,3_4,3_5,3_6
4。铁人三项 - 》 4_1,4_2,4_3,4_4,4_5,4_6
结果
像上面一样,您可以为各个人添加标签,
因此,如果pi检测到1_1中的人脸, 1_2,1_3,1_4,1_5,1_6,然后它被标记为汤姆·克鲁斯(tom cruise),所以在上传照片时请小心。
,然后将您的arduino连接到树莓派并在main.py代码中进行更改。ser= serial.serial(’/dev/ttyacm0‘,9600,timeout = 1)3.put所有下载的文件(main.py,dataset文件夹,haarcascade_frontalface_default.xml在一个文件夹中。)
3。现在打开raspi终端,通过“ sudo python main.py”运行您的代码
4.arduino lcd将显示检测到的面部名称

电机定子槽满率是否越高越好?
5g技术会带来哪些问题 5g技术应用于哪些领域
三星和台积电将在扇出型封装展开大战
微生物致病菌检测仪使用说明
下一代iPhone或将支持第三方软件多任务处理
Opencv人脸识别的制作
压力表主要构造、注意事项、常见类型、分类
Linux性能及调优指南:内存架构
工业控制网络安全需要警钟长鸣,决不让病毒攻击有机可乘
并联和串联电抗器的用途
数字经济的未来发展趋势如何?
工厂企业为什么选择无人自动叉车,它的优势是什么
拆解报告:HiVi惠威 AW-71 TWS真无线蓝牙耳机
家庭网络布线与办公网络布线的区别
高智能土壤环境测试及分析评估系统设备的具体参数介绍
移动技术变革电子商务
2020中国新一代人工智能发展报告
【大大芯方案】9月热门方案大合辑,汽车、电源、智慧家居……你想要的都有!
小程序云端解决方案,微信小程序及后台交互架构
快讯:大疆无人机正在学习如何借助微软AI技术识别物体