CN112330816A - Ar识别的处理方法、装置和电子装置 - Google Patents

Ar识别的处理方法、装置和电子装置 Download PDF

Info

Publication number
CN112330816A
CN112330816A CN202011116810.5A CN202011116810A CN112330816A CN 112330816 A CN112330816 A CN 112330816A CN 202011116810 A CN202011116810 A CN 202011116810A CN 112330816 A CN112330816 A CN 112330816A
Authority
CN
China
Prior art keywords
terminal application
hardware acceleration
deep learning
module
image data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202011116810.5A
Other languages
English (en)
Other versions
CN112330816B (zh
Inventor
刘民权
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Yixian Advanced Technology Co ltd
Original Assignee
Hangzhou Yixian Advanced Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou Yixian Advanced Technology Co ltd filed Critical Hangzhou Yixian Advanced Technology Co ltd
Priority to CN202011116810.5A priority Critical patent/CN112330816B/zh
Publication of CN112330816A publication Critical patent/CN112330816A/zh
Application granted granted Critical
Publication of CN112330816B publication Critical patent/CN112330816B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Graphics (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Image Analysis (AREA)

Abstract

本申请涉及一种AR识别的处理方法、装置和电子装置,其中,该处理方法包括:获取图像数据;将终端应用的网络请求模块进行封装和修改,以使该终端应用接收并运行硬件加速库的下载指令;根据该下载指令,利用该硬件加速库中的预设函数装载深度学习模型;将该图像数据输入至该深度学习模型,进而获取识别结果。通过本申请,解决了AR识别的本地处理准确性低,且成本高的问题,实现了在终端应用上的AR识别本地运行处理。

Description

AR识别的处理方法、装置和电子装置
技术领域
本申请涉及计算机视觉技术领域,特别是涉及AR识别的处理方法、装置和电子装置。
背景技术
基于web技术已成为主流应用开发的选择,其衍生技术栈,例如单页应用(SinglePage Application,简称为SPA)、渐进式网页应用(Progressive Web App,简称为PWA)和小程序技术等遍地开花,其中依附于小程序技术的应用开发已有井喷趋势。
在相关技术中,增强现实(Augmented Reality,简称为AR)技术因算法复杂度高、计算量大等原因在web技术领域中举步维艰;其中,web技术的逻辑处理程序编写多以javascript为主,由于javascript执行效率较低不足以支撑AR中计算强度较大的识别算法,因此通常AR识别的应用放弃本地终端执行算法方案,转以云端计算作为突破口,以构建云端AR识别系统。
然而,在相关技术中通过云端进行AR识别,导致终端在断网情况下无法使用AR功能、弱网情况下请求延迟过大或云端识别系统构建成本过高等一系列问题。断网、弱网是由基础建设决定,仅从应用软件层面无法解决;此外,本地终端CPU计算策略在标准浏览器环境下仍有不错的表现,但进入小程序等非标准环境无法运行,即便通过手工适配其计算效率也大打折扣,从而使得本地环境中AR识别的处理准确性较低,且成本较高。
目前针对相关技术中AR识别的本地处理准确性低,且成本高的问题,尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种AR识别的处理方法、装置和电子装置,以至少解决相关技术中AR识别的本地处理准确性低,且成本高的问题。
第一方面,本申请实施例提供了一种AR识别的处理方法,所述方法包括:
获取图像数据;
将终端应用的网络请求模块进行封装和修改,以使所述终端应用接收并运行硬件加速库的下载指令;
根据所述下载指令,利用所述硬件加速库中的预设函数装载深度学习模型;
将所述图像数据输入至所述深度学习模型,进而获取识别结果。
在其中一些实施例中,所述获取图像数据包括:
利用所述终端应用的预设相机组件,获取相机上下文(CameraContext)对象,并通过所述CameraContext对象获取到相机当前帧的所述图像数据。
在其中一些实施例中,所述获取图像数据之后,所述将终端应用的网络请求模块进行封装和修改,以使所述终端应用接收并运行硬件加速库的下载指令之前,所述方法还包括:
在所述终端应用的标记文档中声明画布(canvas)组件,并利用选择器(SelectorQuery)获取所述canvas组件的canvas节点,以及web图形库(Web GraphicsLibray,简称为WebGL)上下文;
将所述canvas节点和所述WebGL上下文发送至所述硬件加速库,进而将所述硬件加速库适配于所述终端应用的基础库。
在其中一些实施例中,所述将终端应用的网络请求模块进行封装和修改,以使所述终端应用运行硬件加速库的下载指令包括:
利用所述终端应用的网络请求指令,获取定位器的请求数据;在对所述请求数据的解析过程中,获取fetch方法;
利用所述fetch方法,将网络适配器注入至所述硬件加速库,以使所述终端应用接收并运行所述下载指令。
在其中一些实施例中,所述根据所述下载指令,利用所述硬件加速库中的预设函数装载深度学习模型包括:
利用sio的save函数,根据所述终端应用的设置存储(setStorage)指令,将接收到的所述深度学习模型的模型数据写入所述终端应用;
利用所述sio的下载(load)函数,依次读取所述模型数据;
调用所述预设函数下载所述深度学习模型,并将所述模型数据保存至缓存空间中;
利用所述load函数,将所述模型数据发送给所述硬件加速库,进而实现从所述缓存空间中的所述模型数据的读取。
在其中一些实施例中,所述方法还包括:
利用文件系统管理器(FileSystemManager)创建缓存文件路径;
利用所述save函数将所述模型数据写入所述缓存文件路径进行缓存,并利用所述load函数从所述缓存文件路径中读取所述模型数据。
在其中一些实施例中,所述将所述图像数据输入至所述深度学习模型,进而获取识别结果包括:
利用所述硬件加速库导入的所述深度学习模型,获取图形模型(GraphModel)对象;
将所述图像数据中的frame对象进行类型转换处理以及原始数据二次处理,并运行所述预设函数以获取所述识别结果。
在其中一些实施例中,所述将所述图像数据输入至所述深度学习模型,进而获取识别结果之后,所述方法还包括:
利用预设canvas组件,将所述识别结果中的页面元素发送至终端进行显示。
第二方面,本申请实施例提供了一种AR识别的处理装置,所述装置包括:获取模块、下载模块、装载模块和识别模块;
所述获取模块,用于获取图像数据;
所述下载模块,用于将终端应用的网络请求模块进行封装和修改,以使所述终端应用接收并运行硬件加速库的下载指令;
所述装载模块,用于根据所述下载指令,利用所述硬件加速库中的预设函数装载深度学习模型;
所述识别模块,用于将所述图像数据输入至所述深度学习模型,进而获取识别结果。
第三方面,本申请实施例提供了一种电子装置,包括存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的AR识别的处理方法。
相比于相关技术,本申请实施例提供的AR识别的处理方法、装置和电子装置,通过获取图像数据;将终端应用的网络请求模块进行封装和修改,以使该终端应用接收并运行硬件加速库的下载指令;根据该下载指令,利用该硬件加速库中的预设函数装载深度学习模型;将该图像数据输入至该深度学习模型,进而获取识别结果,解决了AR识别的本地处理准确性低,且成本高的问题,实现了在终端应用上的AR识别本地运行处理。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为根据本申请实施例的一种AR识别处理方法的终端的硬件结构框图;
图2为根据本申请实施例的一种AR识别处理方法的流程图;
图3为根据本申请实施例的另一种AR识别处理方法的流程图;
图4为根据本申请实施例的又一种AR识别处理方法的流程图;
图5为根据本申请实施例的再一种AR识别处理方法的流程图;
图6为根据本申请实施例的一种AR识别处理装置的结构框图;
图7为根据本申请实施例的另一种AR识别处理装置的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行描述和说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。基于本申请提供的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。此外,还可以理解的是,虽然这种开发过程中所作出的努力可能是复杂并且冗长的,然而对于与本申请公开的内容相关的本领域的普通技术人员而言,在本申请揭露的技术内容的基础上进行的一些设计,制造或者生产等变更只是常规的技术手段,不应当理解为本申请公开的内容不充分。
在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域普通技术人员显式地和隐式地理解的是,本申请所描述的实施例在不冲突的情况下,可以与其它实施例相结合。
除非另作定义,本申请所涉及的技术术语或者科学术语应当为本申请所属技术领域内具有一般技能的人士所理解的通常意义。本申请所涉及的“一”、“一个”、“一种”、“该”等类似词语并不表示数量限制,可表示单数或复数。本申请所涉及的术语“包括”、“包含”、“具有”以及它们任何变形,意图在于覆盖不排他的包含;例如包含了一系列步骤或模块(单元)的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可以还包括没有列出的步骤或单元,或可以还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。本申请所涉及的“连接”、“相连”、“耦接”等类似的词语并非限定于物理的或者机械的连接,而是可以包括电气的连接,不管是直接的还是间接的。本申请所涉及的“多个”是指大于或者等于两个。“和/或”描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。本申请所涉及的术语“第一”、“第二”、“第三”等仅仅是区别类似的对象,不代表针对对象的特定排序。
本实施例提供的方法实施例可以在终端、计算机或者类似的运算装置中执行。以运行在终端上为例,图1为根据本申请实施例的一种AR识别处理方法的终端的硬件结构框图。如图1所示,终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,可选地,上述终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述终端的结构造成限定。例如,终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本发明实施例中的AR识别的处理方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中,提供了一种AR识别的处理方法,图2为根据本申请实施例的一种AR识别处理方法的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取图像数据。
其中,可以利用该终端应用的预设相机组件,获取CameraContext对象,并通过该CameraContext对象获取到相机当前帧的该图像数据。具体地,识别算法中数据通常指图像数据;例如,在微信小程序项目里,可采用微信小程序组件库提供的<camera>组件(该<camera>组件由微信小程序定义),该<camera>组件的应用程序接口(ApplicationProgramming Interface,简称为API)定义了CameraContext对象,通过CameraFrameListener的onCameraFrame回调获取到相机的图像数据,回调数据包含frame对象,携带data(ArrayBuffer)、width(number)、height(number)三个字段,分别代表了相机当前帧的二进制数据、图像宽度、图像高度。如下列出获取相机图像数据的功能代码:
Figure BDA0002730583220000061
Figure BDA0002730583220000071
步骤S204,将终端应用的网络请求模块进行封装和修改,以使该终端应用接收并运行硬件加速库的下载指令。其中,由于微信小程序等终端应用的网络请求模块与web开发常用的浏览器、node环境不同,硬件加速库定义的模型下载指令仅适用于浏览器环境,造成了终端应用无法运行硬件加速库实现的下载指令的情况,因此步骤S204中需将该网络请求模块进行封装和修改,至此该硬件加速器中的预设函数指令运行正常。
步骤S206,根据该下载指令,利用该硬件加速库中的预设函数装载深度学习模型。其中,gLoad函数包含了下载和解析arrayBuffer的功能;在不需要缓存的应用中,装载过程由gLoad函数托管。但多数情况下,模型下载一次即可,因而需要在将下载后的文件存储于Storage或文件缓存中;由于GraphModel.save函数适用于node javascript或浏览器,微信小程序中并不适用。
步骤S208,将该图像数据输入至该深度学习模型,进而获取识别结果。
其中,可以利用该硬件加速库导入的该深度学习模型,获取GraphModel对象,并将该图像数据中的frame对象进行类型转换处理以及原始数据二次处理,运行该预设函数以获取该识别结果。由于步骤S204至步骤S206过程中针对硬件加速库进行了大量适配,因此在该步骤S208的识别阶段中,可以直接使用硬件加速器指令导入深度学习的算法模型,获取GraphModel对象;并将步骤S202中获取的图像数据frame对象的data类型转成Uint8Array传递给Tensor对象进行原始数据二次处理(符合算法模型定义的处理);运行指令GraphModel.Predict()即可获取返回结果。如下列出运行算法模型的基本代码:
Figure BDA0002730583220000072
Figure BDA0002730583220000081
通过上述步骤S202至步骤S208,通过对终端应用的网络请求模块进行封装、修改,使得该终端应用可以运行硬件加速库的下载指令,并利用该硬件加速库装载深度学习模型,以通过该深度学习模型获取图像数据的识别结果,从而以硬件加速库为基础制作适配器,以达到硬件加速的目的,使得终端应用可以于本地执行深度学习算法,并基于深度学习算法实现了在终端应用上的AR识别本地运行处理,解决了AR识别的本地处理准确性低,且成本高的问题。
在其中一些实施例中,提供了一种AR识别的处理方法,图3为根据本申请实施例的另一种AR识别处理方法的流程图,如图3所示,该流程包括图2所示的所有步骤,此外还包括如下步骤:
步骤S302,在该终端应用的标记文档中声明canvas组件,并利用SelectorQuery获取该canvas组件的canvas节点,以及WebGL上下文;将该canvas节点和该WebGL上下文发送至该硬件加速库,进而将该硬件加速库适配于该终端应用的基础库。
其中,硬件加速库子包“@tensorflow/tfjs-backend-webgl”实现于标准web环境,依赖WebGL操作指令。由于微信小程序中开发者并不能显式操作dom节点,因而在硬件加速库适配阶段,首先应于微信小程序的标记文档(后缀为.wxml的文件)中声明需<canvas>组件,配合SelectorQuery(微信小程序API定义)获取canvas节点和WebGL上下文,将canvas节点和WebGL上下文传递给硬件加速库,以满足硬件加速库的基本功能初始化。如下列出微信小程序中获取WebGL上下文的示意代码:
Figure BDA0002730583220000091
通常一个小程序进程,包含多个功能页面,假设每一个页面仅包含一个独立<canvas>组件,当跳转页面时,WebGL上下文就会丢失;而硬件加速库定义的定WebGL上下文的操作对象,即图形处理器(Graphics Processing Unit,简称为GPU)绑定实例通用图形处理器上下文(General-purpose computing on graphics processing units context,简称为GPGPUContext)与上WebGL上下文是一一对应关系;那么当页面中执行销毁、跳转等操作,当前页面难以精确查找对应的GPGPUContext实例,因此对每个WebGL上下文定义一个标志是必不可少的;配合硬件加速库的获取后端(getBackend)指令、设置后端(set Backend)指令、查找后端(findBackend)指令以及注册后端(registerBackend)指令记录该GPGPUContext实例与WebGL上下文的绑定关系。如下为绑定特殊字段后端名称(backendName)的部分代码示意:
Figure BDA0002730583220000101
通过上述步骤S302,通过SelectorQuery获取该canvas组件的canvas节点,以及WebGL上下文,并将该canvas节点和该WebGL上下文发送至该硬件加速库,进而将该硬件加速库适配于该终端应用的基础库,使得硬件加速库作为部署深度学习模型的基础库,可以辅以node javascript工具包实现AR识别的本地运行处理,从而提高了AR识别的准确性。
在其中一些实施例中,提供了一种AR识别的处理方法,图4为根据本申请实施例的又一种AR识别处理方法的流程图,如图4所示,该流程包括图2所示的步骤S202、步骤S206和步骤S208,此外还包括如下步骤:
步骤S402,利用该终端应用的网络请求指令,获取定位器的请求数据;在对该请求数据的解析过程中,获取fetch方法;利用该fetch方法,将网络适配器注入至该硬件加速库,以使该终端应用接收并运行该下载指令。
具体地,给定统一资源定位系统(uniform resource locator,简称为URL),通常是一个指向模型数据集的文件,例如:model.json,其请求数据过程仍使用微信提供的网络请求指令wx.request,但返回值的解析过程,需实现派生自Tfjs.io.Platform的微信硬件加速库平台(WeChatTfPlatform)的fetch方法,返回值对齐WWW标准的Response的核心字段:ok、status、statusText、url、clone()、text()、json()、arrayBuffer()和headers()。完成上述实现后,于微信小程序的app.js执行WeChatTfPlatform的fetch指令,将网络适配器注入硬件加速库中;至此硬件加速库中的预设函数,例如GraphModel.Load()(以下简称为gLoad函数),其指令运行正常,如下为Response结构型返回值声明示意。
Figure BDA0002730583220000111
Figure BDA0002730583220000121
通过上述步骤S402,在对获取到的请求数据解析过程中获取fetch方法,并利用fetch方法将网络适配器注入到该硬件加速库中,使得该硬件加速库中的指令运行正常,从而进一步提高了该硬件加速库和终端应用的适配程度。
在其中一些实施例中,步骤S206还包括如下子步骤:利用sio的save函数(用于保存当前工作空间的所有变量到文件名制定的文件中),根据该终端应用的setStorage指令,将接收到的该深度学习模型的模型数据写入该终端应用;利用该sio的load函数,依次读取该模型数据;调用该预设函数下载该深度学习模型,并将该模型数据保存至缓存空间中。
具体地,创建类Sio(派生自Tfjs.io.IOHandler接口),依次实现sio的save和load函数。在Sio.save函数中,利用微信小程序的wx.setStorage指令依次将接收到的模型构件(ModelArtifacts)字段写入微信小程序缓存。在Sio.load函数中依次读取微信小程序缓存,并返回ModelArtifacts、Respone对象模拟下载过程。然后调用gLoad函数下载模型,此处将得到一个全新的类型为GraphModel对象称为model;运行model.save(Sio)指令,使Sio的save函数实现替代GraphModel原实现将模型数据保存至微信缓存空间中。再次使用gLoad函数传入Sio,即由Sio的load函数替代GraphModel原实现将数据传递给硬件加速库,将图像数据从缓存空间中读出来;从而通过该子步骤实现模型装载中的Storage缓存方案。
或者,步骤S206还包括如下子步骤:利用FileSystemManager创建缓存文件路径;利用该save函数将所述模型数据写入该缓存文件路径进行缓存,并利用该load函数从该缓存文件路径中读取该模型数据。
具体地,与Storage缓存类似,区别在于Sio的save、load函数中,实现文件缓存机制时,需配合使用wx.FileSystemManager创建缓存文件路径(下文称“/file”)。Sio.save阶段将文件存储于“/file”中,Sio.load阶段将从“/file”解析文件并返回对应的ModelArtifacts、Respone对象;从而通过该子步骤实现模型装载中的文件缓存方案。如下列出io.IOHandler定义示意。
Figure BDA0002730583220000122
Figure BDA0002730583220000131
通过上述实施例,分别利用Storage缓存方案和文件缓存方案大金星模型文件缓存,因此只需要下载一次模型即可,且可以根据不同情况自适应选择不同的缓存方案,从而进一步提高了AR识别本地运行的准确性和效率。
在其中一些实施例中,提供了一种AR识别的处理方法,图5为根据本申请实施例的再一种AR识别处理方法的流程图,如图5所示,该流程包括图2所示的所有步骤,此外还包括如下步骤:
步骤S502,利用预设canvas组件,将该识别结果中的页面元素发送至终端进行显示。其中,该预设canvas组件可以设置为webgl canvas或2d canvas。由于小程序内<canvas>组件、<camera>组件符合同层渲染规则,对于识别类算法,<camera>组件通常全屏占满,因而页面内<view>元素无法显示,对于高层级的页面元素,则使用<cover-view>、<cover-image>等预设canvas组件。如下列出页面显示代码:
Figure BDA0002730583220000141
通过上述步骤S502,通过利用预设canvas组件,将该识别结果中的页面元素发送至终端进行显示,从而使得呈现结果使用webgl canvas或2d canvas实现,避免了同层渲染的现象发生,因此终端上的AR识别结果显示效果更好,提高了用户体验。
应该理解的是,虽然图2至图5中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2至图5中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在本实施例中,提供了一种AR识别的处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”、“单元”、“子单元”等可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。
图6为根据本申请实施例的一种AR识别处理装置的结构框图,如图6所示,该装置包括:获取模块62、下载模块64、装载模块66和识别模块68;该获取模块62,用于获取图像数据;该下载模块64,用于将终端应用的网络请求模块进行封装和修改,以使该终端应用接收并运行硬件加速库的下载指令;该装载模块66,用于根据该下载指令,利用该硬件加速库中的预设函数装载深度学习模型;该识别模块68,用于将该图像数据输入至该深度学习模型,进而获取识别结果。
通过上述实施例,通过下载模块64对终端应用的网络请求模块进行封装、修改,使得该终端应用可以运行硬件加速库的下载指令,装载模块66利用该硬件加速库装载深度学习模型,识别模块68通过该深度学习模型获取图像数据的识别结果,从而以硬件加速库为基础制作适配器,以达到硬件加速的目的,使得终端应用可以于本地执行深度学习算法,并基于深度学习算法实现了在终端应用上的AR识别本地运行处理,解决了AR识别的本地处理准确性低,且成本高的问题。
在其中一些实施例中,该获取模块62还用于利用该终端应用的预设相机组件,获取CameraContext对象,并通过该CameraContext对象获取到相机当前帧的该图像数据。
在其中一些实施例中,提供了一种AR识别的处理装置,图7为根据本申请实施例的另一种AR识别处理装置的结构框图,如图7所示,该装置包括图6所示的所有模块,此外还包括:适配模块72;该适配模块72,用于在该终端应用的标记文档中声明canvas组件,并利用SelectorQuery获取该canvas组件的canvas节点,以及WebGL上下文;该适配模块72将该canvas节点和该WebGL上下文发送至该硬件加速库,进而将该硬件加速库适配于该终端应用的基础库。
在其中一些实施例中,该下载模块64还用于利用该终端应用的网络请求指令,获取定位器的请求数据;该下载模块64在对该请求数据的解析过程中,获取fetch方法;该下载模块64利用该fetch方法,将网络适配器注入至该硬件加速库,以使该终端应用接收并运行该下载指令。
在其中一些实施例中,该装载模块66还用于利用sio的save函数,根据该终端应用的setStorage指令,将接收到的该深度学习模型的模型数据写入该终端应用;该装载模块66利用该sio的load函数,依次读取该模型数据;该装载模块66调用该预设函数下载该深度学习模型,并将该模型数据保存至缓存空间中;该装载模块66利用该load函数,将该模型数据发送给该硬件加速库,进而实现从该缓存空间中的该模型数据的读取。
在其中一些实施例中,该装载模块66还用于利用FileSystemManager创建缓存文件路径;该装载模块66利用该save函数将该模型数据写入该缓存文件路径进行缓存,并利用该load函数从该缓存文件路径中读取该模型数据。
在其中一些实施例中,该识别模块68还用于利用该硬件加速库导入的该深度学习模型,获取GraphModel对象;该识别模块68将该图像数据中的frame对象进行类型转换处理以及原始数据二次处理,并运行该预设函数以获取该识别结果。
在其中一些实施例中,该AR识别的处理装置还包括显示模块;该显示模块,用于利用预设canvas组件,将该识别结果中的页面元素发送至终端进行显示。
需要说明的是,上述各个模块可以是功能模块也可以是程序模块,既可以通过软件来实现,也可以通过硬件来实现。对于通过硬件来实现的模块而言,上述各个模块可以位于同一处理器中;或者上述各个模块还可以按照任意组合的形式分别位于不同的处理器中。
在本实施例中,提供了一种电子装置,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
可选地,上述电子装置还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取图像数据。
S2,将终端应用的网络请求模块进行封装和修改,以使该终端应用接收并运行硬件加速库的下载指令。
S3,根据该下载指令,利用该硬件加速库中的预设函数装载深度学习模型。
S4,将该图像数据输入至该深度学习模型,进而获取识别结果。
需要说明的是,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。
另外,结合上述实施例中的AR识别的处理方法,本申请实施例可提供一种存储介质来实现。该存储介质上存储有计算机程序;该计算机程序被处理器执行时实现上述实施例中的任意一种AR识别的处理方法。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
本领域的技术人员应该明白,以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (10)

1.一种AR识别的处理方法,其特征在于,所述方法包括:
获取图像数据;
将终端应用的网络请求模块进行封装和修改,以使所述终端应用接收并运行硬件加速库的下载指令;
根据所述下载指令,利用所述硬件加速库中的预设函数装载深度学习模型;
将所述图像数据输入至所述深度学习模型,进而获取识别结果。
2.根据权利要求1所述的处理方法,其特征在于,所述获取图像数据包括:
利用所述终端应用的预设相机组件,获取CameraContext对象,并通过所述CameraContext对象获取到相机当前帧的所述图像数据。
3.根据权利要求1所述的处理方法,其特征在于,所述获取图像数据之后,所述将终端应用的网络请求模块进行封装和修改,以使所述终端应用接收并运行硬件加速库的下载指令之前,所述方法还包括:
在所述终端应用的标记文档中声明canvas组件,并利用SelectorQuery获取所述canvas组件的canvas节点,以及WebGL上下文;
将所述canvas节点和所述WebGL上下文发送至所述硬件加速库,进而将所述硬件加速库适配于所述终端应用的基础库。
4.根据权利要求1所述的处理方法,其特征在于,所述将终端应用的网络请求模块进行封装和修改,以使所述终端应用运行硬件加速库的下载指令包括:
利用所述终端应用的网络请求指令,获取定位器的请求数据;在对所述请求数据的解析过程中,获取fetch方法;
利用所述fetch方法,将网络适配器注入至所述硬件加速库,以使所述终端应用接收并运行所述下载指令。
5.根据权利要求1所述的处理方法,其特征在于,所述根据所述下载指令,利用所述硬件加速库中的预设函数装载深度学习模型包括:
利用sio的save函数,根据所述终端应用的setStorage指令,将接收到的所述深度学习模型的模型数据写入所述终端应用;
利用所述sio的load函数,依次读取所述模型数据;
调用所述预设函数下载所述深度学习模型,并将所述模型数据保存至缓存空间中;
利用所述load函数,将所述模型数据发送给所述硬件加速库,进而实现从所述缓存空间中的所述模型数据的读取。
6.根据权利要求5所述的处理方法,其特征在于,所述方法还包括:
利用FileSystemManager创建缓存文件路径;
利用所述save函数将所述模型数据写入所述缓存文件路径进行缓存,并利用所述load函数从所述缓存文件路径中读取所述模型数据。
7.根据权利要求1所述的处理方法,其特征在于,所述将所述图像数据输入至所述深度学习模型,进而获取识别结果包括:
利用所述硬件加速库导入的所述深度学习模型,获取GraphModel对象;
将所述图像数据中的frame对象进行类型转换处理以及原始数据二次处理,并运行所述预设函数以获取所述识别结果。
8.根据权利要求1至7任一项所述的处理方法,其特征在于,所述将所述图像数据输入至所述深度学习模型,进而获取识别结果之后,所述方法还包括:
利用预设canvas组件,将所述识别结果中的页面元素发送至终端进行显示。
9.一种AR识别的处理装置,其特征在于,所述装置包括:获取模块、下载模块、装载模块和识别模块;
所述获取模块,用于获取图像数据;
所述下载模块,用于将终端应用的网络请求模块进行封装和修改,以使所述终端应用接收并运行硬件加速库的下载指令;
所述装载模块,用于根据所述下载指令,利用所述硬件加速库中的预设函数装载深度学习模型;
所述识别模块,用于将所述图像数据输入至所述深度学习模型,进而获取识别结果。
10.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为运行所述计算机程序以执行权利要求1至8中任一项所述的AR识别的处理方法。
CN202011116810.5A 2020-10-19 2020-10-19 Ar识别的处理方法、装置和电子装置 Active CN112330816B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011116810.5A CN112330816B (zh) 2020-10-19 2020-10-19 Ar识别的处理方法、装置和电子装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011116810.5A CN112330816B (zh) 2020-10-19 2020-10-19 Ar识别的处理方法、装置和电子装置

Publications (2)

Publication Number Publication Date
CN112330816A true CN112330816A (zh) 2021-02-05
CN112330816B CN112330816B (zh) 2024-03-26

Family

ID=74314245

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011116810.5A Active CN112330816B (zh) 2020-10-19 2020-10-19 Ar识别的处理方法、装置和电子装置

Country Status (1)

Country Link
CN (1) CN112330816B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113095191A (zh) * 2021-04-02 2021-07-09 上海元云信息技术有限公司 一种基于微信小程序的实物场景互动方法

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480725A (zh) * 2017-08-23 2017-12-15 京东方科技集团股份有限公司 基于深度学习的图像识别方法、装置和计算机设备
CN108492352A (zh) * 2018-03-22 2018-09-04 腾讯科技(深圳)有限公司 增强现实的实现方法、装置、系统、计算机设备及存储介质
US20190238648A1 (en) * 2018-01-30 2019-08-01 Akamai Technologies, Inc. Systems and Methods For Content Delivery Acceleration of Virtual Reality and Augmented Reality Web Pages
CN110443898A (zh) * 2019-08-12 2019-11-12 北京枭龙科技有限公司 一种基于深度学习的ar智能终端目标识别系统及方法
WO2019223154A1 (zh) * 2018-05-25 2019-11-28 平安科技(深圳)有限公司 单页高负载图像识别方法、装置、计算机设备及存储介质
US20200082624A1 (en) * 2018-09-06 2020-03-12 8th Wall Inc. Providing augmented reality in a web browser

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107480725A (zh) * 2017-08-23 2017-12-15 京东方科技集团股份有限公司 基于深度学习的图像识别方法、装置和计算机设备
US20190238648A1 (en) * 2018-01-30 2019-08-01 Akamai Technologies, Inc. Systems and Methods For Content Delivery Acceleration of Virtual Reality and Augmented Reality Web Pages
CN108492352A (zh) * 2018-03-22 2018-09-04 腾讯科技(深圳)有限公司 增强现实的实现方法、装置、系统、计算机设备及存储介质
WO2019223154A1 (zh) * 2018-05-25 2019-11-28 平安科技(深圳)有限公司 单页高负载图像识别方法、装置、计算机设备及存储介质
US20200082624A1 (en) * 2018-09-06 2020-03-12 8th Wall Inc. Providing augmented reality in a web browser
CN110443898A (zh) * 2019-08-12 2019-11-12 北京枭龙科技有限公司 一种基于深度学习的ar智能终端目标识别系统及方法

Non-Patent Citations (8)

* Cited by examiner, † Cited by third party
Title
IAO, X. Q.: "A New Era for Web AR with Mobile Edge Computing", IEEE INTERNET COMPUTING, pages 46 - 55 *
STARSKY 星空一航: "当微信小程序遇到AR(四)", Retrieved from the Internet <URL:https://www.cnblogs.com/starskyli/p/11653922.html> *
YANN: "小程序中使用 three.js", Retrieved from the Internet <URL:https://developers.weixin.qq. com/community/develop/ar> *
何博;王祖源;万昆;: "基于WebGL的三维物理模型设计与开发", 中国教育信息化, no. 06, pages 75 - 79 *
增强现实展目: "【WebAR】开源项目2:微信小程序AR和Tensorflow.js实现人脸检测和人脸识别", Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/81636351> *
增强现实展目: "【WebAR】开源项目3:微信小程序AR和Three.js实现全景图片、3D查看器、方向传感器旋转", Retrieved from the Internet <URL:https://zhuanlan.zhihu.com/p/82773324> *
增强现实展目: "微信小程序可实现 AR 效果,将带来哪些影响?技术实现有哪些?", Retrieved from the Internet <URL:https://www.zhihu.com/question/333546611 20190708> *
弥乐酱: "微信小程序AR再次升级,新开放功能全解析", Retrieved from the Internet <URL:https://www.sohu.com/a/335000159_120098543> *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113095191A (zh) * 2021-04-02 2021-07-09 上海元云信息技术有限公司 一种基于微信小程序的实物场景互动方法

Also Published As

Publication number Publication date
CN112330816B (zh) 2024-03-26

Similar Documents

Publication Publication Date Title
CN108563517B (zh) 系统接口的调用方法及装置
KR102115057B1 (ko) 그래픽 렌더링
CN109254773B (zh) 骨架页面生成方法、装置、设备和存储介质
CN108572965A (zh) 一种资源加载方法及装置
CN104980512B (zh) 一种基于移动应用提供目标对象的方法与设备
EP2633438A1 (en) Method for displaying a data set
CN110083383A (zh) 浏览器式样兼容方法、装置、计算机设备及存储介质
CN109284454B (zh) 页面渲染方法、装置、计算机设备及存储介质
CN103618699B (zh) 一种调用组件的方法及装置
CN103019817B (zh) 一种用于页面交互的方法与装置
CN108628626B (zh) 开发环境搭建方法、代码更新方法及装置
CN112416458A (zh) 基于ReactNative的预加载方法、装置、计算机设备及存储介质
CN112423111A (zh) 图形引擎和适用于播放器的图形处理方法
CN112330816B (zh) Ar识别的处理方法、装置和电子装置
CN105786476A (zh) 移动客户端与服务器之间的数据处理方法及系统
CN113157274B (zh) 基于微前端的软件开发方法、装置、电子设备及存储介质
CN112926002A (zh) 一种服务请求的处理方法及装置
CN105989075A (zh) 一种浏览器显示图像的方法、装置和系统
CN112818270A (zh) 数据跨域传递方法、装置及计算机设备
CN110209973A (zh) 一种网页游戏加载方法及装置
CN105045893B (zh) 一种网页中的图片的适配方法和装置
CN113315829B (zh) 客户端离线化h5页面加载方法、装置、计算机设备及介质
CN112416470B (zh) 命令的执行方法和装置、存储介质及电子装置
CN112379863A (zh) 跨浏览器和小程序的webGL开发方法、装置和计算机设备
CN115168774A (zh) 网页渲染方法、系统、电子设备及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant