本科毕业设计Kinect在农产品采集方面的应用

上传人:痛*** 文档编号:79417498 上传时间:2022-04-23 格式:DOC 页数:35 大小:2.14MB
收藏 版权申诉 举报 下载
本科毕业设计Kinect在农产品采集方面的应用_第1页
第1页 / 共35页
本科毕业设计Kinect在农产品采集方面的应用_第2页
第2页 / 共35页
本科毕业设计Kinect在农产品采集方面的应用_第3页
第3页 / 共35页
资源描述:

《本科毕业设计Kinect在农产品采集方面的应用》由会员分享,可在线阅读,更多相关《本科毕业设计Kinect在农产品采集方面的应用(35页珍藏版)》请在装配图网上搜索。

1、本科毕业设计Kinect在农产品采集方面的应用摘 要快速、准确、实时获取农作物涨势图像信息已经成为数字农业生产管理的趋势和必要手段,而深度图像信息包含彩色图像所没有的三维信息,是农作物信息采集的重要补充。本文采用微软公司开发的一款廉价传感器设备Kinect for Windows尝试用于农产品采集方面的应用,包括在水稻图像的预处理、水果分级系统等方面的应用,旨在于将高科技技术应用于精细农作业的生产与管理,让农作业的生产与管理更加科学与方便化。本文先是对Kinect在各个领域上的应用进行阐述,然后深入探究了Kinect的构造和工作原理,继而对Kinect的深度成像进行了初步研究,论文在水稻冠层和

2、水果分类做了初步探索,利用Kinect获取水稻及水果的RGBD图像,根据其深度信息,从空间维度,将水稻冠层进行快速分割、提取,为后续水稻冠层信息分析打下基础。利用深度信息及几何原理获取水果的高度和直径,可为水果分级提供依据。关键词:Kinect RGBD 水稻冠层分割 深度信息 Kinect in the acquisition of agricultural productsRuan XiaoZhao(College of Engineering, South China Agricultural University, Guangzhou 510642, China)Abstract: F

3、ast, accurate, real-time acquisition of crop rise image information has become a necessary means of digital agriculture production and management trend, but the depth image information contains no 3D information of color image, is an important supplement to the crop information collection. This pape

4、r uses a low-cost sensor devices called Kinect for Windows developed by the Microsoft Corp attempts to application for agricultural products of the acquisition, including the application in rice image preprocessing, fruit grading system, aimed at the production and management of high-tech in fine ag

5、ricultural work, make the production and management of agricultural work more scientific and convenient.This paper first elaborates on the application of Kinect in various fields, and then in-depth study of the structure and working principle of Kinect, and then to Kinect depth imaging is studied, t

6、he paper made a preliminary exploration in rice canopy and fruit classification, RGBD image acquisition of rice and fruit by Kinect, according to its depth information, from the spatial dimension, the rice canopy fast segmentation, extraction, analysis to lay the foundation for subsequent rice canop

7、y information. The fruit to obtain using depth information and geometric principle of height and diameter, can provide the basis for the classification of fruit.Key words: kinect RGBD rice canopy segmentation depth information目 录1 前言11.1 课题的研究背景11.2 Kinect在各领域的应用11.2.1 医疗领域的应用11.2.2 教育领域的应用11.2.3 机器

8、人视觉与控制领域的应用21.2.4 体育运动竞技研究21.2.5 娱乐领域的应用21.2.6 零售领域的应用22 基于Kinect开发的原理22.1 Kinect for Windows硬件组成及其深度成像原理22.1.1 Kinect for Windows 的硬件组成32.1.2 Kinect的核心芯片42.1.3 Kinect for Windows的核心部件42.1.4 Kinect 相关技术规格52.1.5 Kinect深度成像原理62.1.6 深度测量技术62.1.7 光源标定方法62.2 软件开发平台72.2.1 .NET Framework(.NET 框架)72.2.2 公共语

9、言运行库82.2.3 类库92.2.4 C# 编程语言102.3 搭建农业信息监测平台103 Kinect在农业信息采集中的应用123.1 基于Kinect的水稻冠层分割123.1.1 水稻的彩色图像和深度图像获取123.1.2 根据深度图像对水稻冠层进行分割153.2 基于Kinect的水果三维尺寸获取163.2.1 获取水果的三维尺寸173.2.2 测试Kinect深度值精度实验183.2.3 Kinect在水果分级系统上的应用构想194 总结与展望214.1 总结214.2 展望22参考文献23附录24致谢30华南农业大学本科生毕业设计成绩评定表I1 前言1.1 课题的研究背景随着全球信

