当前位置:首页>武汉>武汉大学于永灿:侧扫声呐图像目标识别模型类增量更新方法 | 《测绘学报》2026年第3期

武汉大学于永灿:侧扫声呐图像目标识别模型类增量更新方法 | 《测绘学报》2026年第3期

  • 2026-10-08 19:50:46
武汉大学于永灿:侧扫声呐图像目标识别模型类增量更新方法 | 《测绘学报》2026年第3期

本文内容来源于《测绘学报》2026年第3期(审图号GS京(2026)0641号)
侧扫声呐图像目标识别模型类增量更新方法

于永灿1,2, 赵建虎1,2, 李冰墨1,2, 贺子扬1,2

1.武汉大学测绘学院,湖北 武汉 430079

2.武汉大学海洋研究院,湖北 武汉 430079

摘要

侧扫声呐目标图像的类间相似性在识别模型类增量更新中易引发特征偏置,加剧灾难性遗忘。针对这一问题,本文以MEMO算法为基线,提出一种阶段渐进的双尺度动态注意力模块,由阶段内注意力与阶段间注意力组成:前者作用于阶段专用块特征,通过全局池化和通道重加权增强模型表示能力,缓解阶段内相似类别的混淆;后者作用于跨阶段串联特征,减少新类别主导的特征偏置。结合最近邻分类器,本文方法进一步强化了模型抗遗忘能力。在构建的SSS图像目标识别模型类增量更新框架中,本文方法取得了86.79%的平均识别准确率和80.94%的最后识别准确率,分别较基线提升10.88和11.43个百分点,性能优于主流类增量学习算法。在开源前视声呐数据上的拓展试验亦证明其泛化能力,平均识别准确率提升了2.65个百分点。本文方法仅引入1.41%的额外参数,并具备轻量级的更新开销与高效的推理速度。试验表明,本文方法能有效抑制类间相似性导致的特征干扰,提升模型在动态类别扩展中的稳定性,为侧扫声呐图像水下目标识别的持续学习提供了高效解决方案,对移动端部署和智能化、无人化水下测绘任务具有重要意义。

关键词

水下目标识别; 模型类增量更新; 动态注意力; 类间相似性; 侧扫声呐图像

基金项目

国家自然科学基金
(42476179)

作者简介

第一作者:于永灿(1998—),男,博士生,研究方向为水下目标检测、声呐图像处理。E-mail:2019202140056@whu.edu.cn

通信作者:赵建虎 E-mail:jhzhao@sgg.whu.edu.cn

本文引用格式

于永灿, 赵建虎, 李冰墨, 贺子扬. 侧扫声呐图像目标识别模型类增量更新方法[J]. 测绘学报, 2026, 55(3): 502-514 doi:10.11947/j.AGCS.2026.20250362

阅读全文

http://xb.chinasmp.com/article/2026/1001-1595/1001-1595-2026-03-0502.shtml

海洋测绘是各类海洋活动的基础保障[1-2],水下目标识别作为其深度应用,在通航安全、海洋工程建设、资源调查、水产养殖等领域发挥着关键作用[3-6]。侧扫声呐(side-scan sonar,SSS)由于扫测效率高、价格低廉而被广泛用于多个领域的水下目标识别任务。在动态的侧扫声呐成像过程中,随着时间的推移,一定范围内的场景有所变化,将出现新旧物体的更迭;进一步地,由于应用领域和场景的多样性和广泛性,需识别的水下目标的类别将随测量场景和任务而不断增加。因此,侧扫声呐图像目标识别模型的类增量更新对连续、多场景水下目标的准确识别尤其重要。然而,传统的识别模型通常基于给定的固定类别数据和有监督的训练范式进行闭集构建[7-9],虽可实现给定场景和类别下的高精度探测识别,但在面对实际应用中动态、开放的连续场景和新类别目标时缺乏有效的模型更新机制;而每次测量后采用全部数据进行模型重训练将导致较大的计算负担和资源消耗、限制移动端部署,仅基于新类别数据进行模型微调则将导致对旧类别的灾难性遗忘[10]。因此,有必要开展对水下目标的类增量学习研究,实现水下目标识别模型的稳定更新。

针对上述问题,类增量学习(class-incremental learning,CIL)[11]被引入水下目标识别,其目的是在有限的计算需求和内存占用条件下,构建能够同时学习新类别且不遗忘旧类别的水下目标识别模型,而无须全部数据在每次测量任务后对模型进行重训练[12]。现有的类增量学习方法可分为基于回放、基于动态网络和基于知识蒸馏3类。其中,基于回放的方法通过预设一定内存大小的范例集(exemplar set)来储存旧类别的代表性样本,或直接采用生成模型(如变分自编码器[13]、扩散模型[14])进行生成式回放,使模型复习旧类别知识;基于动态网络的方法则通过动态扩展模型的参数以学习不断增加的类别[15];基于知识蒸馏的方法通过不断将旧模型的知识蒸馏到新模型中以缓解灾难性遗忘[16]。然而,现有增量学习方法主要基于公共光学图像集设计,未充分顾及SSS图像特点,直接应用将导致性能受限。

