首页> 中国专利> 一种基于图像处理的嵌入式物体认知系统

一种基于图像处理的嵌入式物体认知系统

摘要

本发明实施例提供一种基于图像处理的嵌入式物体认知系统。在该实施例中,该基于图像处理的嵌入式物体认知系统包括图像采集模块、模型训练模块、模型终端部署模块和终端推理模块。该系统能够实时采集图像并在模型训练模块中通过轻量化的卷积神经网络模型推理后得到识别结果;该系统可以在保证识别物体的准确率以及推理速度的同时,大幅降低对硬件资源的需求,实现不同种类物体的识别与分类。

著录项

  • 公开/公告号CN113158968A

    专利类型发明专利

  • 公开/公告日2021-07-23

    原文格式PDF

  • 申请/专利权人 苏州大学;

    申请/专利号CN202110505690.6

  • 申请日2021-05-10

  • 分类号G06K9/00(20060101);G06K9/62(20060101);G06N3/08(20060101);G06N5/04(20060101);

  • 代理机构32421 苏州见山知识产权代理事务所(特殊普通合伙);

  • 代理人袁丽花

  • 地址 215000 江苏省苏州市相城区济学路8号

  • 入库时间 2023-06-19 11:57:35

说明书

技术领域

本发明涉及嵌入式人工智能的技术领域,特别是涉及一种基于图像处理的嵌入式物体认知系统。

背景技术

嵌入式人工智能(Embedded Artificial Intelligence,EAI)是将嵌入式计算机技术、人工智能技术与每个应用场景下的实际需求进行深度融合的产物。嵌入式人工智能除具备人工智能的技术优点之外,兼具嵌入式技术优良的实时性、适用性、鲁棒性与稳定性特点。

传统的嵌入式智能软硬件平台以云端服务器为中心,将终端采集到的原始数据传输到云,数据的存储、分析都是在云端完成,嵌入式终端仅仅实现了数据的采集以及对输出结果作出相应的操作,如此完成一次数据的循环。此类以云计算为核心的智能嵌入式软硬件平台存在着开销大、实时性差、数据隐私等问题,无法满足大部分的实际应用需求。随着技术的发展,终端的处理能力越来越强大,边缘计算、雾计算等旨在克服云核心的嵌入式智能软硬件平台的弊端的新兴技术被提出。但是此类方法仅仅是将网络模型的传播过程切割为终端与云端两部分,嵌入式终端没有具备完整的认知能力,完整的推理过程仍旧需要云端的计算。

因此,针对上述技术问题,有必要提供一种基于图像处理的嵌入式物体认知系统。该系统实时采集图像,并在模型训练模块中通过轻量化的卷积神经网络模型推理后得到识别结果;该系统可以在保证识别物体的准确率以及推理速度的同时,大幅降低对硬件资源的需求,实现不同种类物体的识别与分类。

发明内容

有鉴于此,本发明实施例的目的在于提供一种基于图像处理的嵌入式物体认知系统,该系统实时采集图像并在模型训练模块中通过轻量化的卷积神经网络模型推理后得到识别结果;该系统可以在保证识别物体的准确率以及推理速度的同时,大幅降低对硬件资源的需求,实现不同种类物体的识别与分类。

为了实现上述目的,本发明实施例提供的技术方案如下:一种基于图像处理的嵌入式物体认知系统包括:图像采集模块,用于采集训练物体的图像特征;模型训练模块,与所述图像采集模块连接,以所述图像采集模块所获得的图像特征作为训练的素材,采用预设算法生成可在嵌入式工程框架下直接编译并使用的认知模型参数构件;模型终端部署模块,用于将所述模型训练模块所获得的认知模型参数构件部署在嵌入式终端;终端推理模块,根据所述图像采集模块采集的目标物体的图像并采用所述模型终端部署模块所提供的认知模型参数构件进行目标物体认知。

作为本发明的进一步改进,所述模型训练模块包括两种模式:PC模型训练模式和嵌入式终端实时推理训练模式。

作为本发明的进一步改进,所述PC模型训练模式包括步骤:嵌入式终端获取图像特征并将图像特征传输给PC端;PC端根据所述图像特征建立数据集并按照模型训练模块中的预设算法生成可在嵌入式工程框架下直接编译并使用的认知模型参数构件;将所述认知模型参数构件采取烧录的方式部署至嵌入式终端。

