APP下载

基于数据驱动的虚拟场景搭建及模型检索优化方法*

2022-08-12容秀婵邹湘军李承恩林俊强姚书杰邹天龙

中国农机化学报 2022年8期
关键词:光照果树果园

容秀婵,邹湘军, ,李承恩,林俊强,姚书杰,邹天龙

(1. 华南农业大学工程学院,广州市,510642; 2. 佛山市中科农业机器人与智慧农业创新研究院,广东佛山,528200)

0 引言

我国果园面积和水果产量均居世界第一,但我国果园管理总体水平与国际先进国家相差比较大,尤其是果园机械化、信息化和智能化管理技术差距更大[1]。为了适应不断发展的林果产业种植生产规模,果园全生命周期管理的技术创新及革新是目前亟需解决的难题之一[2-3]。我国果园多是在丘陵山地、平原、农田上,山路崎岖,地形变化大,导致果园作业难以智能化、机械化进行,如施肥、采摘、运输产品等。其次,农业机械化水平仍比较落后,地形复杂,难以制定比较方便、通用的机械工具。因此,依托虚拟现实的建模与仿真技术[4-6],构建虚拟果园场景,发展信息化、智能化、机械化果园,是加速缩短与发达国家差距的迫切需要,对于加快推进农业农村现代化具有重要的意义[7]。同时信息化技术、虚拟现实技术、交互技术的不断发展[8-9],与虚拟现实技术相结合的虚拟环境实验平台成为虚拟仿真技术发展的新方向[10],能有效加强信息化、智能化场景管理水平以及节约成本。

虚拟现实技术不仅推动工业的发展,还可以对农业的发展具有一定的推广作用,通过该技术建立与农业相关的数据库,农业生产可视化[11-12]。华南农业大学邹湘军等[13]开发了采摘机械手虚拟设计与仿真系统,实现了虚拟环境下的机械手对目标定位和采摘仿真实验。罗陆锋等[14]基于虚拟现实平台EON开发出采摘机器人虚拟仿真系统,葡萄采摘的成功率在85%以上,此平台验证了通过虚拟机器人采摘葡萄进行算法验证及训练,验证了虚拟平台内对现实采摘算法开发过程的效率提升,有效缩短开发周期。刘旭泰[15]利用Unity3D构建了番石榴采摘的虚拟环境,用于检测所设计的末端执行器的工作性能。Henten等[16]搭建了黄瓜采摘机器人采摘仿真平台。Saudreau等[17]提出一种根据气候数据对水果温度动态进行建模的方法,该模型基于苹果树的三维虚拟表示,并将三维虚拟树与基于物理的果实温度动态模型联系起来。

综上所述,以果园场景平台搭建为例,针对目前果园的需求与流程,以Unity3D为场景的开发平台,结合典型开源关系型数据库MySQL为三维模型特征信息参数存储载体,并建立哈希索引列。在数据驱动下,快速构建出符合需求的三维模型,实现了大量三维模型的快速检索调用。以果园场景为例,将天气系统仿真场景数据、多种类果树模型数据、实景扫描地形数据导入数据库中,构建果园场景数据库,快速创建虚拟果园场景仿真平台。该平台还留有六自由度机械臂关节运动的通用接口,以及拖拉机、收割机等运动控制脚本,方便后期用户做试验仿真时使用。

1 系统设计方案

随着虚拟仿真技术的广泛应用,在虚拟仿真过程中需要对大量数据传输和存储。采用系统与数据库连接的方法,从而达到系统与数据库的双向交互,该方法具有简单、高效等特点。由3ds Max建立并渲染后的三维模型,保存为虚拟引擎软件Unity3D可支持导入的FBX、OBJ等格式文件。再添加一些场景元素,即可搭建逼真的虚拟场景平台。基于知识的果园虚拟场景系统的搭建,以数据库为场景模型存储方式,其整体架构设计如图1所示。

图1 虚拟果园仿真平台系统整体架构Fig. 1 Overall architecture of the virtual orchard simulation platform system

果园场景数据库的主要设计过程如下。

1) 归纳整理果园场景中主要实体的特征值,提取后构建果园知识库[18]。本文的果园知识获取主要通过人工方式,从文献收集、实例模型中整理出果园各实体的特征等设计知识,提炼后构建果园知识库。

