应用领域

  • 金融领域。人脸识别当前在金融领域的应用最为广泛,当前国内金融领域监管要求严格,金融相关产品都需要实名认证,并且具有较高的安全性要求,活体识别,银行卡ocr识别,身份证ocr识别,人证对比等在各大手机银行,金融app,保险app等都已经成为不可或缺的一个环节
  • 安保领域。目前大量的企业,住宅,社区,学校等安全管理越来越普及,人脸门禁系统已经成为非常普及的一种安保方式。
  • 通行领域。很多城市的火车站已经安装了人脸识别通行设备,进行人证对比过检,有些城市的地铁站也可以通过人脸识别的方式进行地铁进出站通行。
  • 泛娱乐领域。现在市场上火爆的美颜相机,网络直播,短视频等都是建立在人脸识别的基础上对人脸进行美颜和特效处理。
  • 公安,司法领域。公安系统在追捕逃犯时也会利用人脸识别系统对逃犯进行定位,监狱系统目前也会对服刑人员通过人脸识别系统进行报警和安防
  • 自助服务设备。如银行的自动提款机,无人超市等。
  • 考勤及会务。如工作考勤,会议出席人脸墙等。目前人脸识别市场上的巨头主要有商场,也有很多领域内巨头公司投资的小公司。

第一步:导入模块

dlib模块安装其实是比较繁琐的,要认真耐心点,可以参考:dlib安装,如果不行再看看别的教程。

import sys
import cv2
import face_recognition #dlib 人脸识别库

第二步:加载图片并数值化

测试图片为我的偶像:

face_img=face_recognition.load_image_file('1.png')
print(face_img)

打印结果:

输出为三维图像矩阵,把图像转为矩阵。

第三步:获取图片中的人脸数据

提取人脸特征编码,并获取到人脸五官的位置:

face_encodings=face_recognition.face_encodings(face_img)#进行特征提取向量化,获取人脸的编码
face_locations=face_recognition.face_locations(face_img)#五官对应的位置
print(face_encodings)

图片中有几个人脸就有几个数组:

第四步:人数计算

这里只做判断两个人是否为一个人,超出两个就退出了

n=len(face_encodings)
print(n)
#这里只做判断两个人是否为一个人,超出两个就退出了
if n>2:print('超过两个人')sys.exit()

打印可以分出是两个人:

第五步:人脸比较

#获取两个人的数据
face1=face_encodings[0]
face2=face_encodings[1]result=face_recognition.compare_faces([face1],face2,tolerance=0.6)#人脸比较,,误差不超过0.6则可以,默认值也为0.6
print(result)

返回:

判断出为不是同一个人。
再稍微修改一下,让表达更清楚:

if result==[True]:name='same'print('两个人为同一个人')
else:print('两者不是同一个人')name='different'

返回:

第六步:框出人脸写上文字

获取两个人脸位置坐标:

for i in range(len(face_encodings)):face_encoding=face_encodings[(i-1)] #倒序获取face_location = face_locations[(i - 1)]print(face_location)#获取人脸位置

返回:

元祖四个数值分别表示框人脸矩形框的四个点坐标。

获取到坐标后开始画框框并写上文字:

top,right,bottom,left=face_location#确定出坐标#画框框cv2.rectangle(face_img,(left,top),(right,bottom),(255,0,0))#传参分别为:图片,坐标,RGB颜色,框粗细#写字上去cv2.putText(face_img,name,(left-10,top-10),cv2.FONT_HERSHEY_DUPLEX,0.8,(255,255,0),2)#传参数分别为:图片,文字,坐标,字体,字体大小,颜色,粗细

第七步:显示处理好的图像

face_img_rgb=cv2.cvtColor(face_img,cv2.COLOR_BGR2RGB)#确保颜色不要混乱
#展示图像
cv2.imshow('compare',face_img_rgb)
#设置等待关闭
cv2.waitKey(0)

效果:

你只需要按步骤敲代码即可为全部代码,当然为了便于大家直接cv,代码展示如下:

# coding=gbk
"""
作者:川川
公众号:玩转大数据
@时间  : 2022/2/5 14:36
"""
import sys
import cv2
import face_recognition #dlib 人脸识别库face_img=face_recognition.load_image_file('1.png')
# print(face_img)face_encodings=face_recognition.face_encodings(face_img)#进行特征提取向量化,获取人脸的编码
face_locations=face_recognition.face_locations(face_img)#五官对应的位置
# print(face_encodings)n=len(face_encodings)
print(n)
#这里只做判断两个人是否为一个人,超出两个就退出了
if n>2:print('超过两个人')sys.exit()#获取两个人的数据
face1=face_encodings[0]
face2=face_encodings[1]result=face_recognition.compare_faces([face1],face2,tolerance=0.6)#人脸比较,,误差不超过0.6则可以,默认值也为0.6
# print(result)
if result==[True]:name='same'print('两个人为同一个人')
else:print('两者不是同一个人')name='different'for i in range(len(face_encodings)):face_encoding=face_encodings[(i-1)] #倒序获取face_location = face_locations[(i - 1)]# print(face_location)#获取人脸位置top,right,bottom,left=face_location#确定出坐标#画框框cv2.rectangle(face_img,(left,top),(right,bottom),(255,0,0))#传参分别为:图片,坐标,RGB颜色,框粗细#写字上去cv2.putText(face_img,name,(left-10,top-10),cv2.FONT_HERSHEY_DUPLEX,0.8,(255,255,0),2)#传参数分别为:图片,文字,坐标,字体,字体大小,颜色,粗细face_img_rgb=cv2.cvtColor(face_img,cv2.COLOR_BGR2RGB)#确保颜色不要混乱
#展示图像
cv2.imshow('compare',face_img_rgb)
#设置等待关闭
cv2.waitKey(0)

