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

一种长尾数据下基于Transformer的采油违章识别方法

文献发布时间:2024-01-17 01:24:51


一种长尾数据下基于Transformer的采油违章识别方法

技术领域

本发明属于计算机视觉领域,具体涉及一种长尾数据下基于Transformer的采油违章识别方法。

背景技术

油田施工作业工序复杂、环节众多,因此现场安全生产具有重要意义。传统的采油作业现场监管机制主要是通过摄像头以人工方式远程查看,确保生产作业现场的正常运行,并在一定程度上降低一部分人力物力。随着计算机硬件单位价格算力的增长,以及卷积神经网络和ViT模型等软设施的发展,利用计算机进行自动化的大规模视频监控成为现实。但是未带护目镜、吸烟、使用手机等某些违章项由于目标较小、环境复杂和发生率低,不容易用目标检测、姿态估计或者人员追踪检测出来。因此,处理这一问题成为施工作业现场提升采油现场管理效率、极大减少人工物力开支的一个关键,也是降低施工作业现场生产管理成本和提高管理质量的关键。

为了训练出良好的模型,需要采集油田施工作业现场的数据形成数据集。但是在现实世界实际应用中,采集的数据集中各个类别往往会表现出自然的不平衡和长尾分布,即其中一小部分类别(头部类别)占据了大部分数据,而大多数类别(中尾部类别)的样本往往很少。这主要是由于某些类别的数据在现实中发生率低、采集难度较大、采集成本较高。为了收集平衡的数据集,会导致整个项目仅仅在收集数据这一环节就要花费巨大的财力和精力。如果直接在这种长尾数据集上训练原始的卷积神经网络或ViT模型,那么模型的整体表现将会偏向于头部类别,尾部类别和整体的识别精度将会明显下降。为了将大多数注意力放在算法设计与优化上面,并节省项目支出,一个好的解决方法是对模型进行优化改进,之后再在长尾数据集下训练。

发明内容

为了解决实际油田施工作业现场所采集数据存在长尾分布和部分违章行为难以识别问题,本发明提出了一种长尾数据下基于Transformer的采油违章识别方法,通过基于Transformer网络构建违章识别模型,使违章识别模型可以直接在长尾数据集上训练并在各个类别获得相似的性能,提高识别分类效率的同时减少人力物力的支出。

本发明的技术方案如下:

一种长尾数据下基于Transformer的采油违章识别方法,包括如下步骤:

步骤1、采集油田施工作业现场的视频流,制作采油作业现场违章数据集;

步骤2、使用Grabcut-based增强算法对训练集中的中尾部类数据进行增强;

步骤3、构建基于Transformer网络的采油违章识别模型;

步骤4、设计采油违章识别模型的整体样本采样策略;

步骤5、设计采油违章识别模型的训练权重分配策略;

步骤6、对采油违章识别模型进行训练及优化;

步骤7、监控实时获取现场工作视频,基于训练完成的采油违章识别模型对现场工作视频进行识别,得到违章识别分类结果,并存储识别及判定信息。

进一步地,步骤1的具体过程为:先对油田施工作业现场的视频流进行分帧处理得到分帧图像数据,使用Labelimg工具对得到的分帧图像数据进行违章标注,得到分帧图像及对应的标签文件;再利用python脚本对违章标注数据进行裁切、分类制作违章数据集,并将数据集按照固定比例以随机的形式划分为训练集、验证集与测试集。

进一步地,步骤2的具体过程为:

步骤2.1、在训练集中尾部类数据上应用Grabcut-based增强算法;

首先从相同违章类别采样图像,之后用Grabcut-based增强算法对图像的背景和前景进行建模并提取前景,再采用Border Matting算法对分割的边界信息进行平滑处理操作;最后采用水平翻转、旋转、缩放的数据增强方式对提取出的前景进行增强;

Grabcut-based增强算法的具体过程为:首先初始化模型参数,之后使用高斯混合模型对图像进行建模,接下来,使用图割算法对图像进行分割;这个过程中,需要将图像中的每个像素看作一个节点,并且将相邻的像素之间连接起来形成边;然后,根据前面建立的高斯混合模型,计算每个节点属于前景或背景的概率,并将这些概率作为边的权重,并使用最小割算法将图像分成前景和背景两部分;

步骤2.2、新采集一部分采油施工作业现场相关背景图像数据,将增强前景后的图像与新的背景图像进行融合得到增强后的训练集,单个背景中随机存放1-3张前景。