受成像机理影响,SSS图像中目标具有高亮-声学阴影伴随的特点;此外,SSS为线扫描成像模式,测量条件(船速、换能器姿态等)在各扫描周期(ping)间动态变化,结合复杂海洋环境影响,SSS图像存在严重畸变和噪声,导致目标形状不准确、边缘模糊及纹理贫瘠,影响识别模型对水下目标代表性特征的准确提取和学习。综合上述影响,具有相近尺寸和形状的水下目标(如沉船和失事飞机)在SSS图像中存在类间相似性[17-18],这些目标较其他类别更难以区分和学习,导致类增量学习过程中的特征阶段内偏置,并进一步加剧由新旧类不平衡造成的特征阶段间偏置,致使更严重的类别混淆和灾难性遗忘。

目前基于SSS图像的水下目标类增量识别研究十分有限,多采用样本回放和动态网络的增量学习方法,以应对SSS目标图像样本量少、类间相似性高等特点。文献[19]采用深层卷积生成对抗网络(deep convolutional generative adversarial network,DCGAN)改善所生成声呐图像的质量,从而提高了基于样本回放的声呐图像类增量学习性能;文献[20]从骨干网络、训练策略等方面对基于动态网络的DER(dynamically expandable representation)[21]方法进行了声呐图像的适应性改进,取得了较好的增量识别精度;文献[22]认为样本回放更适用于具有高类间相似性的声呐图像的识别模型更新,并在此基础上提出了相似性感知边际损失,以增大类间特征距离,但未给出相似类别的定量判断标准。以上研究针对声呐图像开展了有效的类增量学习探索,为本文研究提供了较好参考,但针对SSS目标类间相似性导致的特征偏置问题仍需进一步研究。

针对该问题,本文首先综合3个开源SSS数据集以及项目积累数据(共6类常见的水下目标),搭建基于SSS图像的水下目标识别模型类增量更新框架;然后,顾及SSS图像目标类间相似性对特征学习和模型更新的干扰,提出一种双尺度动态注意力模块,对特征进行阶段内和阶段间动态定权和偏置纠正;最后,结合最近邻分类器,进一步减少类别和特征阶段偏置的影响,实现SSS图像目标识别模型的稳定类增量更新。

1 顾及SSS目标类间相似度的模型类增量更新方法

1.1 基于SSS图像的水下目标类增量识别框架

针对水下目标的模型类增量更新需求,本文基于类增量学习设定,构建了SSS图像水下目标识别模型的类增量更新框架,如图1所示。

图1   SSS图像水下目标识别模型的类增量更新框架

Fig. 1   Framework of class-incremental update for underwater target recognition model based on SSS images

如图1所示,不同场景、类别的水下目标以一定的零散程度和到达顺序依次输入模型,模拟实际测量任务中在不同区域或航次中以增量形式获取数据的情景,从而构成多个模型增量更新阶段。此外,考虑到水下目标数据稀缺且难收集,每个阶段均预设一定内存以存储少量旧类别的代表性样本,在模型更新时与新类别样本共同参与训练,以减轻灾难性遗忘。

1.2 本文方法

考虑到测量船及水下无人潜航器的计算性能限制,本文以内存高效可扩展模型(memory-efficient expandable model,MEMO)[23]为基础模型(baseline),提出一种双尺度动态注意力模块,并结合最近邻分类器,综合减少因SSS目标类间相似性导致的阶段内和阶段间的特征干扰,更新方法如图2所示。

图2   联合双尺度动态注意力和最近邻分类器的模型类增量更新方法

Fig. 2   Model class-incremental update method combining dual-scale dynamic attention and nearest neighbor classifier

1.2.1 基于MEMO的基线方法

图2中,MEMO采用动态网络和旧类别代表性样本回放实现类增量学习,具体方法如下。

(1)动态网络结构。MEMO将骨干网络ResNet[24]中的conv1、conv2_x、conv3_x和conv4_x层设定为“阶段通用块”,最后1个conv5_x层设定为“阶段专用块”。在每个阶段仅对专用块和分类层进行扩展,即增加1个新的conv5_x层,且不同阶段间的专用块为并联,对所输出的特征需进行串联操作,然后送入通道扩展后的分类层。在更新训练时,冻结之前阶段的专用块参数,仅对通用块和当前阶段专用块进行训练。因此,相比于现有的动态网络方法,MEMO避免了扩展整个骨干网络导致的计算负担[21]。

(2)基于牧群算法的范例集构建。MEMO采用牧群算法(herding)[12]实现对旧类别代表性样本的迭代选择。每轮迭代中,每个旧类别的非范例集样本均为候选样本,选择使加入候选样本后的范例集类平均向量与全部样本类平均向量的欧氏距离最小的样本,将其从候选样本移入范例集。由此迭代,直至满足预设的范例集容量k,其取值在标准类增量学习问题中通常有两种设定:总样本量为2000,每个阶段根据旧类个数进行动态平均;每个旧类为20个样本。

