face-api.js:一个在浏览器中进行人脸识别的 JavaScript 接口

本文介绍了基于 tensorflow.js 的 face-api.js,一个用于浏览器中的人脸检测、识别和特征点检测的 JavaScript API。通过简单的代码示例,展示了如何在浏览器环境中实现实时人脸识别,并对比了 face-api.js 和 face-recognition.js 的区别。
摘要由CSDN通过智能技术生成

本文将为大家介绍一个建立在「tensorflow.js」内核上的 javascript API——「face-api.js」,它实现了三种卷积神经网络架构,用于完成人脸检测、识别和特征点检测任务,可以在浏览器中进行人脸识别。


1531704979378.png

号外!号外!现在人们终于可以在浏览器中进行人脸识别了!本文将为大家介绍「face-api.js」,这是一个建立在「tensorflow.js」内核上的 javascript 模块,它实现了三种卷积神经网络(CNN)架构,用于完成人脸检测、识别和特征点检测任务。

  • face-api.js:https://github.com/justadudewhohacks/face-api.js

  • TensorFlow.js:https://github.com/tensorflow/tfjs-core

像往常一样,我们将查看一个简单的代码示例,这将使你能立即通过短短几行代码中的程序包开始了解这个 API。让我们开始吧!

我们已经有了「face-recognition.js」,现在又来了另一个同样的程序包?

如果你阅读过本文作者另一篇关于「node.js」环境下进行人脸识别的文章《Node.js + face-recognition.js : Simple and Robust Face Recognition using Deep Learning》(Node.js + face-recognition.js:通过深度学习实现简单而鲁棒的人脸识别)(https://medium.com/@muehler.v/node-js-face-recognition-js-simple-and-robust-face-recognition-using-deep-learning-ea5ba8e852),你就会知道他在之前组装过一个类似的程序包,例如「face-recgnition.js」,从而为「node.js」引入了人脸识别功能。

起初,作者并没有预见到 JavaScript 社区对与人脸识别程序包的需求程度如此之高。对许多人而言,「face-recognition.js」似乎是一个不错的、能够免费试用的开源选项,它可以替代由微软或亚马逊等公司提供的付费人脸识别服务。但是作者曾多次被问道:是否有可能在浏览器中运行完整的人脸识别的工作流水线?

多亏了「tensorflow.js」,这种设想最终变为了现实!作者设法使用「tf.js

」内核实现了部分类似的工具,它们能得到和「face-recognition.js」几乎相同的结果,但是作者是在浏览器中完成的这项工作!而且最棒的是,这套工具不需要建立任何的外部依赖,使用它非常方便。并且这套工具还能通过 GPU 进行加速,相关操作可以使用 WebGL 运行。

这足以让我相信,JavaScript 社区需要这样的一个为浏览器环境而编写的程序包!可以设想一下你能通过它构建何种应用程序。

如何利用深度学习解决人脸识别问题

如果想要尽快开始实战部分,那么你可以跳过这一章,直接跳到代码分析部分去。但是为了更好地理解「face-api.js」中为了实现人脸识别所使用的方法,我强烈建议你顺着这个章节阅读下去,因为我常常被人们问到这个问题。

为简单起见,我们实际想要实现的目标是在给定一张人脸的图像时,识别出图像中的人。为了实现这个目标,我们需要为每一个我们想要识别的人提供一张(或更多)他们的人脸图像,并且给这些图像打上人脸主人姓名的标签作为参考数据。现在,我们将输入图像和参考数据进行对比,找到与输入图像最相似的参考图像。如果有两张图像都与输入足够相似,那么我们输出人名,否则输出「unknown」(未知)。

听起来确实是个好主意!然而,这个方案仍然存在两个问题。首先,如果我们有一张显示了多人的图像,并且我们需要识别出其中所有的人,将会怎样呢&#x

  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
worker.js 是一个 JavaScript 文件,用于在浏览器运行后台任务。而 face-api.js 则是一个 JavaScript 库,用于进行人脸别和人脸检测等相关操作。 在 worker.js 使用 face-api.js,可以通过下面的步骤进行: 1. 首先,需要将 face-api.js 导入到 worker.js 。可以通过 `<script>` 标签或动态加载脚本的方法进行导入。例如,可以使用 importScripts() 函数将 face-api.js 导入到 worker.js。 2. 导入完成后,可以使用 face-api.js 提供的各种方法和函数进行人脸别和人脸检测等操作。例如,可以使用 faceapi.detectAllFaces() 函数来检测图片人脸,并返回相应的人脸信息。 3. 在使用 face-api.js 进行人脸别和人脸检测时,需要提供相应的参数和输入数据。例如,如果要检测一张图片人脸,需要将该图片传递给 faceapi.detectAllFaces() 函数进行处理。 4. 在人脸检测或人脸别完成后,可以使用 face-api.js 提供的其他方法和函数对人脸进行进一步的处理。例如,可以使用 faceapi.drawLandmarks() 函数在检测到的人脸上绘制关键点和轮廓。 总结起来,worker.js 使用 face-api.js 主要涉及到导入 face-api.js、调用 face-api.js 提供的方法和函数、传递相应的参数和输入数据以及对人脸结果进行进一步处理。通过这些步骤,我们可以在 worker.js 使用 face-api.js 进行人脸别和人脸检测等相关操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值