本帖最后由 liuli 于 2024-6-5 18:49 编辑
首先我的python都是在网上学的也没有学太深,所以一些格式或者别的有点问题,但是肯定能运行,我都在本地运行过了。
至于如何用python实现开发可以看这篇文章:小白用小安派学习过程第四篇
之后可以看看妖猊这位大佬的其他帖子。
梳理一下实现人脸识别需要进行的步骤:
流程大致如此,在此之前,要先让人脸被准确的找出来,也就是能准确区分人脸的分类器,在这里我们可以用已经训练好的分类器,网上种类较全,分类准确度也比较高,我们也可以节约在这方面花的时间,当然也可以自己训练消耗时间会久一点。
为了方便我直接将分类器放到下面可自行下载,我也是在网上下载的。
https://bbs.ai-thinker.com/forum.php?mod=attachment&aid=MjYyODF8OTBiYTVkODl8MTczMjIwMDMzOXwwfA%3D%3D
自行下载可以访问:分类器
在看代码之前,我们先将整个项目所需要的包罗列一下: 如果你用的pycharm可以在软件里的终端输入下面代码。
当然也可以直接在Lib\site-packages文件夹下进入cmd输入以下代码。 · CV2(Opencv):图像识别,摄像头调用 - pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码· os:文件操作 - pip install os -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码· numpy:NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库 - pip3 install numpy scipy matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码· PIL:Python Imaging Library,Python平台事实上图像处理的标准库
- pip install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码 好了这样代码所需要的包就下载完成了。
导入包
import cv2
import os
import numpy as np
from PIL import Image
2.让电脑看见你- def qidong(face_detector):
- # 打开摄像头,0是默认,有其它的摄像头可以输入1,2
- cap = cv2.VideoCapture(0)
- while True:
- #从摄像头读取图片
- success, img = cap.read()
- #转为灰度图片,减少程序符合,提高识别度
- gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
- ##检测人脸,将每一帧摄像头记录的数据带入OpenCv中,让Classifier判断人脸
- #其中gray为要检测的灰度图像
- faces = face_detector.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5)
- #框选人脸,for循环保证一个能检测的实时动态视频流
- for (x, y, w, h) in faces:
- #xy为左上角的坐标,w为宽,h为高,用rectangle为人脸标记画框
- cv2.rectangle(img, (x, y), (x + w, y + w), (255, 0, 0))
- #显示画面
- cv2.imshow('sheXingTou', img)
- #waitkey方法可以绑定按键保证画面的收放,通过esc键退出摄像,27对应的就是esc
- if cv2.waitKey(1) == 27:
- cap.release()
- cv2.destroyAllWindows()
- break
- #分类器地址,根据你的路径调整,下载的分类器最好和代码文件放一个文件夹内
- face_detector="haarcascade_frontalface_default.xml"
- #启动
- qidong(face_detector=face_detector)
复制代码 这样电脑就能看到你了,当然光看到还不行还需要拍照将图片处理成训练模型能用到的样子,之后就可以训练模型了,最后就可以让电脑认识你了。
下期进行拍照将图片处理成模型需要的样子。
haarcascade_frontalface_default.zip
(124.05 KB, 下载次数: 3)
|