(3)分类损失。MEMO采用交叉熵(cross entropy,CE)损失[23]和用于减轻旧类知识被新类覆盖的辅助损失进行模型训练。辅助损失的真值为所有旧类定义为同一个类别索引、新类保持不变。为匹配该真值、实现辅助损失的计算,在第一阶段之后为模型添加一个结构与原始分类层相同的辅助分类层,其预测值用于辅助损失计算。因此,MEMO的总损失Loss的具体形式为

(1)

式中,λ在第一阶段取值为0,其余阶段取值为1;I(·)为指示函数;Fn和fn分别为所有阶段专用块的串联特征和最后阶段专用块特征;Wcls和WAux分别表示原始分类层和辅助分类层的权重矩阵;Si(·)表示Softmax运算;y为图像类别的直值为将所有旧类定义为同一个类别索引后的真值;为当前阶段出现的新类别个数;为截至当前阶段的新、旧类别总数。

在此基础上,基于MEMO的完整类增量学习过程为:模型训练、范例集更新、阶段专用块和分类层扩展、下一阶段模型训练。

1.2.2 阶段渐进的双尺度动态注意力模块

范例集的存储量有限,模型更新时存在新旧类别分布不均衡问题,导致所扩展的阶段专用块的特征响应偏向当前阶段和类别,而SSS目标类间相似性将加剧阶段内和阶段间的特征偏置。

因此,本文提出在每个阶段专用块后(类别尺度)和所有阶段专用块特征串联后(阶段尺度)添加相应改进的SE(squeeze-and-excitation)模块[25],并根据增量阶段对其进行适应性扩展,其结构如图3所示。

图3   阶段渐进的双尺度动态注意力模块结构

Fig. 3   Stage-progressive dual-scale dynamic attention module

SE模块包括1个全局平均池化层(avgpool)、2个全连接层(FC_1、FC_2)和2个激活层(ReLU、Sigmoid)。对于输入特征向量x,SE模块计算可表示为

(2)

式中,GAP(·)表示全局平均池化运算;W1和b1表示FC_1的权重矩阵和偏置向量;σ(·)和δ(·)表示Sigmoid和ReLU激活函数;7表示逐元素相乘。

图3(a)中,阶段内注意力在SE模块的基础上,参照CBAM注意力机制[26],添加了基于全局最大池化(maxpool)的运算分支,并将其得到的通道权重与原有的全局平均池化权重相加,以增加对稀疏显著特征信息的关注、减少平均池化导致的信息丢失。因此,第s阶段的通道内注意力的计算可表示为

(3)

式中,MAP(·)表示全局最大池化运算。

在此基础上,阶段内注意力根据阶段数s进行模块数量的适配扩展,以分别处理对应阶段的专用块输出。

对于图3(b)的阶段间注意力,其原始输入为各阶段专用块特征平均池化后的串联结果,可等效SE模块中的全局平均池化运算,且在特征串联前进行平均池化较串联后更有利于稳定的梯度计算。因此,本文的阶段间注意力将SE模块的全局平均池化运算移除,并在维持模块数量为1的基础上,仅根据s扩展其内部的两个全连接层,因此FC_1输入通道由C扩展为C×s,输出通道数由C/r扩展为C×s/r;FC_2的输入和输出通道数与FC_1相反,以保持处理前后的特征维度相同。其中,r为压缩比超参数,其控制着注意力模块中的通道维度缩减程度,取值越大,通道压缩程度越高,模型参数量越少,因此可根据数据集规模与计算效率需求灵活设置。根据文献[25]相关研究,模型精度并不随r减小而单调提升,且在r=16时能够较好平衡精度与模型复杂度,故本文将该参数设置为16。

综上所述,本文提出的双尺度动态注意力模块(dynamic attention module,DA)的计算可表示为

(4)

式中,concat(·)为特征串联运算;xs表示第s阶段专用块的输出特征向量。

模型更新时,基于式(1)损失函数进行训练,通过参数更新实现对阶段内和阶段间特征重加权能力的学习,以关注与输入图像类别最相关的特征,纠正由类间相似性导致的特征偏置。

1.2.3 最近邻分类器

由于类别权重不共享,基于全连接层的线性分类器在模型更新时受新旧类别样本量差异影响存在对新类别的偏置[27];而最近邻分类器通过计算输入特征与各类原型的距离实现分类,类原型可随特征表示的变化而自动变化,从而使分类器对特征表示的变化具有稳健性。因此,可采用最近邻分类器[28]替换基于全连接的分类层,以减少类别偏置。考虑到模型更新过程中无法获取完整的旧类别数据,可采用范例集中存储的旧类别代表性样本计算特征均值,以实现类原型的近似。

最近邻分类器的计算如下。

对于第i个样本,其经骨干网络、动态注意力模块提取的特征为fi,则分类结果为

