headtrackr 是一个用于实时脸部追踪和头部追踪的 JS 库。通过网络摄像头和 webRTC/getUserMedia 标准,在相关计算机屏幕上追踪用户头部的位置。
如果你要看示例,可观看这个视频。或者拿有摄像头、浏览器支持 webRTC/getUserMedia 的笔记本,试试下面的例子。(你所使用的浏览器是否支持 webRTC/getUserMedia,请看这个网页。)
示例
使用方法
下载 headtrackr.js 库,在代码载入。
1 |
<script src="js/headtrackr.js"></script> |
下面代码,video 元素将用于 mediastream,canvas元素用于复制videoframes。
1 2 3 4 5 6 7 8 9 10 |
<canvas id="inputCanvas" width="320" height="240" style="display:none"></canvas> <video id="inputVideo" autoplay loop></video> <script type="text/javascript"> var videoInput = document.getElementById('inputVideo'); var canvasInput = document.getElementById('inputCanvas'); var htracker = new headtrackr.Tracker(); htracker.init(videoInput, canvasInput); htracker.start(); </script> |
当头部追踪启动后,会生成两个事件 headtrackingEvent 和 facetrackingEvent。headtrackingEvent 事件有3个属性: x、 y、 z,表示用户头部在屏幕中心的估测位置,以厘米为单位。facetrackingEvent 事件有5个属性: x、 y、 width、height、angle,表示用户脸部的估测位置,和在视频中的大小。
你也可以创建一个事件监听器来处理这些事件,或者如果你在用three.js,可以尝试用其中的 pre-packaged controllers 做伪3D效果。
如果想知道更多使用方法,请查看以上事例的源码。Reference – Overview
许可
Headtrackr.js 遵循 MIT License,其中来自 Liu Liu 和 Benjamin Jung 贡献的代码分别遵循 BSD-3 License 和 MIT License 。