2) 果园知识参数化建模。模型参数化设计主要是由一个或几个参数约束其调用后实例化的对象模型信息,此参数集合与设计对象的模型特征信息存在对应关系,通过修改参数值可以驱动原有模型生成具备变化的模型。根据果园知识库,将其主要特征值进行参数化建模,并构建果园场景特征信息数据库。

3) 利用三维建模软件3ds Max对果园中的三维场景模型建模,将虚拟场景模型保存为FBX、OBJ等格式文件即可导入Unity3D中进行渲染优化,并构建果园三维模型库。

4) 将Unity3D与数据库双向通信交互,并构建果园场景数据库,用户可根据需求快速检索调用所需的虚拟场景模型。例如,通过参数调用成熟苹果的模型实例化,从数据库中随机调用成熟的苹果材质;从数据库中随机调用苹果的三维模型;从数据库中计算获取成熟苹果的生长概率分布等。

2 虚拟场景模型参数化建模

参数化建模是计算机辅助设计技术在长期发展过程中产生的课题,它是实现智能化设计的必要技术。数据量庞大、种类繁多、存储方式、检索、分类调用、数据管理及可移植性,是参数化建模亟需解决的难题之一。虚拟场景模型的存储、检索的关键在于充分利用模型的特征信息。虚拟场景模型的特征信息主要包括几何特征、形状特征和纹理特征等,现阶段提取特征的方法包括人工设计特征描述提取技术和基于学习的特征描述符提取技术。本文参数化建模阶段采用人工设计特征描述提取技术,根据三维模型的外表特征,构建参数化模型。

2.1 数据库设计

数据库设计是将数据实体以及实体间的关系进行结构化设计,本文采用关系型数据库进行数据存储。关系型数据库是由二维表及它们之间的联系组成的数据组织,其原则包括原子性(automaticity)、一致性(consistency)、隔离性(isolation)和持久性(durability)。关系型数据库拥有技术发展更成熟、更标准的数据模式和接口应用更广泛等优点,更适用于建立参数化模型数据库[19]。结合关系型数据库管理系统MySQL,其拥有轻量级、性能高、开源[20]等特点,对于中小型系统,可降低成本,提升管理调用效率及可移植性[21]。

对果园场景进行数据库设计,对虚拟果园场景的数据进行组织整理,对数据内部结构及模型特征进行归纳总结,实现虚拟场景模型数据和相关联属性数据的逻辑组织。最后根据模型数据的需求,对三维模型特征进行预处理,通过定义每个虚拟场景模型的特征,建立该数据实例化后的某种唯一确定属性。关系数据库将对全部模型数据和特征数据建立关系表进行管理,对模型文件的管理以表中存储磁盘路径的方式实现。

2.2 虚拟场景模型检索优化

针对传统的关系型数据库对果园场景三维模型存储和管理存在较多的瓶颈问题,综合提高数据的插入和查询功能,MySQL中通常选择“B-Tree”数据结构作为存储和索引结构,而使用B-Tree在二维表中存储大量的虚拟场景模型URL地址信息时,由于URL地址信息数据过长,存储内容占用过多内存空间,导致检索效率慢、内存消耗大。本系统采用CRC32(循环冗余校验)的方法,将虚拟场景模型URL地址信息转为一定长度的哈希值。在果树表的urL_crc32列建立哈希索引列,每当查询该模型所在位置时,以int实数类型索引查询其哈希值,提升检索效率,并快速调用对应三维模型。

哈希算法是一种将任意长度的二进制值串映射为固定长度的二进制值串的规则,而通过原始数据映射之后得到的二进制值串就是哈希值。如表1所示,在MySQL中,只有Memory引擎默认支持哈希索引。如果存在多个hash值相同,发生哈希碰撞,那么该索引将以链表方式存储。

表1 MySQL引擎支持的索引Tab. 1 Indexes supported by MySQL engine

如图2所示,通过普通查找URL地址信息的时间与先转化为哈希值在做查找的实验对比。当数据量增加到30 000行时,能明显看出哈希查找效率较高。

图2 查找对比试验Fig. 2 Search comparative experiment

2.3 虚拟场景模型构建

