EASY AR支持下的移动端中药材实时建模系统

作者: 程锋 魏东华 陈诗源

EASY AR支持下的移动端中药材实时建模系统0

摘要:为了普及中药材文化知识,满足对中药材模型沉浸式观看体验的需求,本项目基于Android平台和Unity3D进行开发,并采用Easy AR图像识别模块及平面跟踪技术,将中药材的科普、识别、学习等功能集于一体。项目方案取得了虚实光照一致性的良好表现,实时性高,系统流畅性佳,提供了一种更加有效的中药材移动AR实验教学模式。

关键词:Unity3D;Easy AR;AR技术;移动开发

中图分类号:TP391        文献标识码:A

文章编号:1009-3044(2023)26-0112-03

开放科学(资源服务)标识码(OSID)

0 引言

如今,移动端已然成为日常网络获取信息的重要渠道。然而市面上缺少中药材科普类App,而且中药材的展现形式以图片形式居多,中药材知识推广传播的方式较为单一。

本项目针对上述问题,将AR技术应用于中药材识别与实时建模系统的研发。中药材识别与实时建模系统构建与真实药材标本相似的三维数字模型,能直观、立体地展现出中药材的形状、颜色、纹理等特征,实现中药材的数字化表达。中药材识别与实时建模系统具有完备的中药材体系和多功能的科普教学功能体系,扩大了中药材的展示空间。该系统提高了中药材学习的真实性和趣味性,真正将中药材知识科普,中药材图像识别,模型AR展示等功能集于一体[1]。本文以Android为平台,使用Unity3D引擎,结合Easy AR SDK设计了一款中药材识别与实时建模系统,学员可通过Android手机扫描中药材图片即可实时呈现中药材模型。

1 Unity3D和 Easy AR技术应用介绍

Unity引擎使用C#作为主要编程语言,通过提供大量的API和工具,使得开发人员可以轻松地创建和管理对象、设计和布置场景、添加光照效果、处理动画等。Unity的多平台支持和广泛的插件生态系统为开发者提供了极大的灵活性和可定制性。

Easy AR是一种基于计算机视觉的增强现实技术,它采用SLAM算法进行图像识别和跟踪,实现了AR场景的定位、构建和跟踪,为AR应用的开发提供了高效且稳定的解决方案。Easy AR还提供了丰富的开发工具和API,包括Easy AR SDK、Easy AR Engine和Easy AR Studio等,支持多种开发语言和平台。

2 系统的设计

本项目的框架设计有图像识别模块、虚实构建模块、人机交互模块、数据库应用和项目优化等,如图1系统设计所示。

2.1 图像识别模块

基于Easy AR开发图像识别模块。Easy AR Sense Unity Plugin提供Easy AR Sense功能在Unity中的封装。本项目运用Easy AR运动跟踪技术(Motion Tracking)和Easy AR平面图像跟踪技术(Planar Image Tracking)进行AR图像识别和AR平面跟踪[2]。

2.2 虚实构建模块

虚拟信息在真实场景中的位置以及虚拟对象和真实场景的配准,需要通过确定摄像机的内外参数完成对摄像机的标定,其中包括中药材模型的构建,Shader着色器的应用以及模型材质贴图和灯光渲染等。

2.3 人机交互模块

用户可通过在移动端屏幕上单指点击、移动或者双指缩放的形式,实现中药材模型的放大、缩小及旋转等操作,可以细致地观察中药材模型纹理。UI界面设计采用典雅黑与金色主题,映衬中药材的文化历史悠久,传承历久弥新。

2.4 项目优化

2.4.1 脚本优化

本项目中参考了设计模式中的工厂模式,将功能模块与交互模块的脚本分离开来,初步实现了设计模式的高内聚、低耦合思想,方便将来代码的维护与重构。

2.4.2 内存优化

本项目中还对一些基于粒子系统的特效采用了对象池管理的技术,当不需要时就隐藏而不是销毁,再次需要时就显示,这样可以有效减少系统因实例化而耗费的内存资源。

3 系统的实现

系统用例如图2所示,中药材识别与实时建模系统主要功能为药材库及AR识别,用户通过点击按钮,实现对应的系统功能,进入沉浸式学习模式。

3.1 Easy AR Sense

首先,需要从官网中注册开发者账号,然后在开发板块中创建应用,填写应用名与包名,就会创建出对应的License Key了。下载Easy AR SDK for Unity,导入Unity。在Unity工程文件夹中,会有一个Easy AR的文件夹与一个plugins的文件夹,plugins里都是一些Easy AR封装好的代码,在U3D中主要使用Easy AR文件夹下面的Prefabs脚本。在场景中拖入Easy AR_Startup预制体,这个物体上面有需要填写的License Key。因为该预制体下有摄像头,所以把场景原来的MainCamere删掉[3]。

