使用 Face-api.js 在 Web 上进行人脸检测( 三 )


for (const eye of [features.eyeLeft, features.eyeRight]) {const eyeBox = getBoxFromPoints(eye);const fontSize = 6 * eyeBox.height;context.font = `${fontSize}px/${fontSize}px serif`;context.textAlign = 'center';context.textBaseline = 'bottom';context.fillStyle = '#000';context.fillText('', eyeBox.center.x, eyeBox.center.y + 0.6 * fontSize);}请注意,我使用了一些魔法数字来调整字体大小和确切的文本位置 。因为表情符号是 unicode 并且 Web 上的排版很奇怪(至少对我来说),所以我只是调整数字,直到它们看起来正确为止 。更强大的替代方法是使用图像作为叠加层 。

使用 Face-api.js 在 Web 上进行人脸检测

文章插图
 

使用 Face-api.js 在 Web 上进行人脸检测

文章插图
 
总结Face-api.js是一个伟大的库,它使人脸检测和识别变得非常容易 。不需要熟悉机器学习和神经网络的知识 。我喜欢那些可以使用的工具,而这绝对是其中之一 。
根据我的经验,Web 上的人脸识别会影响性能 。我们必须在带宽和性能或准确性之间做出选择 。较小的模型肯定不太准确,并且会在我之前提到的一些因素中遗漏人脸,例如光线不足或面部被面具覆盖时 。
Microsoft Azure、google Cloud 和其他可能的企业都在云中提供人脸检测 。因为我们避免下载大模型,基于云的检测避免了繁重的页面加载,随着它的频繁改进往往更准确,并且由于优化的硬件甚至可能更快 。如果您需要高精度,您可能需要研究一个您满意的计划 。
我绝对推荐你在业余项目、实验中使用face-api.js,也许还可以用来做MVP 。




推荐阅读