掌桥专利:专业的专利平台
掌桥专利
首页

一种嵌入式物体识别方法和装置

文献发布时间:2023-06-19 13:46:35


一种嵌入式物体识别方法和装置

技术领域

本发明涉及嵌入式人工智能的技术领域,更具体地,涉及一种嵌入式物体识别方法和装置。

背景技术

嵌入式人工智能,是一种将人工智能算法应用于终端设备上的技术概念,使各种设备能够在不联网的情况下完成环境感知、人机交互等功能。嵌入式系统是人工智能技术重要的承载平台,在物流服务领域的自动分拣机器人、自动送货汽车等,安全防范邻域的人脸识别、指纹识别、智能摄像机等,城市交通邻域的自动泊车、自动车辆识别、智能停车场等,医疗服务的病例诊断、智能消毒机器人等,都是人工智能与嵌入式结合产生的新应用。用于嵌入式系统的深度神经网络对计算能力和资源都有非常高的要求,导致系统功耗的增加;支持深度神经网络加速的处理器通常是集成多种体系结构的复杂SoC,使用成本极高。现有的嵌入式物体识别采用复杂度极高、成本昂贵的芯片,不利于学习与使用;在低资源、低成本芯片上难以实现,也并不适应单一的任务,容易造成资源浪费;可以在低资源的芯片上实现的嵌入式物体识别,采用的模型简单、训练策略和评价策略单一,使嵌入式物体识别的准确度较低。

2021年7月20日公开的中国专利申请CN113138789A提供了一种嵌入式物体认知系统,包括:程序更新模块、摄像头模块、显示屏模块、三色灯模块和主控芯片;所述主控芯片分别与所述程序更新模块、摄像头模块、显示屏模块、三色灯模块连接;所述主控芯片根据程序更新模块的输入进行程序更新,接收所述摄像头模块获取的图像数据,并进行图像压缩、输入标准化、图像识别,将结果显示在所述显示屏模块上。该发明仅能识别数字0~9,局限性较大,对其他复杂的物体进行识别时,需要高储存环境和计算成本,否则就无法实现准确识别。

发明内容

本发明为克服上述现有的嵌入式物体识别技术无法在低资源、低成本环境下准确识别物体的缺陷,提供一种嵌入式物体识别方法和装置,可以在低资源、低成本环境下实现对物体的准确识别。

为解决上述技术问题,本发明的技术方案如下:

本发明提供一种嵌入式物体识别方法,包括:

S1:采集物体的彩色图像;

S2:对彩色图像进行处理,获得处理后的图像数据;

S3:利用处理后的图像数据对构建的Combine-MobileNet神经网络进行训练并测试,获得训练好的Combine-MobileNet神经网络;

S4:将训练好的Combine-MobileNet神经网络保存加载到嵌入式平台上;

S5:将待识别物体的图像数据输入嵌入式平台,对待识别物体的类别进行实时推理,获得识别结果。

优选地,所述步骤S2中,对彩色图像进行处理的具体步骤为:

S2.1:将彩色图像转化为灰度图像;

S2.2:将灰度图像随机划分为训练图像和测试图像;

S2.3:对训练图像进行数据增强操作,获得增强训练图像;

S2.4:对增强训练图像进行下采样,获得下采样训练图像。

优选地,所述步骤S2.3中,对训练图像进行的数据增强操作包括:旋转、裁剪、平移和高斯噪声。

对每张训练图像进行旋转、裁剪、平移和高斯噪声操作,由一张训练图像增强出若干张增强训练图像,增加训练数据的规模和复杂度,提高了网络的准确性。

优选地,所述步骤S2.4中,对增强训练图像进行的下采样操作包括包括对增强训练图像依次进行一次平局池化操作和一次最大池化操作。

对每张增强训练图像依次进行一次平局池化操作和一次最大池化操作,减小训练数据的尺寸,减少计算成本。

优选地,所述步骤S3中,利用处理后的图像数据对构建的Combine-MobileNet神经网络进行训练并测试,获得训练好的Combine-MobileNet神经网络的具体方法为:

S3.1:设定Combine-MobileNet神经网络的损失函数、最优损失函数值、最优损失函数值替换次数阈值和最大训练次数;

S3.2:将下采样训练图像输入Combine-MobileNet神经网络中,利用交叉熵计算下采样训练图像的损失函数值loss;

S3.3:设置早停策略,即比较下采样训练图像的损失函数值与最优损失函数值大小,当损失函数值大于最优损失函数值时,将该损失函数值替换最优损失函数值,并记录替换次数;

S3.4:比较替换次数与最优损失函数值替换次数阈值的大小,当替换次数小于最优损失函数值替换次数阈值时,进行下一轮训练;否则Combine-MobileNet神经网络训练完成;

S3.5:将测试图像输入训练完成的Combine-MobileNet神经网络中进行测试,获得训练好的Combine-MobileNet神经网络。

优选地,所述步骤S3中,Combine-MobileNet神经网络包括第一标准卷积层、第二标准卷积层、第一深度可分离卷积层、第二深度可分离卷积层、第一全连接层、第二全连接层、特征融合层、平均池化层和第三全连接层;

第一标准卷积层的输出端与第二标准卷积层的输入端连接,第二标准卷积层的输出端分别与第一深度可分离卷积层和第二深度可分离卷积层的输入端连接;

第一深度可分离卷积层的输出端与第一全连接层的输入端连接,第一全连接层的输出端与特征融合层的输入端连接;第二深度可分离卷积层的输出端与第二全连接层的输入端连接,第二全连接层的输出端与特征融合层的输入端连接;

特征融合层的输出端与平均池化层的输入端连接,平均池化层的输出端与第三全连接层的输入端连接。

将下采样训练图像输入Combine-MobileNet神经网络中,首先通过3x3的第一标准卷积层获得第一特征v

优选地,所述步骤S4中,将训练好的Combine-MobileNet神经网络保存加载到嵌入式平台上的具体方法为:

S4.1:将训练好的Combine-MobileNet神经网络保存为H5文件;

S4.2:解析该H5文件,获得Combine-MobileNet神经网络的矩阵化网络参数;

S4.3:创建“model_init.c“和“model_init.h”两个c语言文件,将矩阵化网络参数按照数据流的形式写入“model_init.h”文件中;

S4.4:用“model_init.c“和“model_init.h”替换嵌入式平台工程文件中对应的旧文件。

图像处理和网络训练都是在PC端进行的,而Combine-MobileNet神经网络的网络参数无法被嵌入式平台处理,需要将这些网络参数转化为嵌入式平台能够处理的矩阵形式。H5文件中的数据格式为树状结构,分为权重weight和偏置bias,其中第1层网络的第n维的第h行w列的卷积核元素a的表现形式为:a=layer1(n,h,w),第1层网络的第k个偏置项b的数据表现形式为:b=layer1(bias,k)。用“model_init.c“和“model_init.h”替换嵌入式平台工程文件中对应的旧文件后,将嵌入式平台的工程文件中所定义的物体类别名称修改为当前所训练的物体类别名称。

优选地,所述步骤S5中,基于精选策略对待识别物体进行实时推理,获得识别结果;即推理一个物体的类别时,获取该物体不同时间的图像数据进行多次推理,选择出现次数最多或概率最大的推理结果作为物体的识别结果。

竞选策略,使用时间换取准确度的策略,通过对多次推理结果进行综合评估,减小了人为因素与设备对推理准确性的影响。

优选地,所述嵌入式平台是基于STM32的嵌入式平台。

本发明还提供了一种嵌入式物体识别装置,包括:

数据采集模块,用于采集物体的彩色图像;

数据处理模块,用于对彩色图像进行处理,获得处理后的图像数据;

网络训练测试模块,利用处理后的图像数据对构建的Combine-MobileNet神经网络进行训练并测试,获得训练好的Combine-MobileNet神经网络;

网络加载模块,用于将训练好的Combine-MobileNet神经网络保存加载到嵌入式平台上;

推理识别模块,用于将待识别物体的图像数据输入嵌入式平台,对待识别物体的类别进行实时推理,获得识别结果。

