人脸识别系统真的不难?今天手把手教你用Python写,程序员开发指南

如果自己想要构建自己的个性化应用的话一般会选择在这里进行改造,首先就是需要保存这里的特征向量。

4、输入两张人脸图像,判断是否是同一个人

def demoFunc(one_pic=‘c1.jpg’,two_pic=‘c2.jpg’):

‘’’

给定两张图片,判断是否是同一个人

‘’’

chenglong = face_recognition.load_image_file(one_pic)

unknown_image = face_recognition.load_image_file(two_pic)

biden_encoding = face_recognition.face_encodings(chenglong)[0]

unknown_encoding = face_recognition.face_encodings(unknown_image)[0]

results = face_recognition.compare_faces([biden_encoding], unknown_encoding)

print('results: ',results)

return results[0]

这里其实跟上面第三部分的有点相似,这部分是建立在第三部分基础上的只不过是自带了compare_faces这个相似度计算接口,这里其实可以自己去实现替换的。

同样,使用了两张成龙大哥的图像来进行测试,原始图像如下所示:

在这里插入图片描述

在这里插入图片描述

测试结果如下:

在这里插入图片描述

5、脸部关键点识别和标注

def demoFunc(pic_path=‘cl.jpg’):

‘’’

脸部关键点识别、标注

‘’’

image = face_recognition.load_image_file(pic_path)

face_landmarks_list = face_recognition.face_landmarks(image)

print(“I found {} face(s) in this photograph.”.format(len(face_landmarks_list)))

pil_image = Image.fromarray(image)

d = ImageDraw.Draw(pil_image)

for face_landmarks in face_landmarks_list:

for facial_feature in face_landmarks.keys():

print(“The {} in this face has the following points: {}”.format(facial_feature, face_landmarks[facial_feature]))

for facial_feature in face_landmarks.keys():

d.line(face_landmarks[facial_feature], width=5)

pil_image.show()

脸部的关键点包括:鼻子、嘴巴、眼睛、眉毛等,这里还是用的上面成龙大哥的图片,下面的结果输出:

在这里插入图片描述

在这里插入图片描述

6、化妆

这部分是建立在第五部分基础上的,得到的面部的特征以后就可以进行自动化妆了,下面是具体的实现:

def demoFunc(pic_path=“haiwang.jpg”):

‘’’

化妆

‘’’

image = face_recognition.load_image_file(pic_path)

face_landmarks_list = face_recognition.face_landmarks(image)

pil_image = Image.fromarray(image)

for face_landmarks in face_landmarks_list:

demo = ImageDraw.Draw(pil_image, ‘RGBA’)

demo.polygon(face_landmarks[‘left_eyebrow’], fill=(68, 54, 39, 128))

demo.polygon(face_landmarks[‘right_eyebrow’], fill=(68, 54, 39, 128))

demo.line(face_landmarks[‘left_eyebrow’], fill=(68, 54, 39, 150), width=2)

demo.line(face_landmarks[‘right_eyebrow’], fill=(68, 54, 39, 150), width=2)

demo.polygon(face_landmarks[‘top_lip’], fill=(150, 0, 0, 128))

demo.polygon(face_landmarks[‘bottom_lip’], fill=(150, 0, 0, 128))

demo.line(face_landmarks[‘top_lip’], fill=(150, 0, 0, 64), width=2)

demo.line(face_landmarks[‘bottom_lip’], fill=(150, 0, 0, 64), width=2)

demo.polygon(face_landmarks[‘left_eye’], fill=(255, 255, 255, 30))

demo.polygon(face_landmarks[‘right_eye’], fill=(255, 255, 255, 30))

demo.line(face_landmarks[‘left_eye’] + [face_landmarks[‘left_eye’][0]], fill=(0, 0, 0, 110), width=2)

demo.line(face_landmarks[‘right_eye’] + [face_landmarks[‘right_eye’][0]], fill=(0, 0, 0, 110), width=2)

pil_image.show()

这里使用海王的一张图片来进行测试,原始图像如下所示:

在这里插入图片描述

处理后结果如下:

在这里插入图片描述.还可以是这样的:

在这里插入图片描述

7、基于face_recognition构建自己的简单人脸识别应用

上面介绍了很多face_recognition的应用,这里才是最重要的内容我觉得是这样的,基于已有的功能来实现我们自己的个性化应用,我这里只是简单的抛砖引玉,给出来自己的最最简单的实现:

def faceRecognitionDemo(picDir=‘data/’, test_pic=‘test.png’):

‘’’

基于 face_recognition 构建人脸识别模块

‘’’

pic_list=os.listdir(picDir)

for one_pic in pic_list:

one_pic_path=picDir+one_pic

one_res=demo6(one_pic=one_pic_path,two_pic=test_pic)

one_name=one_pic.split(‘.’)[0].strip()

if one_res:

print('This Person is: ', one_name)

break

else:

print('This Person is not: ', one_name)

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Python工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Python开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img



既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Python开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新

如果你觉得这些内容对你有帮助,可以添加V获取:vip1024c (备注Python)
img

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、全套PDF电子书

书籍的好处就在于权威和体系健全,刚开始学习的时候你可以只看视频或者听某个人讲课,但等你学完之后,你觉得你掌握了,这时候建议还是得去看一下书籍,看权威技术书籍也是每个程序员必经之路。

四、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

五、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

ng)

六、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。

  • 23
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
人脸识别是一种非常实用的技术,可以广泛应用于安防、门禁、签到等领域。在Python中,我们可以使用OpenCV库来实现人脸识别。 以下是一个简单的手把手教程,帮助您使用Python和OpenCV实现人脸识别: 1. 安装OpenCV库 在命令行中输入以下命令来安装OpenCV库: ``` pip install opencv-python ``` 2. 收集人脸数据 首先,我们需要收集一些人脸数据,用于训练我们的人脸识别模型。可以使用OpenCV中内置的`cv2.face.createFisherFaceRecognizer()`方法来训练模型。以下是一个收集人脸数据的代码示例: ```python import cv2 import os # 创建一个人脸识别器 recognizer = cv2.face.createFisherFaceRecognizer() # 收集人脸数据 def collect_faces(): # 从摄像头中捕捉图像 camera = cv2.VideoCapture(0) # 循环收集人脸数据 count = 0 while True: # 读取一帧图像 ret, image = camera.read() # 转换为灰度图像 gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 检测人脸 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') faces = face_cascade.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=5) # 在图像中标记人脸 for (x, y, w, h) in faces: cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2) # 保存人脸数据 count += 1 cv2.imwrite("image%d.jpg" % count, gray[y:y+h,x:x+w]) # 显示图像 cv2.imshow("Collecting Faces", image) # 按下ESC键退出 if cv2.waitKey(1) == 27: break # 清理资源 camera.release() cv2.destroyAllWindows() # 训练人脸识别模型 def train_model(): # 加载人脸数据 images = [] labels = [] for filename in os.listdir("."): if filename.startswith("image"): label = int(filename.split(".")[0].replace("image", "")) image = cv2.imread(filename, cv2.IMREAD_GRAYSCALE) images.append(image) labels.append(label) # 训练人脸识别器 recognizer.train(images, np.array(labels)) # 收集人脸数据 collect_faces() # 训练人脸识别模型 train_model() ``` 3. 进行人脸识别 现在,我们已经训练好了一个人脸识别模型,可以使用它来进行人脸识别了。以下是一个简单的人脸识别代码示例: ```python import cv2 # 加载人脸识别器 recognizer = cv2.face.createFisherFaceRecognizer() recognizer.load("model.xml") # 进行人脸识别 def recognize_face(): # 从摄像头中捕捉图像 camera = cv2.VideoCapture(0) # 循环进行人脸识别 while True: # 读取一帧图像 ret, image = camera.read() # 转换为灰度图像 gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 检测人脸 face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml') faces = face_cascade.detectMultiScale(gray, scaleFactor=1.2, minNeighbors=5) # 对每个人脸进行识别 for (x, y, w, h) in faces: # 标记人脸 cv2.rectangle(image, (x, y), (x + w, y + h), (0, 255, 0), 2) # 进行人脸识别 label, confidence = recognizer.predict(gray[y:y+h,x:x+w]) print("Label: %d, Confidence: %.2f" % (label, confidence)) # 显示图像 cv2.imshow("Recognizing Faces", image) # 按下ESC键退出 if cv2.waitKey(1) == 27: break # 清理资源 camera.release() cv2.destroyAllWindows() # 进行人脸识别 recognize_face() ``` 以上代码示例仅仅只是一个简单的例子,实际应用中还需要进行更多的优化和改进。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值