Openface人脸识别的原理与过程

article/2025/9/24 18:13:28

Openface人脸识别的原理与过程:

https://zhuanlan.zhihu.com/p/24567586

原理可参考如下论文:

《OpenFace: A general-purpose face recognition library with mobile applications》

第一步:找出所有的面孔

我们流水线的第一步是人脸检测。

我们的目标是找出并比较当前像素与直接围绕它的像素的深度。然后我们要画一个箭头来代表图像变暗的方向:

用梯度来代替像素这事看起来没有明确目的,但其实背后的理由很充分。如果我们直接分析像素,同一个人明暗不同的两张照片将具有完全不同的像素值。但是如果只考虑亮度变化方向(direction)的话,明暗图像将会有同样的结果。这使得问题变得更容易解决!

但是保存每个像素的梯度太过细节化了,我们最终很有可能「一叶障目不见泰山」。如果能从更高的角度上观察基本的明暗流动,我们就可以看出图像的基本规律,这会比之前更好。

为了做到这一点,我们将图像分割成一些16×16像素的小方块。在每个小方块中,我们将计算出每个主方向上有多少个梯度(有多少指向上,指向右上,指向右等)。然后我们将用指向性最强那个方向的箭头来代替原来的那个小方块。

最终的结果是,我们把原始图像转换成了一个非常简单的表达形式,这种表达形式可以用一种简单的方式来捕获面部的基本结构:

利用HOG去detector人脸


HOG脸部图案

第二步为面部特征点估计(face landmark estimation)。

但这次我们会使用由瓦希德·卡奇米(Vahid Kazemi)和约瑟菲娜·沙利文(Josephine Sullivan)在2014年发明的方法ERT(集成回归树)


68点序号图

第三步:给脸部编码

所以,解决方案是训练一个深度卷积神经网络(就像我们在第三章做的那样)。但是,并不是让它去识别图片中的物体,这一次我们的训练是要让它为脸部生成128个测量值。通过训练网络来生成这个128个特征,使得这些特征具有如下关系:相同人的图片距离尽可能接近,而不同人的照片距离尽可能远。

每次训练要观察三个不同的脸部图像(Triplet loss):

1.加载一张已知的人的面部训练图像

2.加载同一个人的另一张照片

3.加载另外一个人的照片

机器学习专业人士把每张脸的128个测量值称为一个嵌入(embedding)。将复杂的原始数据(如图片)缩减为可由计算机生成的一个数列的方法,在机器学习(特别是语言翻译)中出现了很多次。我们正在使用的这种脸部提取方法是由Google的研究人员在2015年发明的,但也有许多类似方法存在。

该训练网络已经完成,我们只需要使用它即可生成128个特征值。

第四步:从编码中找出人的名字

面部识别分类器:基于简单线性SVM

总结:

1.使用HOG算法给图片编码,以创建图片的简化版本。使用这个简化的图像,找到其中看起来最像通用HOG面部编码的部分。

2.通过找到脸上的主要特征点,找出脸部的姿势。一旦我们找到这些特征点,就利用它们把图像扭曲,使眼睛和嘴巴居中。

3.把上一步得到的面部图像放入神经网络中,神经网络知道如何找到128个特征测量值。保存这128个测量值。

4.看看我们过去已经测量过的所有脸部,找出哪个人的测量值和我们要测量的面部最接近。这就是你要找的人!



http://chatgpt.dhexx.cn/article/JMCVaKop.shtml

相关文章

openface在pycharm上的安装

1、下载openface相关文件 链接:下载openface:GitHub - cmusatyalab/openface: Face recognition with deep neural networks. 下载后得到一个openface-master的文件夹 2、输入cmd,进入命令提示符,找到自己保存的openface-master文件夹路径。 …

OpenFace使用OpenFace进行人脸识别

1.OpenFace简介 http://cmusatyalab.github.io/openface/ 安装就按照官方教程来就好了 装完各种依赖之后运行一下命令 https://github.com/cmusatyalab/openface.git --recursive cd openface sudo python setup.py install sh modles/get-models.sh 2.素材准备 准备两…

【OpenFace】

OpenFace: http://cmusatyalab.github.io/openface/ 一、什么是Openface? Openface是一个基于深度神经网络的开源人脸识别系统。该系统基于谷歌的文章FaceNet: A Unified Embedding for Face Recognition and Clustering。Openface是卡内基梅隆大学的 B…

OpenFace

OpenFace是一个包含了landmark,head pose,Actionunions,eye gaze等功能,并包含训练和检测所有源码的开源人脸框架,论文为,OpenFace: an open source facial behavior analysis toolkit OpenFace所用到的库包…

win10下openface快速安装与使用

win10下openface快速安装与使用 情况说明环境下载openface下载模型openface的简单使用 情况说明 我发现openface的安装方法五花八门,大多都比较复杂,而openface分很多版本,很多安装教程混在一起,导致我自己安装时下载下混了。 本…

Windows系统下的Openface安装及使用--亲测有效

