人脸识别

手把手教你用1行代码实现人脸识别 -- Python Face_recognition

ぃ、小莉子 提交于 2019-12-06 08:09:56
环境要求: Ubuntu17.10 Python 2.7.14 环境搭建: 1. 安装 Ubuntu17.10 > 安装步骤在 这里 2. 安装 Python2.7.14 (Ubuntu17.10 默认Python版本为2.7.14) 3. 安装 git 、cmake 、 python-pip # 安装 git $ sudo apt-get install -y git # 安装 cmake $ sudo apt-get install -y cmake # 安装 python-pip $ sudo apt-get install -y python-pip 4. 安装编译dlib 安装face_recognition这个之前需要先安装编译dlib # 编译dlib前先安装 boost $ sudo apt-get install libboost-all-dev # 开始编译dlib # 克隆dlib源代码 $ git clone https://github.com/davisking/dlib.git $ cd dlib $ mkdir build $ cd build $ cmake .. -DDLIB_USE_CUDA=0 -DUSE_AVX_INSTRUCTIONS=1 $ cmake --build .(注意中间有个空格) $ cd .. $ python setup

10-2.人脸识别

旧巷老猫 提交于 2019-12-05 16:32:56
1.采集人脸样本 # 系统操作 import os # 判断文件类型 import imghdr from imutils import * # 人脸检测并保存人脸 def facedetect(image, output): # 获取文件名 name = os.path.basename(image) # 读入图片 image = cv2.imread(image) # 变成灰度图 image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 级联分类器,检测人脸 detector = cv2.CascadeClassifier("haarcascade_frontalface_alt.xml") rects = detector.detectMultiScale(image, scaleFactor=1.1, minNeighbors=3, minSize=(20, 20), flags=cv2.CASCADE_SCALE_IMAGE) # 循环每个人脸 for (x,y,w,h) in rects: # 截取人脸,并且都转化为200*200的固定大小 f = cv2.resize(image[y:y+h, x:x+w], (200,200)) # 写入指定路径 cv2.imwrite(os.path.join(output, name),

微调(Fine-tune)原理

◇◆丶佛笑我妖孽 提交于 2019-12-05 15:28:02
一、MTCNN的原理   搭建人脸识别系统的第一步是 人脸检测 ,也就是在图片中找到人脸的位置。在这个过程中,系统的输入是一张可能含有人脸的图片,输出是人脸位置的矩形框,如下图所示。一般来说,人脸检测应该可以正确检测出图片中存在的所有人脸,不能用遗漏,也不能有错检。         获得包含人脸的矩形框后,第二步要做的就是 人脸对齐(Face Alignment) 。原始图片中人脸的姿态、位置可能较大的区别,为了之后统一处理,要把人脸“摆正”。为此,需要检测人脸中的 关键点(Landmark) ,如眼睛的位置、鼻子的位置、嘴巴的位置、脸的轮廓点等。根据这些关键点可以使用 仿射变换 将人脸统一校准,以尽量消除姿势不同带来的误差,人脸对齐的过程如下图所示。       这里介绍一种基于深度卷积神经网络的人脸检测和人脸对齐方法----MTCNN,它是基于卷积神经网络的一种高精度的实时人脸检测和对齐技术。MT是英文单词Multi-task的缩写,意思就是这种方法可以同时完成人脸检测的人脸对齐两项任务。相比于传统方法,MTCNN的性能更好,可以更精确的定位人脸,此外,MTCNN也可以做到实时的检测。   MTCNN由三个神经网络组成,分别是 P-Net、R-Net、O-Net 。在使用这些网络之前,首先要将原始图片缩放到不同尺度,形成一个“图像金字塔”,如下图所示。      

opencv 图片识别

≯℡__Kan透↙ 提交于 2019-12-05 12:27:41
# -*- coding: utf-8 -*- """ Created on Fri Nov 22 21:35:12 2019 @author: Administrator """ import cv2 filepath = "img/3.jpg" img = cv2.imread(filepath) # 读取图片 gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) # 转换灰色 cv2.imshow("image1", gray) # 显示图像 # OpenCV人脸识别分类器 classifier = cv2.CascadeClassifier( r"D:\BaiduNetdiskDownload\Opencv\haarcascade_frontalface_default.xml" # "C:\Python36\Lib\site-packages\opencv-master\data\haarcascades\haarcascade_frontalface_default.xml" ) color = (0, 255, 0) # 定义绘制颜色 # 调用识别人脸 faceRects = classifier.detectMultiScale( gray, scaleFactor=1.2, minNeighbors=3, minSize=(32

业务领域建模Domain Modeling

二次信任 提交于 2019-12-05 12:19:56
♦ 1) Collect application domain information – focus on the functional requirements – also consider other requirements and documents 我的工程实践选题是《视频序列中人员检测与身份推断的系统设计》,这是一个根据视频序列进行人脸识别,并识别人员的年龄、性别、身高等信息之后进行人员身份推断的系统。 ♦ 2) Brainstorming – listing important application domain concepts – listing their properties/attributes – listing their relationships to each other 由上述的描述我们将系统的功能模块及主要的技术路线实现分类如下: 视频处理:对实时视频流进行视频的抽帧以及预处理 人脸匹配:人脸图像的边缘检测和匹配,确定这个人是否是已存入数据库的用户,若不是,则新建一个用户 特征识别:对视频中的人员特征进行提取,包括年龄、性别、衣着、行为 身份推断:按照提取的各项特征值进行人员身份的推断 以下是技术路线图: ♦ 3) Classifying the domain concepts into: – classes – attributes /

python人脸识别项目face-recognition

别说谁变了你拦得住时间么 提交于 2019-12-05 09:01:19
该项目基于Github上面的开源项目人脸识别face-recognition,主要是对图像和视频中的人脸进行识别,在开源项目给出的例子基础上对视频人脸识别的KNN算法进行了实现。 0x1 工程项目结构 0x2 项目中的3个py文件 recognize_people_from_image.py是对图片中的人脸进行识别. recognize_people_from_video.py是对视频中的人脸进行识别.特点:运行快,准确度低 recognize_people_from_video_knn.py是基于KNN算法对视频中的人脸进行识别.特点:运行慢,准确度高 0x3 最终测试效果 1)识别图片中的人脸: 2)识别视频中的人脸:(播放器截图) 视频完整效果图 https://github.com/Jackyongjian-Li/Faces-recognition/blob/master/output_video/4_1080p_2min_output.avi 0x4 Github完整项目文件 https://github.com/Jackyongjian-Li/Faces-recognition 来源: https://www.cnblogs.com/lyj-blogs/p/11917741.html

OpenCV 2.4+ C++ 人脸识别

橙三吉。 提交于 2019-12-04 23:38:24
机器学习 机器学习的目的是把数据转换成信息。 机器学习通过从数据里提取规则或模式来把数据转成信息。 人脸识别 人脸识别通过 级联分类器 对特征的分级筛选来确定是否是人脸。 每个节点的正确识别率很高,但正确拒绝率很低。 任一节点判断没有人脸特征则结束运算,宣布不是人脸。 全部节点通过,则宣布是人脸。 工业上,常用人脸识别技术来识别物体。 对图片进行识别 #include " opencv2/core/core.hpp " #include " opencv2/objdetect/objdetect.hpp " #include " opencv2/highgui/highgui.hpp " #include " opencv2/imgproc/imgproc.hpp " #include <iostream> #include <stdio.h> using namespace std; using namespace cv; string face_cascade_name = " haarcascade_frontalface_alt.xml " ; CascadeClassifier face_cascade; string window_name = " 人脸识别 " ; void detectAndDisplay( Mat frame ); int main( int

人脸识别APP技术开发

