点击上方“小白学视觉”,选择加"星标"或“置顶”
python
重磅干货,第一时间送达git
人脸识别github
“面部识别”名称自己就是一个很是全面的定义,面部识别是经过数字媒体做为输入来识别或检测人脸的技术执行过程。web
人脸识别的准确性能够提供高质量的输出,而不是忽略影响其的问题因素。在这里,要确保运行咱们的模型,必须确保在本地系统中安装了库。算法
pip install face_recognition数据库
若是在 face_recognition库的安装过程当中遇到一些问题或错误,能够点击如下连接:https://www.youtube.com/watch?v=xaDJ5xnc8dcswift
人脸识别自己没法提供清晰的输出,所以出现了OpenCV实现的概念。后端
预先录制的视频中的人脸识别输出示例。微信
OpenCVapp
OpenCV是python中一个著名的库,用于实时应用程序。OpenCV在计算机世界中就像树的根同样很是重要。
face_recognition中的OpenCV对咱们训练为输入的面部图像进行聚类和特征提取。它以图像中的地标为目标,以迭代方式在计算机视觉的深度学习方法中训练它们。
在本地系统中安装OpenCV
pip install opencv-python
使用深度学习算法,OpenCV检测可做为聚类,类似性检测和图像分类的表示。
为何咱们使用OpenCV做为实时Face_Recognition中的关键工具?
人类能够轻松检测到面部,可是咱们如何训练机器识别面部?OpenCV在这里填补了人与计算机之间的空白,并充当了计算机的愿景。
以一个实时的例子为例,当一我的遇到新朋友时,他会记住这些人的脸,以备未来识别。一我的的大脑反复训练后端的人脸。所以,当他看到那我的的脸时,他说:“嗨,约翰!你好吗?”。
对面部的识别和能够为计算机提供与人类相同的思惟方式。
OpenCV是计算机视觉中的重要工具。若是咱们使用OpenCV,则遵循如下步骤:
• 经过输入提取数据。
• 识别图像中的面部。
• 提取独特的特征,以创建预测思想。
• 该特定人的性格特征,如鼻子,嘴巴,耳朵,眼睛和面部主要特征。
• 实时人脸识别中人脸的比较。
• 识别出的人脸的最终输出。
使用OpenCV python的Face_Recognition:
代码下载:https://github.com/eazyciphers/deep-machine-learning-tutors/tree/master/Real-Time Face RecognitionGitHub
导入全部软件包:
import face_recognitionimport cv2import numpy as np
加载并训练图像:
# Load a sample picture and learn how to recognize it.Jithendra_image = face_recognition.load_image_file("jithendra.jpg")Jithendra_face_encoding = face_recognition.face_encodings(Jithendra_image)[0]# Load a sample picture and learn how to recognize it.Modi_image = face_recognition.load_image_file("Modi.jpg")Modi_face_encoding = face_recognition.face_encodings(Modi_image)[0]
人脸编码:
# Create arrays of known face encodings and their namesknown_face_encodings = [Jithendra_face_encoding,Modi_face_encoding,]known_face_names = ["Jithendra","Modi"]
主要方法:
当实时人脸识别为true时,它将检测到人脸并按照代码中的如下步骤操做:
• 抓取实时视频中的一帧。
• 将图像从BGR颜色(OpenCV使用的颜色)转换为RGB颜色(face_recognition使用的颜色)
• 在实时视频的帧中找到全部面部和面部编码。
• 循环浏览此视频帧中的每一个面孔,并检查该面孔是否与现有面孔匹配。
• 若是一我的脸没法识别现有人脸,则将输出视为未知或未知。
• 识别后,不然在识别出的脸部周围画一个方框。
• 用其名称标记识别的面部。
• 识别后显示结果图像。
退出:
# Hit 'q' on the keyboard to quit!
if cv2.waitKey(1) & 0xFF == ord('q'):
break
释放摄像头的手柄:
# Release handle to the webcam
video_capture.release()
cv2.destroyAllWindows()
输入和输出
在训练过程当中提供给模型的样本输入…。
输入
用于训练代码的样本图像
样本输入图像进行训练
输出:
记录输出
代码参考:https : //github.com/eazyciphers/deep-machine-learning-tutors
参考文献:
https://www.pyimagesearch.com/2018/09/24/opencv-face-recognition/
https://www.superdatascience.com/blogs/opencv-face-recognition
https://zh.wikipedia.org/wiki/Facial_recognition_system
交流群
欢迎加入公众号读者群一块儿和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(之后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,不然不予经过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,不然会请出群,谢谢理解~
本文分享自微信公众号 - 小白学视觉(NoobCV)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。