OpenCV、PCL;Xtion、kinect;OpenNI、kinect for windows SDK比较
一.对比介绍:
1. OpenCV:开源跨平台,OpenCV于1999年由Intel建立,如今由Willow Garage提供支持。
2. OpenNI:OpenNI组织创建于2010年11月。主要成员之一是PrimeSense公司(以色列一家公司,被苹果收购(2013年11月25),Kinect1核心芯片,华 硕Xtion)。其他成员还有开发ROS的机器人公司Willow Garage,以及游戏公司Side-Kick。(因此OpenNI完全支持华硕,而不完全支持kinect2)
3. PCL:构成现在PCL算法基础的第一个算法,是由Dr. Radu Bogdan Rusu在德国慕尼黑工业大学读博士期间开发的,后来在2009年底由Willow Garage公司进一步开发完成。
二. 华硕Xtion和微软kinect比较:原文网址:http://blog.sina.com.cn/s/blog_7e6503990100utgx.html
华硕Xtion PRO(For Developers Only)体感设备使用评测(与Kinect对比),2011-05-23
1. 产品外观
2. 参数规格
以下参数摘自华硕Xtion Pro外包装盒:
l 有效距离:3.5米~0.8米
l 有效角度:70◦
l 电源/接口:USB 2.0
l 传感器:深度探测
l 支持平台:Intel X86 & AMD
l 操作系统:Win 32/64:XP,Vista,Win7
Linux Unubtu 10.10:X86,32/64 bit
l 程序语言:C++/C#(Windows), C/C++
以下参数为实际测量参数(实际测量参数有部分误差):
l 设备长:18cm
l 设备宽:3.6cm
l 设备高(连底座):5cm
l 镜头部分高:2.6cm
3. 驱动支持
安装测试在Windows 7 32位系统下进行。
设备包装中包含的驱动就是Prime Sense的驱动,安装过程中,观察了下,发现光盘中程序的版本如下:
l OpenNI版本为 1.0.0.1
l Sensor版本为 5.0.0
l NITE版本为 1.3.0
安装完成后,在设备管理器里面的PrimeSense目录下,出现“PrimeSense PS1080”
安装后能够正常使用,打开NiViewer.exe,能够正常采集深度图像
图3.1 NiViewer采集的深度图
然后尝试使用OpenNI发布的新版本驱动,使用了如下版本:
l OpenNI版本 1.1.0.41
l Sensor版本 5.0.0.1.32
l NITE版本 1.3.1.5
安装完成后,在设备管理器,同样看到了该设备,但是在运行NiViewer.exe的时候,出现如下错误:
One or more of the following nodes could not be enumerated: Device: PrimeSense/SensorKinect/5.0.1.32: The device is not connected! |
据错误信息推断应该是Sensor驱动的问题,因此目前使用Xtion的话就还是使用老版本的驱动。
4. 开发
使用老版本的驱动,运行之前开发的程序(没有使用RGB图像),能够正常运行。
图4.1 之前开发的程序能正常运行
使用SetMapOutputMode函数调整不同的分辨率和FPS,发现只有分辨率为640*480,FPS为30时能够正常运行,其他参数下,要么就是黑屏,要么就是程序停止响应,要么就是如下图所示状态:
图4.2 调整参数带来的问题
参数设置带来的问题,还需要进一步研究下。深度图的使用和原来的使用差别不大。
5. 华硕Xtion Pro与微软Kinect对比
图5.1 华硕Xtion与手对比图
图5.2 Xtion与Kinect对比图
下表整理了两个设备之间的差别:
属性 |
华硕Xtion Pro |
微软 Kinect |
长 |
18cm |
28cm |
宽 |
3.6cm |
6cm |
高(带底座) |
5cm |
7.5cm |
镜头部分高 |
2.6cm |
4cm |
景深摄像头感应距离 |
0.8m~3.5m |
1.2m~3.5m |
有效视角 |
70◦ |
水平:57◦ 垂直:43◦ |
电源/ 接口 |
USB2.0 |
外接电源+ USB2.0 |
传感器 |
深度摄像头 |
深度摄像头+RGB摄像头 |
能否控制马达 |
否 |
机动底座,倾斜范围:±27度 |
音频系统 |
无 |
语音麦克风阵列 |
6. 使用感受
从购买上来看,华硕Xtion目前价格为1399,目前大陆地区只能从华硕销售部门进行订购;而Kinect目前看到的价格已经降到一千元以下了,实体店和网上都能订购比较方便。
从功能上来看,华硕Xtion只有深度摄像头;而Kinect深度摄像头和RGB摄像头都有,RGB摄像头虽然像素不高,也能用其在游戏中照相什么的,还有一些用处。目前测试发现华硕的深度摄像头采集的数据并不比Kinect高,深度图像都会抖动。
总体来说,感觉华硕Xtion的价格有点贵,不提供RGB摄像头,没有音频系统,没有控制马达。目前,其他方面的性能还没有测试出有比Kinect提高和改进的。华硕Xtion比Kinect好用的一点是,Xtion只需要USB口就能驱动了,不像Kinect还需要外接电源;Xtion耗热较小,Kinect用一会儿就开始发烫了;Xtion的外观比较小巧,比较容易安置。
三、Microsoft Kinect SDK 和 PrimeSense OpenNI 的区别(2011年07月),原文地址:http://blog.csdn.net/leowangzi/article/details/6604512
After playing with both the Microsoft Kinect SDK and the PrimeSense OpenNI SDK here are some of my thoughts,Note that the Microsoft’s SDK version is the Beta version, so things may change when the final one is released)
Microsoft’s Kinect SDK (Beta)pro: 优点
- support for audio 支持音频
- support for motor/tilt 支持马达
- full body tracking: 全身追踪
- does not need a calibration pose 不需要标定姿势(投降姿势)
- includes head, hands, feet, clavicles 包括头,手,脚和锁骨
- seems to deal better with occluded joints 看起来处理关节闭塞更好些
- supports multiple sensors 支持多传感器(多台Kinect)
- single no-fuss installer 简化安装(安装更容易)
- SDK has events for when a new Video or new Depth frame is available 当新的视频或深度图有效时,SDK会有可用事件
con: 缺点
- licensed for non-commercial use only 非商用(商业需要付费)
- only tracks full body (no mode for hand only tracking) 只能追踪全身(不包含特定的追踪模式:例如只追踪手)
- does not offer alignment of the color&depth image streams to one another yet
- although there are features to align individual coordinates
- and there are hints that support may come later
full body tracking: 全身追踪
- only calculates positions for the joints, not rotations 关节只有坐标数据,没有旋转数据 only tracks the full body, no upperbody or hands only mode 只能追踪全身,不包含特定的追踪模式:例如只追踪手或上半身
- seems to consume more CPU power than OpenNI/NITE (not properly benchmarked) 和OpenNI/NITE相比,看起来更消耗CPU(没有采用适当的基准)
no gesture recognition system 不包含手势识别系统 no support for the PrimeSense and the ASUS WAVI Xtion sensors? (can anyone confirm this?) 不支持PrimeSense和华硕的WAVI Xtion硬件平台 only supports Win7 (x86 & x64) 只支持Win7(32位和64位) no support for Unity3D game engine 不支持Unity3D游戏引擎 no built in support for record/playback to disk 不支持数据记录或回放到硬盘 no support to stream the raw InfraRed video data 不支持红外线视频数据流
- SDK does not have events for when new user enters frame, leaves frame etc SDK没有此类发生事件,例如当一个用户被侦测到或用户丢失等等。
PrimeSense OpenNI/NITEpro: 优点
- license includes commercial use 可以商用(不需要付费)
- includes a framework for hand tracking 包含手部追踪框架
- includes a framework for hand gesture recognition 包含手势识别框架
- can automatically align the depth image stream to the color image 可以自动对齐深度图数据到彩色图数据
- full body tracking: 全身追踪
- also calculates rotations for the joints 包含坐标数据和旋转数据
- support for hands only mode 支持特殊跟踪模式:例如:只追踪手和头或上半身
- seems to consume less CPU power than Microsoft Kinect SDK’s tracker (not properly benchmarked) 和微软的SDK相比消耗的CPU更少
- also supports the Primesense and the ASUS WAVI Xtion sensors 支持Primesense和华硕的WAVI Xtion硬件平台
- supports multiple sensors although setup and enumeration is a bit quirky 支持多传感器但是需要安装和枚举,这一点有点古怪。
- supports Windows (including Vista&XP), Linux and Mac OSX 支持Windows(包括Vista&XP&WIN7),Linux系统和苹果操作系统(翻者:也支持Android)
- comes with code for full support in Unity3D game engine 自带的代码全面支持Unity3D游戏引擎(翻者:也支持Ogre)
- support for record/playback to/from disk 支持数据记录到硬盘或从硬盘回放数据
- support to stream the raw InfraRed video data 支持红外数据流
- SDK has events for when new User enters frame, leaves frame etc SDK有此类发生事件,例如:当一个用户被侦测到或者用户丢失。(提供回调函数供开发者使用)
con: 缺点
- no support for audio 不支持音频 (现在华硕xtion支持音频?http://www.asus.com.cn/Multimedia/Xtion_PRO_LIVE/)
- no support for motor/tilt (although you can simultaneously use the CL-NUI motor drivers) 不支持马达(翻者:马达是微软的专利,所以primesense公司不想惹微软)
- full body tracking: 全身追踪
- lacks rotations for the head, hands, feet, clavicles 缺乏以下关节:头,手,脚,和锁骨
- needs a calibration pose to start tracking (although it can be saved/loaded to/from disk for reuse) 需要一个标定姿势(投降姿势)才能开始追踪骨骼(注意:标定数据是可以存储和提取的方便重用)
- occluded joints are not estimated 关节闭塞没有被估算
- supports multiple sensors although setup and enumeration is a bit quirky 支持多感应器但是需要安装和枚举,这一点有点古怪。
- three separate installers and a NITE license string (although the process can be automated with my auto driver installer) 需要单独安装NITE
- SDK does not have events for when new Video or new Depth frames is available SDK没有此类发生事件,例如:当新的视频或者深度图数据有效时。(翻者:OpenNI提供了类似功能的函数可使用,虽然不是回调函数,但是也很好用)
(Personal) conclusion:Microsoft seems to have the edge when working with skeletons and/or audio.
微软在骨骼识别和音频方面有优势。(翻者:本人非常认同,微软的音频识别将会在未来的体感游戏里发挥重要的作用!)
OpenNI seems to be best suited when working on colored pointclouds, on non-Win7 platforms and/or for commercial projects.
OpenNI似乎更适合做一些带颜色的点云的工作,和在非Win7平台来开发商业项目。
When working with gestures in specific: 手势识别
- If your sensor only sees the upperbody/hands and/or you want an existing framework to start with use OpenNI/NITE.
如果你想开发基于上半身或手识别的项目,可以使用OpenNI和NITE - When your sensor can see the full body the more stable Microsoft skeleton may be the best to use, however you’ll have to code your own gesture recognitions. (You’d also have to extend OpenNI/NITE for fullbody gestures btw)
全身识别毋庸置疑微软的SDK是最好的,然而你必须自己编写你自己的手势识别代码。
平台上比较:
Kinect for Windows SDK 仅支持Windows 7/Windows 8 操作系统(PC平台为主,电视机,机顶盒等嵌入式平台为0)
OpenNI 支持大多数操作系统
OpenNI各版本之间的比较:
OpenNI 1.X 版本 支持大多数操作系统,支持Kinect/Xtion独立驱动
OpenNI 2.X 版本 支持大多数操作系统,支持Xtion独立驱动,Kinect则要靠Kinect for Windows SDK自带的驱动做桥接。
简单的说:
Kinect for Winows SDK 不允许非Kinect的摄像头使用。
OpenNI 2.X 不允许Kinect在非Windows操作系统上运行,其他体感摄像头支持良好。
OpenCV、PCL;Xtion、kinect;OpenNI、kinect for windows SDK比较的更多相关文章
- 【计算机视觉】深度相机(八)--OpenNI及与Kinect for windows SDK的比较
OpenNI(开放自然交互)是一个多语言,跨平台的框架,它定义了编写应用程序,并利用其自然交互的API.OpenNI API由一组可用来编写通用自然交互应用的接口组成.OpenNI的主要目的是要形成一 ...
- Kinect for Windows SDK开发入门(15):进阶指引 下
Kinect for Windows SDK开发入门(十五):进阶指引 下 上一篇文章介绍了Kinect for Windows SDK进阶开发需要了解的一些内容,包括影像处理Coding4Fun K ...
- 三维重建:QT+OpenNI+Kinect图像校正
后记: 当时能不放弃这个方向是因为这里面涉及了一种很有效的三位场景存储方式,可能给出除图元建模之外的一种三维场景描述方式.这和Flash与位图的对比一样,基于图元的flash始终抵不过基于点描述的位图 ...
- Kinect 开发 —— Kinect for windows SDK
开发 —— 基本的SDK和Windows 编程技巧(彩色图像视频流,深度图像视频流的采集,骨骼跟踪,音频处理,语音识别API) 深度数据,就是Kinect的精髓和灵魂,很多问题都转换为深度图像的模式识 ...
- Kinect for Windows SDK开发学习相关资源
Kinect for Windows SDK(K4W)将Kinect的体感操作带到了平常的应用学习中,提供了一种不同于传统的鼠标,键盘及触摸的无接触的交互方式,在某种程度上实现了自然交互界面的理想,即 ...
- [译]Kinect for Windows SDK开发入门(十八):Kinect Interaction交互控件
本文译自 http://dotneteers.net/blogs/vbandi/archive/2013/03/25/kinect-interactions-with-wpf-part-i-getti ...
- Kinect for Windows SDK 1.8的改进及新特性
今年3月, 微软推出了Kinect for Windows SDK 1.7 更新,包括了手势识别 Kinect Interactions 和实时 3D 建模 Kinect Fusion 两项新技术. ...
- Kinect for Windows SDK开发初体验(一)环境配置
1.开发环境需求 (1).硬件需求 a.需要拥有双核,2.66GHz以上的CPU. b.显卡支持Microsoft DirectX 9.0c; c.2GB的内存 d.Kinect for Window ...
- Kinect for Windows SDK开发入门(一):开发环境配置
[译]Kinect for Windows SDK开发入门(一):开发环境配置 前几天无意中看到微软发布了Kinect for windows sensor,进去看了一下Kinect应用的例子,发现K ...
随机推荐
- springboot上传linux文件无法浏览,提示404错误
1.配置文件地址置换 @Componentclass WebConfigurer implements WebMvcConfigurer { @Autowired ConfigUtil bootdoC ...
- poi导出word模板项目实例(一个文件)
在页面上填写值,然后导出到word模板中,并把页面上的值带到模板中,也就是导出word文档,提前有word 的模板形式, 1.jsp 页面 <table class="formTa ...
- Hibernate 中批量处理数据
一.批量处理操作 批量处理数据是指在一个事务场景中处理大量数据.在应用程序中难以避免进行批量操作,Hibernate提供了以下方式进行批量处理数据: (1)使用HQL进行批量操作 数据库层面 ...
- shell脚本,按单词出现频率降序排序。
[root@localhost oldboy]# cat file the squid project provides a number of resources toassist users de ...
- Dev-Cpp 5.11 c++编译器下载
Dev-Cpp 5.11 c++编译器下载地址: 链接: https://pan.baidu.com/s/1jHMAf1k 密码: i6nw
- UINavgationController
UINavigationBar和UINavigationItem是iOS开发中常用的控件. 1.设置导航栏标题 self.title = @"iOS开发:iOSDevTip"; ...
- Qt读写excel
今天在利用Qt进行excel操作时,代码总是走到打开excel这一步是总是出现程序崩溃.在网上查找了各种帖子 说法不一,尝试都没有解决.后来猜想是不是excel没有激活影响的.发现自己的excel没 ...
- 文件操作-cd
cd命令是linux实际使用当中另一个非常重要的命令,本文就为大家介绍下Linux中cd命令的用法. 转载自 https://www.cnblogs.com/waitig/p/5880719.html ...
- Solr5.0.0 DIH之增量索引
定时索引相关知识 增量更新需要配置个sql(deltaImportQuery.deltaQuery) deltaImportQuery="select * where id='${dih.d ...
- 电脑连接到手机并安装手机驱动usb-driver
设置真机开发环境需要执行下面几个步骤: 1.在应用的Manifest文件中声明应用是可调试的: 2.打开应用的调试支持: 对于通过Eclipse创建的应用,可以省略步骤2,因为在Eclipse IDE ...