10、息化的迅猛发展,数字农业已经发展成为现代农业的新潮流。数字农业是集农业科学、环境科学、计算机技术、通信技术和网络技术等众多科学技术于一体的高新技术系统,也是现代农业发展的新模式。自20世纪90年代以来,农作物遥感监测一直是遥感应用的一个重要课题,但遥感监测使用的是卫星空间监测,一方面,受气候条件影响而导致监测精度不高;另一方面,遥感监测是基于宏观的大面积农作物监测,不适合对单个农作物进行快速、准确和实时的小面积监测研究。伴随着计算机软硬件和图形图像处理技术的飞速发展,计算机视觉技术在农业中的应用越来越广泛,从而使得利用计算机视觉技术对农作物长势形态的监测成为可能。(江晓庆,肖德琴,张波,201

11、2)然而传统对农作物长势形态监测主要是通过繁琐的手工测量或采用安规的图像采集设备获取,比如CCD摄像机、数码相机、光坡扫面亿、双目设备等,这些方法一方面测量过于复杂不易操作,并且无法做到实时监测;另一方面测量过程可能会破坏农作物的生长及环境。本文将采用微软公司开发的Kinect for Windows运用于室外农作物的信息监测。Kinect作为一款廉价的传感器摄像头正被越来越多地应用到现实中,从游戏到商业运用,其应用前景正随着科研和商业开发而变得越来越广阔。本文尝试将Kinect运用到农产品采集方面的应用领域。1.2 Kinect在各领域的应用1.2.1 医疗领域的应用手术室环境对无菌要求非常

12、高,传统鼠标键盘等人机交互方式存在很多限制,例如需要定期消毒、无法在手术过程中进行操作等。Kinect体感操作可摆脱这些束缚,解放手术室外科医生、麻醉医生的双手,可在手术进行的过程中实现调阅病患病灶影像,通过手势放大、缩小图片,以及翻阅病历等操作,大大方便了医生手术,减少了手术室的人员流动。1.2.2 教育领域的应用Kinect“体感操作”这种新颖的交互方式,能够激发学习兴趣。一些设计控件结构的课件制作可结合Kinect进行体感操作,比如用Kinect展示宇宙星云,演示DNA、化学分子结构等,用Kinect蜡笔物理,使用Kinect手势绘图,通过体感控制所绘图形,并使之具有物理特性,比如重力,

13、吸引力等。1.2.3 机器人视觉与控制领域的应用四旋翼飞行器的“导航雷达”;地震搜救机器人控制;深海探测机器人控制;Kinect Robot,使用Kinect作为机器人的头,通过Kinect检测周围环境,并进行3D建模,来指导机器人的行动。1.2.4 体育运动竞技研究目前在很多运动竞技科目中,广泛采用了类似于“好莱坞”动作捕捉的技术,结合计算机视觉技术,对运动目标进行准确跟踪,并计算出肢体运动轨迹、角度、速度和加速度,以及跑位的轨迹和速度。这类运动经济分析的设备和系统同样价值不菲。利用Kinect的骨骼跟踪的技术,无须特制发光点(Marker),结合运动人体科学,用于体育竞技训练的三维动作捕捉

14、,从而提高运动员训练水平。1.2.5 娱乐领域的应用Kinect破解“初音”,将体感控制应用到漫画人物初音未来上;变身奥特曼,捕捉玩家骨架数据,虚拟为奥特曼的形态与之随动,并且附加一些特技效果。在应用Kinect的Xbox360体感游戏机中,“你就是控制器”这句标语得到了最直接的体现,无需其他操作器,仅用身体就能进行球类运动游戏、赛车游戏,从虚拟游戏中真实感得到了前所未有地增强。1.2.6 零售领域的应用Kinect试衣镜,这款基于Kinect体感技术的神奇的试衣镜,让客户可以快速的试穿衣服,提高销售效率和企业形象。2 基于Kinect开发的原理2.1 Kinect for Windows硬件

15、组成及其深度成像原理Kinect for Windows如图1所示,原型是微软公司2010年推出的XBOX360游戏机体感外设,Kinect原本是微软专为Xbox游戏机开发的体感外设,利用即使动态捕捉、影像辨识、麦克风输入、语音辨识、社群互动等功能让玩家摆脱传统游戏手柄的束缚,通过让自己的肢体控制游戏,并且实行与互联网玩家互动,分享图片、影音信息等功能。吉尼斯世界记录组织在其官方网站上宣布,微软 Xbox 360 最新体感外设 Kinect 凭借发布后首两个月800万台,平均每天133,333台的销量,被评为有史以来销售最快的电子消费产品,2012年7月美国科技博客网站BusinessInsi

16、der评选出本世纪10款最重要电子产品,Kinect榜上有名。Kinect 体感游戏在Xbox 360 上获得很好的评价,但是对于 Windows 平台上的开发却一直只能使用非官方的解决方案,例如 NKinect 配合CL NUI SDK ,但是微软终于在 2011 年 6 月推出了 Kinect for Windows SDK Beta,特别是可以使用 C# 与.NET Framework 4.0 来进行开发,这对 .NET 开发人员来说无疑是 2011 年最好的消息了。在2012年初微软正式发布了PC版Kinect体感外设也即Kinect for Windows ,微软授权这一版本的Kin

17、ect,不能用做商业开发,只能用作教学、科研或实验。本次设计使用的正是Kinect for Windows 。图1 Kinect for windows传感器2.1.1 Kinect for Windows 的硬件组成Kinect for Windows传感器关键部件如图2所示,下面列出了各关键部件的说明:(1)麦克风阵列:声音从4 个麦克风采集,同时过滤背景噪声,可定位声源。(2)红外投影机:主动投射近红外光谱。(3)红外摄像头:分析红外光谱,创建可视范围内的人体、物体的深度图像。(4)仰角控制马达:可编程控制仰角的马达,用于获取最佳视角。(5)USB 线缆:支持USB 2.0 接口,用于传

