首页 > 数据库 > 数据库开发技术 > 中石油 · 第二届梦想云创新大赛总结

设计一个抽油机工况数据的分类模型,可准确的识别抽油机当前的工作状态,提高抽油机井工况诊断准确率。
参赛者在规定时间内须使用深度学习平台飞桨进行模型的设计、训练和预测,不得使用其他相关平台、框架及任何飞桨中未包含的学习方法参赛。
大赛数据将于10月26日发布
提供部分典型工况的抽油机工况数据及对应图片,参赛队可以基于这些数据、典型示功图图形特点以及数据加强算法构建自己的训练集。
数据说明
训练集文件名称:train.zip,包含17087个样本数据,每个样本数据包含1个csv格式原始数据以及1张对应的png格式图片。训练集包含12类典型工况:
| 序号 | 类别名 |
|---|---|
A01 |
工作正常 |
A02 |
供液不足 |
A03 |
气体影响 |
A04 |
气锁 |
A05 |
上碰泵 |
A06 |
下碰泵 |
A07 |
游动阀关闭迟缓 |
A08 |
柱塞脱出泵工作筒 |
A09 |
游动阀漏 |
A10 |
固定阀漏 |
A11 |
砂影响+供液不足 |
A12 |
惯性影响+工作正常 |
每条csv数据有2列,第1列为X值(位移),第2列为Y值(载荷),选手可以不使用提供的png图片训练,利用csv中的X&Y值生成自己需要尺寸的图片。数据存在不均衡问题,与实际情况相符,选手可以采取适当的数据增强方法
测试集A文件名称:test1.zip,包含13854个样本数据,每个样本数据包含1个csv格式原始数据以及1张对应的png格式图片。
基于官方开源的基线对抽油机工况数据及对应图片进行轮廓填充,之后进行进行图片分类模型去做12分类,之后模型也是基于这种思路去做的。
数据处理思路:
这里所有的图片都是按照Width * Height为400x190保存的,并且通道为4通道(但其实数值只在第四个通道才有),而且所有的有效数据都是点。所以这里简便起见,我们将第四个通道取出,并提取所有的点形成轮廓,再将轮廓填充后转换为灰度图,并将后缀改为jpg保存在原来相同的路径下。
处理前的图片可视化


处理后的图片可视化


图片处理代码:


后来我觉得白色可能不是很明显,我又进行了轮廓内的进行了颜色填充,


其实对于模型的提升效果不是很大


模型构建
模型一开始就尝试一些图片分类的预训练模型,主要是尝试使用了resnet-x系列以及efficientnetbx系列的模型,


从训练集以及验证集的acc来看模型很容易过拟合,线下直接飙到99+,主要由于类别之间及其不平衡,另一个数据增强没有做到位。
数据增强
后续在构建image reader阶段加入了数据增强,由于paddlehub目前对数据增强的接口不是很完善,所以当时一股脑加入了默认data_augmentation,没有去结合石油背景知识去做定制化,但是欣慰的是,只加入一行代码data_augmentation=True,线上提升了10个点,但是距离前排差距还是很大。


默认官方数据增强方式如下:


图片数据增强详情代码可见链接:
https://github.com/PaddlePaddle/PaddleHub/blob/release/v1.8/paddlehub/io/augmentation.py后来看到夕阳大佬的rank4方案,发现数据增强部分做的很细致,并且结合观察到的图片形状,对类间数据进行了转化,对类内数据进行了增强,下面是大佬进行的数据扩充操作:


这个相当于自己第一次参加CV相关的比赛,结合之前对CV的图片分类任务的感知,可以说大家的模型性能应该是不分上下的,主要差距在于对数据的理解、图片处理和数据增强部分。可能由于自己投入的时间和精力不太充分,所以稍微有些遗憾,下次好好选择一个图片分类任务的比赛,从头参与到位,加油ヾ(◍°∇°◍)ノ゙
https://aistudio.baidu.com/aistudio/projectdetail/1201478
https://aistudio.baidu.com/aistudio/projectdetail/1160086
https://aistudio.baidu.com/aistudio/projectdetail/1196456



原文作者:ChallengeHub;如有侵权,请联系管理员删除。