Face-api.js:利用TensorFlow.js的JavaScript人脸识别

Face-api.js是一个JavaScript API,是基于tensorflow.js核心API的人脸检测和人脸识别的浏览器实现。它实现了一系列的卷积神经网络(CNN),针对网络和移动设备进行了优化。

在InfoQ的访谈中,face-api和 face-recognition.js的创造者文森特•穆勒解释了他们的动机:

其实,我有另一个类库face-recognition.js,它能够检测脸部和用node.js进行人脸识别。在某个时候,我发现了tensorflow.js,并对浏览器中的机器学习产生了浓厚的兴趣。

因此,我很好奇如果可以移植现有的人脸检测和人脸识别模型到tensorflow.js,它能否可以依然运转如常。

这一切怎么开始呢。

\"image\"

(图片来自  github.com

对于人脸检测来说,face-api.js实现了模型SSD Mobilenet V1,这是个微小的人脸检测器,是个实验性的暂态混沌神经网络(MTCNN)。

SSD(单发多盒探测器)MobileNet V1是一个基于MobileNet V1的模型,旨在获得高精度检测边界框。这个模型主要计算每张脸在图像中的位置,并返回边界框以及每个脸的检测概率。

这个微小的人脸检测器是个实时人脸检测的模型,相比于SSD Mobilenet V1,它更快,更小,消耗的资源更少。这个模型已经在14 千张标记有边界框的图像上做过训练了。据穆勒说,只有有限资源的客户使用这个模型应该不会有问题的。

MTCNN(多任务级联卷积神经网络)是一种实验模型,以另一种人脸检测器SSD MobileNet V1和Tiny Yolo V2的面貌出现,从而提供了更多配置的可能性。

对于68点人脸标记检测,有两个轻量级和快速模式,face_landmark_68_model只需要350 kb, 而face_landmark_68_tiny_model则只要求80 kb。两种模型都采用了深度可分离卷积和紧密连接块的思想。该模型已经在大约35千张标有68脸部标记点的脸部图片集上训练过了。

对于人脸识别,是基于ResNet-34类架构的一个模型,提供以face.js从任何脸图像对脸部描述的计算。这个模型不仅限于用于训练的脸部集,这意味着开发人员可以用它对任何人做人脸识别。它可以通过比较脸部描述找出两个任意的相似面孔。

为从face-api.js开始着手,从dist/face-api.js或dist/face-api.min.js下载最新的构建,并引入这个脚本:

\u0026lt;script src=\u0026quot;face-api.js\u0026quot;\u0026gt;\u0026lt;/script\u0026gt;

为加载一个模型,必须提供模型文件作为资产,然后,假设模型驻留在/models下:

await faceapi.loadSsdMobilenetv1Model('/models')// accordingly for the other models:// await faceapi.loadTinyFaceDetectorModel('/models')// await faceapi.loadMtcnnModel('/models')// await faceapi.loadFaceLandmarkModel('/models')// await faceapi.loadFaceLandmarkTinyModel('/models')// await faceapi.loadFaceRecognitionModel('/models')

对于想在本地运行示例的开发人员来说,执行下面的步骤并浏览 http://localhost:3000/

git clone https://github.com/justadudewhohacks/face-api.js.git cd face-api.js/examplesnpm inpm start

关于face-api.js的更多信息可以在GitHub库中找到,里面还有人脸识别教程人脸跟踪教程

查看英文原文:Face-api.js: JS Face Recognition Leveraging TensorFlow.js

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值