果园场景拥有多种类型模型,而每种模型各自拥有多种形态变化,利用特征值加以区分及调用各种模型数据,如图3所示。

1) 地形分为丘陵山地、平原、农田等,通过获取不同地形的高度图,利用高度图该特征区分地形的不同;

2) 果实模型分为苹果、菠萝、香蕉等,通过果实的大小、果皮的颜色、质量、表面的粗糙程度等特征区分类别。通过人工设计特征描述提取技术,预处理果实的特征为参数型数据,并存储到数据库中,在Unity3D建模时,输入该果实的特征数据,在相对应位置建立该特征对应的模型;

3) 果树模型的特征分为枝叶的疏密程度,树枝大小不同,树叶大小及形状等;果实在果树上的分布按照选取的生长挂果情况,按随机算法,使果实模型实例化分布在果树模型上。

4) 天气模型可分为阴天、雨天、大风、雾霾、打雷等天气系统数据,用户可自由选择影响场景的任意一种天气模型;

5) 光照按照光照强度可分为强光照、中度光照、弱光照等,按照光照种类可分为人造光,自然光等。

图3 果园场景模型库Fig. 3 Orchard scene model library

2.3.1 真实地形模型创建

可利用Unity3D自带的地形组件——Terrain组件进行自定义地形塑造操作:对部分地形进行凸起操作使其变成山丘,山峰,对部分地形进行凹陷使其形成低洼或地形裂缝,但自定义地形建模不能真实反映当地果园的情况,且地形不够自然、优化,本文通过获取所需位置的真实地形数据,构建真实自然的虚拟场景地形。

获取目的地的地形数据,以惠州镇隆为例,如图4、图5所示。生成该地区的高度图(Height map),经过格式转换为.raw文件即可导入Unity3D中的Terrain组件当中。该地形数据与现实地形一一对应,其仿真度高,数据量少,导入时间短。

图4 Terrain.party获取地形数据Fig. 4 Terrain.party gets terrain data

由于导入进去的地形是mesh网格,要将其转化为Unity3D地形工具才可使用。在制作地形的时候通常是直接刷出整个地形,但是在实际使用中由于地形过大,我们不能直接把整个地形完全加载,这样对内存的消耗很高,所以需要一小块一小块的加载地形.这时就需要把制作好的地形分割成几块后,再来动态加载。该平台将其分割成16块地形分类。并进行筛选分类保存至相应位置,即可在一块大地形中保存多种不同的真实地形模型,如图6所示。

图5 真实地形三维模型Fig. 5 3D model of real terrain

图6 地形分割Fig. 6 Terrain segmentation

2.3.2 果树建模

由于果实在树上的分布多样性,本文利用Unity3D中的射线碰撞检测,构建多种分布的果树。在虚拟空间的某一相对于果树模型的正交平面上发射若干个射线,并通过改进组合碰撞检测随机算法获取果实分布点,通过选取果实分布特征值,对分布点进行二次计算使之符合所选的特征分布情况。构建了20种的分布方式,在随机实例化不同的果实,每一种果实构建出两百多棵的果树,并存储相关信息到数据库当中。图7为其中一种果实分布的苹果树三维模型,图8为菠萝树三维模型。为了方便后续做采摘仿真等实验,采用的是果与树组成果树模型。

图7 苹果树三维模型Fig. 7 3D model of apple tree

图8 菠萝树三维模型Fig. 8 3D model of pineapple tree

在虚拟场景中,静态模型之间相互接触后,会出现穿模的现象,不符合在真实世界中物体之间互不干涉互不穿透的实体物理特性,如图9所示。

图9 球碰撞体Fig. 9 Sphere collider

使用基于物体空间的层次包围盒碰撞检测方法,使虚拟场景模型具备物理特性,该方法是对虚拟场景模型进行完全的包围,通过计算判断虚拟场景模型的三维包围盒之间是否发生接触。常见的三维干涉检测包围盒主要分为4种:球包围盒、轴向包围盒、方向包围盒、6-Dop盒,其中球包围盒的球体碰撞是碰撞检测技术中较为简单和计算消耗较少的,主要应用球状的且具有旋转操作的规则模型检测,它的数学原理是通过判断三维空间中坐标点与球包围盒的球心的距离[22]。一般适用于球形零件或者场景中的非主要影响因子之间的干涉检测。有助于减少系统的计算量,增加系统的流畅度。

