一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于one-shot机制的仪表检测方法与流程

2021-12-14 22:16:00 来源:中国专利 TAG:

基于one

shot机制的仪表检测方法
技术领域
1.本发明属计算机视觉、目标检测技术领域,具体涉及一种基于one

shot机制的仪表检测方法。


背景技术:

2.仪表检测定位技术,在引入深度学习之前,主要使用图像匹配的方式,利用仪表模板实现对仪表的准确定位,然而该方法严重依赖图像匹配的准确性,基于sift(scale

invariant feature transform,尺度不变特征变换)等传统特征对于复杂条件下,比如光照变化、图像清晰度变化、不同厂家仪表外观变化等难以适应,导致在部分场景条件下定位失败。而使用基于hog(histogram of oriented gradient,方向梯度直方图)和svm(support vector machine,支持向量机)的检测方法,精度难以与现有卷积神经网络相匹配。因此,研究基于卷积神经网络的仪表检测定位技术具有十分重要的现实意义。
3.利用计算机视觉技术进行仪表检测定位的难点主要有两方面:第一,仪表检测任务往往需要准确获取仪表的表盘位置,对其矫正成矩形后方便后续读数识别等,特别是在监控设备下获取的仪表图片,往往是发生了角度的倾斜,需要进行透视变换后才能获取仪表的矩形表盘,因此,算法要具备可以预测任意四边形位置的能力,而通用目标检测技术通常仅仅需要预测目标的最小包围框,对于仪表表盘的检测定位任务而言其定位的效果难以满足后续任务的要求,无法仅仅利用仪表表盘的最小包围框位置信息进一步将仪表表盘矫正成正视角度下的仪表表盘。此外,即便使用实例分割技术,可以获取仪表表盘的位置掩码,但面临如何减少利用位置掩码进行透视变换时引入误差的问题;第二,在不同生产环境中,具有相同功能仪表的外观具有一定相似性,但是由于不同的仪表厂商,不同出厂批次或者版本型号的不同会使得仪表的外观发生一定变化,当前基于深度学习的检测算法依赖训练集的数据分布,当实际测试的仪表数据发生显著变化时,即训练集的仪表外观与测试集的仪表外观不同,会对测试的效果产生在较大的影响。


技术实现要素:

4.为了克服现有技术的不足,本发明提供一种基于one

shot机制的仪表检测方法。首先,利用尺寸变换和透视变换对采集的仪表图像数据集进行增强处理;然后,构建基于one

shot机制的仪表检测网络模型,包括一个基于resnet

18的特征提取孪生网络模块、rpn模块、roi align池化层和基于grid head交换特征融合网络模块;接着,利用增强后的图像数据集对网络模型进行训练,得到训练好的网络;最后,利用训练好的网络对待检测仪表图像进行处理,得到最终的检测结果。本发明具有检测任意四边形仪表表盘位置的能力,能够使用预测的四边形位置信息方便地将仪表转换成正视角下的矩形仪表表盘;此外,通过one

shot机制,使得检测算法可以利用模板图片的信息,能够提高当仪表外观发生变化时的仪表检测精度。
5.一种基于one

shot机制的仪表检测方法,其特征在于步骤如下:
6.步骤1:对监控设备采集到的每一幅仪表图像分别进行尺寸增强和透视变换增强处理,增强处理前后的图像共同构成仪表图像数据集;对采集到的仪表图像中包含的仪表设备的模板图像进行透视变换增强处理,得到仪表模板图像数据集;
7.步骤2:构建基于one

shot机制的仪表检测网络模型,包括一个基于resnet

18的特征提取孪生网络模块、rpn模块、roi align池化层和基于grid head交换特征融合网络模块,其中,将待检测仪表图像和仪表模板图像分别输入到resnet

18孪生网络模块,输出得到待检测仪表图像特征和仪表模板图像特征;rpn模块对待检测仪表图像特征进行初定位处理,输出得到仪表的矩形包围框坐标;roi align池化层根据仪表的矩形包围框坐标将对应的待检测仪表图像特征池化成同一大小,同时利用全图坐标将仪表模板图像特征也池化成相同大小;将池化后的待检测仪表图像特征和仪表模板图像特征同时输入到基于grid head交换特征融合网络模块,输出得到待检测仪表的四边形的四个顶点位置的标记信息;
8.所述的基于grid head交换特征融合网络模块包括一个孪生网络模块、特征交互融合模块和反卷积层,孪生网络模块由8个卷积层构成,对输入的待检测图像特征f
din
和模板图像特征分别进行特征提取,提取后的特征分别记为f
d
和q,特征交互融合模块对提取的特征f
d
和q进行融合处理,具体如下:
9.将特征f
d
和q分别按照通道平均分成m组,与第i个grid点对应的特征图分别记为f
di
和q
i
,与源点集合s
i
中的第j个点对应的特征图分别记为f
dj
和q
j
,i=1,2,

,m,m为grid点数,j=1,2,

,k
i
,k
i
为源点集合s
i
中包含的源点个数,所述的源点为grid网格中与第i个grid点距离为1的点,所有源点构成源点集合;然后,分别对特征图f
di
和q
i
进行反卷积处理,得到对应的未融合的heatmap特征图,分别记为h
f

和h
q

,分别将特征图f
dj
和q
j
通过2个卷积核为3*3的卷积层,得到对应的新的待融合特征图,分别记为t
d:j

i
(f
dj
)和t
q:j

i
(q
j
),将特征图q
i
经过2个卷积核为3*3的卷积层,得到待融合的模板特征,记为t
qd:i
(q
i
),将特征图q
j
经过2个卷积核为3*3的卷积层,得到待融合的模板特征,记为t
qd:j

i
(q
j
),i=1,2,

,m,j=1,2,

,k
i
;接着,将特征图f
di
、q
i
与融合的特征图t
d:j

i
(f
dj
)、t
q:j

i
(q
j
)、模板特征t
qd:i
(q
i
)、t
qd:j

i
(q
i
)分别按下式进行相加融合处理,i=1,2,

,m,得到融合后的特征图f

di
、q

i

[0010][0011][0012]
最后,对特征图f

di
、q

i
分别按照下式进行二次相加融合处理,得到二级融合特征图f

di
、q

i

[0013][0014][0015]
其中,t

j

i
(f
dj
)表示特征图f
dj
通过2个卷积层得到的新的二级待融合特征图,这里的卷积层结构与前面得到特征图t
d:j

i
(f
dj
)中的卷积层结构相同;t

j

i
(q

j
)表示特征图q

j
通过2个卷积层,得到的新的二级待融合特征图,这里的卷积层结构与前面得到特征图t
q:j

i
(q
j
)中的卷积层结构相同;t

qd:i
(q
i
)表示特征图q
i
通过两个卷积核为3*3的卷积层处理;t

qd:j

i
(q
j
)表示特征图q
j
通过两个卷积核为3*3的卷积层处理;i=1,2,

,m,j=1,2,

,k
i

[0016]
所述的基于grid head交换特征融合网络模块中的反卷积层由两层反卷积层组成,将融合模块输出的特征图f

di
和q

i
分别输入到反卷积层,输出得到最终的融合heatmap特征图;
[0017]
步骤3:以步骤1得到的图像数据集和仪表模板图像数据集中的图像为输入,采用随机梯度下降法对步骤2构建的基于one

shot机制的仪表检测网络模型进行训练,得到训练好的网络模型;其中,网络的损失函数按下式进行计算:
[0018]
loss=l
cls
l
reg
l
seg
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(5)
[0019]
其中,loss表示网络的总损失,l
cls
表示rpn模块分类损失,l
reg
表示rpn模块位置回归损失,l
cls
与l
reg
与faster rcnn中的损失一致;l
seg
表示grid head交换特征融合网络模块中grid heatmap交叉熵损失,按下式计算得到:
[0020]
l
seg
=l
seg未融合
l
seg已融合
[0021]
其中,l
seg未融合
表示未融合的heatmap特征图对应的交叉熵损失,l
seg已融合
表示最终融合的heatmap特征图的交叉熵损失,分别按以下公式计算得到:
[0022][0023][0024]
其中,m为grid点数,n为heatmap特征图的像素个数,t
k,l
表示第l个grid点对应的最终融合的heatmap特征图中第k个像素的值,t

k,l
表示第l个grid点对应的未融合的heatmap特征图中第k个像素的值,t
k,l
和t

