unitykinect技术原理

unitykinect技术原理,第1张

1.Kinect原理:

kinect1:Prime Sense公司的Light Coding技术作为原理,给不可见光打码,然后检测打码后的光束,判断物体的方位。

kinect2:TOF原理(精度、灵敏度和分辨率都更高),根据光反射回来的时间判断物体的方位,当然检测光的飞行速度是几乎不能实现的,所以发射一道强弱随时间变化的正弦光束,然后计算其回来的相位差值,所以使用场景尽量避免反射物以及不要移动Kinect,不然会有问题。

2.可供研究开源库:Openni,KinectSDK,手势库NITE,Kinect-ms-sdk。由于我是新手,而且比较熟悉的Kinect的SDK,所以就从这个开始总结,其他的有机会再来详细分析。

3.首先你用Kinect,首先要了解它能干什么,能获得哪些数据

其实看他的SDK就知道它能获取的数据包括:语音,彩色图像,深度图像,骨骼数据(这个是根据深度和彩色通过算法识别提供给开发者使用的)。而又这几种数据又能扩展出什么新的数据,开发出什么有趣的功能完全是由开发者们的能力和对世界的好奇。(官方SDK已提供了表情,脸部建模,语音识别,手势判断等,其他的估计不会那么快提供出来)

4.Kinect的使用程序流程:

开始程序-获取kinect摄像机-打开读取器-打开Kinect-获取读取器的相关帧数据-使用帧数据-关闭帧-关闭读取器-关闭Kinect-关闭程序

这就是Kinect的一个完整的工作流程,无论是彩色,深度,骨骼的数据获取都需要这个流程的,而我们主要 *** 作是在使用帧数据的这个阶段。其他基本是不变的。

4.1 kinect的开启很简单:在程序开始时,也就是unity的Start函数里写下

_Sensor = KinectSensor.GetDefault()

if (_Sensor != null)

{

_Reader = _Sensor.ColorFrameSource.OpenReader()

if (!_Sensor.IsOpen)

{

_Sensor.Open()

}

}

这样就能成功开启Kinect传感器和读取器了。

4.2 程序的关闭

要注意的是没获取完数据不要随意进行Kinect的关闭 *** 作,不然数据会不准确,一般kinect的关闭是在你准备要关闭程序的时候进行的,在unity上的mono类里有专门的OnApplicationQuit(),在这里进行关闭kinect的 *** 作。

代码如下:

void OnApplicationQuit()

{

if (_Reader != null)

{

_Reader.Dispose()

_Reader = null

}

if (_Sensor != null)

{

if (_Sensor.IsOpen)

{

_Sensor.Close()

}

_Sensor = null

}

}

中间的数据获取和数据的使用会占很大的篇幅,会在后续的博客里一个个分析

CPU占用率高的几种原因

1、系统感染病毒或恶意代码

通常病毒和木马程序会占用 CPU 很多资源,如果你的机器感染了病毒或木马程序,CPU 甚至瞬间会被占用 100%。对于这种情况,建议大家用杀病毒软件清理病毒和木马程序,如果杀毒软件不能清除病毒,大家只能重装系统了。

2、IE浏览器插件或网页代码运行错误

打开过多的flash网页、网络电视页面会占用大量 CPU 资源,如果打开的页面有错误代码,也可能直接导致IE浏览器崩溃,出现CPU 100%运行,甚至死机。建议大家尽量关闭已经不再使用的网页,不要同时打开太多flash网页;如果IE浏览器崩溃,重新启动IE就可以了。

3、错误 *** 作导致的应用软件崩溃

在我们平时使用迅雷、BT、office、大型的绘图软件、视频播放器 *** 作不当会使应用软件崩溃,比如:下载软件和防火墙冲突、用office打开错误的文件、用视频播放已损坏的视频文件等等。这些情况都会使应用软件崩溃,CPU被占用100%。即使我们在桌面已经关掉应用程序时候,电脑还是很慢,CPU还是被占用100%。这个时候我们可以打开“任务管理器”找到占用CPU 100%的那个进程,然后结束这个进程就可以了。

4、杀毒和防火墙软件

