用户身份验证如何与 FACEIO 一起使用?

介绍

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

4da2cb2b25ec3618f2a9659a29066d14.jpeg

当需要访问建筑物、银行账户和计算机系统的密码时,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 使用前置摄像头或标准网络摄像头进行身份验证。对于面部识别,它不需要红外发射器等任何其他传感器。无论使用何种框架,该网站都能完美运行。

面部识别中有两种不同类型的比较:

  1. 验证:

    一般用于身份核实,就是验证“你是不是某人?”的问题。

  2. 识别:

    该方法在将给定的人与数据库中的每个其他人进行比较后对匹配项进行排名,就是验证“我是谁?”的问题。

所有身份或身份验证方法都使用以下四个阶段来发挥作用:

  • 捕获:

    系统在注册和识别或验证过程中记录身体或行为样本。

  • 提取:

    从样本中提取特殊数据,制作模板。

  • 比较:

    然后将新样本放在模板上。

  • 匹配/不匹配:

    系统确定从新样本中提取的特征是匹配还是不匹配。

了解有关人脸验证和识别的更多信息: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 。

f1154c8a79e73d524e986b4c288ad013.png

通过 FACIO 应用程序向导提供所需信息。尽管如此,如果我们不希望用户在成功识别后输入密码,我们可以取消选中此选项。

但是,也可以根据用户的可行性提供不同的选项,如图#2 所示。

4332d2f1a058e6d019fbc8e1ba7a9d2c.png

获取你的公共 ID,如图 # 3 所示。但是,这是申请系统中最重要的步骤之一。

4af80a06a2461e2ccb94f74e3a902a5d.png

立即获取与 GitHub Gist 集成的 FACEIO 集成样板:https://gist.github.com/symisc/34203d2811a39f2a871373abc6dd1ce9

下一步是将样板代码粘贴到你的 HTML 文档中,并将这部分替换为你的公共 ID,最后,运行 HTML 文件以获得所需的结果。

57fefd1e30177d60e4fa7a4c7694e8a6.png

在开始之前,请务必确保相机镜头干净,你不在黑暗的房间里,你的脸没有被遮挡且光线充足。

5600a83aa4676ccdd833b1ffd7c952e4.png

结论

我们可以得出结论,FaceIO 是一种跨浏览器的身份验证解决方案,使用面部识别来验证用户的身份。它可以通过一小段 JavaScript 代码集成到任何网站中。我们观察到传统方式的转变,因为日常运营越来越多地以电子方式管理,而不是用纸笔或亲自管理。

由于电子交易的发展,对用户识别和认证解决方案的需求显着增加。这些快速、精确的解决方案解决了 FACEIO 的挑战,FACEIO 是最有效和高效的身份验证系统之一。

此外,在本文中,我们还构建了面部识别系统,以使用 FACEIO 提高安全性和隐私性。使用更传统的方法时,对用户进行身份验证非常困难且耗时。FaceIO 可用于创建一个既非常方便又非常安全的身份验证程序。FACEIO 使用前置摄像头或普通网络摄像头进行身份验证。可以在不使用任何额外传感器(例如红外线发射器)的情况下执行面部识别。

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 woshicver」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓

07770e09d0c5ec1a88f13a3b054d3e11.jpeg

深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
深度学习是机器学习的一个子领域,它基于人工神经网络的研究,特别是利用多层次的神经网络来进行学习和模式识别。深度学习模型能够学习数据的高层次特征,这些特征对于图像和语音识别、自然语言处理、医学图像分析等应用至关重要。以下是深度学习的一些关键概念和组成部分: 1. **神经网络(Neural Networks)**:深度学习的基础是人工神经网络,它是由多个层组成的网络结构,包括输入层、隐藏层和输出层。每个层由多个神经元组成,神经元之间通过权重连接。 2. **前馈神经网络(Feedforward Neural Networks)**:这是最常见的神经网络类型,信息从输入层流向隐藏层,最终到达输出层。 3. **卷积神经网络(Convolutional Neural Networks, CNNs)**:这种网络特别适合处理具有网格结构的数据,如图像。它们使用卷积层来提取图像的特征。 4. **循环神经网络(Recurrent Neural Networks, RNNs)**:这种网络能够处理序列数据,如时间序列或自然语言,因为它们具有记忆功能,能够捕捉数据中的时间依赖性。 5. **长短期记忆网络(Long Short-Term Memory, LSTM)**:LSTM 是一种特殊的 RNN,它能够学习长期依赖关系,非常适合复杂的序列预测任务。 6. **生成对抗网络(Generative Adversarial Networks, GANs)**:由两个网络组成,一个生成器和一个判别器,它们相互竞争,生成器生成数据,判别器评估数据的真实性。 7. **深度学习框架**:如 TensorFlow、Keras、PyTorch 等,这些框架提供了构建、训练和部署深度学习模型的工具和库。 8. **激活函数(Activation Functions)**:如 ReLU、Sigmoid、Tanh 等,它们在神经网络中用于添加非线性,使得网络能够学习复杂的函数。 9. **损失函数(Loss Functions)**:用于评估模型的预测与真实值之间的差异,常见的损失函数包括均方误差(MSE)、交叉熵(Cross-Entropy)等。 10. **优化算法(Optimization Algorithms)**:如梯度下降(Gradient Descent)、随机梯度下降(SGD)、Adam 等,用于更新网络权重,以最小化损失函数。 11. **正则化(Regularization)**:技术如 Dropout、L1/L2 正则化等,用于防止模型过拟合。 12. **迁移学习(Transfer Learning)**:利用在一个任务上训练好的模型来提高另一个相关任务的性能。 深度学习在许多领域都取得了显著的成就,但它也面临着一些挑战,如对大量数据的依赖、模型的解释性差、计算资源消耗大等。研究人员正在不断探索新的方法来解决这些问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值