k,l
取值范围0到1,表示第l个grid点对应的未融合的heatmap特征图所对应的标签图中第k个像素的值,取值范围0和1,像素为1是表示对应的是预测grid点区域,像素为0时表示对应的不是预测grid点区域;
[0025]
步骤4:将待检测的仪表图像和模板仪表图像输入到步骤3训练好的网络模型,输出得到预测的heatmap特征图,按照grid rcnn目标检测网络的方式,将生成的heatmap转换为待检测仪表的四边形顶点位置,具体如下:
[0026][0027][0028]
其中,(i
x
,i
y
)表示待检测仪表在图像中的顶点位置坐标,(p
x
,p
y
)表示rpn模块生成的包围框的顶点位置坐标,(h
x
,h
y
)表示最终的heatmap预测点在heatmap特征图中的位置,(w
p
,h
p
)表示rpn模型生成的包围框的宽度和高度,(w
o
,h
o
)表示heatmap的宽度和高度。
[0029]
进一步地,所述的透视变换增强的具体过程如下:
[0030]
获取仪表图像中的仪表尺寸标签,设标注的4个顶点分别为p1、p2、p3、p4,其中,p1和p3为对角顶点,过顶点p1画水平和垂直两条直线,过顶点p3画水平和垂直两条直线,四条直线相交产生4个直角坐标系,设顶点p2所在的原点距离其最近的坐标系为a,顶点p4所在的原点距离其最近的坐标系为b,在坐标系a的的四个象限区域中随机选择一点,作为顶点p2变换后的顶点p2

,记录其位置信息,在坐标系b的四个象限区域中随机选择一点,作为顶点p4变换后的顶点p4

,记录其位置信息,分别以点p1、p2、p3、p4以及点p1、p2

、p3、p4

为变换前后的顶点,根据变换前后4个顶点的位置关系得到对应的透视变换公式,将原仪表图像
按照该透视变换公式进行变换,得到2幅透视变换后的图像;按照上述过程遍历所有顶点和直角坐标系区域,对每一幅仪表图像得到16幅透视变换后图像。
[0031]
本发明的有益效果是:由于仪表图像是监控设备设置有限点位采集的,导致采集的仪表图片成像角度和仪表目标大小变化较少,通过采用尺寸增强和透视变换增强处理,可以增加仪表图像集的仪表成像角度仪表目标大小的变化,使得有利于训练出泛化能力更强的网络模型;由于采用预测heatmp的方式,直接预测仪表表盘四边形顶点,可以准确预测矩形表盘在不同成像角度下的四边形表盘位置;通过在基于grid head交换特征融合网络模块中采用one

shot机制,充分利用仪表与仪表模板外观的相似性,进一步提升仪表表盘的检测定位精度。本发明能够有效地对仪表表盘在不同成像角度下成像以后的位置进行定位,并可以充分利用模板图片信息帮助提升仪表检测精度,有助于推动当前利用计算机视觉技术进行仪表检测的发展。
附图说明
[0032]
图1是本发明的基于one

shot机制的仪表检测方法流程图;
[0033]
图2是本发明中透视变换增强过程示意图;
[0034]
图3是透视变换增强后的仪表图像;
[0035]
图4是本发明中基于grid head交换特征融合网络模块示意图;
[0036]
图5是本发明中四边形位置预测时9个grid点分布示意图;
[0037]
图6是采用本发明方法进行仪表图像得到检测结果图像;
[0038]
图中,(a)

油液表检测结果图像;(b)

油液表模板图片;(c)

泄流表检测结果图像;(d)

泄流表模板图片。
具体实施方式
[0039]
下面结合附图和实施例对本发明进一步说明,本发明包括但不仅限于下述实施例。
[0040]
如图1所示,本发明提供了一种基于one

shot机制的仪表检测方法,其具体实现过程如下:
[0041]
1、图像数据预处理
[0042]
监控场景下的仪表数据是来源于真实的监控设备采集的,受到监控设备安装位置的影响,仪表数据成像角度较为固定,为此利用仪表在每幅图像中仅仅有一个标注信息的特点,根据仪表的标注标签信息对仪表图像进行尺寸增强和透视变换增强两种增强方式,使得采集的仪表图像数据具有不同大小和不同视角下的仪表图像。
[0043]
基于标签的仪表尺寸大小增强处理的具体过程如下:
[0044]
1)获取仪表尺寸标签,根据标注的4个顶点获取最小包围矩形框。
[0045]
2)根据仪表矩形框计算长宽比,对长宽比在一定范围内进行随机采样,使得矩形框长宽比在一定范围内发生变化。
[0046]
3)对于不同的仪表设置不同的高度范围,以免现实中不存在的超出正常范围高度的仪表目标对于检测算法训练产生不良影响。此外,高度范围可以根据标签的高度进行适当调整,避免较小的模糊图片生成过大的目标。在确定的高度范围内随机生成一个值作为
变换后的高度。
[0047]
4)根据随机生成的长宽比和高度,确定变换后的矩形大小。再通过图片大小随机确定矩形在图片中的位置。根据新的矩形位置,获取变换矩阵,实现标签和仪表图像的同步变换。
[0048]
基于顶点位置的透视变换增强方式,利用透视变换模拟更多不同视角照片,克服监控摄像设备固定点位的成像限制。如图2所示,获取仪表图像中的仪表尺寸标签,黑实线所示为标注的四边形,过对角的两个顶点p1和p3分别画水平和垂直的直线,设顶点p2所在的原点距离其最近的坐标系为a,顶点p4所在的原点距离其最近的坐标系为b,增强的位置可能在每个坐标系的4个象限区域中随机出现。将随机采样后的p2