部分杀毒和防火墙软件由于其实时监控的特性,导致高度占用 CPU 资源。其实你可以仔细观察,它们还占用了更多的内存资源。我不建议停止甚至删除它们,但是最好计划好让它们工作的时间,尽量减少它们占用 CPU 的时间。另外,尽量选择使用那些占用 CPU 和 内存少的杀毒和防火墙软件。

5、不正当驱动程序

安装了不正当的硬件驱动程序,也是导致高度占用 CPU 资源的可能之一。建议尽量安装通过微软认证的驱动程序,或者安装笔记本官方提供的驱动程序。

无人机如果不能避障,跟会飞的咸鱼有什么分别。——萨特·福莱费施

        无人机的市场正在飞速上涨,它拥有良好的发展前景,现在无人机不仅应用在军事领域,消费级无人机也越来越多的被应用。

        目前的无人机正在无限的接近自动化和智能化,随着技术的研究和进步,未来无人机很可能会成为飞行机器人。而避障系统则是实现自动化和智能化的关键因素之一,避障的应用能够有效减少无人机的损坏和事故的发生。

      

        在聊无人机夜间避障技术之前,先来看看无人机的避障工作原理。

        第一阶段,感知障碍物

      

         一般的无人机都必须在空旷、开阔的场地飞行,这是为了避免因 *** 作失误或者其它状况下无人机撞到障碍物甚至是人。目前的避障方法主要是测量无人机到障碍物的距离,测量方法有很多种,超声波测距离、红外/激光信号测距离、双目视觉法、电子地图等。超声波测距离,目前超声波检测技术已经十分成熟并且被广泛的应用,但是通常用的超声波传感器作用距离在10米以内,作用距离很近,所以这种方法一般用来测量无人机到地面的距离;发射一定频率的红外/激光信号也是一种办法,能够算出和障碍物的距离,这种方法作业距离数百米,但成本较高,且易受外界因素影响。这种方法目前在无人机上有一定的应用;双目视觉法,同一个物体在人的两眼中位置稍有不同,而这个方法就是利用这一点获取被测物体的两幅图像,计算到障碍物的距离。

        障碍物是感知到了,但是之后呢?让无人机原地待命吗?这肯定不可以,所以第二阶段就来了,绕过障碍物。

        想要绕过障碍物那就必须要知道障碍物的大致轮廓和边缘的位置, 也就是三维的画面。这时后两种方法就起了作用,激光信号和双目视觉法都能获得“障碍物的深度图像”,就可以找到障碍物的边缘,完美的避开障碍。但是这种图像有局限性,只有障碍物没有充满视野时才能起明显的作用,因此有了第三阶段。

 

        第三阶段,场景建模和路径搜索。

         

         这一阶段主要是基于电子地图或者其他及时定位地图构建的手段,获得场景模型,利用无人机中的算法来规划出最优的避障路径。这种技术还需要不断的研究、提高、完善,避障技术已成为无人机发展的趋势。

        无人机避障技术已经有很多,但是在夜间就会遇到“瓶颈”,照明度太低,无人机在夜间基本是“瞎”的,无法看到障碍物。而这次的夜间避障技术则是利用了双目避障原理和红外照射技术,使无人机能够看到人眼看不到的红外线,它会主动发射近红外线,通过反馈信号进行计算处理(双目避障原理),以此来感知周围环境和障碍物。这种方法非常好用,红外的探测面积大,能够识别距离无人机最近物体的距离,所以用来夜间避障十分合适。

        还有一种夜间避障方法是TOF避障系统。它通过给目标连续发送光脉冲,然后用传感器接收从物体返回的光,通过探测光脉冲的飞行时间来得到障碍物的距离。但是这种方法极不稳定,因为光波容易收到干扰,测量距离比较短。而且这种方法需要专门的芯片价格昂贵,所以没有被广泛的应用。

        夜间避障已经在逐步被攻克、解决,相信在不久的未来无人机的夜间避障系统会被逐步完善,做到完全规避障碍物。

参考文献:[1]木子.无人机避障技术发展三重阶段.宇辰网


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12028635.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-20
下一篇 2023-05-20

发表评论

登录后才能评论

评论列表(0条)

保存