18、输彩色视频流、深度流、音频流等。必须使用外部电源,传感器才能充分发挥其功能。(Kinect 的功率达到了12W,而普通USB 一般是2.5W。)(6)彩色摄像头:用于拍摄视角范围内的彩色视频图像。(Jarrett Webb,James Ashley,2012)图2 Kinect的主要部件2.1.2 Kinect的核心芯片Kinect的核心是PrimeSense的PS1080 系统级芯片(SoC)。PS1080 SoC拥有超强的并行计算逻辑,可控制近红外光源,进行图像编码并主动投射近红外光谱。同时,通过一个标准的CMOS 图像传感器接收投影的Light Coding 红外光谱并且将编码后的反射斑

19、点图像传输给PS1080,PS1080 对此进行处理并生成深度图像。图4所示为PrimeSense的推荐设计。PS1080 SoC 芯片是一个多感应系统,能提供同步深度图像、彩色图像和音频流。PS1080 通过USB 2.0 物理层协议将所有数据传送到主机。PS1080 适用于各种主机CPU,所有深度获取算法均在PS1080 上运行,主机只需运行最低限度的USB 通信层。通过该设计,即使是计算能力有限的主机设备也能具备“深度图像获取力”。图3 PrimeSense推荐的设计2.1.3 Kinect for Windows的核心部件作为一款集成了诸多先进视觉技术的自然交互设备,Kinect fo

20、r Windows 主要零部件有近百个,其的核心部件是它前面的三个镜头,包括一个投影机和两个摄像头,如图5所示,从左向右分别是红外投影机和一组光学部件彩色摄像头和红外摄像头, 红外投影机是位于Kinect 最左侧的镜头,它与最右侧的红外摄像头配合使用。PS1080 SoC(系统级芯片)对红外光源进行控制,以便通过红外光编码影像放映场景。红外投影机的光源是一类普通激光光源,经过磨砂玻璃和红外滤光片,投射出近红外光,该光波长为830nm,可持续输出,符合IEC 60825-1 标准中的一级安全要求。红外摄像头是一个标准CMOS 影像传感器,负责接收放出的红外光,并将红外光编码影像传给PS1080。

21、PS1080 负责处理红外影像,然后逐帧生成准确的场景深度影像。Kinect 通过彩色摄像头和红外摄像头来获取外界的信息,为了生成更准确的传感器信息,PS1080 系统级芯片(SoC)会执行“PrimeSense 注册过程”,为了让深度影像和二维标准色彩影像相互对应,必须进行注册。注册就是将色彩影像和深度影像进行对应,产生像素相互对应的影像,即色彩影像中的每个像素分别与深度影像中的一个像素对应。这能让应用程序准确了解收到的色彩影像中每个像素的深度。所有传感器信息(深度影像、色彩影像和音频)通过一个USB 2.0 接口传送给主机,同时保证时序准确对准。通过Kinect SDK 可以获得同步的深度

22、图像和彩色图像数据流。图4 Kinect的核心部件2.1.4 Kinect 相关技术规格Kinect 传感器的有效视距如表1所示,传感器阵列规格规格表2 所示。相较于Kinect for XBOX360 ,Kinect for Windows 增加了近景模式(Near Mode),使得其所能探测的最小深度范围从原来的距离Kinect 0.8米扩大到距离Kinect 0.4米。Kinect 默认的彩色图像格式分辨率为640*480,深度图像则为320*240,帧率均为30帧每秒。表1 Kinect传感器有效视距传感器特性有效视距/m色彩和深度默认模式(0.84.0),近景模式(0.43.5)骨骼

23、跟踪默认模式(0.84.0),近景模式(0.43.5)表2 Kinect 传感器阵列规格传感器特性规格范围可视角度43垂直方向和57水平方向有效视野范围机械化倾斜范围(垂直方向)28帧率(深度和彩色图像数据流)30 帧每秒(FPS)深度图像(默认)QVGA(320240)彩色图像(默认)VGA(640480)音频格式16kHz, 16bit 单声道(PCM)音频输入特性4 个带有24bit 的数字模拟信号(ADC)和消除和处理噪声的麦克风阵列2.1.5 Kinect深度成像原理Kinect的核心技术也是属于计算机视觉技术范畴,只不过它们分析的不是彩色图像,而是目标物体的深度数据。Kinect

24、获取深度信息主要是通过红外投影机和红外摄像头的组合,投影和接收互为重叠,如图2.1所示。图5 Kinect红外摄像头视角2.1.6 深度测量技术Kinect的芯片采用的深度测量技术为Light Coding技术,属于结构光技术的一种,只是深度计算方式不一样,其测量基于光编码,投射已知的红外模式到场景中, 通过另外一个红外CMOS 成像器所捕获到的该模式的变形,从而最终来确定深度信息的摄像头Light Coding的光源称为激光散斑(Laser Speckles),是激光照射到粗糙物体或穿透毛玻璃后随机形成的衍射斑点。这些散斑具有的明显特点就是具有高度的随机性,而且会随着距离的不同而变换图案。也

