这是什么?

这是我将基于网络摄像头的手势识别技术和Hakim El Hattab开发reveal.js融合到一起的研究成果。
我花了很长时间开发和优化调整这个手势识别算法。即使如此,这个算法仍然只有大概80%的准确性。但相信它已经足够让你领略到这种技术的潜力了:
在空中挥一挥手将会切换幻灯片。

两个手上下挥动将会切换到幻灯片的概述页。

后面的幻灯片有提示技巧和常见问题(你也可以使用键盘来控制,或使用reveal.js里内置的控制操作))

使用技巧

(常见问题在下一个幻灯片页)
  • 手势识别算法通过计算你的动作的位置和幅度,当检测到动作的幅度超过一个阀值时,幻灯片将会做出相应的变化。
  • 注意让你的身体保持静止。
  • 你的手最好距离摄像头60-90厘米远。
  • 做手势时手掌张开,手心冲着摄像头。

常见问题

  • 你需要一个摄像头。没有摄像头是徒劳的。
  • 你需要使用最新的谷歌浏览器。
  • 谷歌浏览器会提示你请求访问摄像头。点击允许。
  • 如果没有出现提示,刷新网页。
  • 如果刷新还不好用,在地址栏输入chrome://flags,开启所有关于WebRTC的选项。重启浏览器。
  • 如果还不好用,那我也不知为什么了。你只能在http://youtu.be/bXF68hNPuNo这个视频上看看别人是怎么玩的了。
  • REVEAL.JS是什么?

    一个很简单的框架,
    用来开发漂亮的HTML幻灯片
    -作者Hakim El Hattab

    (下面是详细介绍)

    REVEAL.JS是一个幻灯片开发工具

    它很像Prezi或微软的Powerpoint,但却是用HTML5做成的。


    因为用了HTML5,才会有Reveal的速度,外观,和

    很酷的3D动画


    胜过Prezi! (Prezi使用的是Flash)

    不同的效果。

    除了往左,往右翻页外,
    你还可以往

    下翻。

    如果你按Esc键,还可以看到一个总览页。

    什么是WebRTC?

    它是一个从页面上获取你的摄像头和麦克风数据的开发标准。

    只要提供一个视频输入设备,你就可以通过JavaScript来展示、修改、提取它捕获的信息。

    为什么需要使用谷歌浏览器?往下看你将会明白。

    谷歌浏览器对Javascript支持的很好

    谷歌浏览器使用了极速的
    V8 Javascript 引擎。

    不是一般的快。我在多个浏览器上运行三连游戏算法(Tic-tac-toe),下面是V8引擎的如何胜出的:

    1. 谷歌浏览器:199 ms
    2. 火狐浏览器:241 ms
    3. Opera浏览器:439 ms
    4. IE: >16000 ms

    我的开发过程

    使用Reveal.js,你可以做出漂亮的幻灯片和精彩的3D动画...
    使用WebRTC,你可以获得用户通过摄像头输入的信息...

    利用一些业余时间,我编写了信号分析的JS(得到正确的算法让我花费了不少时间)。

    我相信这将是未来的趋势。

    什么是Kinect?

    Kinect使用的是3D传感器,大概要100美元。

    这里使用的是网络摄像头,现在的笔记本上都有内置。便宜的仅20美元。

    当然,使用网络摄像头还是有些限制的。

    网络摄像头

    网络摄像头无法检测到景深。

    因为网络摄像头捕获的只是一个照片图像,没有更多的信息,相比起3D扫描器,功能要弱很多。

    信息的缺乏迫使开发人员必须跳出固有的思维模式,寻求通过算法来从这些没有景深的数据中分析出发生了什么。

    狂想曲

    不用触摸电脑也能控制它!

    电脑能区分不同的手势!

    有了这些,谁还需要触摸屏?

    更多信息

    Fork me on Github! https://github.com/willy-vvu/reveal.js

    My site is at http://willy.herokuapp.com

    返回首页