» 您尚未登录:请 登录 | 注册 | 标签 | 帮助 | 小黑屋 |


发新话题
打印

[业评] 潜水博士忍不住发科普贴,关键字:计算几何学,体感技术,natal,深度摄像机

这两天看了大家不少讨论,没有一个人真正能说得清楚透彻的,作为一个身在美国的phd,
我现在就来给大家科普一下三家公司的体感技术原理:

老任的:这个大家想必都比较清楚了,电视机上的sensor bar实际上是两个固定距离的红外光源,手柄上则是一个红外camera,原理不复杂,根据两个红外光源在camera上的成像点坐标,可以计算出手柄相对于屏幕的方位。

反过来,老任的东西也可以这么玩:电视机顶上放两个camera(手柄),手上拿一个红外led光源。于是根据两个camera的位置,和光源在两个camera上的成像坐标,也可以计算出光源的三维坐标,就好比人用两只眼睛可以知道物体的远近一样。在计算几何学里,这是一个最最最最普通的multi-view geometry问题,属于本科生毕业设计水平,或者研究生课堂项目的水平。本人就在去年用两只wii手柄和OpenCV实现过,还挺准的。

sony:我不想批评sony,不过这次sony展出的震动棒其实就是我上面说的原理,用两台camera来对手柄上的那个光球作三维定位,再配合手柄内部的加速度计。当然了,我那个课堂项目是用来混学分的,鲁棒性可用性自然比sony的差了不少,还需要不少改进。但定位原理是一样的,每本computational geometry的教材里都会当作基础知识来讲。不过sony把本科毕设级别的东西拿到E3上来show,未免要让业内人士给看轻了。

微软:这次微软的东西确实比较让外行人震撼,大家可能搞不清楚这到底是怎么做的吧。怎么对全场景的所有东西,而不是仅仅几个光源点,进行三维定位???
我先稍微列举一下外行们直觉上容易想到的办法:

1. 只用一个camera,但依靠神奇的模式识别技术,把图里的东西都认出来,然后比对它们实际的大小和在图像中的大小,就能知道它的大概距离了。
评论:这是最最外行的想法。没错,人闭上一只眼睛以后,还能靠上述原理估算出物体的距离。但是,计算机哪有人那么多知识啊,它怎么知道那东西原来该是多大呢?何况这对模式识别技术要求也太高了。最后,靠这种方法得不到精确的结果。

2. 用两个camera,和multi-view geometry的技术。这个做法是很多computer vision applications的基础,尤其是在augument reality方面。做法变化非常多,我只说个简单的:
首先,对每个camera返回的图像,依靠模式识别把图像里的关键点,关键线找出来,比如桌子的边,人的眼睛等等;然后把两幅图像上的关键点、线进行配对;配对以后就能计算它们三维空间的座标了。依靠这些关键点、线的三维信息,就可以得到整个场景的三维信息。

3. 以上说的两个办法都太依赖模式识别了,而这玩意又往往靠不住。所以实际最常用的,大家在好莱坞大片花絮里看到的,就是用人工的关键点替代模式识别。比如在人身上布满容易识别的小球,周围布上一堆camera。这个大家最容易理解,我就不说了。

那微软的natal用的是什么?以上三个皆不是,natal甚至跟multi-view geometry一点关系都没有。natal使用的是一种叫做“深度摄像机”的特殊camera。英文叫做Time-of-flight camera。国内如果没有被封的话可以看这里:http://en.wikipedia.org/wiki/Time-of-flight_camera

这到底是个什么东西呢?简单讲,这个camera在返给你每一帧图像的同时,也告诉你每个像素点离camera的距离,也就是一幅带有深度信息的图像。这玩意儿简直就像一个雷达一样,直接就把multi-view geometry辛辛苦苦要算的三维信息测出来了。你可以想象一下,这个camera给你的就不是一个平面图像,而是一个三维曲面。微软的软件,就可以直接在这基础上识别目标,和目标的运动。

