微信登录
注册忘记密码
查看: 3001|回复: 2

[十堰城事] 树莓派开发系列(八) 人脸识别初探

[复制链接]

签到天数: 2 天

[LV.1]初来乍到

发表于 2022-7-29 05:24:49 | 显示全部楼层 |阅读模式
随着人工智能技术的飞速发展,在我们生活中越来越多地融入了这项技术所带来的成果,其中最为耳熟能详的就是人脸识别技术了。包括各种App的实名认证,企业的门禁系统,小区的摄像头,无时不刻地在捕捉我们的脸庞。这项技术到底有多神秘呢,是不是我们自己就可以动动双手来尝试一下呢,答案是肯定的,而且就靠我们的树莓派就可以做到,高科技其实离我们咫尺之遥,并不神秘。
人脸识别技术

下面就来说说我们的小派如何来做到人脸识别,首先有些前提条件要准备好,第一步要准备好树莓派专用的摄像头,这是小派的眼睛,必须得有。第二步就是要安装一个叫OpenCV的软件,它是大脑,是人脸识别的核心软件。关于以上两步的详细介绍,在我的前文《树莓派开发系列(四) 小派,看看这个世界吧》中有详细的说明,有兴趣的朋友可以关注我并翻阅下前文,本篇就不再赘述了。
树莓派及摄像头

接下来我们就拿起我们的python武器,编写一段代码来实现人脸识别。代码如下:
'''Haar Cascade Face detection with OpenCV    Based on tutorial by pythonprogramming.net    Visit original post: https://pythonprogramming.net/haar-cascade-face-eye-detection-python-opencv-tutorial/Adapted by Marcelo Rovai - MJRoBot.org @ 7Feb2018'''import numpy as npimport cv2# 导入opencv内部已经训练好的人脸模型faceCascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')# 打开摄像头,并设置窗口大小cap = cv2.VideoCapture(0)cap.set(3, 640)  # set Widthcap.set(4, 480)  # set Height# 进行人脸识别while True:    ret, img = cap.read()  # 读取摄像头采集到的图片    # img = cv2.flip(img, -1)   #将摄像头180旋转,摄像头倒放的时候需要    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 将读取的图片转换为灰度图    faces = faceCascade.detectMultiScale(        gray,        scaleFactor=1.2,        minNeighbors=5        ,        minSize=(20, 20)    )  # 采用Haar+Cascade分类器进行脸部识别    for (x, y, w, h) in faces:  # 将识别到的人脸用蓝色框框出来,x:横坐标;y纵坐标;w:宽度;h:高度(即(x,y):表示画蓝色框的起点;w,h表示蓝色框的长和宽)        cv2.rectangle(img, (x, y), (x + w, y + h), (255, 0, 0), 2)        roi_gray = gray[y:y + h, x:x + w]        roi_color = img[y:y + h, x:x + w]    cv2.imshow('video', img)  # 显示到屏幕上    k = cv2.waitKey(30) & 0xff    if k == 27:  # 按'ESC'退出摄像头        breakcap.release()  # 释放摄像头cv2.destroyAllWindows()  # 关闭窗口在这段代码中,有个关键点就是haarcascade_frontalface_default.xml这个文件,这个文件是OpenCV已经训练好的人脸模型的参数,有了这个模型参数,OpenCV就可以从图像中去区分出人脸。文件可以从这个链接中下载:https://github.com/opencv/opencv/tree/master/data/haarcascades。
好了,运行一下试试效果吧,还不错,速度还挺快的!是不是很简单呢:),其实目前的话,我们只是做到了识别出通用的人脸,更进一步,我们应该能识别出特定的人脸,这个就要自来来训练人脸模型了,有兴趣的朋友可以查阅些资料来尝试下。也希望大家互相来交流,挖掘出更多树莓派的有趣应用。
树莓派人脸识别


声明:以上内容来源于网络,如有侵权请联系我们(123@shiyan.com)删除!

签到天数: 6 天

[LV.2]偶尔看看I

发表于 2022-7-29 05:29:26 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2022-7-29 05:34:45 | 显示全部楼层
转发了
回复 支持 反对

使用道具 举报

发表回复

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

本版积分规则