python-人像识别-(一)让电脑看到你

[复制链接]
查看2086 | 回复22 | 2024-6-5 13:28:17 | 显示全部楼层 |阅读模式
本帖最后由 liuli 于 2024-6-5 18:49 编辑

首先我的python都是在网上学的也没有学太深,所以一些格式或者别的有点问题,但是肯定能运行,我都在本地运行过了。
至于如何用python实现开发可以看这篇文章:小白用小安派学习过程第四篇

之后可以看看妖猊这位大佬的其他帖子。
  • 准备工作

梳理一下实现人脸识别需要进行的步骤:
流程.jpg
流程大致如此,在此之前,要先让人脸被准确的找出来,也就是能准确区分人脸的分类器,在这里我们可以用已经训练好的分类器,网上种类较全,分类准确度也比较高,我们也可以节约在这方面花的时间,当然也可以自己训练消耗时间会久一点。
为了方便我直接将分类器放到下面可自行下载,我也是在网上下载的。
https://bbs.ai-thinker.com/forum.php?mod=attachment&aid=MjYyODF8YmI2OTNjMDh8MTczMjE5MTkzMnwwfA%3D%3D
自行下载可以访问:分类器

在看代码之前,我们先将整个项目所需要的包罗列一下:
如果你用的pycharm可以在软件里的终端输入下面代码。
当然也可以直接在Lib\site-packages文件夹下进入cmd输入以下代码。
· CV2(Opencv):图像识别,摄像头调用
  1. pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码
· os:文件操作
  1. pip install  os -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码
· numpy:NumPy(Numerical Python) 是 Python 语言的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库
  1. pip3 install numpy scipy matplotlib -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码
· PIL:Python Imaging Library,Python平台事实上图像处理的标准库

  1. pip install pillow -i https://pypi.tuna.tsinghua.edu.cn/simple
复制代码
好了这样代码所需要的包就下载完成了。
导入包
import cv2
import os
import numpy as np
from PIL import Image
2.让电脑看见你
  1. def qidong(face_detector):
  2.     # 打开摄像头,0是默认,有其它的摄像头可以输入1,2
  3.     cap = cv2.VideoCapture(0)
  4.     while True:
  5.        #从摄像头读取图片
  6.         success, img = cap.read()
  7.         #转为灰度图片,减少程序符合,提高识别度
  8.         gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
  9.         ##检测人脸,将每一帧摄像头记录的数据带入OpenCv中,让Classifier判断人脸
  10.     #其中gray为要检测的灰度图像
  11.         faces = face_detector.detectMultiScale(gray, scaleFactor=1.3, minNeighbors=5)
  12.         #框选人脸,for循环保证一个能检测的实时动态视频流
  13.         for (x, y, w, h) in faces:
  14.             #xy为左上角的坐标,w为宽,h为高,用rectangle为人脸标记画框
  15.             cv2.rectangle(img, (x, y), (x + w, y + w), (255, 0, 0))
  16.             #显示画面
  17.             cv2.imshow('sheXingTou', img)
  18.         #waitkey方法可以绑定按键保证画面的收放,通过esc键退出摄像,27对应的就是esc
  19.         if cv2.waitKey(1) == 27:
  20.             cap.release()
  21.             cv2.destroyAllWindows()
  22.             break
  23. #分类器地址,根据你的路径调整,下载的分类器最好和代码文件放一个文件夹内
  24. face_detector="haarcascade_frontalface_default.xml"
  25. #启动
  26. qidong(face_detector=face_detector)
复制代码
这样电脑就能看到你了,当然光看到还不行还需要拍照将图片处理成训练模型能用到的样子,之后就可以训练模型了,最后就可以让电脑认识你了。
下期进行拍照将图片处理成模型需要的样子。
haarcascade_frontalface_default.zip (124.05 KB, 下载次数: 3)
1.jpg
回复

使用道具 举报

liuli | 2024-6-5 13:32:20 | 显示全部楼层
哎!我图片呢怎么没显示,还有搞了半天的代码格式怎么没了
回复 支持 反对

使用道具 举报

liuli | 2024-6-5 13:34:01 | 显示全部楼层
代码
1.jpg
回复

使用道具 举报

爱笑 | 2024-6-5 13:36:52 | 显示全部楼层
liuli 发表于 2024-6-5 13:32
哎!我图片呢怎么没显示,还有搞了半天的代码格式怎么没了

https://bbs.ai-thinker.com/forum ... amp;_dsign=64a277b8
看下这篇发帖教程就知道啦
用心做好保姆工作
回复 支持 反对

使用道具 举报

liuli | 2024-6-5 13:44:16 | 显示全部楼层
def qidong(face_detector):
    # 打开摄像头,0是默认,有其它的摄像头可以输入1,2
    cap = cv2.VideoCapture(0)
    while True:
       #从摄像头读取图片
        success, img = cap.read()
        #转为灰度图片,减少程序符合,提高识别度
        gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
        #框选人脸,for循环保证一个能检测的实时动态视频流
        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)
回复 支持 反对

使用道具 举报

liuli | 2024-6-5 13:48:29 | 显示全部楼层
爱笑 发表于 2024-6-5 13:36
https://bbs.ai-thinker.com/forum.php?mod=viewthread&tid=43082&_dsign=64a277b8
看下这篇发帖教程就知 ...

大小没超过啊,尺寸895X416是超过吗
回复 支持 反对

使用道具 举报

爱笑 | 2024-6-5 13:50:17 | 显示全部楼层
liuli 发表于 2024-6-5 13:48
大小没超过啊,尺寸895X416是超过吗

照片本地上传后需要点击照片才能插入到编辑框里。
用心做好保姆工作
回复 支持 反对

使用道具 举报

WT_0213 | 2024-6-5 13:59:05 | 显示全部楼层
有点厉害
回复

使用道具 举报

liuli | 2024-6-5 14:08:58 | 显示全部楼层
爱笑 发表于 2024-6-5 13:50
照片本地上传后需要点击照片才能插入到编辑框里。

对啊,我第一个图片就是这样插入的,第二个消失了
回复 支持 反对

使用道具 举报

爱笑 | 2024-6-5 14:09:35 | 显示全部楼层
liuli 发表于 2024-6-5 14:08
对啊,我第一个图片就是这样插入的,第二个消失了

不会消失的,肯定是你没点击到。
用心做好保姆工作
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则