和p4

点,与点p1和p3组成新的标签,求取旧标签与新标签的位置对应的透视变换矩阵,依据透视变换矩阵生成新的视角下的仪表图片,则每个标签至少可以出现16种不同的视角情况,即对每一幅仪表图像得到16幅透视变换后图像。图3为采用上述方法对某幅仪表图像进行透视变换增强后的16个视角下的图像。
[0049]
经过此步骤,得到了在训练阶段数据增广后的图像集合,可以覆盖真实使用条件下的不同尺寸和不同视角的仪表图像,以更好地训练仪表检测网络模型。
[0050]
2、构建基于one

shot机制的仪表检测网络模型
[0051]
为了完成对仪表表盘的准确定位,主干网络需要保证既能高效地完成特征提取操作,也需要保证较快的处理速度,同时考虑到仪表数据集规模较小,选择resnet

18网络作为主干网络来完成特征提取。因此,本发明构建的基于one

shot机制的仪表检测网络模型包括一个基于resnet

18的特征提取孪生网络模块、rpn模块、roi align池化层和基于grid head交换特征融合网络模块。
[0052]
resnet

18神经网络由9个卷积层、1个池化层和4个残差结构构成,同一网络模块分别提取两个图片特征,是典型的孪生网络结构。将待检测仪表图片和仪表模板图片分别输入到resnet

18孪生网络模块,输出得到待检测仪表图片特征和仪表模板图片特征
[0053]
rpn模块包括1个3*3卷积层和2个1*1卷积层,对待检测仪表图片特征进行初定位处理,输出得到仪表的矩形包围框坐标。
[0054]
roi align池化层利用双线性插值的方式计算非整数位置的像素点值,实现对不同大小特征图的归一化,将不同大小的输入特征图输出成同一大小的特征图。即根据仪表的矩形包围框坐标将对应的待检测仪表图片特征池化成同一大小,同时利用全图坐标将仪表模板图片特征也池化成相同大小。
[0055]
将池化后的待检测仪表图片特征和仪表模板图片特征同时输入到基于grid head交换特征融合网络模块,输出得到待检测仪表的四边形的四个顶点位置的标记信息。本发明基于提出一种交互融合策略grid head模块,保持grid r

cnn主要网络结构不变,仅在grid head模块中使用one

shot机制来提升目标检测精度,利用仪表数据集的特点,发挥rpn(region proposal network,区域生成网络)模块和grid head模块各自的优势:提升检测精度提升,在数据较少的情况下,避免使用度量学习损失函数和复杂的融合策略对于网络训练产生的不良影响。
[0056]
基于grid head交换特征融合网络模块如图4所示,包括一个孪生网络模块、特征交互融合模块和反卷积层,孪生网络模块由8个卷积层构成,对输入的待检测图片特征f
din
和模板图片特征分别进行特征提取,提取后的特征分别记为f
d
和q,特征交互融合模块对提取的特征f
d
和q进行融合处理,具体如下:
[0057]
将特征f
d
和q分别按照通道平均分成m组,与第i个grid点对应的特征图分别记为f
di
和q
i
,与源点集合s
i
中的第j个点对应的特征图分别记为f
dj
和q
j
,i=1,2,

,m,m为grid点数,j=1,2,

,k
i
,k
i
为源点集合s
i
中包含的源点个数,所述的源点为grid网格中与第i个grid点距离为1的点,所有源点构成源点集合;然后,分别对特征图f
di
和q
i
进行反卷积处理,得到对应的未融合的heatmap特征图,分别记为h
f

和h
q

,分别将特征图f
dj
和q
j
通过2个卷积核为3*3的卷积层,得到对应的新的待融合特征图,分别记为t
d:j

i
(f
dj
)和t
q:j

i
(q
j
),将特征图q
i
经过2个卷积核为3*3的卷积层,得到待融合的模板特征,记为t
qd:i
(q
i
),将特征图q
j
经过2个卷积核为3*3的卷积层,得到待融合的模板特征,记为t
qd:j

i
(q
j
),i=1,2,