作为本发明的进一步改进,所述嵌入式终端实时推理训练模式包括步骤:嵌入式终端获取图像特征;终端推理模块根据所述图像特征进行图像处理并按照模型训练模块中的预设算法生成可在嵌入式工程框架下直接编译并使用的认知模型参数构件;将所述认知模型参数构件存储至嵌入式终端。

作为本发明的进一步改进,所述模型终端部署模块中的硬件配置根据嵌入式物体认知系统中参数性质不同而不同。

作为本发明的进一步改进,常量参数存储至FLASH内存中,变量参数存储至RAM内存中。

作为本发明的进一步改进,所述常量参数包括滤波器蚕食、偏置BIAS参数、传播结构函数;所述变量参数包括图像特征、输入变量和输出变量。

作为本发明的进一步改进,所述嵌入式物体认知系统将预设的FLASH指定扇区的连续地址空间的擦除与读写替代RAM中动态数组的读写。

作为本发明的进一步改进,所述模型训练模块中的预设算法中所用的参数格式为C语言中的多维数组形式。

作为本发明的进一步改进,所述图像采集模块中采用优化摄像头驱动算法驱动摄像头而采集训练物体的图像特征。

作为本发明的进一步改进,所述图像采集模块中包括图像处理单元,所述图像处理单元采用阈值过滤法对所述图像采集模块所获得的训练物体的原始图像进行处理而获得训练物体的图像特征。

作为本发明的进一步改进,所述模型训练模块采用融合滚动卷积算法生成可在嵌入式工程框架下直接编译并使用的认知模型参数构件。

本发明具有以下优点:

本发明实施例的目的在于提供一种基于图像处理的嵌入式物体认知系统,该系统实时采集图像并在模型训练模块中通过轻量化的卷积神经网络模型推理后得到识别结果。进一步地,该系统中的模型训练模块采用融合滚动卷积算法,有效地优化嵌入式系统对图像区域大小空间的需求。进一步地,该系统在图像采集过程中采用优化摄像头驱动算法驱动摄像头,有效地提升了图像读取和显示的速度。该系统可以在保证识别物体的准确率以及推理速度的同时,大幅降低对硬件资源的需求,实现不同种类物体的识别与分类。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的嵌入式物体认知系统的模块示意图;

图2为图1所示实施例的嵌入式物体认知系统的数据流模型示意图;

图3(a)为图1所示实施例中PC模型训练模式的流程示意图;

图3(b)为图1所示实施例中嵌入式终端实时推理训练模式的流程示意图;

图4为图1所示实施例中模型终端部署模块中的硬件配置分配框架图;

图5为本发明实施例中优化摄像头驱动算法的流程图;

图6(a)、6(b)、6(c)为本发明实施例中融合滚动卷积算法示意图。

附图标记说明:

100、嵌入式物体认知系统 10、图像采集模块 20、模型训练模块

30、模型终端部署模块 40、终端推理模块

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

如图1所示,本发明实施例提供的一种基于图像处理的嵌入式物体认知系统的模块示意图。在该实施例中,该基于图像处理的嵌入式物体认知系统100包括图像采集模块10、模型训练模块20、模型终端部署模块30和终端推理模块40。图像采集模块10用于采集训练物体的图像特征。模型训练模块20与图像采集模块10连接,以图像采集模块10所获得的图像特征作为训练的素材并采用预设算法生成可在嵌入式工程框架下直接编译并使用的认知模型参数构件。模型终端部署模块30用于将模型训练模块20所获得的认知模型参数构件部署在嵌入式终端。终端推理模块40根据图像采集模块10采集的目标物体的图像并采用模型终端部署模块30提供的认知模型参数构件进行目标物体认知。

继续参考图2,图像采集模块10首先采集对应物体的特征数据,作为训练认知模型的素材;在采集足够数量的图像数据之后,模型训练模块20训练模型,最终通过相关算法生成可以在通用嵌入式工程框架下直接编译并使用的认知模型参数构件;模型终端部署模块30将模型训练模块20所获得的认知模型参数构件部署在嵌入式终端,即重新编译并烧录之后,新的认知模型便部署在了终端上,此时终端通过终端推理模块40可以对目标物体的进行认知而获得认知结果。

在整体应用系统中,根据数据的方向传递根据系统执行的功能不同,模型训练模块20可以分为两种模式:PC模型训练模式和嵌入式终端实时推理训练模式。