(5)

式中,Dc,i为fi进行欧几里得归一化后与各类均值向量的欧氏距离

(6)

式中,μc表示类别c的类均值向量;为fi的欧几里得归一化值

(7)

1.3 评价指标

采用平均识别准确率(Avg)和最后阶段识别准确率(Last)分别对识别模型在增量学习所有阶段和最后阶段所有类别的识别性能进行定量评价。Last反映了模型的长期稳定性和抗遗忘能力,而Avg表达模型在整个增量更新过程中性能的一致性。

令第j个阶段的模型识别准确率为accj

(8)

式中,C为类别总数;TPi表示模型正确预测为类别i的样本数;FNi表示模型将类别i误识别为其他类别的样本数量。则对于S个阶段增量学习的平均识别准确率Avg为

(9)

对于S个阶段增量学习的最后阶段识别准确率Last为

(10)

2 试验结果及分析

2.1 试验数据

2.1.1 数据来源

基于所提出的SSS图像水下目标类增量识别框架,本文收集了来自SCTD[29](沉船、人体、失事飞机)、KLSG[30](仅沉船、失事飞机可获取)、Human detection dataset[31](人体)共3个开源SSS目标图像数据集的数据,以及项目积累的不同测量区域、设备参数扫测得到的SSS图像[32-33],并进行人工清洗,剔除重复的图像。最终得到6个类别(沉船、人工渔礁、管道、人体、失事飞机及集装箱)共1980张SSS图像,并按照7∶3比例随机划分为训练集和测试集。

2.1.2 数据增广

为避免类别样本数量不均影响对SSS图像目标类间相似性干扰的改进和分析,本文将旋转、缩放、翻转、亮度调整、遮挡、添加散斑噪声等方法随机组合对原始数据进行增广,实现训练集样本量的类间平衡,如图4所示。

图4   SSS数据增广示例

Fig. 4   Examples of SSS data augmentation

图4(b)为随机旋转,用以模拟不同扫测角度和目标沉底姿态的成像;图4(c)为随机整体缩放,模拟不同换能器与目标距离导致的成像尺寸差异;图4(d)为翻转,模拟不同测线布设导致的目标出现在左舷或右舷的成像;图4(e)为随机纵向缩放,模拟船速的快、慢导致扫测ping数少和多,进而使图像在纵向被压缩、拉伸;图4(f)为随机亮度调整,模拟SSS不同发射能级或不同距离导致的声能衰减程度差异;图4(g)为随机遮挡,模拟水中悬浮物等导致的信号和噪声干扰;图4(h)为添加随机散斑噪声,模拟不同混响和海洋环境下的噪声差异。

在对训练集进行数据增广时,将上述处理进行随机组合,从而更加贴近实际扫测中各种测量与环境因素干扰并存的综合影响。虽然SSS成像过程复杂,影响因素众多且难以充分、完整模拟,但上述数据增广方法顾及了对目标的形状、纹理等目标识别关键特征影响较为显著的成像因素。所构建的SSS图像水下目标类增量识别数据集的类别样本量分布见表1。

表1SSS图像水下目标类增量识别数据集样本量

Tab. 1  The sample size of the underwater target class-incremental recognition dataset in SSS images

序号
类别
训练集
测试集
总计
0
沉船
500(350)
150
650(500)
1
人工鱼礁
500(350)
150
650(500)
2
管道
500(283)
122
622(405)
3
人体
500(231)
100
600(331)
4
失事飞机
500(102)
45
545(147)
5
集装箱
500(67)
30
530(97)

注:括号内数字表示原始样本量,括号前数字表示数据增广后的样本量。

2.2 试验设定

考虑到实际SSS测量应用中类别到达的零散性特点,并结合类增量学习的一般设定[12],本文采用3种类别数量划分进行模拟:①将6个类别均分为3个阶段,每个阶段包含两个类别,即“222”;②将6个类别分为4个阶段,每个阶段包含新类别数量分别为2、1、2、1,即“2121”;③考虑类别极度零散的情况,每次仅更新1个新类别,将6类分为4个阶段,即“3111”。

此外,实际测量中水下目标类别到达还具有无序性特点,因此对上述3种类别数量划分,均采取3种类别顺序(类别序号顺序分别为“154302”“023451”“350124”)进行训练和测试,并计算Avg和Last的均值和标准差,作为最终评估结果。

考虑到原始SSS图像水下目标样本量普遍稀缺,1.2.1节中总样本量为2000的动态平均范例集设定难以充分适配该数据特性,尤其对于样本量严重不足的旧类别,其样本规模往往无法满足要求。为此,本文采用每个旧类固定保留20个代表性样本的范例集设定。在此基础上,对每个增量阶段,训练数据包括所有新类的训练集和基于牧群算法筛选的每个旧类20个代表性样本组成的范例集;测试数据包括当前阶段所有新、旧类的测试集。