进一步地,步骤3中,基于Transformer网络的采油违章识别模型的具体内容为:输入尺寸为224×224×3的RGB图像,采用768个16×16的卷积核对输入图像进行卷积操作,输出尺寸为14×14×768的图像数据;对数据进行展平处理,输出尺寸为196×768;拼接一个尺寸为1×768的可训练参数Class Token,得到输出数据的尺寸为197×768,Class Token存储违章目标的特征信息;之后,与位置编码进行相加处理,输出数据的尺寸为197×768;之后通过Dropout层,进入12个Encoder Block层;之后经过Layer Norm层,并提取出ClassToken中的违章图像分类特征送入MLP Head分类网络,得到输入图像的最终违章分类结果;

其中,单个Encoder Block层的具体内容为:输入到Encoder Block层中的数据首先经过Layer Norm层进行归一化处理,进入多头注意力层,之后经过Dropout层,得到的输出再与最初的输入做一个相加操作;之后再依次进入Layer Norm层、MLP Block层和Dropout层,得到的输出再次与进入LayerNorm层的输入做一个相加操作,得到最终的输出。

进一步地,步骤4的具体过程为:

步骤4.1、利用通用公式(1)计算类平衡采样概率和实例平衡采样概率,q∈[0,1],当代入q=0时,得到类平衡采样概率

其中,p

步骤4.2、引入采样平衡参数λ,整合类平衡采样和实例平衡采样,作为基于Transformer网络的采油违章识别模型的采样策略,整体采样策略公式如下所示:

其中,

进一步地,步骤5的具体过程为:

步骤5.1、使用交叉熵损失函数

