基于元学习的少样本水闸图像识别方法研究

2024-03-19 01:49薛凌峰鲍建腾戚荣志
江苏水利 2024年3期
关键词:图像识别水闸闸门

薛凌峰,宋 炜,鲍建腾,焦 野,戚荣志

(1.江苏省水旱灾害防御调度指挥中心,江苏 南京 210029;2.河海大学计算机与软件学院,江苏 南京 211100)

随着智慧水利工作的推进,国内各级水利防汛视频监控系统相继建成[1-3],可以更及时、便捷地获得水利影像数据,有助于更好开展水利监管工作。其中,水闸启闭状态监控是防汛调度工作中的一项重要内容,应用水闸场景图像自动识别技术辅助或代替人工监管,可以提高异常情况监测的实时性[4]。但不同类型水闸的启闭状态判断依据相似而不尽相同,而且一些低调度频率的水闸的各种不同运行状态的影像资料难以收集,在历史上也没有足够的水闸影像资料积累,于是许多水闸的开启或关闭状态的样本数量很不均衡,部分状态样本很少。针对该问题,本研究将不同类型的水闸图像识别工作视为多个具有相似性的子任务,基于元学习理论[5]捕捉各类型水闸启闭状态识别任务的共性,实现跨水闸类型的闸门启闭状态图像识别。

1 水闸图像数据集构建

水闸图像识别领域内缺乏权威可靠的开源数据集,因此本研究需自行构建数据集。所有采集到的原始数据需要进行一系列的预处理才能成为可以进行学习的样本。

1.1 数据来源

本文水闸启闭状态图像数据主要采集自江苏省防汛视频监控系统,从系统中导出水闸闸口监控视频片段作为初始影像数据,再从视频中提取各种状态的水闸场景图像。本文共收集了石梁河水库南北泄洪闸、皂河闸、海口闸、黄沙港闸等16个闸门的影像数据,由于各个闸门在每个年周期内的调度频率不同,因此尽量收集了各水闸的不同状态数据。

1.2 图像数据预处理

省级防汛视频监控系统中不同水闸监控点的视频质量各异,需首先借助视频格式转换工具将AVI、MOV 等格式统一转换为MP4 格式,再人工筛选记录闸门场景时间段以及对应标签,并处理视频损坏、跳帧等。在此基础上,利用OpenCV计算机视觉模块提供的CV2.VideoCapture函数从视频流中截取图像。为了避免异常干扰,确保正确标记闸门启闭状态,对每一连续场景每隔25 帧(约2 s)截取一张图像,再人工筛除不合格图片。

视频在生成和传输过程中容易受到各种噪声的干扰,导致图像质量下降,对后续图像的处理和图像视觉效应将产生不利影响。非局部均值算法[4]充分利用图像中的冗余信息,在去除噪声的同时最大程度地保持图像的细节特征,其基本思想是将图像中与当前像素具有相似领域结构的像素加权平均作为当前像素的估计值,其权值由像素欧拉距离确定。对于每一个像素点的权值,采用以该像素点为中心的图像子块与当前像素点为中心的子块之间的高斯加权欧氏距离来计算。一般认为,图像中的其他像素与当前像素的欧拉距离越小,则两者越相似,因此为此像素设置较高的权重。

视频监控设备通常安置在拍摄水闸工程整体的位置,因此每张图像上有多个闸口。为便于做标记和后续算法分析,以单个闸口图像区域作为感兴趣区域(region of interest,ROI),将各ROI 截取为单独图片。具体操作为:利用OpenCV2模块的鼠标事件函数实现交互,得到并记录感兴趣矩形区域的左上、右下顶点坐标值,将其作为Pillow 图型库Image.crop函数的输入值,从而完成图片裁剪,得到ROI区域。预处理后效果示例如图1所示。

图1 图像预处理效果

1.3 图像增强