试验环境为Ubuntu 18.04.6 LTS系统,所有方法的实现均基于PyCIL开源库[10]。CPU为AMD EPYC 7543P 32-Core Processor,显卡为一块NVIDIA GeForce RTX A40。

2.3 增量性能评估

2.3.1 改进前后试验对比分析

为验证本文方法的有效性,基于增广后的SSS水下目标类增量学习数据集和2.2节的试验设定,开展模型更新和测试,所得到的对比结果见表2。

表2改进前后试验结果对比

Tab. 2  Comparisons of the test results before and after improvement

方法
类别零散程度
Last/(%)
Avg/(%)
MEMO
222
64.54±5.41
77.32±4.97
2121
69.79±3.38
72.67±5.04
3111
74.2±2.32
77.74±1.94
平均
69.51±5.56
75.91±4.82
本文方法
222
81.46±1.3
88.64±0.84
2121
78.78±2.79
83.82±2.81
3111
82.58±3.56
87.91±1.52
平均
80.94±3.15
86.79±2.85

在表2中,MEMO与本文方法分别在3种不同的类别零散程度(“222”“2121”和“3111”)下进行了评估。针对每种类别零散程度,均采用3种不同的类别到达顺序(“154302”“023451”和“350124”)进行训练与测试。表2展示了MEMO和本文方法在3种类别零散程度及所有设定平均的Last和Avg的均值与标准差。

由表2可知,本文方法在所有设定下取得了80.94%和86.79%的平均Last和Avg,分别较MEMO提升了11.43和10.88个百分点,且具有更小的标准差,即面对不同类别零散程度和到达顺序时能够提供更稳定的模型更新性能。此外,本文方法在3种类别零散程度下均取得了较MEMO至少6和10个百分点的类别顺序平均Last和Avg提升,也说明了其对不同类别到达顺序和零散程度的稳定性。MEMO和本文方法在“2121”设定下的Avg明显低于其他两个设定,说明类别的不均衡到达增加了学习难度,对模型更新有一定影响。

为进一步分析SSS目标类间相似性对识别模型增量更新的干扰,基于增广数据集,以“222”类别划分、“154302”类别顺序为例,将MEMO和本文方法在第2、3阶段更新后模型的测试集混淆矩阵进行可视化和对比分析,如图5所示。

图5   MEMO和本文方法在第2、3阶段的混淆矩阵对比结果

Fig. 5   Comparisons of confusion matrices between MEMO and our method in the second and third stages

由图5可知,由于新旧类别样本不平衡,旧类别易被误识别为新类别,即灾难性遗忘。而SSS目标类相似性导致误识别存在特定类别偏置,在扩增后各类别训练集样本量均为500的设定下,第3阶段中沉船(旧类)更多被误识别为失事飞机(新类)而非集装箱(新类)。本文方法通过动态注意力和最近邻分类器的改进,将沉船误识别为失事飞机的数量从108减少到56,有效减轻了灾难性遗忘。

为更直观展示模型的探测识别性能,图6可视化了MEMO和本文方法在第3阶段的部分探测识别结果。

图6   第3阶段探测识别结果

Fig. 6   Visualization of target recognition results in the third phase

图6中,失事飞机和集装箱为第3阶段的新类别目标。图6(b)第1行的沉船目标存在严重畸变,整体轮廓十分近似集装箱的矩形,而第2行沉船的桅杆结构与甲板以下船体部分形成与半掩埋失事飞机相似的“十”字结构,结合新旧类别样本量不平衡影响,MEMO所更新的模型将其分别误识别为集装箱和失事飞机。对于图6(c)中的两个管道目标,分别具有复杂背景(海底)和形变,导致MEMO所更新模型将其误识别为沉船和失事飞机。而本文方法能够有效抵抗上述畸变、复杂背景以及目标形状导致的类间相似性干扰,所更新的模型能够实现正确的水下目标识别。

2.3.2 消融试验

为探究本文所采用的双尺度动态注意力和最近邻分类器两个模块对模型增量更新性能提升的贡献,对其开展了消融试验。基于2.2节的试验设定和增广后的数据集,从最终方法中分别移除动态注意力和最近邻分类器模块,对比所构建模型的增量性能,结果见表3。

表3消融试验结果

Tab. 3  Results of ablation study

组合
动态注意力
最近邻分类器
Last/(%)
Avg/(%)
组合1
69.51±5.56
75.91±4.82
组合2
√
77.24±4.60
82.77±4.31
组合3
√
73.18±2.73
81.15±2.56
组合4
√
√
80.94±3.15
86.79±2.85

表3中,相较于MEMO,动态注意力和最近邻分类器分别实现了7.73和3.67个百分点的平均Last提升,以及6.86和5.24个百分点的平均Avg提升,证明了两个模块各自的有效性。动态注意力模块通过纠正模型所学习特征空间的类别偏置,提高模型更新后的识别准确率,而最近邻分类器通过计算测试数据与各类原型的距离实现分类,更有利于提升模型应对不同类别零散程度和到达顺序的稳定性(更小的标准差)。此外,动态注意力和最近邻分类器共同使用时可实现10.88和11.43个百分点的平均Avg和Last提升,说明了两个模块共同使用的兼容性。

