Kinect在农产品采集方面的应用毕业设计.docx
- 文档编号:26988887
- 上传时间:2023-06-24
- 格式:DOCX
- 页数:44
- 大小:1.61MB
Kinect在农产品采集方面的应用毕业设计.docx
《Kinect在农产品采集方面的应用毕业设计.docx》由会员分享,可在线阅读,更多相关《Kinect在农产品采集方面的应用毕业设计.docx(44页珍藏版)》请在冰豆网上搜索。
Kinect在农产品采集方面的应用毕业设计
本科毕业设计
Kinect在农产品采集方面的应用
摘要
快速、准确、实时获取农作物涨势图像信息已经成为数字农业生产管理的趋势和必要手段,而深度图像信息包含彩色图像所没有的三维信息,是农作物信息采集的重要补充。
本文采用微软公司开发的一款廉价传感器设备KinectforWindows尝试用于农产品采集方面的应用,包括在水稻图像的预处理、水果分级系统等方面的应用,旨在于将高科技技术应用于精细农作业的生产与管理,让农作业的生产与管理更加科学与方便化。
本文先是对Kinect在各个领域上的应用进行阐述,然后深入探究了Kinect的构造和工作原理,继而对Kinect的深度成像进行了初步研究,论文在水稻冠层和水果分类做了初步探索,利用Kinect获取水稻及水果的RGBD图像,根据其深度信息,从空间维度,将水稻冠层进行快速分割、提取,为后续水稻冠层信息分析打下基础。
利用深度信息及几何原理获取水果的高度和直径,可为水果分级提供依据。
关键词:
KinectRGBD水稻冠层分割深度信息
Kinectintheacquisitionofagriculturalproducts
RuanXiaoZhao
(CollegeofEngineering,SouthChinaAgriculturalUniversity,Guangzhou510642,China)
Abstract:
Fast,accurate,real-timeacquisitionofcropriseimageinformationhasbecomeanecessarymeansofdigitalagricultureproductionandmanagementtrend,butthedepthimageinformationcontainsno3Dinformationofcolorimage,isanimportantsupplementtothecropinformationcollection.Thispaperusesalow-costsensordevicescalledKinectforWindowsdevelopedbytheMicrosoftCorpattemptstoapplicationforagriculturalproductsoftheacquisition,includingtheapplicationinriceimagepreprocessing,fruitgradingsystem,aimedattheproductionandmanagementofhigh-techinfineagriculturalwork,maketheproductionandmanagementofagriculturalworkmorescientificandconvenient.
ThispaperfirstelaboratesontheapplicationofKinectinvariousfields,andthenin-depthstudyofthestructureandworkingprincipleofKinect,andthentoKinectdepthimagingisstudied,thepapermadeapreliminaryexplorationinricecanopyandfruitclassification,RGBDimageacquisitionofriceandfruitbyKinect,accordingtoitsdepthinformation,fromthespatialdimension,thericecanopyfastsegmentation,extraction,analysistolaythefoundationforsubsequentricecanopyinformation.Thefruittoobtainusingdepthinformationandgeometricprincipleofheightanddiameter,canprovidethebasisfortheclassificationoffruit.
Keywords:
kinectRGBDricecanopysegmentationdepthinformation
华南农业大学本科生毕业设计成绩评定表
1前言
1.1课题的研究背景
随着全球信息化的迅猛发展,数字农业已经发展成为现代农业的新潮流。
数字农业是集农业科学、环境科学、计算机技术、通信技术和网络技术等众多科学技术于一体的高新技术系统,也是现代农业发展的新模式。
自20世纪90年代以来,农作物遥感监测一直是遥感应用的一个重要课题,但遥感监测使用的是卫星空间监测,一方面,受气候条件影响而导致监测精度不高;另一方面,遥感监测是基于宏观的大面积农作物监测,不适合对单个农作物进行快速、准确和实时的小面积监测研究。
伴随着计算机软硬件和图形图像处理技术的飞速发展,计算机视觉技术在农业中的应用越来越广泛,从而使得利用计算机视觉技术对农作物长势形态的监测成为可能。
(江晓庆,肖德琴,张波,2012)
然而传统对农作物长势形态监测主要是通过繁琐的手工测量或采用安规的图像采集设备获取,比如CCD摄像机、数码相机、光坡扫面亿、双目设备等,这些方法一方面测量过于复杂不易操作,并且无法做到实时监测;另一方面测量过程可能会破坏农作物的生长及环境。
本文将采用微软公司开发的KinectforWindows运用于室外农作物的信息监测。
Kinect作为一款廉价的传感器摄像头正被越来越多地应用到现实中,从游戏到商业运用,其应用前景正随着科研和商业开发而变得越来越广阔。
本文尝试将Kinect运用到农产品采集方面的应用领域。
1.2Kinect在各领域的应用
1.2.1医疗领域的应用
手术室环境对无菌要求非常高,传统鼠标键盘等人机交互方式存在很多限制,例如需要定期消毒、无法在手术过程中进行操作等。
Kinect体感操作可摆脱这些束缚,解放手术室外科医生、麻醉医生的双手,可在手术进行的过程中实现调阅病患病灶影像,通过手势放大、缩小图片,以及翻阅病历等操作,大大方便了医生手术,减少了手术室的人员流动。
1.2.2教育领域的应用
Kinect“体感操作”这种新颖的交互方式,能够激发学习兴趣。
一些设计控件结构的课件制作可结合Kinect进行体感操作,比如用Kinect展示宇宙星云,演示DNA、化学分子结构等,用Kinect蜡笔物理,使用Kinect手势绘图,通过体感控制所绘图形,并使之具有物理特性,比如重力,吸引力等。
1.2.3机器人视觉与控制领域的应用
四旋翼飞行器的“导航雷达”;地震搜救机器人控制;深海探测机器人控制;KinectRobot,使用Kinect作为机器人的头,通过Kinect检测周围环境,并进行3D建模,来指导机器人的行动。
1.2.4体育运动竞技研究
目前在很多运动竞技科目中,广泛采用了类似于“好莱坞”动作捕捉的技术,结合计算机视觉技术,对运动目标进行准确跟踪,并计算出肢体运动轨迹、角度、速度和加速度,以及跑位的轨迹和速度。
这类运动经济分析的设备和系统同样价值不菲。
利用Kinect的骨骼跟踪的技术,无须特制发光点(Marker),结合运动人体科学,用于体育竞技训练的三维动作捕捉,从而提高运动员训练水平。
1.2.5娱乐领域的应用
Kinect破解“初音”,将体感控制应用到漫画人物——初音未来上;变身奥特曼,捕捉玩家骨架数据,虚拟为奥特曼的形态与之随动,并且附加一些特技效果。
在应用Kinect的Xbox360体感游戏机中,“你就是控制器”这句标语得到了最直接的体现,无需其他操作器,仅用身体就能进行球类运动游戏、赛车游戏,从虚拟游戏中真实感得到了前所未有地增强。
1.2.6零售领域的应用
Kinect试衣镜,这款基于Kinect体感技术的神奇的试衣镜,让客户可以快速的试穿衣服,提高销售效率和企业形象。
2基于Kinect开发的原理
2.1KinectforWindows硬件组成及其深度成像原理
KinectforWindows如图1所示,原型是微软公司2010年推出的XBOX360游戏机体感外设,Kinect原本是微软专为Xbox游戏机开发的体感外设,利用即使动态捕捉、影像辨识、麦克风输入、语音辨识、社群互动等功能让玩家摆脱传统游戏手柄的束缚,通过让自己的肢体控制游戏,并且实行与互联网玩家互动,分享图片、影音信息等功能。
吉尼斯世界记录组织在其官方网站上宣布,微软Xbox360最新体感外设Kinect凭借发布后首两个月800万台,平均每天133,333台的销量,被评为有史以来销售最快的电子消费产品,2012年7月美国科技博客网站BusinessInsider评选出本世纪10款最重要电子产品,Kinect榜上有名。
Kinect体感游戏在Xbox360上获得很好的评价,但是对于Windows平台上的开发却一直只能使用非官方的解决方案,例如NKinect配合CLNUISDK,但是微软终于在2011年6月推出了KinectforWindowsSDKBeta,特别是可以使用C#与.NETFramework4.0来进行开发,这对.NET开发人员来说无疑是2011年最好的消息了。
在2012年初微软正式发布了PC版Kinect体感外设也即KinectforWindows,微软授权这一版本的Kinect,不能用做商业开发,只能用作教学、科研或实验。
本次设计使用的正是KinectforWindows。
图1Kinectforwindows传感器
2.1.1KinectforWindows的硬件组成
KinectforWindows传感器关键部件如图2所示,下面列出了各关键部件的说明:
(1)麦克风阵列:
声音从4个麦克风采集,同时过滤背景噪声,可定位声源。
(2)红外投影机:
主动投射近红外光谱。
(3)红外摄像头:
分析红外光谱,创建可视范围内的人体、物体的深度图像。
(4)仰角控制马达:
可编程控制仰角的马达,用于获取最佳视角。
(5)USB线缆:
支持USB2.0接口,用于传输彩色视频流、深度流、音频流等。
必须使用外部电源,传感器才能充分发挥其功能。
(Kinect的功率达到了12W,而普通USB一般是2.5W。
)
(6)彩色摄像头:
用于拍摄视角范围内的彩色视频图像。
(JarrettWebb,JamesAshley,2012)
图2Kinect的主要部件
2.1.2Kinect的核心芯片
Kinect的核心是PrimeSense的PS1080系统级芯片(SoC)。
PS1080SoC拥有超强的并行计算逻辑,可控制近红外光源,进行图像编码并主动投射近红外光谱。
同时,通过一个标准的CMOS图像传感器接收投影的LightCoding™红外光谱并且将编码后的反射斑点图像传输给PS1080,PS1080对此进行处理并生成深度图像。
图4所示为PrimeSense的推荐设计。
PS1080SoC芯片是一个多感应系统,能提供同步深度图像、彩色图像和音频流。
PS1080通过USB2.0物理层协议将所有数据传送到主机。
PS1080适用于各种主机CPU,所有深度获取算法均在PS1080上运行,主机只需运行最低限度的USB通信层。
通过该设计,即使是计算能力有限的主机设备也能具备“深度图像获取力”。
图3PrimeSense推荐的设计
2.1.3KinectforWindows的核心部件
作为一款集成了诸多先进视觉技术的自然交互设备,KinectforWindows主要零部件有近百个,其的核心部件是它前面的三个镜头,包括一个投影机和两个摄像头,如图5所示,从左向右分别是红外投影机和一组光学部件—彩色摄像头和红外摄像头,红外投影机是位于Kinect最左侧的镜头,它与最右侧的红外摄像头配合使用。
PS1080SoC(系统级芯片)对红外光源进行控制,以便通过红外光编码影像放映场景。
红外投影机的光源是一类普通激光光源,经过磨砂玻璃和红外滤光片,投射出近红外光,该光波长为830nm,可持续输出,符合IEC60825-1标准中的一级安全要求。
红外摄像头是一个标准CMOS影像传感器,负责接收放出的红外光,并将红外光编码影像传给PS1080。
PS1080负责处理红外影像,然后逐帧生成准确的场景深度影像。
Kinect通过彩色摄像头和红外摄像头来获取外界的信息,为了生成更准确的传感器信息,PS1080系统级芯片(SoC)会执行“PrimeSense注册过程”,为了让深度影像和二维标准色彩影像相互对应,必须进行注册。
注册就是将色彩影像和深度影像进行对应,产生像素相互对应的影像,即色彩影像中的每个像素分别与深度影像中的一个像素对应。
这能让应用程序准确了解收到的色彩影像中每个像素的深度。
所有传感器信息(深度影像、色彩影像和音频)通过一个USB2.0接口传送给主机,同时保证时序准确对准。
通过KinectSDK可以获得同步的深度图像和彩色图像数据流。
图4Kinect的核心部件
2.1.4Kinect相关技术规格
Kinect传感器的有效视距如表1所示,传感器阵列规格规格表2所示。
相较于KinectforXBOX360,KinectforWindows增加了近景模式(NearMode),使得其所能探测的最小深度范围从原来的距离Kinect0.8米扩大到距离Kinect0.4米。
Kinect默认的彩色图像格式分辨率为640*480,深度图像则为320*240,帧率均为30帧每秒。
表1Kinect传感器有效视距
传感器特性
有效视距/m
色彩和深度
默认模式(0.8~4.0),近景模式(0.4~3.5)
骨骼跟踪
默认模式(0.8~4.0),近景模式(0.4~3.5)
表2Kinect传感器阵列规格
传感器特性
规格范围
可视角度
43°垂直方向和57°水平方向有效视野范围
机械化倾斜范围(垂直方向)
±28°
帧率(深度和彩色图像数据流)
30帧每秒(FPS)
深度图像(默认)
QVGA(320×240)
彩色图像(默认)
VGA(640×480)
音频格式
16kHz,16bit单声道(PCM)
音频输入特性
4个带有24bit的数字模拟信号(ADC)和消除和处理噪声的麦克风阵列
2.1.5Kinect深度成像原理
Kinect的核心技术也是属于计算机视觉技术范畴,只不过它们分析的不是彩色图像,而是目标物体的深度数据。
Kinect获取深度信息主要是通过红外投影机和红外摄像头的组合,投影和接收互为重叠,如图2.1所示。
图5Kinect红外摄像头视角
2.1.6深度测量技术
Kinect的芯片采用的深度测量技术为LightCoding技术,属于结构光技术的一种,只是深度计算方式不一样,其测量基于光编码,投射已知的红外模式到场景中,通过另外一个红外CMOS成像器所捕获到的该模式的变形,从而最终来确定深度信息的摄像头LightCoding的光源称为激光散斑(LaserSpeckles),是激光照射到粗糙物体或穿透毛玻璃后随机形成的衍射斑点。
这些散斑具有的明显特点就是具有高度的随机性,而且会随着距离的不同而变换图案。
也就是说空间中任意两处的散斑图案都是不同的。
只要在空间中打上这样的结构光,整个空间就都被做了标记,把一个物体放进这个空间,只要看看物体上面的散斑图案,就可以知道这个物体在什么位置了,在这之前还要先做一次光源标定。
2.1.7光源标定方法
Kinect光源标定方法的官方解释是:
每隔一段距离,取一个参考平面,把参考平面上的散斑图案记录下来。
假设Kinect规定的用户空间是距离摄像头1~4m的范围,每隔1cm取一个参考平面,那么标定下来我们就保存了300幅散斑图像。
标定的间距越小,精度越高,如图6所示。
需要进行测量的时候,拍摄一幅待测量的散斑图像,将这幅图像和我们保存下来的300幅参考图依次做互相关运算,进而得到300幅相关度图像。
而空间中的物体存在的位置,会在相关图像上会显示出峰值,把这些峰值叠加在一起,再经过插值运算后就会得到整个场景的三维形状了。
图6光源标定
2.2软件开发平台
VisualStudio是微软公司推出的开发环境,VisualStudio可以用来创建Windows平台下的Windows应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和Office插件,VisualStudio2012荣获在软件界有奥斯卡奖之称的Jolt奖2013年生产力奖。
2002年,随着.NET口号的提出与WindowsXP/OfficeXP的发布,微软发布了VisualStudio.NET(内部版本号为7.0)。
在这个版本的VisualStudio中,微软剥离了VisualFoxPro作为一个单独的开发环境以VisualFoxPro7.0单独销售,同时取消了VisualInterDev。
与此同时,微软引入了建立在.NET框架上(版本1.0)的托管代码机制以及一门新的语言C#。
2.2.1.NETFramework(.NET框架)
.NET框架是构建并运行应用程序的平台。
它的主要组件包括公共语言运行库和.NET框架类库(FCL)。
CLR抽象操作系统服务,并用作托管应用程序(managedapplication)(其每一个动作都须经过CLR批准)的执行引擎。
FCL提供托管应用程序将写入面向对象的API。
编写.NET框架应用程序时,不必考虑windowsAPI、MFC、ATL、COM或者其他工具和技术,只需要使用FCL。
当然,也可以调用windowsAPI或COM对象,但是这样必须将托管代码(managedcode,CLR运行的代码)转换为非托管代码(unmanagedcode,不需要CLR帮助的本机代码)。
这种转换会降低系统性能,甚至可能被系统管理员否决。
Microsoft.NET主要是关于XML,Web服务的,但.NET框架同样支持其他的编程模型。
除了Web服务以外,还可以利用它来编写控制台应用程序、GUI应用程序(Windows窗体)、Web应用程序(Web窗体),甚至Windows服务(大家熟知的NT服务)等。
.NET框架同样能帮助使用Web服务——即编写Web服务客户端。
但是,用.NET框架编写的应用程序不一定必须使用Web服务。
2.2.2公共语言运行库
.NETFramework的核心是其公共语言运行库(commonlanguageruntime,CLR),通常将在CLR控制下运行的代码成为托管代码(managedcode)(ChristianNagel等,2010),托管代码执行核心中的引擎。
运行库为托管代码提供各种服务,如跨语言集成、代码访问安全性、对象生存期管理、调试和分析支持。
当应用程序执行时,公共语言运行库也可用于提供一些服务并对这些服务进行管理,这些服务包括增强安全性、管理内存、进程、线程及语言集成。
语言集成允许组件与XMLWeb服务完全集成,而不管使用的是何种编程语言。
Microsoft提供了4种.NET编程语言,还有大量非Microsoft语言也可用于生成.NET应用程序。
多数Windows可执行程序(.exe)使用的是非托管代码,这些代码无法提供安全性或内存管理方面的保证。
在公共语言运行库下执行的程序代码即是托管代码,因为它依赖于公共语言运行库完成了如内存管理之类的许多低级别任务。
使用托管代码能比非托管代码提供更高级别的可靠性与安全性。
图7显示了公共语言运行库组件的概念架构。
图7公共语言运行库组件
为了跨越托管代码与非托管代码的鸿沟,并使开发人员能够利用巨量的传统的Windows代码,公共语言运行库启用了互操作性。
例如,公共语言运行库使得托管代码可以调用在非托管代码中定义的函数。
除了作为运行库系统外,公共语言运行库还有另外一个重要功能是可以作为一台虚拟机。
将托管代码应用程序编译成可执行程序的方式较之传统Windows应用程序有所不同。
事实上,它们是以一种被称作Microsoft中间语言或MSIL的中间语言中分布的。
在程序安装时或在程序初次运行时,公共语言运行库完成编译。
这一操作称作“即时编译”。
2.2.3类库
类库提供了一组标准的系统服务。
这些代码库将取代并提供与C++或VisualBasic中的Win32API和Microsoft基础类(MFC)相同种类的函数。
图8所示是.NET类库的概念框架。
基类提供了诸如输入/输出、字符串操作、安全性管理、网络通信、线程管理、文本管理及其它函数等标准功能。
Data类支持稳定的数据管理,并纳入了SQL类以通过标准SQL接口处理稳定的数据存储。
XML类使得XML数据处理、搜索与转换成为可能。
XMLWeb服务类支持轻量级的分布式组件开发,这些组件即便在遇到防火墙和网络
地址转换(NAT)软件时也能正常运行。
Web窗体包含的类使得用户可以迅速开发Web图形用户界面(GUI)应用程序。
Windows窗体支持一组类,通过这些类可以开发基于windows的GUI应用程序,促进了托放式GUI开发,此外还为.NET框架的所有编程语言提供了一个公共的、一致的开发界面。
Web窗体包含的类使得用户可以迅速开发Web图形用户界面(GUI)应用程序。
Windows窗体支持一组类,通过这些类可以开发基于windows的GUI应用程序,促进了托放式GUI开发,此外还为.NET框架的所有编程语言提供了一个公共的、一致的开发界面。
图8.NET类库
2.2.4C#编程语言
Microsoft引入了一种新的编程语言——C#,C#是微软开发的一种面向对象的编程语言,是微软.NET开发环境的重要组成部分。
它是为生成在.NETFramework上运行的多种应用程序而设计的。
C#简单、功能强大、类型安全,而且是面向对象的。
C#凭借它的许多创新,在保持C样式语言的表示形式和优美的同时,实现了应用程序的快速开发。
VisualStudio包含VisualC#,这是通过功能齐全的代码编辑器、项目模板、设计器、代码向导、功能强大且易于使用的调试器以及其他工具实现的。
通过.NETFramework类库,可以访问多种操作系统服务和其他精心设计的类,这些类可显著加快开发周期。
2.3搭建农业信息监测平台
农产品信息实时监测平台是由硬件和软件平台组成,硬件主要包括Kinect摄像头和笔记本电脑以及连接PC和Kinect的USB转换数据线,其中,Kinect对PC的硬件要求是:
双核2.66GHz或以上的处理器、2GB以上内存,受实际情况限制,本次设计使用的笔记本内含的是IntelCorei3的处理器,其运行速度
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Kinect 农产品 采集 方面 应用 毕业设计