基于多任务学习的轻量级指针式表计读数方法

未命名 08-15 阅读:168 评论:0


1.本发明属于机器视觉与深度学习领域,特别是一种基于多任务学习的轻量化指针式表计读数方法。


背景技术:

2.指针式表计多为机械式表计,因其可靠、电磁抗干扰性强等优点,广泛应用于电力、化工、冶炼等工业生产领域。然而,当前工业生产中,一般采用人工读取读数的方式,该方式读取速度慢、劳动强度大,已不适合自动化、智能化发展。
3.为解决上述问题,一些指针表计自动读数方法被提出。现阶段绝大部分指针式表计读数方法将整个读数过程分为:表盘检测、指针和刻度检测、读数计算等相互关联的三个阶段。如文献1(万吉林,王慧芳,管敏渊等.基于faster r-cnn和u-net的变电站指针式仪表读数自动识别方法[j].电网技术,2020,44(8):3097-3105)首先采用faster r-cnn检测仪表盘,然后利用语义分割网络u-net定位指针和刻度的位置,最后利用角度法实现最终的读数计算;文献2(zhang x,dang x,lv q,et al.a pointer meter recognition algorithm based on deep learning[c].2020 3rd international conference on advanced electronic materials,computers and software engineering(aemcse).ieee,2020:283-287)在faster r-cnn检测到仪表盘的基础上,利用传统的图像处理方法,如直线拟合、霍夫变换等方法检测刻度,再进行读数。这种模式下,指针式表计读数任务划分为相互独立的几个小任务,每个小任务的误差相互叠加,耗时长的同时识别精度也有下降。


技术实现要素:

[0004]
本发明的目的是针对现有的指针式表计读数方法中存在的问题,提出一种基于多任务学习的轻量级指针式表计读数方法,实现端到端的指针式表计读数识别。
[0005]
为实现上述目的,本发明提供如下技术方案:一种基于多任务学习的轻量级指针式表计读数方法,包括如下步骤:
[0006]
步骤1,构造基于多任务学习的轻量级网络模型,并对其进行训练。
[0007]
步骤2,输入表计图像,利用步骤1所得的网络模型进行推理获取读数结果。
[0008]
本发明与现有技术相比,其显著优点为:
[0009]
(1)利用多任务学习的想法,提出一种端到端的指针式表计读数识别方法,该方法通过设计一种共享的结构,使得一个模型同时实现指针式表计仪表盘检测、指针和刻度检测以及最后的读数回归等三种不同的任务;该方法由于对刻度数字进行了检测,可以直接将读数结果回归到真实值而不是一个在[0,1]区间内的相对值。此外由于多任务学习的相互约束和相互补充,整体的读数效果将优于传统的方法。
[0010]
(2)端到端网络使用方便,同时由于只有一个模型,整体的推理速度远由于传统的方法。此外,本发明所提出的模型完全是为了嵌入式平台所设计的模型,该模型的每个部分均采用轻量化网络进行设计,模型尺寸小,推理时间端短,可直接应用到嵌入式平台上,非
常适合工业部署。
[0011]
(3)通过本文的多任务学习网络训练而来的模型更有利于模型的迁移,本文所设计的共享结构经过训练后可以迁移到其他深度学习任务中。
附图说明
[0012]
为了更清楚地说明本发明实施例地技术方案,下面将对实施例中所需要使用的附图作简要介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围地限定,对于本领域普通技术人员来讲,在不付出创造性劳动地前提下,还可以根据这些附图获得其他相关的附图。
[0013]
图1为一个实施例中指针式表计读数模型网络结构图。
[0014]
图2为一个实施例中多尺度特征融合层结构图,图中(a)为scn结构图、(b)为整体多尺度特征融合层sfn结构图。
[0015]
图3为一个实施例中输出头结构图,图中(a)为仪表盘检测输出头结构图、(b)为指针和刻度检测输出头结构图、(c)为回归读数输出头结构图。
[0016]
图4为一个实施例中模型一次预测后的结果图。
[0017]
图5为一个实施例中基于多任务学习的轻量级指针式表计读数系统结构图。
具体实施方式
[0018]
本发明从多任务学习的角度进行考虑,设计了一种新的端到端的轻量级指针式表计读数方法。多任务学习能够自适应地寻找多个任务之间的关系,不同的任务之间就能够相互提供额外有用的信息,利用这些额外的信息,可以训练出表现更好、更鲁棒的模型。
[0019]
本发明针对指针式表计读数的多个任务,结合多任务学习的实现方法,提出了一种可以同时实现仪表盘检测、指针和刻度检测、读数回归的训练和推理的方法,只利用一个轻量级的神经网络即可实现上述的三个不同的任务。该方法采用ghostnet和mobilenetv2作为轻量化主干特征提取网络;特征融合层结合了se注意力机制、fpn和转置卷积层,增强了模型的特征表达能力;输出层针对不同功能分支采用了不同的网络结构,如对于表盘定位、指针及刻度检测,采用了基于热力图的无锚检测方法,而对于读数回归则采用全卷积网络。不同于已有采用多个模型分别进行表盘定位、指针提取与读数识别的方法,本发明将多项任务融合在同一模型中通过多任务学习,同时优化表盘定位、指针和刻度检测以及读数回归等多个目标函数,只利用一个轻量化设计的神经网络模型即可实现端到端的指针式表计定位、指针和关节点检测及读数识别,具有资源消耗低、推理速度快、模型轻量化等特点,尤其适合于在嵌入式系统中的应用。
[0020]
为了使本技术的目的、技术方案、以及优点更加明白。以下结合附图及实施例,对本技术进一步详细说明。应当理解,此处描述的具体实施例仅用于解释本技术,并不用于限定本技术。
[0021]
本发明提出的一种基于多任务学习的指针式表计读数方法,其步骤如下:
[0022]
步骤1,构造基于多任务学习的轻量级网络模型,并对其进行训练。
[0023]
步骤2,输入表计图像,利用步骤1所得的网络模型进行推理获取读数结果。
[0024]
进一步的,在一个实施例中,步骤1所述构造基于多任务学习的轻量级网络模型,
并对其进行训练,其具体步骤如下:
[0025]
步骤1.1,网络结构设计,采用轻量级网络结构,保证网络结构简单、参数少、精度高。
[0026]
步骤1.2,损失函数设计,对三种不同的输出头定义合适的损失函数。
[0027]
步骤1.3,采集数据,对设计好的网络模型进行训练。
[0028]
在其中一个实施例中,步骤1.1构造的基于多任务学习的轻量级网络模型如图1所示。可知整体网络结构包括下采样网络(主干特征提取网络)、多尺度特征融合层、上采样网络、输出头四部分组成,且根据图1可知多尺度特征融合层和上采样网络可以结合在一起考虑。因此,在一个实施例中,步骤1.1中的网络结构设计包括如下步骤:
[0029]
步骤1.1.1,采用ghostnet和mobilenetv2等轻量级网络构建适合指针式表计读数任务的轻量级主干特征提取网络。输入图像首先经过主干特征提取网络对特征进行提取,并输出维度为320
×
24
×
24的特征图用于后续任务;
[0030]
步骤1.1.2,结合se注意力机制、fpn和转置卷积设计了sfn层用作特征融合和上采样层,实现特征图分辨率恢复的同时增强模型的特征表达能力;
[0031]
步骤1.1.3,采用深度可分离卷积的思想对输出头进行轻量化,同时对仪表盘检测、指针和刻度检测以及读数回归三个不同的任务设计不同的输出层结构。
[0032]
进一步的,在一个实施例中,步骤1.1.1中的主干网络以ghostnet中的g-bneck为最小模块,轻量化网络ghostnet的瓶颈结构的主体便是ghost module,根据输出结果的需求,瓶颈结构g-neck主要分为两类:1)步长为1,输出特征图尺寸不变的g-bneck1;2)步长为2,采用深度可分离卷积进行宽高压缩的g-bneck2,此部分的特征图尺寸减半。此外还可以在g-neck中增添se注意力机制,提高模型的特征表达能力,具体的,其主干网络依次设置如下:
[0033]
步长为2的3
×
3卷积、步长为1且没有se结构的g-bneck1模块、步长为2且没有se结构的g-bneck2模块、步长为1且没有se结构的g-bneck2模块、步长为2且添加了se结构的g-bneck2模块、步长为1且添加了se结构的g-bneck2模块、步长为2且没有se结构的g-bneck2模块、步长为1且没有se结构的g-bneck1模块、步长为1且没有se结构的g-bneck2模块、步长为1且添加了se结构的g-bneck1模块、步长为2且添加了se结构的g-bneck2模块。
[0034]
进一步的,在一个实施例中,步骤1.1.2的多尺度特征融合层如图2所示。本发明结合深度可分离卷积、多尺度融合层fpn和se注意力机制设计了sfn特征融合层,其又可分为两个部分:scn和转置卷积。而scn对输入的特征进行处理以便于后续融合、转置卷积则进行上采样操作扩大特征图的分辨率。scn的设计思路来源于mobilenetv3的se模块应用,其主要包括两个1
×
1卷积和一个深度可分离卷积以及一个se注意力模块,其结构如图2中的(a)所示。转置卷积则主要是为了实现特征图的上采样,恢复其分辨率。图2中的(b)为特征融合层sfn的整体结构图,对应主干特征提取网络的第6、9、13层作为sfn的输入。
[0035]
进一步的,在一个实施例中,进一步的,步骤1.1.3的输出头结构如图3所示。输出头有3个:仪表盘检测输出头、指针和刻度检测输出头、读数回归输出头。其中,仪表盘检测输出头以及指针和刻度检测输出头均由一层深度可分离卷积、一层1x1卷积、relu激活函数组成;读数回归输出头则由两层深度可分离卷积、一层全局平均池化组成。
[0036]
仪表盘检测和指针和刻度检测任务的每个分支均首先经过一个深度可分离卷积,
然后使用1
×
1卷积调整通道数,最后输出对应的分支结果。读数回归任务的输出头首先利用两个堆叠在一起的深度可分离卷积对特征图进行下采样,然后利用一个全局平均池化操作获得最后的读数结果。
[0037]
进一步的,在一个实施例中,步骤1.2中的损失函数设计具体步骤如下:
[0038]
步骤1.2.1,设计仪表盘检测输出对应的损失函数;
[0039]
步骤1.2.2,设计指针和刻度检测输出对应的损失函数;
[0040]
步骤1.2.3,设计读数回归输出对应的损失函数;
[0041]
步骤1.2.4,整体损失函数设计。
[0042]
进一步的,在一个实施例中,步骤1.2.1中的仪表盘检测输出的损失函数设计如下:
[0043]
仪表盘检测输出头有三个分支,热力图输出分支、关键点偏置输出分支以及目标长宽输出分支,分别输出维度为(n为仪表类别总数)的热力图信息用于定位目标位置、输出维度为的关键点偏置信息用于补偿热力图中可能存在的误差、输出维度为的目标长宽信息用于获取最终的目标框尺寸;分别采用focal loss作为关键点损失函数(也就是热力图损失)lk,采用l1 loss构建关键点偏移量损失函数l
off
,最后采用l1 loss构建目标长宽损失l
size
,仪表盘检测的整体损失为这三者的加权和:l
object
=λklk+λ
off
l
off