为定性说明所提出动态注意力的有效性,以“222”“154302”试验设定为例,对MEMO和本文方法在第2、3阶段所更新得到的模型,提取每个类别的平均特征,并进行归一化、可视化,如图7所示。

图7   特征图可视化分析

Fig. 7   Visualization of the feature maps

图7中,每个子图的横轴为特征维度,每个阶段专用块的输出特征维度均为512,因此第0~512维表示第1阶段专用块的输出特征,第513~1024维度表示第2阶段专用块输出特征。图7(a)和(d)表示MEMO所更新模型的阶段专用块特征串联结果;图7(b)和(e)表示本文方法所训练模型在阶段内注意力运算后输出的特征;图7(c)和(f)表示在图7(b)和(e)基础上再经阶段间注意力处理后的特征。

由图7(a)和(d)可知,MEMO所得到的识别模型在类别尺度上,对沉船、失事飞机等具有相似性的类别在特征响应中表现出相近的通道分布情况,这与图5(a)、(b)混淆矩阵的误识别分布一致;在阶段尺度上,受新旧类别不平衡和SSS相似类别干扰,旧类别图像在新阶段的特征通道响应更强,如图7(d)中沉船目标最初出现在第1阶段,但由于其与失事飞机的图像相似性,在第3阶段模型提取的特征中,该阶段专用块的响应强于其他阶段。

对比图7中的(a)、(b)和(d)、(e)可知,阶段内注意力通过通道权重调整增大了原本特征响应分布相似的沉船和失事飞机之间的差异。因此,阶段内注意力能够增强模型的表示能力,对每个阶段专用块提取的特征进行响应分布纠正,增大了不同类别的分布差异,从而实现对相似SSS目标的有效区分。但对旧类别的特征响应仍存在阶段偏置问题,如图7(e)中,第3阶段出现的失事飞机和集装箱在第1阶段专用块的特征响应被增强;此外,阶段内注意力仅在阶段内部进行特征重加权,忽略了多个阶段之间的信息关联,导致细粒度的冗余特征响应,如图7(b)、(e)所示,新类别在旧阶段专用块的特征响应被整体增强。

由图7(c)和(f)可知,阶段间注意力能够感知跨阶段信息,进一步实现了对特征响应在阶段间的分布纠正。具体而言,对比图7(e)和(f),对于第3阶段出现的类别(失事飞机、集装箱),阶段间注意力有效抑制了其在第1、2阶段专用块特征响应,使模型更关注其所参与训练的第3阶段专用块所提取的特征。因此,在阶段内注意力的基础上,阶段间注意力可基于跨阶段信息实现大部分冗余响应的压制和纠正,突出关键特征。

2.3.3 与现有方法对比

为说明本文方法的先进性,将本文方法与当前主流的基于动态网络的增量学习方法DER[21]、BEEF[34]、FECIL[15],以及基于知识蒸馏的经典方法PODNet[35]和基于回放的经典方法iCaRL[12]进行对比分析。试验采用数据增广后的水下目标类增量识别数据集,基于1.3节的评价指标,计算各模型在“222”设定下3种不同类别顺序(“154302”“023451”“350124”)的平均识别准确率。

此外,为全面评估方法效率,本文进一步计算了3个指标:①最终阶段模型的参数量,反映完成所有阶段更新后模型的复杂度和内存需求;②最终阶段模型的推理速度(frame per second,FPS),在NVIDIA GeForce RTX A40上测试,可直接体现实际推理速度;③总训练时长,反映增量方法和模型结构的综合效率,具体包括模型训练时间、旧样本范例集构建时间(基于样本回放方法)、其他时间(BEEF的模型融合、PODNet的模型微调、FECIL的数据增强等)。各方法的更新精度和效率的对比结果见表4。

表4与现有方法对比结果

Tab. 4  Comparisons with the existing methods

增量方法
Last/(%)
Avg/(%)
参数量
推理速度/FPS
总训练时长/min
iCaRL
61.86
75.64
11 178 564
16 542
76.52
PODNet
62.87
78.91
11 196 993
15 375
78.10
DER
56.45
72.19
33 540 297
5843
77.17
MEMO
65.83
78.96
27 974 729
10 492
76.09
BEEF
66.94
77.28
33 541 848
1447
122.56
FECIL
76.27
85.45
11 170 884
27 361
457.35
MEMO+动态注意力
75.15
83.33
28 367 945
9238
76.58
MEMO+最近邻分类器
74.09
84.17
27 974 729
9429
76.09
本文方法
81.46
88.64
28 367 945
8192
76.58