25、就是说空间中任意两处的散斑图案都是不同的。只要在空间中打上这样的结构光,整个空间就都被做了标记,把一个物体放进这个空间,只要看看物体上面的散斑图案,就可以知道这个物体在什么位置了,在这之前还要先做一次光源标定。2.1.7 光源标定方法Kinect光源标定方法的官方解释是:每隔一段距离,取一个参考平面,把参考平面上的散斑图案记录下来。假设Kinect 规定的用户空间是距离摄像头14m 的范围,每隔1cm 取一个参考平面,那么标定下来我们就保存了300 幅散斑图像。标定的间距越小,精度越高,如图6所示。需要进行测量的时候,拍摄一幅待测量的散斑图像,将这幅图像和我们保存下来的300 幅参考图依次做互

26、相关运算,进而得到300幅相关度图像。而空间中的物体存在的位置,会在相关图像上会显示出峰值,把这些峰值叠加在一起,再经过插值运算后就会得到整个场景的三维形状了。图6 光源标定2.2 软件开发平台Visual Studio 是微软公司推出的开发环境,Visual Studio 可以用来创建 Windows 平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件,Visual Studio 2012荣获在软件界有奥斯卡奖之称的Jolt奖2013年生产力奖。2002 年,随着 .NET 口号的提出与 Windows XP / Office X

27、P 的发布,微软发布了 Visual Studio .NET(内部版本号为 7.0)。在这个版本的 Visual Studio 中,微软剥离了 Visual FoxPro 作为一个单独的开发环境以 Visual FoxPro 7.0 单独销售,同时取消了 Visual InterDev。与此同时,微软引入了建立在 .NET 框架上(版本1.0)的托管代码机制以及一门新的语言C#。2.2.1 .NET Framework(.NET 框架).NET框架是构建并运行应用程序的平台。它的主要组件包括公共语言运行库和.NET框架类库(FCL)。CLR抽象操作系统服务,并用作托管应用程序(managed

28、application)(其每一个动作都须经过CLR批准)的执行引擎。FCL提供托管应用程序将写入面向对象的API。编写.NET框架应用程序时,不必考虑windows API、MFC、ATL、COM或者其他工具和技术,只需要使用FCL。当然,也可以调用windows API或COM对象,但是这样必须将托管代码(managed code,CLR运行的代码)转换为非托管代码(unmanaged code,不需要CLR帮助的本机代码)。这种转换会降低系统性能,甚至可能被系统管理员否决。Microsoft.NET主要是关于XML,Web服务的,但.NET框架同样支持其他的编程模型。除了Web服务以外,

29、还可以利用它来编写控制台应用程序、GUI应用程序(Windows窗体)、Web应用程序(Web窗体),甚至Windows服务(大家熟知的NT服务)等。.NET框架同样能帮助使用Web服务即编写Web服务客户端。但是,用.NET框架编写的应用程序不一定必须使用Web服务。2.2.2 公共语言运行库.NET Framework的核心是其公共语言运行库(common language runtime,CLR),通常将在CLR控制下运行的代码成为托管代码(managed code)(Christian Nagel等,2010),托管代码执行核心中的引擎。运行库为托管代码提供各种服务,如跨语言集成、代码

30、访问安全性、对象生存期管理、调试和分析支持。当应用程序执行时,公共语言运行库也可用于提供一些服务并对这些服务进行管理,这些服务包括增强安全性、管理内存、进程、线程及语言集成。语言集成允许组件与XML Web服务完全集成,而不管使用的是何种编程语言。Microsoft提供了4种.NET编程语言,还有大量非Microsoft语言也可用于生成.NET应用程序。多数Windows可执行程序(.exe)使用的是非托管代码,这些代码无法提供安全性或内存管理方面的保证。在公共语言运行库下执行的程序代码即是托管代码,因为它依赖于公共语言运行库完成了如内存管理之类的许多低级别任务。使用托管代码能比非托管代码提供

31、更高级别的可靠性与安全性。图7显示了公共语言运行库组件的概念架构。基类库支持线程支持类型检验程序安全引擎调试引擎异常管理器COM封送拆收器类加载程序垃圾回收器代码管理器IL到本机代码编译器图7 公共语言运行库组件为了跨越托管代码与非托管代码的鸿沟,并使开发人员能够利用巨量的传统的Windows代码,公共语言运行库启用了互操作性。例如,公共语言运行库使得托管代码可以调用在非托管代码中定义的函数。除了作为运行库系统外,公共语言运行库还有另外一个重要功能是可以作为一台虚拟机。将托管代码应用程序编译成可执行程序的方式较之传统Windows应用程序有所不同。事实上,它们是以一种被称作Microsoft中

32、间语言或MSIL的中间语言中分布的。在程序安装时或在程序初次运行时,公共语言运行库完成编译。这一操作称作“即时编译”。2.2.3 类库类库提供了一组标准的系统服务。这些代码库将取代并提供与C+或Visual Basic中的Win32 API和Microsoft基础类(MFC)相同种类的函数。图8所示是.NET类库的概念框架。基类提供了诸如输入/输出、字符串操作、安全性管理、网络通信、线程管理、文本管理及其它函数等标准功能。 Data类支持稳定的数据管理,并纳入了SQL类以通过标准SQL接口处理稳定的数据存储。XML类使得XML数据处理、搜索与转换成为可能。XML Web服务类支持轻量级的分布式

33、组件开发,这些组件即便在遇到防火墙和网络地址转换(NAT)软件时也能正常运行。Web窗体包含的类使得用户可以迅速开发Web图形用户界面(GUI)应用程序。Windows窗体支持一组类,通过这些类可以开发基于windows的GUI应用程序,促进了托放式GUI开发,此外还为.NET框架的所有编程语言提供了一个公共的、一致的开发界面。Web窗体包含的类使得用户可以迅速开发Web图形用户界面(GUI)应用程序。Windows窗体支持一组类,通过这些类可以开发基于windows的GUI应用程序,促进了托放式GUI开发,此外还为.NET框架的所有编程语言提供了一个公共的、一致的开发界面。XML Web服务

34、Web窗体Windows窗体ASPNET数据和XML类基本框架类公共语言运行库Windows操作系统图8 .NET 类库2.2.4 C# 编程语言Microsoft引入了一种新的编程语言C#, C# 是微软开发的一种面向对象的编程语言,是微软.NET开发环境的重要组成部分。它是为生成在 .NET Framework 上运行的多种应用程序而设计的。C# 简单、功能强大、类型安全,而且是面向对象的。C# 凭借它的许多创新,在保持 C 样式语言的表示形式和优美的同时,实现了应用程序的快速开发。Visual Studio 包含 Visual C#,这是通过功能齐全的代码编辑器、项目模板、设计器、代码向

35、导、功能强大且易于使用的调试器以及其他工具实现的。通过 .NET Framework 类库,可以访问多种操作系统服务和其他精心设计的类,这些类可显著加快开发周期。2.3 搭建农业信息监测平台农产品信息实时监测平台是由硬件和软件平台组成,硬件主要包括Kinect摄像头和笔记本电脑以及连接PC和Kinect的USB转换数据线,其中,Kinect对PC的硬件要求是:双核2.66GHz或以上的处理器、2GB以上内存,受实际情况限制,本次设计使用的笔记本内含的是Intel Core i3的处理器,其运行速度为2.27GHz,经过尝试,虽然运行某些程序时会出现影像卡顿或者帧率不足30FPS的现象,但总体运

36、行情况良好,能达到基本输出彩色和深度影像的目的,Kinect对操作系统的要求是Windows 7的任意版本(32位或64位),同时也向上支持Windows 8,而且Kinect应用程序必须在一个原生操作环境下编译、运行,也就是说,暂时Kinect 还无法支持在虚拟机环境下安装。所以本次设计Kinect 是在Windows 7旗舰版(32位)操作系统下安装运行的。其软件要求:微软的Visual Studio 2010或Visual Studio 2012 开发环境、Microsoft .NET Framework 4.0或4.5 工具组件。本次设计安装的是Visual Studio 2010旗舰

37、版以及Microsoft .NET Framework 4.0。除此之外,PC端还需安装Kinect for Windows SDK(Software Development Kit,软件开发工具包,最新版本是v1.7)以及Developer Toolkit(开发者工具包)。Kinect 传感器实时获取农产品信息是通过Kinect传感器提供原始数据流(Raw Sensor Streams)给SDK,这些数据流包括深度数据流、彩色数据流和音频数据流,通过Kinect SDK可以直接获取这些原始传感器数据流,并在此基础上进行较为底层的应用开发,如图9所示。其中NUI Library是自然用户界面库

38、,库里面包含了众多NUI API(Application Programming Interface)即应用程序编程接口,Kinect for Windows SDK Beta包含两个重要的API,分别是NUI API和Audio API,其中NUI API是Kinect SDK的核心,Kinect for Windows SDK的系统架构如图10所示。系统架构各部分内容如下:(1) Kinect硬件接入层:Kinect硬件接入层由Kinect的传感马达、摄像头、麦克风阵列等硬件组件可以通过设备驱动程序进行管理和访问。Kinect传感器通过USB集线器连接到计算机上。(2) Microsoft

39、 Kinect设备驱动层:驱动分为内核模式和用户模式:内核模式(Kernel Mode)包括设备驱动程序、数据交互统一使用WinUSB数据栈,其中设备栈主要用于设备的配置和访问,WinUSB camera stack用于彩色图像和深度图像数据流的控制,USBAudio栈用于音频数据流控制;用户模式(User Mode)为SDK API提供了访问和控制接口。包括麦克风阵列、彩色及深度图像数据、设备每句功能、控制传动马达仰角。(3) NUI API:这是Kinect SDK的核心,用来处理彩色图像流、深度图像数据、骨骼跟踪和控制/管理Kinect设备等。Kinect for Windows版本的摄