其中,PC模型训练模式的流程如图3(a)所示。PC模型训练模式包括步骤:嵌入式终端获取图像特征并将图像特征传输给PC端,即图像采集模块10采集对应物体的图像特征数据并且将图像特征传输给PC端;PC端根据所述图像特征建立数据集并按照模型训练模块中的预设算法生成可在嵌入式工程框架下直接编译并使用的认知模型参数构件;将所述认知模型参数构件采取烧录的方式部署至嵌入式终端。

其中,嵌入式终端实时推理训练模式的流程如图3(b)所示。嵌入式终端实时推理训练模式包括步骤:嵌入式终端获取图像特征,即图像采集模块10采集对应物体的图像特征数据;终端推理模块根据所述图像特征进行图像处理并按照模型训练模块中的预设算法生成可在嵌入式工程框架下直接编译并使用的认知模型参数构件;将所述认知模型参数构件存储至嵌入式终端。

嵌入式系统中的MCU的物理资源存储器被分为易失性存储器与非易失性存储器两种。随机存取存储器(Random Access Memory,RAM)与闪存(Flash EEPROM Memory,FLASH)分别为二者的代表器件。RAM提供给处理器运行过程中所需要的局部变量等临时数据,FLASH存储程序运行的只读数据以及程序本身。一般情况下RAM的空间大小是远小于FLASH的空间大小的,以STM32L431RC芯片为例,RAM的大小为64KB,而FLASH的大小为256KB。

主控芯片RAM的大小决定了系统处理数据的性能,而在网络模型的推理过程中,每一层子网络在推理过程中所产生的临时数据不对后续产生影响,前馈神经网络每层之间只通过输出特征矩阵实现网络模型的逐层传播,所以单层网络所使用到的所有参数总数据量不应大于主控芯片的RAM空间大小。网络模型在嵌入式终端中的资源消耗也分为部署后的参数模型本身以及运行时模型传播所产生的额外数据消耗。在网络模型从输入到输出的前向传播过程中,一共涉及到的数据资源为输入图像、网络模型参数、运算过程中产生的临时空间、每一层传递过程中的输入输出以及最终模型的输出共五种数据类别。

在该实施例中,基于图像处理的嵌入式物体认知系统100根据嵌入式终端芯片的空间资源特性设计出合理的模型资源配置架构。模型终端部署模块30中的硬件配置根据嵌入式物体认知系统中参数性质不同而不同。具体地,常量参数存储至FLASH内存中,变量参数存储至RAM内存中。将不同特性的模型参数与嵌入式终端中的不同物理存储资源进行适配,合理化终端运行的资源配置方法,减少不必要的资源消耗。

如图4所示,在该实施例中,所述常量参数包括滤波器蚕食、偏置BIAS参数、传播结构函数;所述变量参数包括图像特征、输入变量和输出变量。对于传播过程中不发生改变的网络模型参数,例如卷积核参数、偏置bias等,由于网络模型参数通常占据了最大存储空间,同时也是网络模型推理中无法更新迭代的,所以系统以常量数组的形式存放在FLASH中,由于FLASH相对于RAM来说资源空间更大,更加适合存储此类数据。对于每层网络传递过程中的输入输出由于其结构固定,在嵌入式终端中都是以固定大小的多维数组存在,只是在传播过程中每个数组成员的值会发生改变,所以系统以动态数组的方式存储在RAM中,更加有利于系统的运算速度。由于输入图像以及输出数组是与其他软件层构件所共同处理的,所以系统以全局数组的方式存储在RAM中。

在嵌入式系统中,RAM的大小相对较小,但是RAM负责着主要的数据计算。同时在网络模型推理的过程中,每一层所占用的资源是不同的,每层不同的网络结构所占用的空间资源的差异较大。以VGG16[54]网络为例,在第一层卷积层所用到的网络参数以及输入输出占用了将近100KB的空间,而最终的全连接神经网络层仅占用了不到1KB的运算空间。如何将占用资源最大的网络层切割、通过其他方式减小该层网络的空间占用是目前急需解决的问题之一。

优选地,嵌入式物体认知系统100将预设的FLASH指定扇区的连续地址空间的擦除与读写替代RAM中动态数组的读写。以此,降低嵌入式物体认知系统100对RAM资源的消耗,提升了主控芯片对网络模型大小的适用性,以较小的时间损耗换取模型推理精度的提升。擦除替代的具体算法,如表1所示:

一般的低资源嵌入式终端由于编译框架的不同,无法直接支持Keras等神经网络算法库。在该实施例中,嵌入式物体认知系统100首先读取在网络模型拟合平台训练生成得到的H5格式文件的参数再根据设计的算法生成可以在嵌入式工程框架直接编译的模型参数的C语言版本构件。

通过对H5文件的数据分析,发现H5文件中的数据格式为树状结构,同时分为权重weight与偏置bias两类数据。其中l层网络第n维的h行w列的卷积核元素a具体数据的表现形式如式1所示:

a=layerl_n_h_w (式1)

第l层网络的第k个偏置项b的数据具体表现形式如式2所示:

b=layerl_bias_k (式2)

据此可以直接定位数据的所在位置,为本发明实施例中预设算法的设计提供了理论基础。嵌入式物体认知系统100设计模型推理参数格式转换算法将模型推理所用、的参数在存储形式上转换为C语言中的多维数组形式,将算法模型转为嵌入式工程构件。即模型训练模块20中的预设算法中所用的参数格式为C语言中的多维数组形式。

优选地发明实施例首先将模型参数转变为C语言中的多维数组形式,再抽取嵌入式工程中的共性,添加附属的头文件构件,以及文件开头所需要的变量声明等要素,转为通用的嵌入式工程构件形式,可以直接部署在嵌入式终端,为终端推理提供了模型参数数据支持。

图像数据的采集过程相对于传统的环境传感器采集过程来说更加复杂、繁琐处理的数据量也更加庞大。针对这些问题,嵌入式物体认知系统100设计图像采集加速算法与特征提取算法,确保终端能够快速地采集到高质量的图像数据。在优选地实施例中,图像采集模块10中采用优化摄像头驱动算法驱动摄像头而采集训练物体的图像特征。

以图像格式QVGA为例,摄像头传送给缓存芯片的图像尺寸为80×60个像素,需要读取4800次像素点信息数据,所以对于每一次像素有效性的判断方法和摄像头与缓存芯片通信流程经过放大之后所带来的速度提升是相当可观的。如图5所示,本发明实施例中优化摄像头驱动算法的流程图。嵌入式物体认知系统100获取一个像素点共需要输出2次时钟信号,即4次GPIO口高/低电平信号,读取完整一张QVGA图像需要输出19200次时钟信号。于是系统首先针对输出时钟信号这一操作进行加速优化操作。

传统的嵌入式的GPIO操作通常是调用封装的GPIO接口函数,而接口函数往往为了保证程序的健壮性,都在函数中放置了参数校验判断操作。例如意法半导体公司的HAL底层封装库,一个GPIO的上拉操作便需要端口正确性验证、GPIO寄存器验证等一系列操作。这些操作避免不规范的参数输入,保证了函数的复用性与健壮性。但是,对于图像采集的单一GPIO操作是不适合的,也增加了系统运行的负担。嵌入式物体认知系统100对摄像头模块的通信GPIO端口对应的输入输出寄存器进行置位操作,避免了参数的传递以及判断,提高了采集图像的效率与速度。

对图像采集模块10中的摄像头单元采集到像素大小的图像进行裁剪与压缩。便可以在保证图像特征数据尽可能不丢失的情况下,减少图像数据占用空间。与传统的图像处理算法对二维数组处理不同的是,由于图像数据采集模块传输时逐像素点传输,所以在嵌入式终端采集图像的过程中,是针对一维的图像数组进行相关操作。假设采用的图像处理算法的图像输入维度是H×H像素大小,而算法则将QVGA大小的图像数据压缩为H×H格式大小。在该实施例中,压缩算法首先将采集到的图像裁剪为60×60大小,再判断输入像素点的序数n是否为目标像素点:若是,则存储在对应的目标二维数组位置Ax,y,否则丢弃。具体的压缩算法如表2所示:

进一步地,本发明实施例也进行LCD显示加速。将单个像素点数据显示在LCD上的过程,也是芯片与LCD通过串行外设接口(Serial Peripheral Interface,SPI)进行通信的过程。将逐点显示的过程变为首先设定LCD显示区域,再调用SPI直接将像素数据发送给LCD,免去每次发送的设定坐标过程。为了最大限度地利用MCU资源,LCD显示采取的方法是逐点显示,即在接收完成一个像素点数据之后便直接在LCD上显示,只占用并重复使用单个像素点的资源便在LCD上显示一张完整的图像。同时,传统的LCD显示像素点函数是对显示的每一个像素点进行定位再显示,即先确定在LCD上显示的相对位置,再显示对应的一个点。但是这对于指定区域重复多次的图像显示情况来说,是低效率的。图像显示的每一个像素点与前后显示的像素点都有一定的位置连续关系,并不需要对每个像素点进行定位才能够显示完整的图像。

