前言
一般的普通摄像机获取的是RGB彩色图像,在计算机视觉领域,很大一部分都是基于颜色图像来做处理的,取得了不少研究成果。最近几年的深度图研究给计算机视觉和图像处理带来了更多的信息,因为所获取的图像多了一个维度的,通常也称之为RGBD图。比较物美价廉的深度信息获取传感器有MS的Kinect,同时还有ASUS的Xtion。这2种传感器都能较为准确的获得一定范围内物体的深度信息。比如说Kinect的参数信息图如下:
要想在视觉上达到AI的水平还有很长的路要走,深度信息的提供无疑给视觉处理多带来了一份希望,多了深度这一维的信息肯定是有用的,所以本人打算以后结合色彩信息和深度信息来做人体行为识别方面的研究。
废话不说,实验室有Kinect设备,因此需要搭建Kinect的开发环境,这里开发Kinect的驱动不是用的MS的SDK,而是采用开源的OpenNI(个人比较喜欢开源的东西)。
环境的搭建可以参考著名网友Heresy的系列文章,其中关于安装环境的搭建有一篇为: 2012 OpenNI环境/Kinect安装教学 。该文章中写的非常详细,赞!
Heresy的文章列表为:http://kheresy.wordpress.com/index_of_openni_and_kinect/comment-page-5/
安装步骤
另外这里是我个人的WinXP+Kinect+OpenNI+NITE+Qt开发环境搭建过程:
1. 采用OpenNI开发套件。OpenNI分为3个组件,OpenNI的本身框架,算法分析的中间件,以及硬件模块组。下载OpenNI的官网为:http://openni.org/Downloads/OpenNIModules.aspx
根据自己电脑的类型和步骤2的SensorKinect版本,选择那3个下拉列表,出现文件后下载即可。我这里选的是OpenNI Binarys+Unstable和32位的开发版本。其中OpenNI文件名为:
openni-win32-1.5.4.0-dev.msi, NITE文件名为:nite-win32-1.5.2.21-dev.msi,Sensor文件名为:sensor-win32-5.1.2.1-redist.msi。依次安装OpenNI,NITE,Sensor这3个文件。
2. 安装SensorKinect,这个为Kinect驱动的破解版,因为OpenNI的驱动只是针对ASUS的,这个破解版是网友自己弄的,下载网站为:https://github.com/avin2/SensorKinect/tree/unstable/Bin
我选的版本名为:SensorKinect093-Bin-Win32-v5.1.2.1.msi
非常需要注意的几点是:
1. 安装过程中把各种杀毒软件都关掉,比如360那些玩意。
2. 安装过程中不要将Kinect连接到电脑上。
3. 上面的安装步骤顺序不要乱,且步骤1和步骤2中的文件版本一定要对应起来,其版本对应的说明在sensorkinect下载网https://github.com/avin2/SensorKinect的readme文件中有。
安装成功后,插上kinect到电脑,开启电源,在电脑的设备管理器中看是否能够识别kinect的3个驱动,如果没有成功,手动更新驱动程序到指定的安装目录。
驱动安装成功后的设备管理器处会显示如下:
如果上面的步骤都完成,那么可以打开openNI安装目录下的samples子目录,进入bin目录下的debug或者release,连接好kinect,双击其中的一个sample,看能否运行,我这里是双击的UserTracker.net.exe,为人体骨骼提取,图像为深度图,其运行结果如下所示:
安装总结
但如果是用Qt来开发Kinect的话,则OpenNI的安装目录不能采用默认的目录,因为默认的目录中会含有Program Files中间有空格。所以在安装步骤1和2共4个文件时,其目录最好都安装在非中文非空格下面。如果不小心安装在默认路径下,卸载后又重新安装OpenNI及其组件,很容易识别,一般是安装每个文件到最后,然后进度条又回去,且会提示比如:Primesense-NTE1.5.2.21for windows setup wizard ended prematurely because of an error.Your system has not been modified.To install this program at a later time,run Setup Wizard again,Click the finish button to exit the Setup Wizard.即显示如下:
这是因为前面安装的注册表信息没有clean干净,一般的非专业的清理工具是弄不干净的,比如说360安全卫士什么的。后面我也在网上尝试了好多种注册表清理工具都不行。到最后找到了一个专业的小工具:Eusing Free Registry Cleaner,下载完清理一遍再安装,一步成功,很感谢这个注册表清理小工具!
另外,在用Qt开发时,需要在.pro工程文件添加如下关于OpenNI头文件和库文件:
INCLUDEPATH += C:\Qt\OpenNI\Include LIBS += C:\Qt\OpenNI\Lib\NiSampleExtensionModule.lib C:\Qt\OpenNI\Lib\NiSampleModule.lib \ C:\Qt\OpenNI\Lib\OpenNI.jni.lib C:\Qt\OpenNI\Lib\openNI.lib
此处我的OpenNI和Qt安装在一个目录,都放在c盘。当然,如果使用了OpenCVS库,也同样需要添加。
到此为止,WinXP+Kinect+OpenNI+NITE+Qt+OpenCV的开发环境就建立好了,祝大家好运!
参考资料
下面是这2天找到的一些比较好的Kinect相关资料:
Heresy系列文章:
http://kheresy.wordpress.com/index_of_openni_and_kinect/comment-page-5/
OpenCV 计算机视觉 kinect的博客:
http://blog.csdn.net/moc062066/article/category/871261
2011微软亚洲研究院Kinect for Windows研讨会
http://www.msra.cn/Articles/ArticleItem.aspx?Guid=f3dfa208-bc88-4d8b-82a8-63e597315cf8
Kinect介绍入门视频教程:
http://www.youtube.com/watch?v=yQg4yhCL1xI
OpenNI官网:
OpenNI安装教程:
http://viml.nchc.org.tw/blog/paper_info.php?CLASS_ID=1&SUB_ID=1&PAPER_ID=346