40、像头支持近景模式。(4) DMO codec for mic array APIs:拓展Windows7上的麦克风阵列,用于波束成形和定位声源位置。(5) Windows Core Audio and Speech APIs: Windows 7上的音频、语音识别、多媒体等API。图9 应用程序与Kinect传感器及驱动程序、SDK之间的交互图10 Kinect for Windows SDK 系统架构3 Kinect在农业信息采集中的应用3.1 基于Kinect的水稻冠层分割水稻是世界上最重要的粮食作物之一,获得水稻的水分含量和营养状况是对其进行精确管理的前提。田间破坏性取样和实验室化学分许

41、虽然具有较高的准确度,但其处理周期长,并且需要消耗大量人力物力(王远等,2012)。利用计算机视觉、图像处理技术对水稻进行实时监测研究,能够对农作物的生长模型三维重建、长势状态分析、病虫害实时监测等研究提供有价值的数据依据。而Kinect与其他视觉设备相比较有着自己独特而且价值非凡的优势。往往在用视觉设备获取水稻图片的时候,包括土壤、水分等背景都是不希望获取到却难以摒弃的,而使用Kinect就可以做到这一点,只要根据深度信息对拍摄物体进行阈值运算,并选择显示水稻冠层,这在很大程度上减少了图片的预处理工作计算量,这点是Kinect在与其他视觉机器对比所具有的核心优势。3.1.1 水稻的彩色图像和

42、深度图像获取为了能够比较直观的观察水稻在深度摄像头中的显示效果,以便后续对水稻冠层图像进行分割,首先通过Kinect传感器的RGB摄像头和红外摄像头获取水稻的彩色图像和深度图像。通过Kinect SDK获取传感器的图像信息的流程如图11所示,下面是对工程主要函数的介绍:(1)建立WPF工程。在工程中添加Microsoft Kinect的引用。(2)初始化、启动Kinect设备。 编写startKinect()方法,选择Kinect设备,把Kinect命名为sensor,启用彩色图像、深度图像数据流,并注册事件:sensor. AllFramesReady +=new EventHandler

43、(sensor_AllFramesReady),该方法将保证彩色图像、深度图像的同步。(3)彩色图像流事件处理。Kinect的彩色图像为BGR32格式,一个像素为4个字节,前3字节分别对应B(Blue),G(Green),R(Red),最后1字节为阿尔法通道,代表其透明度。图像显示在用户界面中的colorImage控件中。(4)深度图像流事件处理。Kinect返回的只是一串深度数据流,而要直观地看到物体轮廓,这里将深度转换为灰度图像,为了深度图像能有更好的显示效果,这里深度图像也采用BGR32格式,使B、G、R的值相等,就会呈现出灰色图像,灰度值的范围是0255,0为黑色,255为白色,在这范

44、围之间根据距离Kinect传感器的距离而呈现不同程度的灰色,在视距之外的统一设为白色。图像显示在用户界面的depthImage控件中。(5)保存图片事件。注册鼠标按键事件,调用takeColorPicture_Click和takeDepthPicture_Click方法可以分别保存彩色和深度图像。(6)窗体启动事件。在Window_Loaded()事件中调用startKinect方法,保证运行程序时能首先打开窗体和启动Kinect传感器数据流。(7)窗体关闭事件。在Window_Closed事件中调用stopKinect方法。运行程序,水稻的彩色和深度图像效果如图12所示,图13是对宿舍进行拍

45、摄,对彩色和深度图像的分析如下:从图中可以发现,彩色图像虽然分辨率为640*480,但是显示效果还是不错的,深度图像是使用原始深度数据形成的图片,并没有经过任何图像处理,虽然由于Kinect的深度图像分辨率只能达到320*240,导致画面比较粗糙,噪声较大,但从图中可以发现,彩色图像上的物体基本都可以在深度图像中找到比较清晰的轮廓,不过会出现一些并非距离原因而导致的白色区域,经过分析,白色区域的出现主要是因为不能在物体表面形成反射散斑,也就不能得到该物体的深度信息,这是一种深度图像噪声。发生这种情况一般有以下几种原因: (1) 特殊材料,如透明玻璃、镜子、吸收红外线材料;(2) 特殊结构,不能

46、反射散斑。(陈晓明等,2013);(3) 距离原因:距离不在Kinect视距范围内,这里是硬编程使得Kinect传感器视距范围之外的都使其灰度值为255,即白色。(4)缝隙:由于红外线无法反射回来导致的盲区。(5)光滑物体的镜面反射:在Kinect以一定角度拍摄比较光滑平整的物体时由于镜面反射作用导致红外线无法被红外摄像头所接收,导致了深度数据的盲区。图11 彩色及深度影像显示流程图对比图12、图13的深度图发现,两者共同的特点是距离Kinect越近,颜色越深,面积大且越平整、密度越大显示的效果也越好,图13中较狭小的叶子部分显示不出来。图12 深度图像和彩色图像图13 彩色图像和深度图像3.