表4中,本文方法在Avg和Last两项指标上均显著优于经典动态网络方法DER和BEEF,以及基于知识蒸馏的PODNet和基于回放的iCaRL方法,并相较FECIL方法分别提升了3.19和5.19个百分点,展现出最优的增量学习性能。该性能提升主要得益于所提出的动态注意力模块与最近邻分类器的协同设计,二者在增强模型表示能力的同时有效缓解了特征响应偏置,从而减轻了灾难性遗忘现象。

在效率方面,由于动态网络方法需对模型结构进行动态扩展,其参数量较基于知识蒸馏和回放方法均有额外增加,且推理速度较慢。FECIL虽通过联合样本增强的模型融合避免了参数增加,但其复杂训练策略使训练时长大幅增加(约为本文方法的6倍)。相较MEMO,本文方法的动态注意力模块仅增加了1.41%参数量,虽然其与最近邻分类器的共同使用导致推理速度下降了21.92%,但仍可实现8192 FPS的高效推理,且总训练时长并无显著增加,可以满足实时应用需求。

2.4 其他开源声呐数据集测试结果

为进一步丰富数据以说明本文方法的有效性和泛化性,本文在开源前视声呐海洋垃圾数据集FLSMDD[36]上进行了拓展试验。这一选择基于两方面考虑:其一,开源侧扫声呐数据集有限,且常见水下目标的开源侧扫声呐数据集均已被集成到本文构建的SSS水下目标类增量识别数据集中(2.1节);其二,前视声呐受成像机理和图像质量影响,其目标图像也存在较高的类间相似性[17],这为验证本文方法在侧扫声呐-前视声呐图像跨域场景的泛化能力提供了测试环境。

FLSMDD数据集基于ARIS Explorer 3000型号的前视声呐采集,包含棕色玻璃瓶、玻璃瓶、金属瓶、罐头、玻璃罐、饮料纸盒、饮料包装袋、大轮胎、小轮胎、金属盒、塑料桶、塑料瓶、塑料管、塑料螺旋桨、药水玻璃瓶、旋转平台、阀门及扳手共18类水下垃圾目标,目标尺寸较小,为十几到几十厘米不等。这些目标被以不同姿态放置于水下旋转平台上,以获取不同扫测角度和距离的多样性前视声呐图像,共计4942张。本文按照7∶3比例将其划分为训练集和测试集,并随机设置3种类别零散程度(“333333”“52416”“4223142”,每个数字表示该阶段出现的新类别个数),以模拟现实测量中类别到达的零散和无序性。将3种设定下MEMO和本文方法的Last和Avg进行统计和对比分析,结果见表5。

表5FLSMDD数据集试验结果

Tab. 5  Results on FLSMDD dataset

方法
类别零散程度
Last/(%)
Avg/(%)
MEMO
333 333
93.01
90.94
52 416
94.62
95.38
4 223 142
92.94
94.92
平均
93.52
93.75
本文方法
333 333
94.96
95.24
52 416
95.16
97.22
4 223 142
92.81
96.73
平均
94.31
96.40

表5中,本文方法在3种类别零散程度下的平均Last和Avg分别为94.31%和96.40%,较MEMO提升了0.79和2.65个百分点,且在3种类别设定中均取得了优于MEMO的Avg指标,说明了本文方法在用于前视声呐的海洋垃圾小目标识别时,仍能有效提升模型更新的性能和稳定性,具有一定的泛化性。此外,模型在该数据集整体识别准确率较本文的SSS数据集更高,这是由于其数据均在固定的室内水箱中采集,每类目标的实物个数有限,且测量环境一致,仅通过旋转平台改变声呐扫测目标的视角实现近5000张图像的获取,因此类别内差异性低于本文构建的SSS数据集,识别模型更容易学习到各类别的代表性特征,从而实现更好的类别区分。

3 结束语

本文针对SSS图像中目标类间相似性对模型类增量更新过程造成的干扰问题,首先构建了SSS图像目标识别模型更新框架,并基于MEMO算法提出了一种双尺度动态注意力模块,结合最近邻分类器以提升模型的表示能力与类别判别能力。在基于数据增广的SSS数据集和顾及类别零散、无序到达特点的多种增量设定的评估中,本文方法的平均识别准确率和最终识别准确率较MEMO分别取得了10.88和11.43个百分点的提升,且优于现有类增量学习方法,并在更大规模的前视声呐小尺寸水下垃圾目标的类增量学习中实现了2.65个百分点的平均识别准确率提升。结果表明,本文方法能够有效缓解类间相似性带来的特征响应偏置,减轻灾难性遗忘,展现出良好的水下目标类增量学习性能。未来工作可收集更广泛测量条件、环境和目标类型的声呐数据,进一步验证和提升方法的普适性,并探索其在少样本和在线水下目标增量学习中的适应性与扩展性。

初审:张   琳
复审:余易举
终审:宋启凡

往期推荐

资讯