一、配置openface所需环境 openface主要依赖于opencv和dlib等工具包,工具包安装可winr进入用户终端下载安装(需要先下载python),或者下载ananconda,创建anaconda虚拟环境安装: pip install opencv-python…

OpenFace简介

推荐 如下博文 https://blog.csdn.net/qq_14845119/article/details/53994607 OpenFace是一个包含了landmark,head pose,Actionunions,eye gaze等功能,并包含训练和检测所有源码的开源人脸框架,论文为,Ope…

Openface的安装和使用

openface的安装与使用 环境:我的电脑是笔记本电脑,win10系统,用的是pycharm和annaconda。 一、首先下载openface安装包,并且安装 1.下载地址:https://codeload.github.com/cmusatyalab/openface/zip/master 2.下载后…

OpenFace学习(1):安装配置及人脸比对

前言 前几天在网上看到了openface(链接),觉得挺有趣就下载配置了一下,稍微修改了一下跑了个demo,效果还是很不错的。这里分享下安装配置的过程以及demo。 简介 openface是一个基于深度神经网络的开源人脸识别系统&a…

“H5移动端App—数据统计分析”项目展示

1、具有切换商城展示功能 2、通过不同的统计图样式分别展示不同的数据

Vant简单H5 web app【小试牛刀】

index.html <!DOCTYPE html> <html><head><meta charset"utf-8"><!--谷歌浏览器&#xff08;手机端&#xff09;顶部颜色--><meta name"msapplication-TileColor" content"#4183fd"><meta name"the…

推荐几个H5、app制作开发工具

我们已经进入移动互联网时代&#xff0c;而app是移动互联网的载体。传统app开发面临成本高、周期长等问题&#xff0c;因此各类快速生成app的工具层出不穷。企业拥有了app才能实现互联网营销和互联网推广。中国有近7000万传统中小型企业&#xff0c;app会帮助这些企业实现互联网…

直接复制php代码制作app,一套免费无代码在线制作APP工具,将APP打包带走

线上营销的火爆离不开人们对APP的依赖&#xff0c;许多小商户已经从很早的时候就开始萌芽出制作APP来为实体店增加生意的想法&#xff0c;然后开发APP对中型企业都是一件成本极高的事情&#xff0c;即便小商户请外包团队需求降到最低&#xff0c;也会产生十几万的费用&#xff…

如何快速成为APP制作、H5制作高手?

App、H5无疑是移动互联网时代的宠儿&#xff0c;无数社交、商业、宣传都在App、H5上实现。掌握App、H5制作技能&#xff0c;无论工作、学习&#xff0c;更胜人一筹。 那么&#xff0c;什么是App呢&#xff1f; App(application的缩写)&#xff0c;即安装在手机上的软件。早期的…

uni-app跨端开发实现APP与H5之间的通讯和交互

最近在研究uni-app跨端开发APP和H5的通讯和交互&#xff0c;比如H5调用APP的方法&#xff0c;APP往H5里面传参&#xff0c;H5往app外面传参。话不多说&#xff0c;上代码&#xff01; html文件放本地的话必须放在项目根目录下的static文件夹 H5调用APP的方法 <!DOCTYPE ht…

利用H5+实现APP在线更新

1 在APP首页添加以下js代码 // 获取本地应用资源版本号 plus.runtime.getProperty(plus.runtime.appid,function(inf){wgtVer inf.version; // mui.toast("当前应用版本&#xff1a;"wgtVer);// 检测更新checkUpdate(); });// 检测更新 var checkUrl "能够返…

uniapp常用打包记录【h5、app、wx小程序】

h5打包 打包前配置 开始打包 打包成功 h5打包之后&#xff0c;如果用的unicloud开发&#xff0c;可以直接上传到“前端网页托管”&#xff0c;然后系统会有个默认域名&#xff0c;我们就可以实现公网访问了 h5的调试工具“vConsole” 参考&#xff1a; (160条消息) vue3 移动端…

H5加壳APP发布Android、IOS应用(证书响应文件制作)

主要步骤&#xff1a; 1.申请一个苹果账号 2.申请ios测试证书&#xff08;p12&#xff09; 3.申请ios描述文件&#xff08;mobileprovision&#xff09; 4.打包ipa 5.安装ipa 一、申请苹果账号 也可以用我注册好的苹果账号体验下&#xff0c;新注册个也简单&#xff0c;…

H5页面的部分IOS兼容处理

IOS兼容处理 环境&#xff1a;uni-app开发H5项目&#xff0c;H5项目链接webview嵌入app中 popup弹窗显示层级问题 问题&#xff1a;遮罩层遮挡位置不正确有白边&#xff0c;提交按钮应该在最底部却显示在popup上面 解决&#xff1a;将popup组件放到外层组件中&#xff0c;避免…

html app启动页制作,【示例】App引导页的制作

注意:本文为5+App的引导页制作方法,uni-app另行制作,推荐使用nvue制作,也可以参考插件市场已经封装的插件https://ext.dcloud.net.cn/plugin?id=192 启动页和引导页 首先澄清一下“启动界面”(splash)和“引导页”(guide)的概念,因为许多刚接触App开发的朋友会搞不清楚这…