通过图像数据预处理后得到的样本存在类别不均衡的问题,部分水闸图像数据稀缺、启闭状态图像数量差距大,不利于模型的训练。数据增强使用平移变换、缩放和剪裁等图像处理方法对原始数据进行变换,生成相同对象不同形态的更多数据,用于补充欠缺的类型样本,促使模型学习到具有分辨性的特征,增强方法的鲁棒性。其中,水平翻转方法操作简单,并且在水闸启闭状态识别场景中可以保证标签安全。在实际环境中,水利防汛监控摄像设备的安置位置受限,在同一水闸站点往往仅从某一单侧视角进行拍摄记录。采用水平翻转进行增强,尽量补充了数据集中样本量少的开启或关闭状态下的某些闸门图像,并能在确保色彩、线条等其他特征不丢失的同时丰富了水闸的不同视角特征。

2 水闸图像识别方法

水闸数据集中的图像大都没有明确的前后景区分,而且关注区域不是简单的某个对象,而是以图中的闸口、浪花、水波纹等要素综合作为分类结果判断的依据,这与在标准数据集上开展的图像分类研究存在较大差异。因此,为了适应少样本水闸启闭状态图像识别的应用场景,本文基于SNAIL 元学习模型,提出了多头自注意力水闸图像识别方法(Multi-Head Self-Attention SNAIL,MH-SNAIL)。MH-SNAIL网络框架如图2所示。

图2 MH-SNAIL网络框架

MH-SNAIL 接收水闸图像特征向量组作为输入,通过3个多头注意力层和2个时序卷积层交替,后接一个全局平均池化层计算输出表征预测结果的二维概率向量。其中,3个多头注意力层的键-值嵌入向量的维数依次为64-32、256-128、512-256,2 个时序卷积层的通道数均为128,每个通道包含N×K+1个稠密块。

2.1 多头注意力

多头注意力机制根据查询嵌入与键嵌入的相似性分布计算得到一组关于值嵌入元素的权重,再基于这组权重更新值嵌入中的元素,能够很好地学习长序列信息。多头注意力首先对查询嵌入、键嵌入与值嵌入进行线性变换映射到多个不同子空间中,在子空间中分别执行普通的注意力运算后再合并结果,过程示意如图3所示。

图3 多头注意力示意

多头注意力首先将查询嵌入Q、键嵌入K与值嵌入V线性映射到多个各异的子空间中(设子空间的个数为h,取输入特征向量维数不大于6的最大公因数),再在各个子空间中并行执行h次注意力函数,从而得到h个不同的注意力结果,即h个头(head),最后将这些结果拼接起来并进行线性变换,生成最后的注意力结果。

多头的注意力运算模式能够从不同的特征表示子空间中学习到更多有价值的信息。显然,在少样本水闸图像分类任务中,相比普通的注意力机制,多头注意力机制更能达到综合关注多种特征的要求,有利于网络更加全面地捕捉水闸图像中的关键信息,也可以更好地弥补时序卷积在长距离依赖中的不足。

2.2 全局平均池化

MH-SNAIL 网络的输出层使用全连接层,将学习到的特征表示综合起来并映射到样本类别空间中,但全连接层存在参数多、训练速度慢的弊端,并且会将一定的特征存储在这些参数中。本文考虑使用全局平均池化层来代替全连接层,先采用一个GAP将N个特征图降维成一个1×N像素尺寸的特征图,再用C个1×1 卷积核将1×N的特征图卷成1×C的向量,其中C为类别数量,在本文的水闸启闭状态图像分类问题中取2。通过这种替换方案,整个过程在维度上来看相当于一层全连接层,但GAP能够大大减少特征的维度,有利于提升训练速度。

3 实验验证

3.1 实验数据及评价指标

实验使用本文第2小节所构建的水闸图像数据集sluice-ImageNet,共包含来自16类水闸的15 000幅84×84像素的彩色闸门启闭状态图像样本。为了方便实验,采用水平翻转处理数据集的所有图像,使得样本数量扩增为原数据集的两倍。此时,为了保证每一个元任务中都能学习到多于一种水闸类型的样本,必须设置类别数N不小于5。根据数据采样规则,将数据集划分为不同闸门且不同启闭状态的25 个子批,每个子批包含1 200 幅图像。其中,9类闸门包含开启态和关闭态的两个子批,挑选其中8 个闸门的16 个子批作为训练集,将剩余1 个闸门的2个子批连同其他7个子批随机划分为测试集和验证集,具体数据集结构如表1所示。

