探索面部识别与WebRTC

做者:Andy,Simpleweb(原文连接html

翻译:刘通html5

原标题:Exploring Facial Recognition with WebRTCgit

本文转载自WebRTC中文网github

近几年来,面部识别技术一直在智能手机创新的周围徘徊。随着苹果公司在 iPhone X 上推出 Face ID,人们开始更多的关注面部识别技术。web

咱们团队向来喜欢实验和探索将来技术的潜力。因此咱们与 Cristiano 一同利用 WebRTC 作一些关于面部识别的研究和探索。数据库

在这篇文章中,咱们会分享 Cristiano 的一些成果,他学到的东西,以及他对这种技术挑战和局限性的见解。canvas

什么是WebRTC?api

WebRTC是一个开源的网络框架,支持浏览器中的实时通讯。它包括Web上高质量通讯的基础构建模块,如用于语音和视频聊天应用程序的网络,音频和视频组件。浏览器

用Cristiano的话来讲就是“一种能够经过浏览器调用麦克风,音频和摄像头的方法”。服务器

Cristiano使用WebRTC、Canvas微软Cognitive Services以及微软的Emotion API来建立了一个原型工具,该工具能够经过网络摄像头在浏览器中经过面部表情来检测情绪。

探索

为了帮助检测面部表情是快乐仍是悲伤,Cristiano 建立了一个网格,经过网络摄像头映射不一样的脸部点。当用户移动他们面部时,点和网格也随之移动。而后将这些信息发送到Microsoft的Emotion数据库,而后该数据库就能检测某人的表情是什么,悲伤的仍是开心的。

Cristiano尝试了一些不一样的库来在脸上绘制出关键点。他最终选择了Beyond Reality Face(BRFv4),由于它在客户端运行,因此不依赖于服务器,而且能够在他的浏览器中轻松地工做。BRFv4会检测你的面部,而后映射关键点和网格,而且在你的脸上反馈上不少小点。BRFv4能够检测人脸上的68个关键点。很酷对吧。

你能够点击下列连接来查看不一样的库。

虽然BRFv4可以胜任大部分困难的工做,可是Cristiano想要更进一步,想要定制网格和关键点来更好的控制它。

为此,Cristiano使用了Canvas,一个能够容许他定制选择的网格和关键点的一种HTML5元素。这样他就可以轻松地改变颜色,移除线条,甚至用其余几何形状来替代小点。Canvas给了Cristiano更多的选择。

检测面部表情的最后一步是利用微软的Emotion API。这是一个超级大的数据库,里面充满了“情绪数据”,一旦视频帧被发送给它,它就会给出响应。Cristiano可以将每一个视频帧做为“Base64”图像发送给API,并返回什么面部表情。Cristiano也研究了Affectiva的API,他认为它比微软的API更好,由于它能够提供更详细的信息。可是因为浏览器支持缘由而受到了限制,不适合在这个项目里使用。

挑战和限制

  • Cristiano也遇到了一些主要围绕设备和浏览器支持问题的挑战和限制。根据Cristiano所说,主要的限制是:

  • 跨浏览器支持:并非全部的浏览器版本都支持WebRTC,好比低于11.0版本的Safari就不支持。

  • 设备支持:某些设备在支持WebRTC时不时彻底可靠。例如iPhone 6有时就会卡住或者显示空白的背景。

  • API的数据负载:每次向Microsoft的API发送视频帧都会传送不少数据,因此你必须限制发送的帧数。

  • 须要HTTPS链接:若是你想要一个能够共享的原型,那么你就须要设置一个https链接,单数若是是在本地主机行,那么大多数的浏览器都会容许进行共享。

相关文章
相关标签/搜索