人脸识别实现python,python实现人脸识别系统
python人脸识别的兴起人脸识别技术的应用和发展是怎样的?python人脸识别导入库实现代码
人脸识别的兴起什么是人脸识别
人脸识别是根据面部特征信息对采集的数据信息进行比对,从而识别身份的技术。每当我们谈论人脸识别技术时,我们都会想到人工智能。近年来,人工智能的发展已经成为当代技术革命的一部分。可以说,计算机技术的发展极大地推动了这场革命。
我经常思考人脸识别是怎么做的,这和复杂高级的数据建模以及人脸各部分数据模型的建立密切相关。说白了,其实就是算法,算法的研究成为推动智能发展的支柱。
涉及的很多,无论是从深度学习、机器学习、人工智能,实现过程肯定是非常复杂的。
我知识薄弱,不敢多说。不过可以肯定的是,你的人脸识别首先要把你的脸变成计算机可以识别的数据。人脸识别其实就是计算机中的数据识别。
人脸识别技术的应用与发展说到应用,我的第一印象就是手机上人脸识别的解锁。目前学校公寓里也有人脸识别机。我记得第一件事就是收集我们学生的照片,这些照片要存入数据库。我们学生的信息,包括他们的学号,院系等等,都是学校存储在数据库里的。学生进公寓需要人脸识别,机器会识别。系统有两种识别方式,一种是识别人像,一种是刷卡,会读取你自己的信息,与数据库中的信息进行比对。也是一种鉴定方式。
目前,从人脸识别技术在国内的应用来看,主要集中在三个领域:考勤与门禁、安防与金融等。目前,人脸识别面临着一个难题。可能会亮一点,但是在暗的环境下比较难,脸黑的人也可能会有误差。但是,技术革命的发展一定会解决这个问题。没有你想不到的,也没有你做不到的。
应用前景:随着人工智能的兴起,更高端的识别技术是主流发展方向,更便捷直观的无接触方式是未来方向。人脸识别具有不需要被测试者配合的特点,采集者通过扫描即可进行人脸比对,在公安刑侦领域有着巨大的前景。在门禁和安防领域,操作更便捷的人脸识别也将更受欢迎。
Python人脸识别导入库
Python是一种功能强大的计算机编程语言,我们经常使用python中的库。我们今天使用的库需要安装,因为它们不是python中的内置库。
1:opencv-python
2:人脸识别
这里主要介绍通过控制台命令导入库,但可能和一般的固定格式导入有所不同。当然也可以借用Pycharm,直接去网站安装相应的包。我更喜欢控制台命令,因为Pycharm导入一些库很慢。
导入opencv,不同于python版本。我的是Python版。在控制台导入过程中,我们可以像这样导入。opencv依赖numpy,我们一般是这样导入的。首先,我们导入cmake,pip安装cmake-i镜像源。
目前国内镜像来源如下:
阿里云http://mirrors.aliyun.com/pypi/simple/
中国科学技术大学https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣http://pypi.douban.com/simple/
https://pypi.tuna.tsinghua.edu.cn/simple/清华大学
http://pypi.mirrors.ustc.edu.cn/simple/,中国科技大学
http://pypi.hustunique.com/simple/华中科技大学
山东理工大学http://pypi.sdutlinux.org/simple/分校
然后我们导入opencv-python,所以我们导入pip install opencv-python-I image source-trusted-host。
Trusted-host是表示这个镜像信任度的来源,主要针对可能出现不可信提示的情况。
同样的,当我们导入face_recognition的时候,我们在控制台中这样写:pip install face _ recognition-I mirror source-trusted-host。
这里可能有很大的内存问题,但是等一会就好了。
这个代码的目的是识别图片中的人脸,确定是否是同一张脸。如果是,则返回yes,否则返回no,图片显示为划定人脸的位置框。是和否将显示在图片的顶部。
下面是一些内联代码片段。
#导入sys #python内置库导入cv2 #计算机视觉领域导入face_recognition #人脸识别库,如果你看了图片,没错,图像矩阵#就是每张图片的rgb# 1。面部数据# 2。算法# 3。构建模型# 4。五号列车模型。测试模型# 6。上网用# 1读取Face _ image=Face _ recognition . load _ image _ file( e://1 . jpg )#读取图片# 28维五官数据Face _ encoding=Face _ recognition . Face _ encodings(Face _ image)# 3人脸位置Face _ locations=Face _ recognition . Face _ locations(Face _ image)#判断n=len(face_encoding)#如果超过一个人, 退出if n2: print(两个人以上)sys . exit()face 1=face _ encoding[0]Face2=face _ encoding[1]# 4比较阈值容错指定容错率,越小,结果越严格=face _ recognition . compare _ faces([face 1],face 2, tolerance=0.5)if result==[true]:print(1)name= yes else:print(0)name= no # drawing for I in range(len(face _ encoding)):face _ encoding=face _ encoding[I]face _ location=face _ locations[I]top,right,bottom,left=face _ location #帧图像位置颜色粗细cv2.rectangle(face_image,(left,top),(right,bottom),(0,255,0),2) # write cv2.puttext (face _ image,name,(left 2))face _ image _ RGB=cv2 . CVT color(face _ image,cv2 . color _ bgr 2 RGB)# show image cv2 . im show( output ,face _ image _ RGB) #防止闪退cv2.waitKey(0)我找了一张随机图片给大家简单演示一下这个过程。
再来看实现结果。
我们看到结果就是这两个人不是同一张脸。当然,这张图可能更容易分辨。你可以试试更难的。据说face_recognition数据库的识别率在99.5%以上,有保障。
注意代码规定的容错率,这也和结果密切相关。
当然,视频动态图像也是可以的。我们在python中还有一个调用摄像头的模块,还有一个可以改变手机摄像头地址的模块。我们可以把它加入到代码中,调用相机,控制拍照,这样就可以和这个结合起来,实现动态人脸识别。我们可以有这个想法。这里只是简单介绍一下python的这个人脸识别库。当然也会有其他编程语言来实现人脸识别。后面我会写动态照片人脸识别。到最后,它仍然在调用库。会写库和算法的才是老大。那些只会用方法的人,我还有很多要学的。
毕竟我见识不广。希望大家指正。我期待与你们一起进步。
- jgdabc
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。