深度相机Kinect 可以输出640 ×480 和320 ×240 两种分辨率的深度图像,同时也能输出红外图像或者RGB 图像( 两种图像无法同时获取) 。 Kinect 的规格说明提到,设备自带的RGB 摄像头也可以支持1280 ×1024 的图像输出, 至少维基百科是这样说的: ...the hardware is capable of resolutions up to 1280x1024 (at a lower frame rate) and other colour formats such as UYVY. The monochrome depth sensing video stream is in VGA resolution (640 × 480 pixels) with 11-bit depth, which provides 2,048 levels of sensitivity. The Kinect can also stream the view from its IR camera directly (i.e.: before it has been converting into a depth map) as 640x480 video, or 1280x1024 at a lower frame rate. 但是在OpenNI里简单地把 分辨率直接改成 nXRes=1280,nYRes=1024,nFPS=15 ,并调用下面的语句,却无法输出想要的结果。 XnMapOutputModeMyMapMode = { nXRes,nYRes,nFPS }; // 显示RGB 图像时设置输出分辨率 xn::ImageGeneratorG_RGB; G_RGB.SetMapOutputMode(MyMapMode ); 后来发现在程序里注释掉深度图像的获取和输出步骤,就可以显示了。也就是说,设备无法输出 1280 × 1024 的深度图,这样的设置会导致无法二者都无法获取。 下面例子是一个场景的深度图,分辨率为 640 × 480 ,并且用 G_Depth.GetAlternativeViewPointCap().SetViewPoint(G_RGB ); 把深度图 warp 到对应的 RGB 图像上 了。 图中的红点和数字表示该点的深度值,单位是毫米,0表示这个点没有深度数据。 下面图像显示的是对应的 640 × 480 的 RGB 图像 下面图像显示的是对应的 1280 × 1024 的 RGB 图像,可以看出图像的上下边比上图多几行内容,(博客在上传图像时改变了图像尺寸,所有图像都可以在这里下载 jpg.rar ): 切换到显示红外图像,重新编译程序,也可以输出 1280 × 1024 的红外图像。 // 在显示红外图像时对应的语句 xn::IRGeneratorG_Ir; G_Ir.SetMapOutputMode(MyMapMode ); 下面是这个场景的红外图像( 尺寸1280 ×1024) : 图像里的散乱分布的亮点,就是Kinect 用来恢复深度的结构光(Structure Light) ,这些光斑是由设备上的红外激光发射器发出的。这些古怪的pattern 用肉眼是看不到的,只能借助红外相机观察。利用红外结构光实时恢复深度,是Kinect 的技术核心,来自于一家叫Prime Sense 的以色列公司。但微软最近推出的Kinect2.0 抛弃了这种技术,取而代之的是Time Of Flight ,来自于他们前几年收购的另一家以色列公司。深度相机是基于摄影测量学中的三角测距法,根据亮点在图像中移动的位置就可以算出这点到相机的距离( 即深度) ,具体原理大家可以在网上自行搜索。 下面是分辨率切换到640 ×480 的输出,由于Kinect 输出的时候做了简单的隔点降采样,所以可以看到墙面上出现了红外激光pattern 的走样(Aliasing) 条纹,研究光学的人和摄影爱好者喜欢把它称为摩尔(Morie) 纹。为了解释这个现象,有的人还会搬出“奈奎斯特(Nyquist) ”的大名。
boycott (haha):刚刚看到了这个用来演示一种新的物体跟踪的算法的视频,它是Zdenek Kalal博士论文里的一部分。Zdenek Kalal是英国萨里大学的一个捷克学生。他演示的是他的神奇的精确定位系统,这个系统几乎可以跟踪镜头里的任何物体,只要你能看见它,并把它选中。它能做很多神情的事情。在这个视频中,他演示了通过摄像机拍摄他的手指、把他的手指选做目标。系统于是就能精确的跟踪他的手指的动作。更令人惊奇的是,这个系统能够通过分析物体的运动来完善跟踪算法。你能在很短的时间里教会它跟踪你的手指、面孔或在高速公路上狂颠的轿车。有了这套系统,我们几乎真的可以实现”Minority Report“那样的人机界面。就像微软Xbox的Kinect那样,而这个效果更好。 Kalal有12个视频来演示他的这套算法都能做什么。只要你有一个好的摄像头,把这个软件装到计算机上、平板电脑上或手机里,它就能精确的定位跟踪你的前额上的一个点、你的指尖、或你的眼睛。你把摄像头放到门外,它就能自动识别是你认识的人来了,或警告你这是个陌生人。人们不用通过手就能简单的操控计算机。这项技术应用前景广泛。 你可以从萨里大学的网站找到这个程序的代码,它是免费的。Kalal被授予了“Technology Everywhere”奖学金作为嘉奖。 http://info.ee.surrey.ac.uk/Personal/Z.Kalal/tld.html 非常精彩的视频演示:请点击下图 产品介绍Key Features ● Input: video stream from single monocular camera, bounding box defining the object ● Output: object location in the stream, object model ● Implementation: Matlab + C, single thread, no GPU ● No offline training stage ● Real-time performance on QVGA video stream ● Dependence on OpenCV library (single function) ● Ported to Windows, Mac OS X and Linux ● Illumination invariant features Free Version(免费源码可从Github下载) TLD can be downloaded for testing in a chosen application. We provide a precompiled demo (Windows) and a source code that is released under GPL version 3.0. In short, it means that any distributed project that includes or links any portion of TLD source code has to be released with the source code under the GPL version 3.0 license or later.Commercial Version A license has to be purchased for using TLD in a commercial project. The licencing is managed by the IP owner, the University of Surrey and the fee is subject to negotiation. Please contact the University of Surrey for further information.More Information ● High-level description of TLD ● Components of TLD ● Learning component of TLD ● Application of TLD tracker to faces ● Detailed description is in the following papers: ICCV'09 (w) , CVPR'10 , ICIP'10 , ICPR'10 ● Many technical questions (e.g. installation) are being discussed in the following discussion group . MITBBS网友评论 lalaphin (orpheus):MIT一直在研究这玩意儿。我早就说过了,微软做kinect最终目标并不是游戏业,而是作为将来windows应用的探路石。 kz80 (雨过天晴):不错, 这学生很能下工夫. kinect也是差不多原理.光线暗了肯定就不能用了。 zlike (最终幻想):我觉得他这个没解决最关键的问题:what to track?object tracking/recognition的一个难点是如何对凭空冒出来的一副图象中判断“哪些”发生了变化(因为所有像素都有变化),而不是对预先选好的一个小区域进行跟踪。如果他这个没有那个选取的步骤,而是直接能识别移动的“有效”物体,那就可以和kinnect媲美了。
转自: http://www.cvchina.info/2011/10/07/kinectfusion/#comment-2556 微软正在进行一个名为KinectFusion的项目。目标是利用一台围绕物体移动的kinect实时重建物体的三维模型。(是不是可以理解为Kinect版本的SLAM?)不同于的简单的三维点云的拼接,该项目的另外的吸引人的特性在于:如果对物体进行持续的扫描,三维重建精度可以由粗到细的逐渐提高。(类似superresolution?) 演示视频 (必看!!!)很给力。 (用这个东西做AR绝对给力啊) We present KinectFusion , a system that takes live depth data from a moving Kinect camera and in real-time creates high-quality, geometrically accurate, 3D models. Our system allows a user holding a Kinect camera to move quickly within any indoor space, and rapidly scan and create a fused 3D model of the whole room and its contents within seconds. Even small motions, caused for example by camera shake, lead to new viewpoints of the scene and thus refinements of the 3D model, similar to the effect of image superresolution. As the camera is moved closer to objects in the scene more detail can be added to the acquired 3D model. To achieve this, our system continually tracks the 6DOF pose of the camera and rapidly builds a representation of the geometry of arbitrary surfaces. Novel GPU-based implementations for both camera tracking and surface reconstruction allow us to run at interactive real-time rates that have not previously been demonstrated. We define new instantiations of two well known graphics algorithms designed specifically for parallelizable GPGPU hardware. KinectFusion: Shahram Izadi, Richard Newcombe, David Kim, Otmar Hilliges, David Molyneaux, Steve Hodges, Pushmeet Kohli, Jamie Shotton, Andrew Davison, Andrew Fitzgibbon “ KinectFusion: Real-Time Dynamic 3D Surface Reconstruction and Interaction ” ACM SIGGRAPH 2011 Talk S. Izadi, D. Kim, O. Hilliges , D. Molyneaux, R. Newcombe, P. Kohli, J. Shotton, S. Hodges, D. Freeman, A. Davison, A. Fitzgibbon“ KinectFusion: Real-time 3D Reconstruction and Interaction Using a Moving Depth Camera ” To appear in Proceedings ACM User Interface and Software Technologies ( ACM UIST ) Santa Barbara, CA, USA, Oct 2011