介绍
FaceIO 是一个跨浏览器的用户面部识别认证框架。任何网站都可以使用 JavaScript 片段来实现它。随着越来越多的日常任务以电子方式而非纸笔或面对面的方式进行管理,电子交易的发展对快速、准确的用户识别和认证的需求也在增加。

当需要访问建筑物、银行账户和计算机系统的密码时,PIN 经常用于身份识别和安全检查。使用正确的 PIN 授予访问权限,但未确认 PIN 持有者。当信用卡和 ATM 卡丢失或被盗时,未经授权的用户甚至可以只输入PIN而不需要确认 PIN 持有者就可以盗刷信用卡,这是非常危险的。
由于除了同卵双胞胎之外,人脸毫无疑问与其一个人的身份相关联,因此上述问题可以通过人脸识别技术得到解决。
要查看完整的 FACEIO 文档,请转到此处:https://faceio.net/getting-started
本文中的知识可用于改进人脸识别技术并增加安全性和隐私性。
为什么选择 FACEIO?
用户必须使用耗时耗力的传统方法进行身份验证。使用 FaceIO 可以开发出一种非常实用和安全的身份验证方法。用户无需使用密码或个人识别码即可登录。
FACEIO 的最佳特性之一是它不需要用户进行任何物理交互。
它是精确的,允许高注册率和验证率,从 消费者的角度来看,这往往会提高可靠性。
你当前的硬件基础设施、相机和图像捕获设备都可以使用,几乎不会出错。
单击此处立即开始使用 FACEIO:https://faceio.net/getting-started
面部识别的历史
1960 年代开发了第一个用于识别照片中的面部特征(例如眼睛、耳朵、鼻子和嘴巴)的半自动方法。
Goldstein 和 Harmon 在 1970 年代通过使用 21 个特定的主观特征(例如头发 颜色和嘴唇厚度)实现了自动识别。
Kirby 和 Sirovich 在 1988 年采用传统的线性代数方法进行人脸识别。
FACEIO 的主要特点
以下是FACEIO的主要特征:https://faceio.net/on-premise#features
FIDO 密钥、OTP 或免安全问题身份验证
全面的浏览器兼容性(Chrome、Firefox、Safari、Edge 和 Chromium 衍生产品)。
对外部资源的零依赖。基本 JavaScript 和 CSS 中使用的唯一技术是标准技术。
现代面部识别引擎可实现国防级准确性,识别速度低于 100 毫秒。
最高级别的安全性。隐私是有意设计的,最方便用户使用。生物识别传感器不是必需的。
FACEIO 是如何运作的?
FACEIO 使用前置摄像头或标准网络摄像头进行身份验证。对于面部识别,它不需要红外发射器等任何其他传感器。无论使用何种框架,该网站都能完美运行。
面部识别中有两种不同类型的比较:
验证:
一般用于身份核实,就是验证“你是不是某人?”的问题。
识别:
该方法在将给定的人与数据库中的每个其他人进行比较后对匹配项进行排名,就是验证“我是谁?”的问题。
所有身份或身份验证方法都使用以下四个阶段来发挥作用:
捕获:
系统在注册和识别或验证过程中记录身体或行为样本。
提取:
从样本中提取特殊数据,制作模板。
比较:
然后将新样本放在模板上。
匹配/不匹配:
系统确定从新样本中提取的特征是匹配还是不匹配。
了解有关人脸验证和识别的更多信息:https://faceio.net/getting-started
执行
FACEIO人脸识别技术的实现包括以下五个阶段:https://faceio.net/integration-guide#fiojs-instantiate
图像采集
图像处理
鲜明的特色位置
模板创建
模板匹配
图像采集
几乎所有能产生适当质量和分辨率图像的静态相机或视频系统都可以使用面部扫描技术捕捉面部。
高质量的注册定义了将在所有即将进行的身份验证活动等中使用的面部特征。注册照片的识别对于最终验证至关重要。
图像处理
为了能够基于灰度属性进行首次比较,通常将彩色照片转换为黑白照片并裁剪图像,以保留椭圆形面部图像。识别场景中的面孔是第一步。一旦识别出面部,就需要对其进行定位,并且可能需要使用归一化方法将实时面部样本的测量值与模板的测量值对齐。
鲜明的特色位置
所有面部扫描技术都旨在通过匹配可观察到的面部特征来复制人们识别彼此的方式。
面部扫描系统中最常用的特色位置:
颧骨周围的区域
嘴巴的两侧
鼻子的形状
主要特征的相对位置
因为它们最不可能随着时间的推移发生很大变化。面部扫描系统识别特征的能力受到行为变化的影响,例如改变发型、化妆或是否戴眼镜. 使用面部扫描的系统正在变得能够克服这些挑战。
模板创建
通常,注册模板由各种经过处理的面部照片制成。这些模板的大小范围可能从小于 100 字节(由某些供应商生产)到超过 3K 的模板不等。3K 模板是迄今为止最大的生理生物识别技术。行为生物识别通常与更大的模板相关联。
模板匹配
匹配模板和注册模板是对比的。为了让在面部扫描系统中尝试 1:1 验证的用户在 1 到 2 秒内进行 10 到 20 次匹配尝试,系统会收集一系列照片并对注册进行评分。广泛的面部扫描识别搜索结果通常包括许多可能的匹配项,因为面部扫描在从大数据库中识别单个人时不如手指扫描或虹膜扫描成功。
集成
对于大多数客户来说, fio.js 的集成简单而有效。
步骤01
将 fio.js 导入你的网站
通过将以下代码片段添加到你的body 标签来链接 FaceIO 的 CDN 资源
<div id= "faceio-modal" ></div>
<script src= "https://cdn.faceio.net/fio.js" ></script>
步骤02
实例化一个新的 FACEIO 对象
使用以下代码段为你的网站实例化一个新的人脸对象,并将参数“app-public-id”替换为你在 FACEIO 控制台中找到的公共 ID 。
/* Instantiate fio.js with your application Public ID */
const faceio = new faceIO(“app-public-id”);
步骤03
调用 FACEIO 小部件
你可以使用 enroll() 方法在你的网站上注册不熟悉的用户,而 authenticate() 方法可用于通过面部识别对现有用户进行身份验证。
// Instantiate fio.js with your application’s Public ID
const faceio = new faceIO(“app-public-id”);
function enrollNewUser(){
// call to faceio.enroll() here will automatically trigger the on-boarding process
}
function authenticateUser(){
// call to faceio.authenticate() here will automatically trigger the facial authentication process
}
function handleError(errCode){
// Handle error here
}
现在从客户端 JavaScript实现 enroll():https://faceio.net/integration-guide#fiojs-instantiate
// Instantiate a new faceIO object with your application’s Public ID
const faceio = new faceIO(“app-public-id”);
function enrollNewUser(){
faceio.enroll({
“locale”: “auto”, // Default user locale
“payload”: {
/* The payload we want to associate with this particular user which is forwarded back to us upon future authentication of this user.*/
“whoami”: 123456, // Dummy ID linked to this particular user
“email”: “john.doe@example.com”
}
}).then(userInfo => {
// User Successfully Enrolled!
alert(
`User Successfully Enrolled! Details:
Unique Facial ID: ${userInfo.facialId}
Enrollment Date: ${userInfo.timestamp}
Gender: ${userInfo.details.gender}
Age Approximation: ${userInfo.details.age}`
);
console.log(userInfo);
// handle success, save the facial ID (userInfo.facialId), redirect to the dashboard…
}).catch(errCode => {
// Something went wrong during enrollment, log the failure
handleError(errCode);
})
}
示例应用
在本节中,我们将以一个应用系统为例,了解人脸识别系统的基本步骤。
你需要转到 FACEIO 控制台并创建一个帐户。成功登录你的帐户后,选择如图 # 1 所示的NEW FACEIO APPLICATION 。
通过 FACIO 应用程序向导提供所需信息。尽管如此,如果我们不希望用户在成功识别后输入密码,我们可以取消选中此选项。
但是,也可以根据用户的可行性提供不同的选项,如图#2 所示。
获取你的公共 ID,如图 # 3 所示。但是,这是申请系统中最重要的步骤之一。
立即获取与 GitHub Gist 集成的 FACEIO 集成样板:https://gist.github.com/symisc/34203d2811a39f2a871373abc6dd1ce9
下一步是将样板代码粘贴到你的 HTML 文档中,并将这部分替换为你的公共 ID,最后,运行 HTML 文件以获得所需的结果。
在开始之前,请务必确保相机镜头干净,你不在黑暗的房间里,你的脸没有被遮挡且光线充足。
结论
我们可以得出结论,FaceIO 是一种跨浏览器的身份验证解决方案,使用面部识别来验证用户的身份。它可以通过一小段 JavaScript 代码集成到任何网站中。我们观察到传统方式的转变,因为日常运营越来越多地以电子方式管理,而不是用纸笔或亲自管理。
由于电子交易的发展,对用户识别和认证解决方案的需求显着增加。这些快速、精确的解决方案解决了 FACEIO 的挑战,FACEIO 是最有效和高效的身份验证系统之一。
此外,在本文中,我们还构建了面部识别系统,以使用 FACEIO 提高安全性和隐私性。使用更传统的方法时,对用户进行身份验证非常困难且耗时。FaceIO 可用于创建一个既非常方便又非常安全的身份验证程序。FACEIO 使用前置摄像头或普通网络摄像头进行身份验证。可以在不使用任何额外传感器(例如红外线发射器)的情况下执行面部识别。
☆ END ☆
如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 woshicver」,每日朋友圈更新一篇高质量博文。
↓扫描二维码添加小编↓