size
l
size
,其中λk=1,λ
off
=1,λ
size
=0.1。
[0044]
进一步的,在一个实施例中,步骤1.2.2中的指针和刻度检测输出的损失函数设计如下:
[0045]
本发明将指针和刻度对应的关键点信息定位指针和刻度位置,将整体指针和刻度检测任务转化为关键点检测任务。指针和刻度检测输出头有两个分支,分别是维度为的(总计3类关键点:指针端点、刻度点和仪表盘中心点)热力图信息用于检测关键点,以及维度为的关键点偏置信息弥补关键点检测中可能存在的误差。对应的同样采用focal loss作为关键点损失函数lk,以及采用l1 loss构建关键点偏移量损失函数l
off
。整体损失函数如下:l
point
=λklk+λ
off
l
off
,其中λk=1,λ
off
=1。
[0046]
进一步的,在一个实施例中,步骤1.2.3中的指针和回归读数输出头和对应的损失函数设计如下:
[0047]
回归读数模块只有一个分支,其通过两个下采样网络组成,对输入的特征图进行下采样,最终输出读数结果。因此,对于这一个分支直接采用l2 loss即可,此处用l
reg
代替。
[0048]
进一步的,步骤1.2.4中的模型整体损失函数设计如下:
[0049]
l
total
=λ1l
point
+λ2l
object
+λ3l
reg
。其中λ1,λ2,λ3均可动态调整。
[0050]
进一步的,在一个实施例中,步骤1.3所述的模型训练的具体步骤如下:
[0051]
步骤1.3.1,采用上下翻转、旋转、cutout等方法进行对原始数据进行增强,扩大训练数据集。
[0052]
步骤1.3.2,定义模型训练中的相关参数,参数设计如下:优化方法选用adam,输入图片的batch设置为8,初始学习率设置为5
×
10-4
,并采样余弦衰减策略动态调整学习率大小。
[0053]
步骤1.3.3,通过冻结部分结构或者调整λ1,λ2,λ3对应的值来动态调整模型训练的侧重点。
[0054]
进一步的,在一个实施例中,所述步骤2的模型推理的步骤如下:
[0055]
步骤2.1,数据预处理,输入图片首先缩放至768
×
768大小,然后在均值为[0.49381427,0.48300525,0.47918715]、方差为[0.19970816,0.20239334,0.20760854]的情况对图片进行归一化处理。
[0056]
步骤2.2,模型转化和推理,将训练后的模型转化合适的格式,导入模型并输入预处理后的数据,获得模型的输出结果。
[0057]
步骤2.3,将模型输出的结果进行后处理,首先提取热力图的峰值作为中心点,并将置信度小于0.3的中心点剔除,结合输出的偏置信息得到最终的关键点坐标。若是指针和刻度检测,这个关键点就是最终的结果,若是仪表盘检测则需要加上仪表盘检测输出头中的长宽信息,得到最终的目标框。至于回归读数输出头的最终结果即为最终的读数结果。
[0058]
图4为一个实施例中模型一次预测后的结果图,经过一个整体的模型推理后可以检测到仪表盘,图4中方框部分即为检测到的仪表盘;同时得到三类不同的关键点,图中红色为圆心点、绿色为刻度端点、黄色为指针点;最后模型输出回归读数结果,其对应为图中红色字体部分。
[0059]
图5为一个实施例中基于多任务学习的轻量级指针式表计读数系统结构图。由图可知,本发明提出的基于多任务学习的轻量级指针式表计读数系统主要包括:
[0060]
数据采集模块,用于采集工业生产中拍摄的指针式表计的图片;
[0061]
模型加载模块,加载已经训练好的模型;
[0062]
软件主体模块,实现包括图片预处理、输入图片模型推理得到结果、输出结果后处理、返回结果值等功能。
[0063]
需要注意的是,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种基于多任务学习的轻量级指针式表计读数方法,其特征在于,所述方法包括以下步骤:步骤1,构造基于多任务学习的轻量级网络模型,并对其进行训练;步骤2,输入表计图像,利用步骤1所得的网络模型进行推理获取读数结果。2.根据权利要求1所述的基于多任务学习的轻量级指针式表计读数方法,其特征在于,步骤1所述构造基于多任务学习的轻量级网络模型,并对其进行训练,具体过程包括:步骤1.1,网络结构设计,具体为:步骤1.1.1,采用ghostnet和mobilenetv2轻量级网络构建轻量级主干特征提取网络;步骤1.1.2,结合se注意力机制、fpn和转置卷积设计sfn层用作特征融合和上采样层;步骤1.1.3,采用深度可分离卷积的思想对输出头进行轻量化,同时对仪表盘检测、指针和刻度检测以及读数回归三个不同的任务设计不同的输出层结构;步骤1.2,损失函数设计,对三种不同的输出头定义合适的损失函数,具体如下:步骤1.2.1,设计仪表盘检测输出对应的损失函数;步骤1.2.2,设计指针和刻度检测输出对应的损失函数;步骤1.2.3,设计读数回归输出对应的损失函数;步骤1.2.4,整体损失函数设计;步骤1.3,采集数据,对设计好的网络模型进行训练;模型训练的步骤如下:步骤1.3.1,采用上下翻转、旋转、cutout方法进行对原始数据进行增强,扩大训练数据集;步骤1.3.2,定义模型训练中学习率和输入训练批次,同时采用合适的优化方法优化模型训练;步骤1.3.3,通过冻结部分结构或者调整λ1,λ2,λ3对应的值来动态调整模型训练的侧重点。3.根据权利要求2所述的基于多任务学习的轻量级指针式表计读数方法,其特征在于,步骤1.1.1中,主干网络以ghostnet中的g-bneck为最小模块,具体的,其主干网络依次设置如下:步长为2的3
×
3卷积、步长为1且没有se结构的g-bneck模块、步长为2且没有se结构的g-bneck模块、步长为1且没有se结构的g-bneck模块、步长为2且添加了se结构的g-bneck模块、步长为1且添加了se结构的g-bneck模块、步长为2且没有se结构的g-bneck模块、步长为1且没有se结构的g-bneck模块、步长为1且没有se结构的g-bneck模块、步长为1且添加了se结构的g-bneck模块、步长为2且添加了se结构的g-bneck模块。4.根据权利要求2所述的基于多任务学习的轻量级指针式表计读数方法,其特征在于,步骤1.1.2中,结合se注意力机制、fpn和转置卷积设计sfn层用作特征融合和上采样层,其中特征融合部分主要由1
×
1卷积、深度可分离卷积、se注意力机制模块组成,上采用层则采用转置卷积实现。5.根据权利要求2所述的基于多任务学习的轻量级指针式表计读数方法,其特征在于,步骤1.1.3中,输出头有3个:仪表盘检测输出头、指针和刻度检测输出头、读数回归输出头,三个不同的输出头的结构设计如下:仪表盘检测输出头以及指针和刻度检测输出头的各个分支均由一层深度可分离卷积、
一层1
×
1卷积、relu激活函数组成;读数回归输出头有两层深度可分离卷积、一层全局平均池化组成。6.根据权利要求2所述的基于多任务学习的轻量级指针式表计读数方法,其特征在于,所述步骤1.2.1中的仪表盘检测输出对应的损失函数设计如下:仪表盘检测输出头有三个分支,分别输出维度为的热力图信息用于定位目标位置、输出维度为的关键点偏置信息用于补偿热力图中可能存在的误差、输出维度为的目标长宽信息用于获取最终的目标框尺寸,其中n为仪表类别总数;对于每个分支均设计合适的损失函数,首先采用focal loss作为关键点损失函数l
k
,其次采用l1 loss构建关键点偏移量损失函数l
off
,最后采用l1 loss构建目标长宽损失l
size
,仪表盘检测的整体损失为这三者的加权和:l
object
=λ
k
l
k