长安大学侯文韬:基于特征加权CatBoost模型的重力卫星反演地下水储量变化降尺度方法 | 《测绘学报》2026年第3期
重磅!2026年海外优青,项目指南出炉
南京工程学院2026年人才招聘公告
武汉科技大学2026年人才引进公告
会议通知 | 第十九届智慧城市大会将于2026年7月16日-18日在天津隆重举办

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-10-16 22:26:11 HTTP/2.0 GET : https://f.460.net.cn/a/559155.html
  2. 运行时间 : 0.052276s [ 吞吐率:19.13req/s ] 内存消耗:4,564.19kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=102de2e322baf5fb4ebc22cbbcbb7b33
  1. /wwwdata/wwwroot/f.460.net.cn/public/index.php ( 0.79 KB )
  2. /wwwdata/wwwroot/f.460.net.cn/vendor/autoload.php ( 0.17 KB )
  3. /wwwdata/wwwroot/f.460.net.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /wwwdata/wwwroot/f.460.net.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /wwwdata/wwwroot/f.460.net.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /wwwdata/wwwroot/f.460.net.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /wwwdata/wwwroot/f.460.net.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /wwwdata/wwwroot/f.460.net.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /wwwdata/wwwroot/f.460.net.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /wwwdata/wwwroot/f.460.net.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /wwwdata/wwwroot/f.460.net.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /wwwdata/wwwroot/f.460.net.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /wwwdata/wwwroot/f.460.net.cn/app/provider.php ( 0.19 KB )
  23. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /wwwdata/wwwroot/f.460.net.cn/app/common.php ( 0.03 KB )
  27. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /wwwdata/wwwroot/f.460.net.cn/config/app.php ( 0.95 KB )
  30. /wwwdata/wwwroot/f.460.net.cn/config/cache.php ( 0.78 KB )
  31. /wwwdata/wwwroot/f.460.net.cn/config/console.php ( 0.23 KB )
  32. /wwwdata/wwwroot/f.460.net.cn/config/cookie.php ( 0.56 KB )
  33. /wwwdata/wwwroot/f.460.net.cn/config/database.php ( 2.47 KB )
  34. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /wwwdata/wwwroot/f.460.net.cn/config/filesystem.php ( 0.61 KB )
  36. /wwwdata/wwwroot/f.460.net.cn/config/lang.php ( 0.91 KB )
  37. /wwwdata/wwwroot/f.460.net.cn/config/log.php ( 1.35 KB )
  38. /wwwdata/wwwroot/f.460.net.cn/config/middleware.php ( 0.19 KB )
  39. /wwwdata/wwwroot/f.460.net.cn/config/route.php ( 1.89 KB )
  40. /wwwdata/wwwroot/f.460.net.cn/config/session.php ( 0.57 KB )
  41. /wwwdata/wwwroot/f.460.net.cn/config/trace.php ( 0.34 KB )
  42. /wwwdata/wwwroot/f.460.net.cn/config/view.php ( 0.82 KB )
  43. /wwwdata/wwwroot/f.460.net.cn/app/event.php ( 0.25 KB )
  44. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /wwwdata/wwwroot/f.460.net.cn/app/service.php ( 0.13 KB )
  46. /wwwdata/wwwroot/f.460.net.cn/app/AppService.php ( 0.26 KB )
  47. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /wwwdata/wwwroot/f.460.net.cn/vendor/services.php ( 0.14 KB )
  53. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /wwwdata/wwwroot/f.460.net.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /wwwdata/wwwroot/f.460.net.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /wwwdata/wwwroot/f.460.net.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /wwwdata/wwwroot/f.460.net.cn/app/Request.php ( 0.09 KB )
  84. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /wwwdata/wwwroot/f.460.net.cn/app/middleware.php ( 0.25 KB )
  86. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /wwwdata/wwwroot/f.460.net.cn/route/app.php ( 1.72 KB )
  100. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /wwwdata/wwwroot/f.460.net.cn/app/controller/Index.php ( 4.81 KB )
  104. /wwwdata/wwwroot/f.460.net.cn/app/BaseController.php ( 2.05 KB )
  105. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /wwwdata/wwwroot/f.460.net.cn/runtime/temp/310a4debc7c38c2726b0b211618749f5.php ( 11.95 KB )
  140. /wwwdata/wwwroot/f.460.net.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000703s ] mysql:host=127.0.0.1;port=3306;dbname=f460;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.001320s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000381s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000331s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.001208s ]
  6. SELECT * FROM `set` [ RunTime:0.000322s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.001410s ]
  8. SELECT * FROM `article` WHERE `id` = 559155 LIMIT 1 [ RunTime:0.000576s ]
  9. UPDATE `article` SET `lasttime` = 1792160772 WHERE `id` = 559155 [ RunTime:0.002503s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.000439s ]
  11. SELECT * FROM `article` WHERE `id` < 559155 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000527s ]
  12. SELECT * FROM `article` WHERE `id` > 559155 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000453s ]
  13. SELECT * FROM `article` WHERE `id` < 559155 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000890s ]
  14. SELECT * FROM `article` WHERE `id` < 559155 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000678s ]
  15. SELECT * FROM `article` WHERE `id` < 559155 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.000717s ]
0.056916s