,m,j=1,2,

,k
i
;接着,将特征图f
di
、q
i
与融合的特征图t
d:j

i
(f
dj
)、t
q:j

i
(q
j
)、模板特征t
qd:i
(q
i
)、t
qd:j

i
(q
i
)分别按下式进行相加融合处理,i=1,2,

,m,得到融合后的特征图f

di
、q

i

[0058][0059][0060]
最后,对特征图f

di
、q

i
分别按照下式进行二次相加融合处理,得到二级融合特征图f

di
、q

i

[0061][0062][0063]
其中,t

j

i
(f

dj
)表示特征图f

dj
通过2个卷积层得到的新的二级待融合特征图,这里的卷积层结构与前面得到特征图t
d:j

i
(f
dj
)中的卷积层结构相同;t

j

i
(q

j
)表示特征图q

j
通过2个卷积层,得到的新的二级待融合特征图,这里的卷积层结构与前面得到特征图t
q:j

i
(q
j
)中的卷积层结构相同;t

qd:i
(q
i
)表示特征图q
i
通过两个卷积核为3*3的卷积层处理;t

qd:j

i
(q
j
)表示特征图q
j
通过两个卷积核为3*3的卷积层处理;i=1,2,

,m,j=1,2,

,k
i

[0064]
所述的基于grid head交换特征融合网络模块中的反卷积层由两层反卷积层组成,将融合模块输出的特征图f

di
和q

i
分别输入到反卷积层,输出得到最终的融合heatmap特征图。
[0065]
3、网络模型训练
[0066]
以步骤1得到的图像数据集和仪表模板图像数据集中的图像为输入,采用随机梯度下降法对步骤2构建的基于one

shot机制的仪表检测网络模型进行训练,得到训练好的网络模型;其中,网络的损失函数按下式进行计算:
[0067]
loss=l
cls
l
reg
l
seg
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(14)
[0068]
其中,loss表示网络的总损失,l
cls
表示rpn模块分类损失,l
reg
表示rpn模块位置回归损失,l
cls
与l
reg
与faster rcnn中的损失一致;l
seg
表示grid head交换特征融合网络模块中grid heatmap交叉熵损失,按下式计算得到:
[0069]
l
seg
=l
seg未融合
l
seg已融合
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
(15)
[0070]
其中,l
seg未融合
表示未融合的heatmap特征图对应的交叉熵损失,l
seg已融合
表示最终融合的heatmap特征图的交叉熵损失,分别按以下公式计算得到:
[0071][0072][0073]
其中,m为grid点数,n为heatmap特征图的像素个数,t
k,l
表示第l个grid点对应的最终融合的heatmap特征图中第k个像素的值,t

k,l
表示第l个grid点对应的未融合的heatmap特征图中第k个像素的值,t
k,l
和t

k,l
取值范围0到1,表示第l个grid点对应的未融合的heatmap特征图所对应的标签图中第k个像素的值,取值范围0和1,像素为1是表示对应的是预测grid点区域,像素为0时表示对应的不是预测grid点区域。
[0074]
4、仪表检测
[0075]
将待检测的仪表图像和模板仪表图像输入到步骤3训练好的网络模型,输出得到预测的heatmap特征图,按照grid rcnn目标检测网络的方式,将生成的heatmap转换为待检测仪表的四边形顶点位置,当grid点为9时grid点与四边形顶点位置的示意图如图5所示,具体如下:
[0076][0077][0078]
其中,(i
x
,i
y
)表示待检测仪表在图像中的顶点位置坐标,(p
x
,p
y
)表示rpn模块生成的包围框的顶点位置坐标,(h
x
,h
y
)表示最终的heatmap预测点在heatmap特征图中的位置,(w
p
,h
p
)表示rpn模型生成的包围框的宽度和高度,(w
o
,h
o
)表示heatmap的宽度和高度。
[0079]
为验证本发明方法的有效性,在硬件环境为:cpu:i9

9900,内存:16g,硬盘:1t,独立显卡:nvidia geforce gtx 1080ti,11g,系统环境为ubuntu 16.0.4的条件下,采用软件python 3.6、opencv3.4、pytorch 1.3进行仿真实验。实验采用的数据集为自建的仪表数据集,图6给出了采用本发明方法检测后得到的结果图像。可以看出,采用gird点预测的方式,可以准确定位仪表表盘的位置,采取one

shot机制的基于grid head交换特征融合网络模块可以利用同类仪表之间的相似性提高仪表检测定位精度;网络模型能够在不同光照条件和不同视角下准确定位仪表表盘位置。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献