off
l
off

size
l
size
,其中λ
k
=1,λ
off
=1,λ
size
=0.1。7.根据权利要求6所述的基于多任务学习的轻量级指针式表计读数方法,其特征在于,所述步骤1.2.2中的指针和刻度检测输出对应的损失函数设计如下:将指针和刻度检测任务转化为关键点检测任务,通过检测指针和刻度对应的关键点信息定位指针和刻度的位置;指针和刻度检测输出头有两个分支,分别是维度为的热力图信息用于检测关键点,以及维度为的关键点偏置信息弥补关键点检测中可能存在的误差;采用focal loss作为关键点损失函数l
k
,以及采用l1 loss构建关键点偏移量损失函数l
off
;整体指针和刻度检测的损失函数如下:l
point
=λ
k
l
k

off
l
off
,其中λ
k
=1,λ
off
=1。8.根据权利要求7所述的基于多任务学习的轻量级指针式表计读数方法,其特征在于,所述步骤1.2.3中的回归读数输出头对应的损失函数设计如下:回归读数模块只有一个分支,其通过两个下采样网络组成,对输入的特征图进行下采样,最终输出读数结果;对于这一个分支直接采用l2 loss,此处用l
reg
代替。9.根据权利要求8所述的基于多任务学习的轻量级指针式表计读数方法,其特征在于,所述步骤1.2.4中的模型整体损失函数设计如下:l
total
=λ1l
point
+λ2l
object
+λ3l
reg
其中λ1,λ2,λ3均可动态调整。10.根据权利要求1所述的基于多任务学习的轻量级指针式表计读数方法,其特征在于,所述步骤2的输入表计图像,利用步骤1所得的网络模型进行推理获取读数结果,其具体步骤如下:步骤2.1,数据预处理,首先将输入图片缩放至合适尺寸,然后采用基于均值和方差的归一化方法将图片数据进行归一化处理;步骤2.2,模型转化和推理,将训练后的模型转化合适的格式,导入模型并输入预处理后的数据,获得模型的输出结果;
步骤2.3,将模型输出的结果进行后处理,首先提取热力图的峰值作为中心点,并将置信度小于阈值的中心点剔除,结合输出的偏置信息得到最终的关键点坐标;若是指针和刻度检测,这个关键点即为最终的结果,若是仪表盘检测则需要加上仪表盘检测输出头中的长宽信息,得到最终的目标框;回归读数输出头的最终结果即为最终的读数结果。

技术总结
本发明公开了一种基于多任务学习的轻量级指针式表计读数方法,该方法采用GhostNet和MobileNetV2作为轻量化主干特征提取网络;特征融合层结合了SE注意力机制、FPN和转置卷积层,增强了模型的特征表达能力;输出层针对不同功能分支采用了不同的网络结构。本发明将多项任务融合在同一模型中通过多任务学习,同时优化表盘定位、指针和刻度检测以及读数回归等多个目标函数,只利用一个轻量化设计的神经网络模型即可实现端到端的指针式表计定位、指针和关节点检测及读数识别,具有资源消耗低、推理速度快、模型轻量化等特点,尤其适合于在嵌入式系统中的应用。入式系统中的应用。入式系统中的应用。


技术研发人员:茅耀斌 郭敏 项文波 黄尚正 徐依蕊
受保护的技术使用者:南京理工大学
技术研发日:2023.05.24
技术公布日:2023/8/14
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