靳泽园,田 枫,刘 芳,于巾涛,卢 俊,徐 昕
(东北石油大学计算机与信息技术学院,黑龙江 大庆 163318)
油田生产作业是高风险行业,在生产中原油有毒有害,一旦遇到高温高压就会发生爆炸。而实际采油时环境较为恶劣,加上机器运作时本身温度就高,一旦作业现场出现原油泄漏,就很容易发生爆炸,这对油田作业造成极大的安全隐患。目前,基于深度学习的目标检测算法已经应用于生活中的方方面面,像人脸识别、车牌识别等。为了保障油田作业现场安全生产,本文将基于深度学习的目标检测算法应用于漏油识别问题中。
国外的原油泄漏研究大多是针对海上溢油检测方面的研究,如Calla等人使用卫星上的多频微波传感器来测量海面上溢油的程度以及海面上漏油的厚度[1]。而针对陆地油田石油的漏油检测研究却较少。
关于油田远程视频监控,国内栗生亚[2]认为由于油田生产管理大多是采用人工管理的方式,管理工序多且需要分工不间断值守,但不能保障所有工序每时每刻都有人值守,容易产生安全隐患且效率低下,引入油田视频监控系统可提高生产效率和安全生产的可靠性。大多数油田所采用的远程视频监控系统,需要利用传感器采集数据,如安装压力变送器和流量计来采集油井内的压力、流量等信息数据,再通过无线传输网络进行信息通信,进而将现场情况反馈给监控室以了解采油设备的工作状态。密超[3]的视频监控技术在油田生产中的应用研究,提到由于油井、计量间等主要分布在野外,工作人员要耗时耗力去现场了解油田作业区的状况,所以有远程实时监控的需求。随着科学技术的不断进步,油田企业会让生产管理更加信息化、科学化、智能化,远程视频监控系统在油田中的应用不断增多。邢智伟等人[4]总结分析了油田在生产过程中,油田的数字化建设将会成为主要方向,对突发性问题能够实时、快速、准确地处理。
本文提出了基于YOLOv5算法的油田作业现场漏油识别方法。首先自主拍摄室内、室外2个场景的漏油数据集,并利用数据增强方式扩充数据集,然后将处理好的数据输入到YOLOv5的4种预训练网络中训练,保存最优的训练权重数据,并用作测试集测试。测试结果表明,所用算法模型的检测速度和准确性都达到了油田作业现场的要求,并成功通过了功能测试和性能测试。
YOLOv5(You Only Look Once)是由 Ultralytics LLC公司于2020年提出,模型最快的目标检测速度可达到0.007 s,即每秒可处理140帧,满足油田作业现场实时检测的需求[5]。其整体的网络模型结构如图1所示。
YOLOv5算法的整体网络结构分为Input、Backbone、Neck、Prediction 4 个主要部分[6]。Input端采用YOLOv4中的Mosaic方式做数据增强处理。Backbone主干网络指的是提取特征网络,其作用是提取图片中的信息,以供后面的网络使用。Neck部分是放在Backbone和Prediction之间的,是为了更好地利用Backbone提取的特征。Prediction是获取网络输出内容的网络,利用之前提取的特征,以GIoU Loss作为bounding box的损失,并使用二进制交叉熵函数计算类概率,以及使用Logits损失计算目标得分的损失,最终做出综合预测。
本文中漏油识别算法以YOLOv5为检测模型,首先通过摄像头采集并标注相关数据集,针对作业现场存在工作人员头发等干扰样本,采用负样本对比的方法提高算法精度;其次将数据集送入YOLOv5网络的4种预训练模型中进行训练,通过对比检测速度、精度及召回率得到最佳权重数据;最后将最佳权重文件部署到作业现场,得到最终的油田作业现场漏油检测模型。具体的算法流程如图2所示。
数据集是深度学习任务中最基本且最重要的一部分,一个模型对于不同的数据集,训练出的结果也会有所差异,数据集的好坏还会影响模型的性能。对于目标检测任务,更需要大量的数据集作为网络的输入。太少的数据集训练网络,容易发生过拟合;太多的数据集,容易造成数据冗余,增加网络计算量。
本文的数据集首先通过室内、室外监控摄像头拍摄漏油视频,其次利用Python截取室内、室外2个场景下的漏油数据集,最后通过数据增强的方法对数据集进行扩增。数据集标注采用LabelImg软件对整个数据集中每个图像进行人工标注,标注样本如图3所示。标注后生成的是遵循PASCAL VOC格式的XML文件,训练时YOLOv5不能直接提取XML文件,而是将中心点的坐标即标注框的宽和高以偏移量的方式存储到TXT文件中,使得训练时可以忽略不同图像的尺寸。最终数据集的总量为6566张,其中训练集5850张,测试集650张,验证集66张。
训练平台的参数配置越高,图形计算能力越强,模型训练的效果则会越好。为了使模型达到良好的训练效果,在GPU上对YOLOv5网络的4个预训练模型分别进行训练。本次实验在Intel Core i7 6700处理器,主频为4 GHz,内存为32 G,显卡型号为GeForce RTX 3080的PC机上进行,在Ubuntu18.04环境下利用深度学习框架Pytorch对YOLOv5模型进行训练与测试。训练模型的参数设置如表1所示。
表1 训练平台配置Tab.1 Training platform configuration
YOLOv5共有4种预训练模型,分别为YOLOv5s、YOLOv5m、YOLOv5l、YOLOv5x,每种预训练模型的深度和宽度不同,所以在数据集上的表现会有所不同。为了选取精度较高和实时性较快的检测模型,本文在相同数据集条件下,分别在YOLOv5的4种预训练模型中进行了训练,对比结果如表2所示。
表2 不同模型效果对比Tab.2 Comparison of different models
通过对比结果发现,YOLOv5s模型用时最短,检测速度最快,但YOLOv5m与之相差不大。YOLOv5m模型的精度最高,达到了94%,且YOLOv5m模型的精准率相对于YOLOv5s模型、YOLOv5l模型和YOLOv5x模型分别高出0.10、0.05和0.02个百分点。4种模型对于同一场景下的漏油检测样例如图4所示。
由图4可以看出,该模型能够检测到室内场景中的小目标漏油,并且具有一定识别精度,其中YOLOv5l、YOLOv5m、YOLOv5s、YOLOv5x 4种模型的检测精度分别为0.87、0.93、0.89、0.91。综合上述模型的精度和速度分析,本文选用YOLOv5m模型训练,能得到最佳权重数据,所得出的数据可作为油田作业现场漏油识别模型的权重数据。
为了保障油田作业现场安全生产,本文提出了一种基于YOLOv5的油田作业现场漏油识别模型。首先对采集的数据集进行预处理以及数据集标注,然后通过YOLOv5的4种预训练模型分别进行训练,最后对比性能结果和检测效果得到最优权重数据。实验结果表明,YOLOv5m模型更适用于本文制作的漏油数据集,检测准确率达到了94.2%,能够监控油田作业现场区域内原油泄漏情况,并进行实时、准确、稳定检测。