创建工程之后,下一步就需要将每个中药材的识别图像和中药材模型与预先创建的ImageTarget组件进行关联。具体流程包括以下步骤:1) 将中药材识别图像复制到StreamingAsset和Texture目录下;2) 为每个ImageTarget组件创建对应的渲染材质球Materials;3) 在Hierarchy面板中单击各个ImageTarget组件,打开属性设置面板,并在Transform属性栏下设置位置、旋转和缩放比例等属性值,以确保中药材模型与识别图像在空间中不会重叠;在Materials属性栏中选取Materials目录下已经建好的对应材质球,并将其设置为Element的值。

4)在脚本属性区分别设置 Path的值为对应中药材识别图Storage 的值需要设为: Assets,需要建立StreamingAsset的对应关系目录,对应的Path路径是StreamingAssets文件夹下的路径。把识别图拖到该文件夹下,假设图片名字为“灵芝.jpg”,则Path为“灵芝.jpg”。

Easy AR图像识别模块的整体流程如图4所示,Easy AR提供一个灵活的target管理接口,可以在运行时生成Easy AR的target,Easy AR通过两个步骤来管理target。ImageTarget表示平面图像的target,它可以被ImageTracker 跟踪。ImageTarget内的数值在可以被读取之前,需要首先通过create/setupAll等方法填入。然后再通过 ImageTracker.loadTarget 成功载入 ImageTracker 之后,可被 ImageTracker检测和跟踪。ObjectTarget表示3D object target,它可以被 ObjectTracker 跟踪。ObjectTarget内的数值在可以被读取之前,需要首先通过setupAll方法载入,然后再ObjectTracker.loadTarget 成功载入ObjectTracker之后,可以被ObjectTracker检测和跟踪[4]。

4 系统的实验结果与分析

4.1 Unity导出apk包

当完成App的UI界面交互功能及中药材识别与实时建模系统,需要将该项目打包apk并导出到移动端使用。使用Unity2019及以上版本,可以在Unity Hub下载发布Android平台的SDK和JDK工具包,构建好编译环境之后开始编译。

4.2 App功能界面

4.3 系统的测试

本实验使用Unity3D发布Android平台生成 APK安装包,使用 Android 系统的手机进行运行测试,如表1所示,两种具体的运行环境软硬件配置。

测试系统主要的功能,测试流程详见表2。

5 结束语

以Android 手机为硬件平台,结合Easy AR的图像识别功能,在 Unity3D平台设计了一款中药材识别与实时建模系统,该系统不受时间、地点、空间的限制,学员通过 Android 手机扫描中药材图片,就可实时调整画面三维视角,便可实时呈现该药材的模型,并获取该药材的科普内容,进入浸入式学习,使中药材文化的传播与推广形式更加多样化, 然而该系统仍存在一些问题: 伴随着中药材识别图数量的增加,对运行App的手机的内存有一定的要求。针对此问题可以考虑使用Easy AR云识别功能加以改进。

参考文献:

[1] 王涌天,陈靖,程德文.增强现实技术导论[M].北京:科学出版社,2015.

[2] 袁志鹏.基于增强现实技术的鸟类博物馆的开发[J].电脑知识与技术,2019,15(27):74-76.

[3] 罗永东.基于Unity3D的移动增强现实技术与应用研究[D].青岛:青岛科技大学,2015.

[4] 张喜红,王玉香.基于EasyAR医学检验仪器导学系统的设计[J].曲靖师范学院学报,2018,37(6):57-60.

[5] 谢伙生,杨铮,林晶.一种实用的移动AR实验解决方案[J].实验技术与管理,2020,37(7):47-52.

[6] 钟毅.增强现实(AR)技术的教育应用略谈[J].电子世界,2018(12):61-62.

[7] 鲁文娟,金一强.基于智能手机的Vuforia+Unity3D增强现实技术方案及其教育应用[J].现代教育技术,2017,27(5):19-25.

[8] Liu G Y,Wu J.Design and implementation of virtual campus roaming system based on Unity3d[C]//2019 International Conference on Machine Learning,Big Data and Business Intelligence (MLBDBI).November 8-10,2019,Taiyuan,China.IEEE,2020:147-150.

[9] Va H,Choi M H,Hong M.Real-time cloth simulation using compute shader in Unity3D for AR/VR contents[J].Applied Sciences,2021,11(17):8255.

[10] Murray J W.C# Game Programming Cookbook for Unity 3D[M].2nd ed..CRC Press, 2021.

【通联编辑:唐一东】

上一篇 点击页面呼出菜单 下一篇