优选地,图像采集模块10还包括图像处理单元(图中未示出)。图像处理单元采用阈值过滤法对所述图像采集模块所获得的训练物体的原始图像进行处理而获得训练物体的图像特征,从而有效地滤掉图像背景而尽可能地保留目标物体本身的图像特征。

在该实施例中,阈值过滤法具体包括边缘均值法、双峰均值法与双峰谷底法。边缘均值法将所有的边缘像素点进行均值运算,得到的均值作为阈值对图像进行滤波操作。双峰均值法的算法是基于迭代更新的思想。算法首先将输入的图像中每个灰度值出现的次数处理成直方图的形式,再对该直方图进行双峰判断,即是否有且仅有两个局部最大值出现,如果是则取这两个局部最大值的平均数作为滤波阈值,否则对每一个数据点进行跨度为n的平滑,同时给定平滑次数N,如果超过上限N则判断该图无法滤波。双峰谷底法在获得两个最大频率的灰度值后,并没有取这两个中间灰度值,而是取这两个顶峰之间的最低谷,也就是二者灰度数值之间出现频率最低的一个灰度值作为阈值对图像滤波。

通常的网络模型的处理方式往往是先获取整张图像数据,再将图像数据输入网络,这在高资源的情况下是合理的。而在低资源情况下,输入图像如果较大,例如网络模型通常使用的224×224像素大小的图像,单一张图像便占据了49KB大小的空间。在此消彼长的系统空间中,这也影响了模型参数数量,最终降低系统的识别精度。如何最大程度地减小输入图像所占用的空间是提升系统的空间利用效率的关键。针对这一问题,嵌入式物体认知系统100中的模型训练模块20采用动态滚动卷积算法,生成可在嵌入式工程框架下直接编译并使用的认知模型参数构件。针对嵌入式终端对图像获取过程的可控性以及可分解性,系统将图像的获取过程与网络的第一层卷积层融合在一起,设计出动态滚动卷积算法。

动态滚动卷积算法根据嵌入式终端摄像头图像获取过程的可分解与可控制性,将融合滚动卷积算法分为以下几个步骤:

(1)获取图像前k+H行像素点数据,存放在对应二维数组G[H+1][S]中。k∈[1,T-H-1]。其中S的值为采集数据的单行大小,并且获取完毕之后应通过相应控制接口暂停接收图像数据。

(2)用卷积核A[H][H]与G的第k行至第k+H-1行数据进行卷积运算,并将得到的特征图层数组按照次序存放在特征图层数组的第k行,此传统方法一致,如图6(a),图6(b)所示。

(3)将二维数组G的第k+1至第k+H行中的成员分别与第k行至第k+H的成员进行交换,为了节省内存空间,这里只额外定义一个变量用于交换,对相邻的第k行与k+1行中的元素,按照列序依次进行交换,直到所有元素交换完毕,并丢弃原有的第k行数据具体交换方法本文采取的是如图6(c)所示。

(4)打开缓存芯片读使能,继续读取第k+H+1行的图像数据,并且存放在G的第k+H行中。

(5)此时将k值增1,依次重复步骤(1)(2)(3)(4),直到卷积完成,得到完整的输出数组。

对于空间资源消耗方面,本发明实施例的融合卷积算法所需要的输入图像存储空间变为了S×(H+1),而传统卷积方法所占用的空间S×T。

本发明实施例的融合滚动卷积算法的具体代码过程,如表3所示:

本发明实施例所提供的基于图像处理的嵌入式物体认知系统,能够实时采集图像并在模型训练模块中通过轻量化的卷积神经网络模型推理后得到识别结果。进一步地,该系统中的模型训练模块采用融合滚动卷积算法,有效地优化嵌入式系统对图像区域大小空间的需求。进一步地,该系统在图像采集过程中采用优化摄像头驱动算法驱动摄像头,有效地提升了图像读取和显示的速度。该系统可以在保证识别物体的准确率以及推理速度的同时,大幅降低对硬件资源的需求,实现不同种类物体的识别与分类。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立的技术方案,说明书的这种叙述方式仅仅是为清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号