标出了两个人脸并写上为different,就是不同的意思,当然本篇文章为了给大家简单介绍实现人脸识别,并没有做过多的复杂实现,近段时间我研究人脸识别也做了一些复杂的功能实现,感兴趣也可以一起聊聊。

更高阶的人脸识别项目

毕业设计: 人脸识别

手把手教你实现人脸识别,有手就行相关推荐

  1. 实战三:手把手教你实现物体识别

                                 实战三:手把手教你实现物体识别 一.基于Haad+Adaboost实现人脸识别 1.原理介绍(参考下面的博客文章) http://www.cn ...

  2. 【玩转华为云】手把手教你利用ModelArts识别偶像的声音

    本篇推文共计2000个字,阅读时间约3分钟. 华为云-华为公司倾力打造的云战略品牌,2011年成立,致力于为全球客户提供领先的公有云服务,包含弹性云服务器.云数据库.云安全等云计算服务,软件开发服务, ...

  3. AI实验室•西安站 教你用人脸识别打造爆款应用

    被各种换脸技术刷屏?想要知道如何打造霸占朋友圈的产品?对技术实现过程感兴趣?6月10日,由Face++主办,AI科技大本营.活动行.西安创业大街.3Wcoffee协办的<AI实验室•西安站 教你 ...

  4. 手把手教你做人脸搜索系统

    我发现网上非常多资料是讲人脸识别原理的,却很少有讲人脸识别如何应用落地的.所以本场 Chat 我将应用一个开源人脸识别模型做一个人脸搜索系统. 通过本场 Chat 你能够学到如下内容: 人脸识别原理简 ...

  5. python人脸识别毕业设计-Python 40行代码实现人脸识别功能

    前言 很多人都认为人脸识别是一项非常难以实现的工作,看到名字就害怕,然后心怀忐忑到网上一搜,看到网上N页的教程立马就放弃了.这些人里包括曾经的我自己.其实如果如果你不是非要深究其中的原理,只是要实现这 ...

  6. python编程人脸识别工具_几行代码带你实现人脸识别。Python 就是这么简单

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:Python编程与实战 阅读文本大概需要 11分钟. ...

  7. 手把手教你构建食物识别AI:小白轻易可上手,人气高赞有Demo | 资源

    铜灵 编译整理 量子位 出品 | 公众号 QbitAI 谁说深度学习任务都是步骤复杂.高深难懂的? 其实,小白也可以轻易上手,还能做出好玩有用的作品. 最近,工程师Nidhin Pattaniyil和 ...

  8. 还没体验过无人超市?手把手教你用计算机识别技术自己开一家!

    2016年年末,Amazon无人超市横空出世.在这家无人超市,店内的相机能够自动追踪你拿取的商品:完成购物后,你无需排队等候收银,只用直接走出超市. 自此之后,阿里和京东也已相继加入战局,先后推出无人 ...

  9. 电脑上玩和平精英_《和平精英》怎么投屏到电脑上?手把手教你电脑键鼠玩手游...

    <<和平精英>怎么投屏到电脑上玩?作为一款由端游移植到手机上得FPS射击手游,相比较其他类型的手游,在手机上操作存在一定的局限性,压枪.拾取装备.走位等这些在游戏中的日常操作还是在电 ...

最新文章

  1. C#实现局部峰值查找,功能对应Matlab中的findpeaks.m
  2. 对团队建设与管理的几点看法
  3. 保姆级教程,终于搞懂脏读、幻读和不可重复读了!
  4. 【数据结构与算法】浅谈稀疏矩阵
  5. 林森---博客园之二,对《闭包》的个人见解!希望能帮到不理解闭包的同学们!...
  6. python实现Kruskal算法求解加权图中最小生成树问题
  7. 有关开放源代码软件与商业软件知识产权的研究报告(中)
  8. DXL之通过程序修改Domino的设计
  9. 华为交换机vlan创建命令
  10. 网络工程师中级(知识产权与标准化)
  11. 项目管理的四大模型,PM必须懂!
  12. java mail 匿名_java开发邮件发送匿名
  13. 蓝队-Windows操作系统
  14. 梦幻西游服务器维修,《梦幻西游》电脑版2017年12月12日定期维护公告
  15. HTTPS抓包连接过程
  16. JavaScript里的var变量
  17. linux txt file busy,linux使用cp报错 Text file busy
  18. 对应届毕业生参加面试的一些建议
  19. Python读取MNIST数据集
  20. 需要阅读的经典管理书籍

热门文章

  1. 检测两点所确定直线上的像素坐标
  2. masm5.0的使用介绍
  3. Google I/O大会:Android 13
  4. 上门汽车保养预约小程序
  5. python long类型_python获取当前时间戳Long类型
  6. ABBYY FlexiCapture Engine使用心得分享
  7. Fuchsia 确认支持安卓 APP;悼念杰出的内核开发者李少华
  8. linux如何卸载金山安全终端,安全客户端
  9. SourceInsight 修改代码后无法保存,显示“xxx is busy or opened by another process”
  10. 我的英文写作学习之旅:100日入门+后期靠积累