AI 驱动的石油管道毁损检测系统
管道破坏是指故意损坏、切割、钻孔或篡改管道,通常目的是偷窃原油或石油产品。可以使用角磨机、电钻、锤子和钢锯等工具来损坏管道。
问题在于,当损坏的管道被发现时,可能已经造成了重大损失。
2017年至2021年间,尼日利亚记录了约7,143起管道断裂和故意破坏案件,导致约2.086亿桶原油损失,价值约4.325万亿奈拉(Orji, 2023)。
所以我问了一个简单的问题:
如果管道能在损坏变得严重之前检测到有人试图破坏它呢?
这个问题促使我开发了AI驱动的管道破坏和泄漏检测系统。
1、构思
我的系统不是等待管道破裂,而是监听破坏工具接触金属管道时产生的声音。
一个振动传感器直接安装在管道上。当工具敲击、钻孔、切割或磨削管道时,会产生振动。传感器检测到这种振动并唤醒一个麦克风,麦克风随后捕捉周围的声音。
该声音被发送到直接在微控制器上运行的AI模型。
然后,模型判断该声音很可能是由破坏活动引起的,还是由管道周围正常发生的某些事情引起的。
这种区分非常重要。
振动并不总是意味着有人在攻击管道。大雨、强风、经过的火车或其他环境活动也可能产生振动和声音。
所以我训练AI模型来学习这种区别。
项目工作原理视频
您可以下载下方视频
如果AI将该活动识别为破坏行为,系统会立即响应:
检测到振动 → 捕捉声音 → AI分析 → 检测到破坏行为 → 警报 → GPS定位 → 邮件提醒
系统可以在约12秒内做出破坏检测决策,让工作人员在情况被长时间忽视之前就能知道发生了什么。
如果声音被归类为正常的环境活动,则不会触发警报,系统只是恢复监控。
2、还能监测泄漏
破坏不是唯一的问题。
管道也可能发生泄漏,所以我在管道的不同位置安装了两个流量传感器。
在正常情况下,进入和离开监控段的流体量应该相对接近。如果两个读数之间存在显著差异,则可能表明流体在传感器之间的某个地方流失了。
这赋予了系统两项主要任务:
监听破坏行为。监测泄漏。
有趣的是,所有这些都由一个小型嵌入式系统处理,而不是一个大型监控站。
3、我是如何构建的
整个AI开发过程都是使用Edge Impulse完成的,Edge Impulse | 边缘AI和物理AI的MLOps平台,这是一个用于在微控制器等边缘设备上构建和部署机器学习模型的平台。它提供了收集和准备传感器数据、提取有用特征、训练模型、测试模型以及将模型部署到嵌入式硬件的工具。
3.1 教AI什么是破坏声音
第一步是收集我希望系统识别的声音。
我录制并收集了角磨机、电钻、锤子和钢锯在金属上使用时的声音。但我不希望模型简单地学习*"大声 = 破坏行为"*。
所以我也收集了可能在管道周围发生但没有人试图损坏它的声音,包括大雨、强风、火车、车辆、语音和其他环境声音。
这给了模型两个广泛的学习类别:
与破坏相关的声音工具在金属上使用的声音。
正常声音不应触发警报的环境声音。
然后我将录音上传到Edge Impulse。
3.2 清理音频
在训练模型之前,我通过手动删除只有静音的部分来清理录音。
这很重要,因为我希望模型从实际声音中学习,而不是将部分训练时间花在空白音频上。
清理完录音后,我在Edge Impulse中创建了Impulse。
Impulse定义了原始音频在到达AI模型之前将如何处理。在这里,我选择了音频窗口大小、窗口步长、音频处理方法和分类块。
对于这个项目,每个音频样本都使用1秒窗口和500毫秒步长进行处理。
3.3 将音频转换为AI可以理解的形式
原始音频基本上是一串数字。AI不能像人听录音那样直接查看录音,因此需要将音频转换为有用的特征。
我使用 梅尔频率能量(MFE)来实现这一点。
每个1秒的音频窗口被分成重叠的32毫秒帧,帧之间有16毫秒的步长。然后对每帧应用 512点快速傅里叶变换(FFT)以获取其频率信息。
频率信息通过覆盖200-6,000赫兹的40个梅尔尺度滤波器。这有助于将模型集中在与所研究的机械声音最相关的频率范围内,同时减少非常低频背景噪声的影响。
还使用了 -40 dB的噪声基底来抑制非常低能量的背景分量。
简单来说:
我获取原始声音 → 将其分解成小块 → 提取重要的频率信息 → 将这些特征提供给AI。
3.4 训练AI
音频准备好后,下一步是教模型如何区分这两个类别。
我在Edge Impulse上训练了一个卷积神经网络(CNN),进行了100个epoch,使用Adam优化器,学习率为0.0003,批大小为32。我还使用了数据增强,包括低级别噪声添加和时间/频率掩蔽,以帮助模型处理现实世界声音的变化。
目标很简单:
给模型足够的例子,直到它能识别出破坏相关声音和正常环境声音之间的区别。
训练过程中发生了什么?
训练准确率从开始的约65%提高到结束时的约96%,而验证准确率从约80%提高到约95%。
训练和验证曲线保持相对接近,这表明模型正在学习有用的模式,没有显示出明显的过拟合迹象。
损失曲线在训练过程中也下降了,从约0.60降至约0.10。
3.5 结果
训练后,CNN达到了98.1%的验证准确率,验证损失为0.08。
它正确分类了98.7%的正常声音和97.5%的破坏声音,两个类别的F1分数均为0.98。
在单独的测试评估中,未优化的float32模型达到了**92.35%**的整体准确率。
这些数字令人鼓舞,但我不想止步于计算机屏幕。
真正的问题是:AI能在物理设备上工作吗?
3.6 将AI放入微控制器
下一步是将训练好的模型从Edge Impulse转移到ESP32-S3微控制器上。
这就是项目不仅仅是在计算机上运行AI模型的地方。
ESP32-S3成为了负责运行AI和控制系统其余部分的小型计算机。
然后我连接了其他组件——振动传感器、麦克风、GPS、蜂鸣器、流量传感器、通信系统和电源。
串行监视器也在测试期间用于确认系统正在检测什么以及何时识别出破坏事件。
3.7 构建物理原型
集成电子设备后,我在PVC管道原型上实现了该系统。
该原型允许我模拟真实管道的运行,同时测试破坏检测和泄漏检测。
振动传感器安装在管道上,而麦克风则放置在检测到振动后捕捉周围声音的位置。
两个流量传感器安装在不同位置,以便系统比较进入和离开监控段的流量。
这使我能够测试系统的两个主要功能:
它能识别可能的破坏事件吗?
它能识别可能表明泄漏的流量显著差异吗?
3.8 在计算机外测试
这可能是项目最重要的部分。
模型在训练期间可能表现良好,但在暴露于现实世界的混乱条件时仍可能遇到困难。
在测试期间,我发现了一个重要的限制。
原型中使用的麦克风有效覆盖范围只有约2米。对于小型原型来说这是合理的,但要用单个麦克风监控数公里的管道是不够的。
这意味着对于真正的大规模部署,系统需要多个分布式监控节点,或者能够覆盖更远距离的不同传感技术。
一个有前景的方向是使用光缆的分布式声学传感(DAS)。DAS不是依赖每隔几米放置的单个麦克风,而是使用沿管道安装的光缆来检测光缆不同位置的振动。这可能使其更适合长距离管道线路。
3.9 另一个挑战:建筑噪音
我还发现了另一个重要的限制。
想象管道附近有施工作业,工人正在使用机械设备。这些工具的声音可能会被麦克风捕捉到。
然而,我的设计中有一个重要部分有助于减少这个问题:
麦克风不是持续监听的。
振动传感器充当第一个触发器。
所以顺序是:
无管道振动 → 麦克风保持非活动状态
检测到管道振动 → 麦克风唤醒
捕捉声音 → AI分析
这意味着附近发生的普通机械噪音不应该自动引起警报,除非在监控的管道上也检测到相关振动。
它不能完全消除误报,但提供了额外的过滤层。
对于更大的现实世界系统,我将通过将AI音频分类与多个振动传感器、更好的声学定位和额外的传感器信息相结合来进一步改进,然后再确认事件。
原文链接:I Built an AI System That Can Detect when an Oil Pipeline is about to be Vandalized
汇智网翻译整理,转载请标明出处