其中,假设训练集的类别标签空间是c∈{1,2,...,C},C是类别总个数,对于带有类别标签c的图像,将模型对其预测输出定义为y=[y

步骤5.2、使用类难度来分配权重;精度的衡量使用F

当同时考虑召回率和精确度的情况下,使用F

F

其中,c是类别标签索引,R

召回率R

R

其中,N

对应的权重分配策略为:

w

其中,δ=c/C是为了控制对不同类别的加权程度;

步骤5.3、最后使用如下权重分配策略进行模型的训练:

其中,模型对其预测输出为y,c为数据集类别标签索引,t时当前轮次。

进一步地,步骤6的具体过程为:

步骤6.1、设置网络的训练参数;训练参数包括最大迭代次数、学习率、优化器动量、权重;

步骤6.2、利用增强后的违章训练集和验证集训练基于Transformer网络的采油违章识别模型,在每轮epoch训练结束后,会实时计算相应的类难度并据此给不同违章项的分配权重,直至训练完成,并得到训练完成的采油违章识别模型;

步骤6.3、采用测试集对训练完成的模型进行评价,采用整体精度作为评价指标,当整体精度指标上升趋于稳定时,证明当前模型训练结果良好,输出当前模型作最终的采油违章识别模型;否则,重新训练模型。

进一步地,步骤7的具体过程为:采用同步骤1相同的处理,将待检测的视频流进行分帧、裁切处理;将处理好的帧数据输入至训练完成的采油违章识别模型,得到违章识别分类结果;同时,基于采油违章识别模型开发了采油违章识别软件系统;首先使用PyTorch深度学习框架构建上述采油违章识别模型并完成训练,之后将整个软件系统部署在井场监控室的计算机中,与井场服务器相连接;服务器会实时存储作业现场监控摄像头采集的视频数据流,计算机则会不断的读取来自服务器的视频流并完成违章识别任务;软件系统检测到违章行为时会实时提醒和可视化展示,方便作业监管人员实时处理;所述检测数据为包括单一违章类别的图像数据,同时计算机会将违章识别数据与判定信息返回给服务器进行存储备份,以供管理人员查看和处理。

本发明所带来的有益技术效果:

本发明主要针对在实际采油施工作业现场所采集的数据是长尾这一问题,降低了在构建违章识别模型时数据采集的时间和财力成本,并且可以将团队的重心和注意力放在算法设计与优化上面,提高生产作业的效率;本发明具有易于训练和便于优化等特点,在改善模型的基础上可以直接在长尾数据集上进行训练,缓解长尾所带来的模型识别不平衡问题,并在各个类别上取得相似的性能;本发明使用计算机视觉和深度学习相关技术,无需加装传感器等额外硬件设备,降低了硬件成本,通过施工作业现场现有的监控摄像头采集数据,在服务端部署相应软件即可。本发明在长尾数据下具有识别准确、快速的特点,对普通算法难以识别的违章行为有很好的识别能力,提高了油田施工作业现场的生产管理效率。

附图说明

图1为本发明一种长尾数据下基于Transformer的采油违章识别方法流程图。

图2为本发明一种长尾数据下基于Transformer的采油违章识别模型的整体网络结构示意图。

图3为图2网络结构中单个Encoder Block层的结构示意图。

具体实施方式

下面结合附图以及具体实施方式对本发明作进一步详细说明:

如图1所示,本发明一种长尾数据下基于Transformer的采油违章识别方法,包括以下步骤:

步骤1、采集油田施工作业现场的视频流,制作采油作业现场违章数据集。具体过程为:

先对油田施工作业现场的视频流进行分帧处理得到分帧图像数据,使用Labelimg工具对得到的分帧图像数据进行违章标注,得到分帧图像及对应的标签文件;再利用python脚本对违章标注数据进行裁切、分类制作违章数据集,并将数据集按照固定比例以随机的形式划分为训练集、验证集与测试集。

本发明实施例中,采集时长为90min的包含违章项的视频流数据,对视频流数据进行分帧处理得到图像数据,从中随机挑选8000张图像作为原始数据集,使用Labelimg对得到的原始数据集进行违章标注,得到图像及对应的标签文件,再利用python脚本对违章标注数据进行裁切、分类制作违章数据集,实际所得到的数据集基本符合长尾分布(某些类别拥有较多的样本,其余的类别所拥有的样本量要少得多),并将数据集按照8:1:1随机划分为训练集、验证集与测试集,最终得到6400张训练图像、800张验证图像和800张测试图像。本发明实施例中,违章项包括未戴安全帽、未戴护目镜、使用手机、吸烟、未穿工鞋、未戴工业手套、未穿红色工衣、作业现场无司索指挥、未穿雨衣、不扶楼梯、作业人员于液压大钳和钻具间穿梭、未带安全带和非工作人员等。

步骤2、使用Grabcut-based增强算法对训练集中的中尾部类数据进行增强。具体过程为:

步骤2.1、在训练集中尾部类数据上应用Grabcut-based增强算法。具体过程为:

首先从相同违章类别采样图像,之后用Grabcut-based增强算法对图像的背景和前景进行建模并提取前景,再采用Border Matting算法对分割的边界信息进行平滑等后期处理操作,这一过程也可以人为地干涉,目的是增加前景的多样性;最后采用水平翻转、旋转、缩放等传统数据增强方式对提取出的前景进行增强,以此来增加数据集中尾部类样本的多样性;

Grabcut-based增强算法的具体过程为:首先初始化模型参数,之后使用高斯混合模型(GMM)对图像进行建模,这个模型可以用来描述前景和背景像素的分布。接下来,使用图割算法对图像进行分割。这个过程中,需要将图像中的每个像素看作一个节点,并且将相邻的像素之间连接起来形成边。然后,根据前面建立的高斯混合模型,计算每个节点属于前景或背景的概率,并将这些概率作为边的权重,并使用最小割算法将图像分成前景和背景两部分。

步骤2.2、新采集一部分采油施工作业现场相关背景图像数据,将增强前景后的图像与新的背景图像进行融合得到增强后的训练集,单个背景中随机存放1-3张前景。

步骤3、构建基于Transformer网络的采油违章识别模型。

本发明构建的基于Transformer网络的采油违章识别模型的整体结构如图2所示,该模型中,输入尺寸为224×224×3的RGB图像,采用768个16×16的卷积核(Conv2d)(步长=16)对输入图像进行卷积操作,输出尺寸为14×14×768的图像数据;对数据进行展平处理,输出尺寸为196×768;拼接一个尺寸为1×768的Class Token,Class Token是添加的可训练参数(违章目标的特征信息存储在Class Token中),得到输出数据的尺寸为197×768;之后,与位置编码Position Embedding进行相加处理,图中的“⊕”为相加处理符号,尺寸保持不变,输出数据的尺寸为197×768;之后通过Dropout层,进入Transformer模型中的Encoder Block层,本发明模型共包含12个Encoder Block层;之后经过Layer Norm层,并提取出尺寸为1×768的Class Token中的违章图像分类特征送入MLP Head分类网络(包括pre-Logit层和Linear层),得到输入图像的最终违章分类结果。

图2模型中单个Encoder Block层的具体结构如图3所示,输入到Encoder Block层中的数据首先经过Layer Norm层进行归一化处理,进入Multi-Head Attention(多头注意力)层,之后经过Dropout层,得到的输出再与最初的输入做一个相加操作;之后再次依次进入Layer Norm层、MLP(多层感知机)Block层(其中MLP Block是由Linear、GELU激活函数、Dropout、Linear、Dropout组成的组层结构)和Dropout层,得到的输出再次与进入LayerNorm层的输入做一个相加操作,得到最终的输出。

步骤4、设计基于Transformer网络的采油违章识别模型的整体样本采样策略。具体过程为:

步骤4.1、利用通用公式(1)计算类平衡采样概率和实例平衡采样概率,q∈[0,1],当代入q=0时,得到类平衡采样概率

其中,p

步骤4.2、引入采样平衡参数λ(λ=C),整合类平衡采样和实例平衡采样,作为基于Transformer网络的采油违章识别模型的采样策略,充分利用不同采样的优点和实现平滑的渐进效果,整体采样策略公式如下所示:

其中,

步骤5、设计基于Transformer网络的采油违章识别模型的训练权重分配策略。具体步骤为:

步骤5.1、使用交叉熵损失函数

其中,假设训练集的类别标签空间是c∈{1,2,...,C},C是类别总个数,对于带有类别标签c的图像,将模型对其预测输出定义为y=[y

步骤5.2、之后使用类难度来分配权重。精度的衡量可以使用F

当同时考虑召回率和精确度的情况下,使用F

F

其中,c是类别标签索引,R

召回率R

R

其中,N

对应的权重分配策略为:

w

其中,δ=c/C是为了控制对不同类别的加权程度。

步骤5.3、最后使用如下权重分配策略进行模型的训练:

其中,模型对其预测输出为y,c为数据集类别标签索引,t时当前轮次epoch。

步骤6、对采油违章识别模型进行训练及优化。具体步骤为:

步骤6.1、设置网络的训练参数;训练参数包括最大迭代次数、学习率、优化器动量、权重。

本发明实施例中,设置最大迭代次数设为200;学习率采用余弦调度策略,初始为1e-3,逐渐衰减为1e-5;采用随机梯度下降法(SGD),优化器动量设置为0.9,权重衰减为5e-5;预训练模型使用vit_base_patch16_224.pth;同时,将识别的分类数目修改为数据集中违章项的总数。

步骤6.2、利用增强后的违章训练集和验证集训练基于Transformer网络的采油违章识别模型,在每轮epoch训练结束后,会实时计算相应的类难度并据此给不同违章项的分配权重,直至训练完成,并得到训练完成的采油违章识别模型。

步骤6.3、采用测试集对训练完成的模型进行评价,评价时,采用Top-1 Acc(整体精度)和Many-shot(头部类)Acc和Few-shot(尾部类)Acc作为评价指标。当整体精度指标上升趋于稳定时,证明当前模型训练结果良好,输出当前模型作最终的采油违章识别模型;否则,重新训练模型。

步骤7、监控实时获取现场工作视频,基于训练完成的采油违章识别模型对现场工作视频进行识别,得到违章识别分类结果,并存储识别及判定信息;具体过程为:

采用同步骤1相同的处理,将待检测的视频流进行分帧、裁切处理;将处理好的帧数据输入至训练完成的采油违章识别模型,得到违章识别分类结果。

本发明基于采油违章识别模型开发了采油违章识别软件系统。首先使用PyTorch深度学习框架构建上述采油违章识别模型并完成训练,之后将整个软件系统部署在井场监控室的计算机中,与井场服务器相连接。服务器会实时存储作业现场监控摄像头采集的视频数据流,计算机则会不断的读取来自服务器的视频流并完成违章识别任务。软件系统检测到违章行为时会实时提醒和可视化展示,方便作业监管人员实时处理。所述检测数据为包括单一违章类别的图像数据,同时计算机会将违章识别数据与判定信息返回给服务器进行存储备份,以供管理人员查看和处理。

为了证明本发明的可行性与优越性,更好的模拟现实世界真实情况,在违章数据集测试集上进行了对比实验。表1为本发明与现有方法在识别精度上的对比结果,其中,CE为采用交叉熵函数的识别模型,CS_CE为采用成本敏感交叉熵函数的识别模型,CB_SM和CB_Focal(γ=2)为采用类平衡函数的识别模型,Focal(γ=2)为采用Focal loss的识别模型。

表1本发明与现有方法在识别精度上的对比结果

选择标准的CE、Focal loss、类平衡损失(CB_SM和CB_Focal)和成本敏感交叉熵损失(CS_CE)等这些常用最新的方法作为对比对象。从表1可以看到,使用相同的骨干本发明方法实现了73.13%的总体精度,表现不错。同时注意到,成本敏感交叉熵由于逆向的分配权重,即便是在尾部类给模型带来了更好的泛化能力,但整体的表现不佳。

当然,上述说明并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的实质范围内所做出的变化、改型、添加或替换,也应属于本发明的保护范围。

相关技术
  • 一种基于数据挖掘的照明插座能耗隐性异常数据的识别方法
  • 一种基于双通道学习的长尾分布图像数据识别方法
  • 一种基于图像数据的违章建筑识别方法、系统及相关设备
技术分类

06120116196198