与现有技术相比,本发明技术方案的有益效果是:

本发明首先对彩色图像进行处理,将处理后的图像数据作为训练数据,增加了数据的规模和复杂度,有助于训练时提高Combine-MobileNet神经网络的准确度;构建的Combine-MobileNet神经网络结构简单,计算成本低,准确度高;将训练好的Combine-MobileNet神经网络保存加载到嵌入式平台上,可以在低资源、低成本环境下实现对物体的准确识别。

附图说明

图1为实施例1所述的一种嵌入式物体识别方法的流程图。

图2为实施例1所述的Combine-MobileNet神经网络的结构图。

图3为实施例2所述的一种嵌入式物体识别装置的结构图。

具体实施方式

附图仅用于示例性说明,不能理解为对本专利的限制;

为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;

对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。

下面结合附图和实施例对本发明的技术方案做进一步的说明。

实施例1

本发明提供一种嵌入式物体识别方法,如图1所示,包括:

S1:采集物体的彩色图像;

采集的物体的彩色图像为320×240的RGB256格式的彩色图像,每一个像素点占16位的存储空间,红色、绿色与蓝色分别占第0-4位、5-10位、11-15位;

S2:对彩色图像进行处理,获得处理后的图像数据;

对彩色图像进行处理的具体步骤为

S2.1:将彩色图像转化为灰度图像;

按照Y=0.3R+0.59G+0.11B的计算方式将三通道三维彩色图像转化为单通道的灰度图像,其中Y表示灰度,R表示红色,G表示绿色,B表示蓝色,并使用“start”表示一张灰度图片的开始,“end”表示一张灰度图片的结束;

S2.2:将灰度图像随机划分为训练图像和测试图像;

本实施例中,将灰度图像按照8:2的比例随机划分为训练图像和测试图像;

S2.3:对训练图像进行数据增强操作,获得增强训练图像;

数据增强操作包括:旋转、裁剪、平移和高斯噪声,由一张训练图像增强出若干张增强训练图像,增加训练数据的规模和复杂度,提高后续对网络进行训练时的准确性;

S2.4:对增强训练图像进行下采样,获得下采样训练图像;

对增强训练图像依次进行一次平局池化操作和一次最大池化操作,减小训练数据的尺寸,降低计算成本。

S3:利用处理后的图像数据对构建的Combine-MobileNet神经网络进行训练并测试,获得训练好的Combine-MobileNet神经网络;

如图2所示,Combine-MobileNet神经网络包括第一标准卷积层、第二标准卷积层、第一深度可分离卷积层、第二深度可分离卷积层、第一全连接层、第二全连接层、特征融合层、平均池化层和第三全连接层;

第一标准卷积层的输出端与第二标准卷积层的输入端连接,第二标准卷积层的输出端分别与第一深度可分离卷积层和第二深度可分离卷积层的输入端连接;

第一深度可分离卷积层的输出端与第一全连接层的输入端连接,第一全连接层的输出端与特征融合层的输入端连接;第二深度可分离卷积层的输出端与第二全连接层的输入端连接,第二全连接层的输出端与特征融合层的输入端连接;

特征融合层的输出端与平均池化层的输入端连接,平均池化层的输出端与第三全连接层的输入端连接;

获得训练好的Combine-MobileNet神经网络的具体方法为:

S3.1:设定Combine-MobileNet神经网络的损失函数、最优损失函数值、最优损失函数值替换次数阈值和最大训练次数;本实施例中,最优损失函数值替换次数阈值为10次,最大训练次数为10000次,最优损失函数值根据需要设置;

S3.2:将下采样训练图像输入Combine-MobileNet神经网络中,利用交叉熵计算下采样训练图像的损失函数值loss;

S3.3:设置早停策略,即比较下采样训练图像的损失函数值与最优损失函数值大小,当损失函数值大于最优损失函数值时,将该损失函数值替换最优损失函数值,并记录替换次数;

S3.4:比较替换次数与最优损失函数值替换次数阈值的大小,当替换次数小于最优损失函数值替换次数阈值时,进行下一轮训练;否则Combine-MobileNet神经网络训练完成;本实施例中,当损失函数值在10次后不再继续下降时,训练完成;

S3.5:将测试图像输入训练完成的Combine-MobileNet神经网络中进行测试,获得训练好的Combine-MobileNet神经网络;

采用Pytorch框架搭建基于MobileNet-V2进行改进的Combine-MobileNet模型,采用深度可分离卷积进行搭建,将MobileNet-V2中步长为1和步长为2的深度可分离卷积所提取的特征进行融合,充分2利用了两种特征,提高了识别的准确性,同时将MobileNet-V2的7x7的平均池化层换为3x3的平均池化,减小了计算成本。

将下采样训练图像输入Combine-MobileNet神经网络中,首先通过3x3的第一标准卷积层获得第一特征v

S4:将训练好的Combine-MobileNet神经网络保存加载到嵌入式平台上;

加载步骤包括:

S4.1:将训练好的Combine-MobileNet神经网络保存为H5文件;

S4.2:解析该H5文件,获得Combine-MobileNet神经网络的矩阵化网络参数;

S4.3:创建“model_init.c“和“model_init.h”两个c语言文件,将矩阵化网络参数按照数据流的形式写入“model_init.h”文件中;

S4.4:用“model_init.c“和“model_init.h”替换嵌入式平台工程文件中对应的旧文件。

图像处理和网络训练都是在PC端进行的,而Combine-MobileNet神经网络的网络参数无法被嵌入式平台处理,需要将这些网络参数转化为嵌入式平台能够处理的矩阵形式。H5文件中的数据格式为树状结构,分为权重weight和偏置bias,解析后获得矩阵化网络参数:第1层网络的第n维的第h行w列的卷积核元素a的表现为:a=layer1(n,h,w),第1层网络的第k个偏置项b的数据表现为:b=layer1(bias,k)。用“model_init.c“和“model_init.h”替换嵌入式平台工程文件中对应的旧文件后,将嵌入式平台的工程文件中所定义的物体类别名称修改为当前所训练的物体类别名称。

S5:将待识别物体的图像数据输入嵌入式平台,对待识别物体的类别进行实时推理,获得识别结果。

基于精选策略对待识别物体进行实时推理,获得识别结果。精选策略是使用时间换取准确度的策略,通过对多次推理结果进行综合评估,减小了人为因素与设备对推理准确性的影响;具体的,每一次推理一个物体的类别时,获取该物体不同时间的图像数据进行多次推理,选择出现次数最多或概率最大的推理结果作为物体的识别结果。在本实施例中,获取该物体三个不同时间的图像数据进行多次推理,选择三个出现次数最多的或概率最大的推理结果中作为最终的识别结果,使物体识别结果更加准确。

在实际操作过程中,安装Visual Studio 2019,搭建图像采集系统;安装AHL-GEC-IDE(4.08),搭建嵌入式工程开发平台;安装TT-USB串口(CH340)驱动,实现嵌入式平台与pc端通信;安装JetBrainsPyCharm 2019.1.1x64,用来实现物体认证系统功能。首先导入工程文件,将修改后的工程文件导入编译器中;使用对工程文件进行编译;通过端口连接嵌入式平台与PC端;通过端口将编译好的工程文件加载到嵌入式平台;对获取的识别物体的图像数据进推理,将结识别果显示在嵌入式平台的显示屏上。

实施例2

本实施例提供了一种嵌入式物体识别装置,如图3所示,包括:

数据采集模块,用于采集物体的彩色图像;

数据处理模块,用于对彩色图像进行处理,获得处理后的图像数据;

网络训练测试模块,利用处理后的图像数据对构建的Combine-MobileNet神经网络进行训练并测试,获得训练好的Combine-MobileNet神经网络;

网络加载模块,用于将训练好的Combine-MobileNet神经网络保存加载到嵌入式平台上;

推理识别模块,用于将待识别物体的图像数据输入嵌入式平台,对待识别物体的类别进行实时推理,获得识别结果。

显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。

相关技术
  • 一种嵌入式物体识别方法和装置
  • 一种物体识别方法、物体识别装置及电子设备
技术分类

06120113807227