论文部分内容阅读
果树修剪是果树管理过程中的关键技术,可以有效促进果树生长,保持良好树体结构,提高果实产量和品质。目前,新一代果农和果树专业学生学习果树修剪技术多通过书籍、视频、科技人员指导等,然而,果树修剪技术性强、修剪方法灵活,且其不可逆性决定了初学者少有机会实际操作,难以掌握正确的修剪方法。因此,研究并设计一个方便直观、易于操作、过程可逆的果树修剪训练平台具有重要应用价值。本文在分析传统果树修剪技术教学方式的基础上,引入Kinect体感设备,研究虚拟果树枝条快速修剪方法、自然人机交互技术在虚拟果树修剪上的实现方法,开发基于手势交互的虚拟果树修剪系统。本文的主要工作和结论如下:(1)虚拟果树枝条快速修剪方法研究。分析比较几种常见三维拾取方法,根据已有三维果树模型特点及虚拟果树修剪对拾取精度的需求,提出一种结合帧缓冲区对象的射线拾取方法。首先通过创建帧缓冲区对象,构建用户不可见的虚拟屏幕,获取选中枝干单元索引,然后计算该枝干单元与拾取射线之间的交点,从而得到拾取点的空间位置。最后,结合拾取点的坐标及果树模型拓扑结构,寻找符合自然剪枝效果的待修剪枝条集合,修改果树模型数据,实现了虚拟果树枝条的快速、准确修剪。该方法以空间中的点为拾取精度,且避免了传统射线拾取法中大量的三维空间物体的求交运算,可有效提高运算速度与枝条拾取精度。(2)虚拟修剪控制手势交互设计。结合虚拟果树修剪应用需求和人机交互设计原则,设计了9种虚拟修剪控制手势。通过Kinect获取人体骨骼数据,用状态机匹配识别手势类型,建立不同手势与鼠标和键盘事件之间的映射关系,当系统识别出用户手势后,根据控制指令触发相应操作事件,实现了控制手势交互代替鼠标和键盘交互。并针对光标抖动造成细小枝条选择和修剪失败的问题,提出了骨骼平滑和对象捕捉的处理方法。(3)虚拟果树交互式修剪系统的设计与实现。本文以Visual Studio 2010为开发平台,使用C++和C#语言完成虚拟果树修剪模块和人机交互模块的算法实现,采用WPF框架进行系统界面设计,构建了手势交互的虚拟果树修剪系统。该系统包含虚拟修剪练习、果树修剪知识和系统介绍三个模块。对系统的手势识别率和交互实时性进行试验,结果表明,基于Kinect的虚拟果树修剪系统手势识别平均准确率为97%,手势控制指令的响应时间在32.5~193.1ms之间,能够满足虚拟果树修剪应用需求,为初学者学习果树修剪技术提供了一种方便直观、低成本的新途径。