表1 数据集结构

实验使用训练阶段的平均验证准确率(Validate Accuracy)和测试阶段的测试准确率(Test Accuracy)来评判所提方法的效果。在训练阶段,每个epoch训练结束就进行验证评估和统计每次验证的结果,取平均值作为一个epoch的验证准确率。在测试阶段,在测试集上构建103个随机任务,用训练阶段每次验证准确率最高的权重模型进行测试,所得结果的平均值作为测试准确率。其中,每次任务的验证与测试结果将会取95%的置信区间。

3.2 实验环境及配置

实验的所有网络模型均运行于相同的软硬件环境,其详细软硬件环境配置如表2所示。

表2 实验软硬件环境配置

实验采用了5-way 1shot和5-way 5-shot这两种任务的方式,使用批处理大小(batch size)为16、初始学习率为1×10-4的Adam 优化算法调整模型的参数,设置训练次数(epoch)为100,每次训练的元任务数为103,学习率每训练20次迭代减半,权重衰减为10-6。训练阶段,每完成一次训练就进行验证评估,并统计每一次验证结果,将其中验证准确率最高的权重模型保存下来,作为测试阶段的模型。

3.3 实验结果与分析

为了评估MH-SNAIL 在水闸启闭状态图像识别任务上的性能,选择匹配网络、MAML、原型网络和关系网络这4 种经典的元学习方法与本文的MH-SNAIL 方法进行比较,通过与少样本图像分类领域内的其他常用方法比较,进一步验证本文的MH-SNAIL方法的有效性。

表3中展示了各方法在sluice-ImageNet 数据集上以5-way 1-shot 和5-way 5-shot 的训练方式进行训练后得到的测试准确率。从表3 可以看出,MHSNAIL方法在sluice-ImageNet数据集上的表现明显优于这些方法。在1-shot 场景下,MH-SNAIL 相较于匹配网络、MAML、原型网络和关系网络分别具有11.78%,8.01%,7.46%和5.18%的分类性能提升;在5-shot场景下,则分别具有11.94%,5.57%,4.48%和6.42%的分类性能提升。这有力地验证了本文提出的MH-SNAIL方法的有效性和优越性。另外,在5-way 5-shot 情景下,MH-SNAIL 方法的分类准确率为70.34%,初步达到了跨水闸类型闸门启闭状态图像识别应用的要求。

表3 在sluice-ImageNet上与其他方法的分类准确率对比

本文采用Python 编程语言,基于TensorFlow 深度学习框架实现了MH-SNAIL模型。模型将应用在重点水利工程视频监测平台中。模型部署时,首先将训练好的模型导出为ONNX格式,然后在GPU服务器上加载ONNX 模型,以加速模型推理的速度。监测平台通过模型提供的Restful接口进行交互。模型接收用户通过平台Web界面上传的JPG或PNG格式的水闸图像,或者对接平台获取的实时视频,收到图像信息后在服务器上进行推理,并将水闸实时状态识别结果以JSON格式的报文发送给用户平台。

4 结 语

提出了基于元学习的少样本水闸图像识别方法,采用多头注意力,提升网络准确捕捉多种与任务相关的关键特征信息的能力,更好地与时序卷积协作实现水闸启闭状态图像识别。在sluice-ImageNet 数据集上的实验验证了MH-SNAIL 方法的有效性和优越性,初步达到了跨水闸类型闸门启闭状态图像识别应用的要求,并且,通过微服务架构实现水闸图像识别方法的服务化封装,部署于重点水利工程视频监测平台中,具有高度灵活性和拓展性。该方法可作为防汛视频监控系统的延伸,辅助或代替人工监管,提高异常情况监测的实时性,实现更智能的化水利工程管理的运行。

猜你喜欢
图像识别水闸闸门
我终于会过地铁闸门了
基于Resnet-50的猫狗图像识别
高速公路图像识别技术应用探讨
图像识别在物联网上的应用
图像识别在水质检测中的应用
2016年河南省已建成水闸数量
把住医保基金水池闸门
全省已建成水闸数量
找准入口,打开思路的闸门
河南省2014年已建成水闸数量