最后再说两句这个camera。它的原理说起来很简单,初中物理即可理解,但要做出来可不简单。它里面有个光源,以100Hz的频率发光,光线照射到目标,然后反射回来,被sensor探测到。于是,到目标的距离就是(光线来回的时间差/2)/光速。例如,对于一个2.5米以外的目标,这个时间差是16纳秒。至于这么短的时间差怎么能被精确测量到,请自己google吧。

最最后,本人不是任何公司的fans。但我还是要对微软研究院里的天才们,为他们长期以来在computer vision上的杰出贡献,脱帽致敬。

[ 本帖最后由 hahalee 于 2009-6-5 09:48 编辑 ]


本帖最近评分记录

TOP

顶LZ及微软研究院的哥们



TOP

原来如此, 受教, 但视频上好像是有2个深度摄像头啊。


TOP

引用:
反过来,老任的东西也可以这么玩:电视机顶上放两个camera(手柄),手上拿一个红外led光源。于是根据两个camera的位置,和光源在两个camera上的成像坐标,也可以计算出光源的三维坐标,就好比人用两只眼睛可以知道物体的远近一样。在计算几何学里,这是一个最最最最普通的multi-view geometry问题,属于本科生毕业设计水平,或者研究生课堂项目的水平。本人就在去年用两只wii手柄和OpenCV实现过,还挺准的。
这个我也看过,webcam镜头前贴相片底片,过滤可见光源,只捕捉到红外射线,之前考虑用这个来模拟鼠标,在客厅使用很方便,遥控板对着电视机摄像头挥舞就行了,HTPC应用价值很大
引用:
最后再说两句这个camera。它的原理说起来很简单,初中物理即可理解,但要做出来可不简单。它里面有个光源,以100Hz的频率发光,光线照射到目标,然后反射回来,被sensor探测到。于是,到目标的距离就是(光线来回的时间差/2)/光速。例如,对于一个2.5米以外的目标,这个时间差是16纳秒。至于这么短的时间差怎么能被精确测量到,请自己google吧。
和我的理解一样,昨天解释这个用的发射激光线测量月球距离的例子,初中课本就有,可能大家都忘了

TOP

顶楼主科普贴,感觉有这技术,汽车自动驾驶都可能了,就像霹雳游侠

TOP

引用:
原帖由 superjay 于 2009-6-5 09:54 发表


这个我也看过,webcam镜头前贴相片底片,过滤可见光源,只捕捉到红外射线,之前考虑用这个来模拟鼠标,在客厅使用很方便,遥控板对着电视机摄像头挥舞就行了,HTPC应用价值很大



和我的理解一样,昨天解释 ...
请问你昨天在那个帖子里解释了这个技术如同测量月球距离一样?我去学习学习。

TOP

好帖子,真正的深入浅出,受教了

TOP

顶技术贴 萎软很强大

TOP

引用:
原帖由 ffcactus 于 2009-6-5 09:53 发表
原来如此, 受教, 但视频上好像是有2个深度摄像头啊。
另一個是RGB攝像头

TOP

不过wiki上说,这技术对多个物体的运动识别是短板,怪不得微软在展会上说多人应用还需要进一步开发

TOP

识别距离是2.5m的时间差是16.67纳秒,这个就算能接受,那么识别2.45m和2.5m的移动,就是0.333纳米,这个精度已经能达到了么?

TOP

引用:
原帖由 ffcactus 于 2009-6-5 10:01 发表

请问你昨天在那个帖子里解释了这个技术如同测量月球距离一样?我去学习学习。
自取其辱

http://club.tgfc.com/thread-6082817-6-1.html

80楼,第三排

TOP

[posted by wap]

再yy一下PN技术进化应用在军事和民用领域,无人驾驶,机器人。星球大战的场景很快就来到现实世界了

TOP

引用:
原帖由 Firesun 于 2009-6-5 10:09 发表
识别距离是2.5m的时间差是16.67纳秒,这个就算能接受,那么识别2.45m和2.5m的移动,就是0.333纳米,这个精度已经能达到了么?
哈哈,说实话我也没用过这种摄像头。不过你说得对,用这种技术识别细小的运动可能是个问题。微软的那个摄像头,精度误差到底是多大,只有他们自己知道。

TOP

进来观摩

TOP

发新话题
     
官方公众号及微博