为了实现物体的交互与仿真,需要在虚拟环境下构建事件触发器。在良好的物理引擎的支持下,使用碰撞体可以逼真地模拟出现实物体的碰撞关系,而且碰撞体可以作为触发器引发事件的发生。在Unity3D中内置有6种基本的碰撞体组件:盒子碰撞器(Box Collider)、球碰撞器(Sphere Collider)、胶囊碰撞器(Capsule Collider),车轮碰撞器(Wheel Collider)、网格碰撞器(Mesh Collider)、地形碰撞器(Terrain Collider),本文通过对果实添加球碰撞体(Sphere Collider),能更好地还原果实实体物理特性。

2.3.3 光照强度

Unity3D内置的光源包括Directional Light(平行光),Point Light(点光源),Spotlight(聚光灯),Area Light(区域光),Reflection Probe(反射探头),Light Probe Group(光照探头组)等,本平台使用直接光照(Directional Light),其原理与太阳光近似,不受position与scale的影响,Rotation会影响到光线照射的方向。光源发出的光线只经过虚拟场景中物体对象一次反射后就进入摄像机。通过定义光照强度的特征值,调节Directional Light 中的intensity值,使实例化光源数据分为强度光照、中度光照、弱光照等多个光照等级,如表2所示。根据光照模型的特征取值不同,构建光照4×3矩阵模型

式中:a——光照强度的intensity值,数据类型为float型;

b——光距离值,数据类型为float型;

R、G、B——矩阵数值在0~255之间,数值大小表示允许通过色彩数值,也称为灰度值,灰度越大,相应色彩越深;

α——透明度。

表2 Directional Light intensity值Tab. 2 Directional Light intensity data

以时间为依据,下列是果园场景中部分时间所使用的光照矩阵的值

早上6:10时的光照矩阵值

早上8:12时的光照矩阵值

中午12:56时的光照矩阵值

傍晚19:05时的光照矩阵值

3 系统设计与实现

3.1 系统开发工具与运行环境

系统采用Unity3D场景平台开发工具(图10),后端程序使用C#语言。后台数据库采用MySQL,基于Unity3D虚拟果园系统开发设计。该系统分为三部分,测试的服务端、客户端和数据库。客户端和服务端都是基于Unity3D平台开发的。服务器主要实现与数据库的交互。Unity3D开发一般使用PlayerPrefs来存储数据,但其数据量过于庞大,结构过于复杂、维护成本过高且过程繁琐,因此选用使用数据库来存储数据。

图10 系统架构Fig. 10 System structure

3.2 虚拟果园种植分布

系统应用于果园场景仿真,主要分为以下几块:果园种植分布,果园天气系统,果园果实果树仿真系统,果园道路分布系统,果园浇灌系统,果园收获仿真系统等。主要针对果园种植分布作解释说明,建立果园果树的株行距要根据果园的综合情况而定,如土壤质地、肥力、水源条件、管理水平以及选用的品种等。在果园环境良好、果园管理水平较高的前提下,可用较小的株行距,如苹果种植的株行距设置为2 m×3 m。根据气候与土壤肥力及品种不同而异,可以采用不同的种植规格。通过查阅文献,得到果园种植的参数[23]如表3所示。

表3 种植参数Tab. 3 Indexes supported by MySQL engine

3.3 漫游功能

利用虚拟漫游功能更加地了解农业自然以及农田的布局,是虚拟果园场景渲染平台的关键。场景漫游主要分为两种:人工漫游和自动漫游。本系统选用人工漫游功能。

在虚拟果园环境中通过控制摄像机完成漫游模式,利用C#编写的脚本与UI界面按钮交互完成。通过设定一个旋转中心,通过鼠标滚轮控制视角的远近、按住鼠标滚轮键拖动鼠标控制视角绕旋转中心的旋转、键盘点击控制视角平移。

鼠标滚轮控制视角缩进与拉远的定义

本体的描述语言,也称之为表示语言、构建语言或者标记语言,种类较多,例如OKBC、OCML、XOL、OWL等。李景就其中13种重要的本体表示语言进行深入的比较分析,得出结论是:Loom、CycL和OWL是较佳的Ontology表示语言[9]。