47、1.2 根据深度图像对水稻冠层进行分割为了分割获取水稻冠层图像,需要对深度图像的像素进行一一扫描并通过深度值来选取水稻冠层的像素坐标,然后将水稻冠层的深度坐标映射到RGB图像坐标中,然后将水稻冠层的RGB图像显示在白色幕布上。之所以需要将水稻的深度坐标映射到RGB图像坐标中,是因为RGB图像和深度图像分别是以RGB摄像头和红外摄像头为中心拍摄到的图片。正如人的左眼和右眼看到的景象不同,Kinect红外摄像头和彩色摄像头获取的图像帧也是有差异的。即使深度图像和彩色图像采用同样大小的分辨率,在同步注册事件中获取同一位置的深度图像和彩色图像的像素点也不是一一对应的。因此,如果需要得到包含颜色信息的三

48、维点云,就需要将深度图像通过一定的变换,对应到RGB图像中,如图14所示。最后再将分割出来的水稻冠层显示在白色幕布之上,如图15所示。图15 分割水稻冠层 图16 水稻RGB图像Kinect在水稻图像预处理应用上的优势:(1)可快速获取物体和场景的深度信息,实时性强;(2)像素灰度值仅与物体或场景跟深度摄像头距离有关,不受光照或阴影等因素影响,能够适应各种环境变化的情况,鲁棒性较强;(3)廉价,易普及;(4)设备除了能够获取深度图像,同时也能得到对应的RGB彩色图像,更有利于后期图形、图像的分析处理。3.2 基于Kinect的水果三维尺寸获取 Kinect的优点是同时拥有彩色摄像头和红外摄像头

49、,除了可以得到物体的彩色亮度信息外,还可以简单获取物体的尺寸大小,虽然传统摄像机拍摄出来的图像通过程序算法也可得出水果的二维直径等信息,但却无法得到其景深数据信息,而Kinect可以比较简单地获得水果的三维信息,甚至可以得到三维图像,实现立体还原。Kinect的这一特性可以应用在水果的分级系统上。3.2.1 获取水果的三维尺寸Kinect摄像头的水平和垂直视场角分别为57和43,通过获取物体的深度值,利用三角几何知识,就可以计算出物体的实际宽度和高度,示意图如图16所示,摄像头的视场角是一个以物体深度位置为底的等腰三角形,物体的深度值是这个等腰三角形的高。可以将这个等腰三角形以物体所在位置分为

50、两个直角三角形,这样就可以计算出底边的长度,然后就可以将像素的宽度转换为现实中的宽度。图16的公式中Wr为物体的实际宽度,Wp为物体在影像中两个像素的距离,b为等腰直角三角形底边边长的1/2,b可由深度值d乘以Kinect的水平视角的1/2的正切值得到,从而得到其实际宽度。通过同样的原理还可以计算物体的高度,只不过使用的是Kinect的垂直视角。如图17是运行objectMeasure工程测量苹果的尺寸,通过DepthImage_MouseWheel 、DepthImage_MouseLeftButtonDown和DepthImage_MouseRightButtonDown分别可获取桌面的深

51、度值和苹果两个点在屏幕上的索引值,再获取苹果的最近深度值,即可计算出苹果的高度和直径。图17 Kinect测量物体尺寸示意图图18 Kinect测量苹果尺寸3.2.2 测试Kinect深度值精度实验在测量水果三维尺寸的时候,Kinect的深度值精确与否会直接影响到整个测量的准确度,为了测试Kinect的深度值精度,如图18所示是检验Kinect精度所设计的一个实验。实验材料:Kinect作为测量仪器,用纸盒作为被测物体,纸壳表面比较光滑平整,适合作为测量对象,测量基准为标志过的胶布,将胶布贴在地砖上,由于地砖铺设得比较整齐,缝隙处形成一条笔直的直线。本次实验的范围从500mm到3000mm,实

52、验结果如图19所示,实际距离与测量深度基本吻合,如表3所示,实际距离与测量深度的误差随着距离加大而有所增加,但测量距离达到3米时,其误差也仅为53mm。实验结论:Kinect在测量深度值时误差较小,适宜测量水果的尺寸。图19 实际距离与深度值比较实验图20 实际距离与深度值的比较表3 实际距离与深度值的误差 实际距离/mm Kinect深度值/mm 绝对误差/mm 相对误差/%500 496 5 11000 985 15 1.51500 1479 21 1.42000 1975 25 1.252500 2452 48 1.923000 2947 53 1.763.2.3 Kinect在水果分级

53、系统上的应用构想目前对于水果分级系统已有比较成熟的研究,但传统的水果分级系统主要还是比较依赖于算法,只能通过单纯的二维彩色图像对水果进行分析从而进行分类,而使用Kinect传感器可以获得水果的三维立体信息,其采集的信息可以包括水果的以下特点:直径、高度、颜色。除此之外,根据三维立体还原还可以对水果进行无损检测。通过大量的样本训练和图像算法可以实现对以上特点的特征进行分级,只要对这些特征参量确定合适的决策分界线,就能对水果的等级分类建立一个更为精准的分类规则。实际分级中可以按图20的活动挡板来对水果进行分类装箱,图20是一个基于Kinect的水果分级系统的模拟示意图,核心部分是控制单元,控制单元

