当前位置:   article > 正文

树莓派小项目:人脸识别,拯救你吃灰的板子_树莓派人脸识别

树莓派人脸识别

我崩溃了,我居然没有保存文章,看着空白的屏幕,我的心情逐渐低落,得,又要重写。

我手上有几块板子,因为之前项目得需要,就想将ubuntu20.04刷入树莓派,但想将ubuntu刷入树莓派先要将ubuntu server刷入树莓派再安装桌面,太麻烦了,新版又只能安装22.04,得给我整得刷系统就搞到心累,不管他,我先掏出我的另一张sd卡来整个好玩的先(之前没考虑到有vnc可以用,今晚和朋友交流了一下发现好像能用vnc)。

(1)器材准备

一块树莓派4b4g版(吐槽他没有全尺寸的HDMI接口,我拿转接就无法供电,供电就无法转接),一张SD卡32g及以上,一块不知道哪里掏出来的屏幕,一个usb摄像头。

(2)树莓派系统

(1)安装树莓派系统

Raspberry Pi OS – Raspberry Pi

先提前安装树莓派系统的安装工具

打开树莓派系统安装工具

选择需要写入的系统

找到自己合适的系统

选择SD卡

选择烧录,这里我已经烧录过了,就示范了。

(2)开机

将烧录好的SD卡装入树莓派,接通电源等待开机。

开完机,先换源(我这里就不教了):

树莓派换源教程_萌新源的博客-CSDN博客

vim用不了的可以用vi

当然还是建议安装vim来使用

(3)开启树莓派的ssh

ok,现在打开我们的树莓派终端,输入这里是打开我们的ssh:

sudo raspi-config

选择Interface Options

 

选择SSH

选择yes

选择确定

选择Finsh

接着在树莓派终端输入:

hostname -I

这样我们就能看到我们的IP了

(4)连接树莓派的ssh

随后在我们的window电脑上按住win+r,输入:

cmd

在终端中输入:

ssh 树莓派的用户名@ip

这样我们就能用我们的windows连接我们的树莓派了

更新软件,终端中输入:

sudo apt upgrade

输入:

sudo apt update

(5)创建我们的python虚拟环境 

创建我们的python虚拟环境venv,在终端中输入:

python3 -m venv venv

进入我们的虚拟环境:

  1. cd venv
  2. source bin/action

退出虚拟环境(这里只是给出命令,不需要执行):

deactivate

下载opencv

pip insall opencv-contrib-python==4.5.4.60

下载完成后我们去导入我们的头文件输入:

  1. python
  2. import cv2

我们来查看他的路径:

cv2.__file__

这里自己输入时会以为是一个下划线,就会出现下面的情况:


 完成后我们退出我们的python环境:

quit()

 安装个依赖

sudo  apt -y install libatlas-base-dev

我们查看一下我们的库:

pip list

(6)连接usb摄像头进行测试

将我们的usb摄像头连接树莓派,在windows终端中输入(这一步是为了检测我们的usb摄像头是否接入我们的树莓派):

ls /dev/video*

通常情况下我们额usb摄像头是video1或者video0 

(7)编写测试文件

当我们检测到我们额usb摄像头后,可以编写一个测试代码来测试我们的usb摄像头

在我们的windows终端中输入:

vim test_camera.py

使用vim编辑器进行编辑:

  1. import cv2
  2. cap = cv2.VideoCapture(0)
  3. while True:
  4. ret, frame = cap.read()
  5. if ret:
  6. cv2.imshow("frame",frame)
  7. if cv2.waitKey(1) & 0xFF == ord("q"):
  8. break
  9. cap.release()
  10. cv2.destroyAllWindows()

代码输入保存后我们打开我们的树莓派的终端进入到我们的python虚拟环境,然后在终端中输入:

python test_camera.py

这时候我们的摄像头就会开始工作(这里建议使用好一点的usb摄像头,我的usb摄像头老是断连,搞得我挺烦的)

(8)分类器(这里认识一下就好,想玩视觉这块的话感觉还要学挺多东西的)

在我们的windows终端中输入:

  1. python
  2. import cv2
  3. print(cv2.__file__)

这时就可以看到一条路径

退出我们额python空间cd到这条路径下

cd lib/python3.9/site-packages/cv2/

我们会发现这条路径下会有个data的文件

我们在终端中输入:

tree data/

我们就可以看到我们的很多的分类器了

(9)修改我们的代码来实现人脸识别

vim test_camera.py
  1. import cv2
  2. import numpy as np
  3. cap = cv2.VideoCapture(0)
  4. face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + "haarcascade_frontalface_alt2.xml")
  5. print(face_cascade)
  6. while True:
  7. ret,frame = cap.read()
  8. if ret:
  9. gray = cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
  10. faces = face_cascade.detectMultiScale(gray,scaleFactor=1.5,minNeighbors=6)
  11. #画个框来标记人脸
  12. for(x,y,w,h) in faces:
  13. cv2.rectangle(frame,(x,y),(x+w,y+h),(25,0,0),3)
  14. print(x,y,w,h)
  15. cv2.imshow("gray",gray)
  16. cv2.imshow("frame",frame)
  17. if cv2.waitKey(1) & 0xFF == ord("q"):
  18. break
  19. cap.release()
  20. cv2.destroyAllWindows()

ok,执行该程序就能识别人脸了,但识别精度较低哦 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/花生_TL007/article/detail/494999
推荐阅读
相关标签
  

闽ICP备14008679号