Ds=Csmr×Smr

(1)

式中:Ds——视角移动前后位置的偏差,m;

Csmr——虚拟环境中视角缩进拉远的缩放系数;

Smr——鼠标滚轮滚动量,有正负值,m。

鼠标移动控制视角旋转的算法

(2)

式中:θx——视角在水平面上绕旋转中心转动的角度,rad;

θy——视角在垂直面上绕旋转中心转动的角度,rad;

Smy——鼠标纵向垂直移动量,mm;

Csmx——鼠标横向移动量转换为视角转动角度的转换系数,rad/mm;

Csmy——鼠标纵向移动量转换为视角转动角度的转换系数,rad/mm。

键盘点击控制视角移动的算法

(3)

式中:Kbi——检测键盘按键是否按下;

bi——键盘对应按钮编号。

(4)

式中:DK——视角位移量,m;

Db——视角平移单位量,m。

系统针对用户的不同,可选择两种模式:自定义建模和自动建模方式。由于更能模拟真实果园场景,本文在自动建模方式中,给果树排列添加了一个偏差值,使其更能反映真实果园的状态。还添加杂草等干扰因素。自定义建模,是根据需求添加果树模型的个数、位置。虚拟果园场景渲染平台运行结果如图11、图12所示,实现了虚拟果园场景平台自定义果树建模以及自动排列果树场景仿真,分别展示了丘陵山地、平原、田地不同场景不同果树的场景平台。交互方式主要通过键盘鼠标实现不同漫游模式,模拟不同角度观察场景平台模型,呈现出一定的环境效果。

图11 苹果果园场景虚拟仿真平台Fig. 11 Virtual simulation platform of apple orchard scene

图12 菠萝果园场景虚拟仿真平台Fig. 12 Virtual simulation platform of pineapple orchard scene

虚拟果园场景平台登陆与注册界面,登录后可获取当地的天气、温度,通过Dropdown组件选择自定义模式/自动模式,果树模型,以及地形,如图13所示,可根据需求检索导出所需要的果树,鼠标点击场景任意位置可添加此三维模型,也可多次添加模型,见图14。

图13 苹果果园场景虚拟仿真平台(自定义建模)Fig. 13 Virtual simulation platform of apple orchard scene(Custom modeling)

图14 香蕉果园下雨场景虚拟仿真平台Fig. 14 Banana orchard rain scene virtual simulation platform

为了试验本系统的实用性,选择20不同案例进行测试,测试结果见表4。该平台能保证仿真系统运行的流畅度,给用户最佳的体验。

表4 平台试验情况统计Tab. 4 Statistical of platform test

4 结论

为了按照不同用户要求及场景参数,自动批量化快速生成多个虚拟场景迎合用户生产仿真需求,对三维模型特征信息进行提取、参数化建模,进而存储到数据库当中,建立哈希索引列加快检索的方法,提高大量虚拟场景模型存储、检索的效率,该方法能有效地加快模型查询效率,快速建立虚拟场景模型。也能为后期虚拟场景模型新增提供了快速存储的方式。本文以果园场景平台搭建为例,针对试验场景平台虚拟仿真问题,为提高工作效率,最大限度减少人力、物力和时间的浪费,运用了哈希索引,MySQL数据库结合虚拟现实平台,实现了虚拟场景中果园场景中三维模型的构建、三维场景模拟及人机交互界面的搭建,对虚拟场景平台提供了计算机辅助支持。仿真结果表明,该系统可以较好地支持场景平台的虚拟设计与仿真,且三维模型检索效率也有所提高,缩短了农业领域的开发周期,也可为其他场景搭建的虚拟设计提供技术借鉴。该平台还留有六自由度机械臂关节运动的通用接口,以及拖拉机、收割机等运动控制脚本,方便后期用户做实验仿真时使用。

猜你喜欢

光照果树果园
果树秋季施肥三要点
肉种鸡的光照不应性对养殖生产的不良影响分析
天、空、地一体化“未来果园”看一下
果树夏剪有诀窍
果树为何嫁接后才能结出好果子
隐蔽的力量
呼噜猪的大果园
果园
水禽舍的光照及其控制
蛋鸭的光照管理