体感设备

体感设备:因特尔 Intel RealSense R200,乐视LeTV Pro Xtion和Orb奥比中光bec Astra比较

最近调试三个个厂家的体感设备,第一个是Intel的RealSense R200(参数规格:分辨率:1080p,深度有效距离:0.51-4,USB3.0),第二个是乐视LeTV Pro Xtion(参数规格:深度有效距离:0.8m 至 3.5m,USB2.0),第三个是Orbbec Astr(参数规格:分辨率720p,深度有效距离:0.5 至 8m,USB2.0/USB3.0)这个s三个都是远距离的体感摄像头。Intel还有另外一款RealSense F200(参数规格:分辨率:1080p,深度有效距离:0.2-1.2,USB3.0)这个主要是近距离的应用场景,比如在电脑笔记本前的应用。如果按照深度图的质量进行排名,那么可以这样排名:

LetTV Pro Xtrion ≈ Orbbec Astra ≫ RealSense R200

≈表示前者略好于后者或者接近,≫表示前者远好于后者。下面收集了一些体感公司的信息,进行简单的总结和比较:

 

PrimeSense:现在体感技术做的最好的公司 ,江湖老大,微软Kinect 1,华硕的Xtion, 乐视的 LeTV Xtion都使用了这家公司的芯片,是业界公认最好的,实验也证明了这一结论。这家公司的过去和未来的发展:Kinect 之后:PrimeSense 如何规划自己的后微软时代。但是现在被苹果收购了,而采用这家芯片的厂商也面临着寻找新的芯片替代商,而Orbbec是比较多被盯上的一家之一。

Kinect 2:微软的第二代体感产品,脱离了PrimeSense,独立自主研发了这款新的产品。Kinect 2深度图质量、量程,要远好于RealSense F200。但是3D扫描的精度略低且存在未知原因的平面畸变(测量平面的时候出现曲面结果)。价格昂贵,且仅面向Windows平台。算是排行老二。

RealSense:今年因特尔主推的体感摄像头,优点是体积小,方便便携,但深度图的质量较差,噪声非常大。该厂有两个型号,一个是用于短距离的F200, 近距离的深度图不错,实际有效距离不足1米,但激光对材料要求很苛刻,深色衣服,头发玻璃无法照出。另一款是用于远距离的R200, 实际有效的距离两米左右,再远了噪声就很大了。RGB摄像头分辨率达到1080P。

Orbbec:新成长的一家公司,号称是第一个实时真实3d建模的体感设备。号称性能接近于PrimeSense,量程要略大于PrimeSense。不少厂家考虑用该公司的芯片作为替代PrimeSense芯片的方案。

Softkinetic:和Kinect 2的技术类似,但是精度低,量程近分辨率也低,价格还稍高。有和笔记本厂商合作,给平板电脑提供3D功能,有和英特尔和戴尔。随着现在Intel推出自己的RealSense,估计前景令人堪忧了。最近被Sony收购了。

MV4D:主要做移动设备,它量程较近,分辨率较低、散热性能不好。为谷歌3D平板,Tango提供芯片技术供应商。

 

和体感相关的不得不提一个开源的软件OpenNI(开放式的自然交互),该组织创建于2010年11月,网站于12月8号正式公开。主要成员之一是PrimeSense公司,其他成员还有:开发ROS的机器人公司Willow Garage,以及游戏公司Side-Kick。随着苹果收购了PrimeSense,该网站和OpenNI软件也停止了更新,哎。

参考资料

市售体感设备横评:微软、英特尔、PrimeSense(苹果)、LeapMotion 春秋列国

<think>我们正在处理关于“UnityKinect体感设备开发教程”的查询。根据用户的问题,我们需要提供使用Unity和Kinect进行体感设备开发的教程。我们将参考提供的引用内容,并组织一个清晰的教程步骤。引用内容主要涉及以下几个方面:1.引用[1]:介绍了Unity与Kinect集成的步骤,包括安装插件、配置传感器以及骨骼跟踪与动作识别。2.引用[2]:详细说明了使用AzureKinectDK进行开发的硬件软件准备、SDK安装、Unity插件安装以及手势定义。3.引用[3]:提供了一些英文教程和项目下载的链接。考虑到用户需要的是教程,我们将按照开发流程来组织步骤。步骤:1.硬件和软件准备2.安装KinectSDK3.Unity中安装Kinect插件4.在Unity中配置Kinect设备5.实现骨骼跟踪和手势识别6.开发体感交互功能注意:由于引用中提到了两种Kinect设备(KinectforWindows和AzureKinectDK),我们将以AzureKinectDK为例,因为引用[2]提供了更详细的步骤。同时,我们也会提及KinectforWindows,因为引用[1]和[3]都是关于它的。具体步骤:1.硬件和软件准备-硬件:AzureKinectDK设备(或KinectforWindows设备,根据用户拥有的设备选择)-软件:-Windows10操作系统-Unity2020或更高版本(建议使用LTS版本)-VisualStudio2019或更高版本(用于代码编辑和调试)2.安装KinectSDK-对于AzureKinectDK:访问[AzureKinectDK官方页面](https://azure.microsoft.com/zh-cn/services/kinect-dk/)下载SDK,并运行安装程序[^2]。-对于KinectforWindows:需要下载并安装KinectforWindowsSDK(版本1.x或2.x)[^1][^3]。3.在Unity中安装Kinect插件-对于AzureKinectDK:在UnityAssetStore中搜索“AzureKinectforUnity”插件,下载并导入到项目中[^2]。-对于KinectforWindows:可以访问引用[3]中提供的链接下载相应的Unity插件,或者从AssetStore中搜索相关插件(如“KinectforUnity”)[^1][^3]。4.设置Kinect连接-将Kinect设备连接到电脑,并确保设备被正确识别(可以通过KinectSDK自带的查看器工具检查)。-在Unity中,打开插件提供的示例场景或创建新场景。通常,插件会提供预制体(Prefab)或组件,将其拖入场景中即可自动连接设备[^1][^2]。5.实现骨骼跟踪和手势识别-骨骼跟踪:使用插件提供的骨骼跟踪功能,通常插件会提供骨骼数据的接口。在Unity中,你可以获取到每个关节的位置,并将其映射到虚拟角色上。-手势识别:需要定义手势,例如举起左手、挥手等。可以通过检测特定关节的位置关系或运动轨迹来实现[^2]。6.开发体感交互功能-将骨骼数据应用于虚拟角色的控制,例如让虚拟角色模仿玩家的动作。-通过手势识别触发游戏事件,例如挥手表示开始游戏,举手表示跳跃等。注意事项:-不同版本的Kinect设备(AzureKinectDK与KinectforWindows)使用的插件和SDK不同,开发步骤略有差异。-在开发过程中,建议参考插件提供的文档和示例。相关问题:1.如何解决Kinect设备在Unity中无法识别的问题?2.在Unity中如何优化Kinect体感游戏的性能?3.除了骨骼跟踪,Kinect还能在Unity中实现哪些功能(如语音识别、面部识别)?以上教程步骤是基于引用内容整理的,具体实现细节可能需要参考插件的文档和示例代码。</think>### Unity与Kinect体感开发教程 以下是使用Unity和Kinect进行体感设备开发的核心步骤,结合引用内容整理: #### 1. **环境准备** - **硬件要求**: - Kinect设备(Azure Kinect DK或Kinect for Windows)[^2] - Windows 10系统 - **软件安装**: - 安装Kinect SDK: - Azure Kinect:[官网下载SDK](https://azure.microsoft.com/zh-cn/services/kinect-dk/) [^2] - Kinect for Windows:需安装对应版本SDK [^3] - Unity 2020+版本 - Visual Studio 2019+(用于脚本编辑)[^2] #### 2. **Unity插件集成** ```csharp // 示例:在Unity中初始化Kinect using UnityEngine; using Kinect = Windows.Kinect; public class KinectManager : MonoBehaviour { private Kinect.KinectSensor _sensor; private Kinect.BodyFrameReader _reader; void Start() { _sensor = Kinect.KinectSensor.GetDefault(); if (_sensor != null) { _reader = _sensor.BodyFrameSource.OpenReader(); _sensor.Open(); } } void Update() { // 处理骨骼数据 } } ``` - **操作步骤**: 1. 在Unity Asset Store搜索"Azure Kinect for Unity"或"Kinect for Unity"插件[^2][^3] 2. 导入插件到Unity项目 3. 将Kinect预制体拖入场景(通常包含`KinectManager`组件) #### 3. **骨骼跟踪实现** - **核心流程**: 1. 通过`BodyFrameReader`获取骨骼数据 2. 将25个关节点映射到Unity空间坐标 3. 使用`GameObject`数组驱动虚拟骨骼 ```csharp // 骨骼数据映射示例 Vector3 jointPosition = new Vector3( kinectJoint.Position.X * 10, kinectJoint.Position.Y * 10, kinectJoint.Position.Z * 5 ); virtualBones[i].transform.localPosition = jointPosition; ``` #### 4. **手势识别开发** - **实现方法**: - **定义手势**:计算关节角度/距离关系 - 例如举手:检测手腕Y坐标 > 肩部Y坐标 - **状态机处理**: ```csharp enum GestureState { None, RaisingHand, Wave } if (leftHandY > shoulderY && rightHandY > shoulderY) { currentGesture = GestureState.RaisingHand; } ``` #### 5. **体感交互应用** - **常见应用场景**: - 虚拟角色控制(骨骼驱动人形动画) - 手势触发游戏事件(挥手发射技能) - 深度图实现障碍物检测 - **性能优化**: - 降低骨骼更新频率(非每帧更新) - 使用对象池管理虚拟骨骼 > **调试建议**:使用Kinect SDK自带的`Kinect Studio`工具验证原始数据流,再对接Unity[^1]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值