风格不统一 提交于 2019-12-04 19:13:08
人脸识别技术目前已经非常成熟,识别率也越来越高。人脸识别技术与其他生物特征识别技术相吃比,在实际应用中具有天然独到的优势:通过摄像头直接获取,可以非接触的方式完成识别过程,方便快捷。 目前已应用在金融、教育、景区、旅运、社保等领域,但方便的同时也带来了一些问题,易获取,使得人脸容易被一些人用照片、视频等方式进行复制,从而达到窃取盗用信息的目的。尤其是在新兴的金融行业,人脸识别技术已逐渐用于远程开户、取款、支付等,涉及用户的切身利益。 那么什么是APP上的人脸识别技术呢?通俗地讲,就是在人脸识别的过程中证明你确实是个“活人”,不是照片、视频或其他神马,证明你是个人,你就是你。那么银行APP上的人脸识别技术技术对攻击有多重对抗措施,下面就带大家去感受下其中的奥秘。人脸识别APP技术开发主要内容包括:人脸检测、活体算法检测、3D检测、连续性检测 1.人脸检测定位人脸在哪里,检测活体过程中是否出现无人脸、多人脸的情况,可有效防止两个人的切换或人与照片的切换。 2.活体算法检测判断用户是否为正常操作,通过指定用户做随机动作(摇头、点头、凝视、眨眼、上下移动手机),防止视频攻击、非正常动作的攻击。经实践证明,我司上下移动手机活体检测方法,即使录制自己本人的视频亦无法通过! 3.3D检测验证采集到的是否为立体人像,能够防止平面照片、不同弯曲程度的照片等。 4

人脸识别APP技术开发

青春壹個敷衍的年華 提交于 2019-12-04 19:09:34
人脸识别技术目前已经非常成熟,识别率也越来越高。人脸识别技术与其他生物特征识别技术相吃比,在实际应用中具有天然独到的优势:通过摄像头直接获取,可以非接触的方式完成识别过程,方便快捷。 目前已应用在金融、教育、景区、旅运、社保等领域,但方便的同时也带来了一些问题,易获取,使得人脸容易被一些人用照片、视频等方式进行复制,从而达到窃取盗用信息的目的。尤其是在新兴的金融行业,人脸识别技术已逐渐用于远程开户、取款、支付等,涉及用户的切身利益。 那么什么是APP上的人脸识别技术呢?通俗地讲,就是在人脸识别的过程中证明你确实是个“活人”,不是照片、视频或其他神马,证明你是个人,你就是你。那么银行APP上的人脸识别技术技术对攻击有多重对抗措施,下面就带大家去感受下其中的奥秘。人脸识别APP技术开发主要内容包括:人脸检测、活体算法检测、3D检测、连续性检测 1.人脸检测定位人脸在哪里,检测活体过程中是否出现无人脸、多人脸的情况,可有效防止两个人的切换或人与照片的切换。 2.活体算法检测判断用户是否为正常操作,通过指定用户做随机动作(摇头、点头、凝视、眨眼、上下移动手机),防止视频攻击、非正常动作的攻击。经实践证明,我司上下移动手机活体检测方法,即使录制自己本人的视频亦无法通过! 3.3D检测验证采集到的是否为立体人像,能够防止平面照片、不同弯曲程度的照片等。 4

[face_recognition中文文档] 第4节 Face Recognition API

China☆狼群 提交于 2019-12-04 14:51:58
Face Recognition API face_recognition包 模块内容 face_recognition.api.batch_face_locations(images, number_of_times_to_upsample=1, batch_size=128) 源码 使用cnn面部检测器返回图像中二维人脸的边界框数组,如果您正在使用GPU,这可以更快的给您结果,因为GPU可以一次处理批次的图像。如果您不使用GPU,则不需要此功能。 参数: images - 图像列表(每个作为numpy数组) number_of_times_to_upsample - 用于对图像进行采样的次数。较高的数字找到较小的脸。 batch_size - 每个GPU处理批次中包含的图像数量。 返回: 一个可以在css(上,右,下,左)顺序中找到的人脸位置的元组列表 face_recognition.api.compare_faces(known_face_encodings, face_encoding_to_check, tolerance=0.6) 源码 将候选编码的面部编码列表进行比较,以查看它们是否匹配。 参数: known_face_encodings - 已知面部编码的列表 face_encoding_to_check - 与已知面部编码的列表进行比较的单面编码