54、根据Kinect传感器拍摄输出的图像进行图像处理、智能识别、测量水果尺寸、分析水果色泽、进行无损检测,通过计算机判别水果等级,然后自动控制活动挡板实现水果的分类装箱。另外通过Kinect内置的麦克风阵列还可以实现语音控制,通过控制中心的语音识别处理对机器的运转进行控制,这也是Kinect在今后机器生产中的一大亮点,在节省了硬件资源的同时,也很大程度上方便了管理人员,可以真正地实现智能控制。如图21是一个构想的水果分级系统框架图,主要包含三个环节:Kinect传感器-计算机-控制单元。Kinect负责采集彩色、景深、音频信息,计算机对来自Kinect的信息进行处理并识别,控制单元执行最后的水果分

55、级工作。图21 基于Kinect的水果分级系统构想图人们认为分级机器人系统的发展有如下特点:(1)替代劳动力。正是因为有了替代劳动的机器,生产者就可以找到时间来智能地进行农业生产、扩大他们的农业规模,并有更多的时间来培养安全和高质量的产品。(2)客观的分级操作,没有人类的主观判断。当人类在进行分级操作的时候,主观判断和错误是不可避免的。分级操作的判断决定于人力、时间、地点、物理条件、环境条件等等。而机器在任何时间都会公平分级。(3)水果分级积聚下的数据对生产者来说具有可追溯性和农业指导性。因为计算机有大量内存,该机器系统就可以在数据库中存储大量精确数据,这些数据就可以让生产者们能够拥有精确农业

56、和智能农业的指导。为了食品的安全,预计这些数据可以对消费者、生产商和分销商开放。如果生产者的操作记录或者是其它农业机械的数据被加入到这个机器的分级信息中,那么追溯的数据将得到补偿。图22 基于Kinect的水果分级系统结构框图4 总结与展望4.1 总结微软公司开发的kinect开发的起始点是在游戏领域,由于微软采用了开源思想,经过各领域2年来的的开发来看,Kinect的应用领域非常广泛的,涉及到医疗、教育、动作捕捉、虚拟显示、增强现实、动漫设计乃至冰川研究等诸多领域,而且kinect 的应用必然会呈多样性趋势发展。就目前微软的桌面操作系统占有率、游戏机的占有率来说,kinect也已经是一台普及

57、率不低的体感设备。因此对kinect 的相关应用进行开发和挖掘的意义远远比游戏要大,而就目本次设计正是要开发Kinect在农产品信息采集方面的应用。本研究采用Kinect传感器尝试拓展运用到农产品信息采集的实时监测研究和在农产品采集方面的应用研究。经过实验表明,使用Kinect在农产品采集方面进行应用具有一定的可行性、创新性和优越性,获得了比较精确的图像景深数据信息,同时还阐述了Kinect在农产品采集方面的应用构想,如Kinect在水果采集机器人的应用、在水果分类系统上的应用以及在水稻图像预处理方面的应用,能够为后期农产品的三维立体重建、病虫害实时监测、水果分类系统等实际生产工作的研究提供有

58、价值的数据依据,为以后Kinect在农业应用上提供了理论基础和依据。4.2 展望本设计主要初步研究采用Kinect实时获取农产品信息和Kinect在农产品采集方面的应用, Kinect对获得的农产品景深信息的进一步处理和通过图像处理等方法对农产品的智能识别等工作还有待继续研究。随着现代农业越来越朝着数字化、精细化和智能化发展,快速、准确、实时的获取农产品长势形态及三维图像信息,已逐渐成为未来农业生产管理的必然趋势,而像Kinect这种廉价、使用简便的传感设备,随着测量精度的不断提高,也将会体现明显的优越性而逐渐成为农业图像应用研究领域的重要工具。29参 考 文 献陈晓明,蒋乐天,应忍冬.基于K

59、inect 深度信息的实时三维重建和滤波算法研究J:计算机应用研究,2013,30(4):1217.江晓庆,肖德琴,张波,等.基于Kinect的农作物长势深度图像实时获取算法J. 广东农业科学,2012,23:49-54.余涛.Kinect应用开发实战 用最自然的方式与机器对话M.北京:机械工业出版社,2012:78-80.张荻.Kinect应用领域的探讨J.物流工程与管理,2012,34(6):39-41.Christian Nagel, Bill Evjen, Jay Glynn, et al. Professional C#4 and .NET4M. Indianapolis:Wrox,

60、 2010:4.Jarrett Webb,James Ashley. Beginning Kinect Programming with the Microsoft Kinect SDKM, California:Apress, 2012:52-55.附 录物体图像分割源程序namespace Microsoft.Samples.Kinect.Segmentation using System; using System.Diagnostics; using System.Globalization; using System.IO; using System.Windows; using S

61、ystem.Windows.Media; using System.Windows.Media.Imaging;using Microsoft.Kinect; /主窗口.XAML的交互逻辑 public partial class MainWindow : Window /深度流格式 private const DepthImageFormat DepthFormat = DepthImageFormat.Resolution320x240Fps30; / 彩色流格式 private const ColorImageFormat ColorFormat = ColorImageFormat.RgbResolution640x480Fps30; / 使能Kinect传感器 private KinectSensor sensor; /容纳彩色信息的位图 private WriteableBitmap colorBitmap; /容纳不透明蒙板信息的位图 private WriteableBitmap playe

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!