FSAC
FSAC 方法
原位浮游生物图像检索(IsPlanktonIR)框架主要由左侧基于CBIR的识别部分和右侧人机交互部分组成。 前者可以自动识别原位捕获的海洋浮游生物和颗粒的感兴趣区域(ROI)图像,后者支持对识别结果进行手动验证和校正,以在必要时提高或恢复性能。 下面介绍框架中关键组件的功能、结构和原理。
自动识别部分主要由四个模块组成,包括参考图库、图像特征提取器、图像相似性度量和决策策略。 图库中预先存储了大量手动标记的ROI,它们都被特征提取器转换为特征向量并写入查找表(LUT)。 当任何查询ROI图像输入到框架进行识别处理时,首先由特征提取器将其转换为特征向量,然后与LUT中的所有特征向量进行比较。 最后,利用得分最高的前k张图像的标签来确定查询ROI的识别结果。
特征提取器
采用50层结构的SEResNeXt(Hu et al., 2018),丢弃其网络末端的全连接层,仅保留特征提取部分作为图像检索框架中的特征提取器,如图2所示。SEResNeXt 基于 ResNeXt 网络(Xie et al., 2017),并结合了Squeeze-and-Exitation注意力模块。 它已被证明在许多图像分类任务中表现良好(Hu et al., 2018;Olsvik et al., 2019; Han et al., 2020)。 这种结构使得网络具有很强的抽象能力,其注意力机制也帮助网络关注对图像表示贡献更大的部分。
提取器训练
由于 SEResNeXt 仅接受 224 x 224 像素 RGB 彩色图像输入,因此首先使用填充和重新缩放操作对每个 ROI 进行预处理,以实现无失真尺寸归一化(Li et al., 2022)。 之后,将训练数据集中所有ROI的像素值转换为[0, 1],然后根据公式(1)进行归一化,以加速训练收敛
$$
I_{norm}=\frac{1-mean}{SD}
$$
其中mean和SD分别表示所有训练ROI的像素值平均值和标准差。 特征提取后,输入图像被转换为长度为2048的特征向量
接下来,我们使用 SCL 来训练特征提取器。 训练过程如图3所示。SLC使用Siamese网络结构,一对对称分支共享相同的网络结构和权重。 除了特征提取器之外,每个分支最后还有一个由两层全连接网络组成的投影仪,以进一步降低输出特征向量的维数。 在每次训练迭代期间,从训练集中随机选择一批 N 个图像,然后将每个图像随机增强两次以生成总共 2N 个图像。
图像增强可以是剪切、旋转、翻转、灰度、亮度调整、对比度调整和饱和度调整。 然后增强的 ROI 形成总共 N × (2N−1) 个图像对,没有任何组合重复。 根据它们的标签,属于同一类别的每对 ROI 构成正对,而属于不同类别的每对 ROI 构成负对。 经过特征提取和投影后,一对 ROI 都被简化为两个 128 维向量,并通过 SupCon 损失(Khosla et al., 2020)进一步进行比较,如公式(2)所示,
其中 I 描述了所有索引 输入 ROI 批次的,P(i) 是增强 ROI 批次中除 i 之外的所有正例的索引集,A(i) 是增强批次中除 i 之外的所有 ROI 的索引集,zi 描述第 i 个 L2归一化后的特征向量,τ是一个温度超参数,它控制正负值之间的平衡(在我们的例子中τ = 0.07)。 通过这样对不同图像对进行迭代后的SCL,网络最终达到了特征空间中压缩正片、推开负片的效果。
特征提取器的训练使用在 ImageNet 上预训练的权重进行初始化。 使用动量为 0.9、小批量为 128 的 SGD 进行优化。学习率在前 10 个 epoch 中从 0 线性增加到 0.2,然后通过余弦衰减函数逐渐降低到 0.0001。 我们使用 PyTorch 以分布式数据并行模式训练四个 NVIDIA RTX 3090 GPU 的网络,训练最终在 150 个 epoch 后收敛。
Gallery建设与优化
所有图库图像都会转换为特征向量,组成存储在计算机硬盘中的 LUT。 识别时,将LUT加载到内存中进行比较,无需重复计算参考特征。 由于每张查询图像的特征都要与所有参考特征进行比较,因此LUT的特征数量将影响检索效率。 因此,对LUT进行更好的细化,在保留实例多样性的前提下去除冗余实例,即只有那些在特征空间中的相似度低于阈值的实例才值得保留。 最后,可以在测试数据集上确定每个类的相似度阈值,以去除冗余示例并最小化LUT大小,从而平衡检索精度和效率。
实验部分
数据集
如图5所示,为了更好地利用有限的数据来模拟天然海水中可能的DSS和OOD情况,我们将构建的数据集进一步分为$D_{gallery}$和$D_{test}$两个子集,并具有$C_1$、$C_2$和$C_{OOD}$三个标签组 训练特征提取器并评估 IsPlanktonIR 框架。
子集 Dgallery 由 DYB-PlanktonNet 中每个类别的 $4/5$ ROI 组成,Dgallery 中的所有 90 个目标标签被随机分为 $|C1|= 60$ 和 $|C2|= 30$ 两组。
IsPlanktonIR 框架中的画廊,也用于为以下实验提供训练数据。 子集$D_{test}$包含DYBPlanktonNet的其余1/5左侧ROI和所有长江数据,用于构建各种测试集以评估IsPlanktonIR框架的识别性能。
除了$C1$和$C2$的目标类别外,$D_{test}$中长江数据的标签被标记为$C_{OOD}$。
实验
在实验1中,整个Dgallery被用来训练第一个特征提取器,Dtest(C1∪C2)中的例子被用作测试集来评估IsPlanktonIR的性能 框架。 该实验的结果被用作基线,模仿理想的独立同分布情况。 此外,还使用相同的数据集来训练和测试(Li et al., 2022)中使用的 ResNet18 分类模型,以进行性能比较。
接下来,仅使用Dgallery(C1)中的示例来训练第二个特征提取器,并使用这个新的特征提取器重建图像检索框架。 通过设置与Dtest不同的测试集组成,设计了以下实验2-5的四个实验,以进一步测试IsPlanktonIR在不同模拟数据条件下的性能。
实验2中,使用Dtest(C1∪C2)样本来测试IsPlanktonIR的识别性能。
实验3中,我们在测试集中添加了Dtest(COOD)数据,即用整个Dtest来测试IsPlanktonIR的识别性能。
在实验4中,我们进一步对Dtest(C1∪C2)进行重新采样,生成50个测试集,并按照(González et al., 2017)中推荐的方式使用它们来测试IsPlanktonIR在处理DSS问题时的识别性能。在数据重采样过程中,我们参考了已知的“非浮游生物颗粒>桡足类>其他”的相对数量关系,使测试集的分布更接近真实天然海水中的分布(Suthers等,2019)。 因此,每个测试集中非浮游生物颗粒的比例为其样本总数的50%~90%,其余样本的50%~90%为桡足类,其余样本构成其余样本。 另一方面,我们使用均匀分布率对每个类进行随机重采样,并在每个测试集中将非浮游生物颗粒、桡足类等的分类样本数大小分别限制在 600、200 和 100,以最大限度地 确保人工生成的测试集和训练集之间存在分布差异。
在实验5中,我们将Dtest(COOD)数据添加到实验4中生成的50个测试集,以进一步评估IsPlanktonIR框架。 由于OOD数据独立于Dgallery,我们直接使用全部或随机子采样它们进行测试。此外,实验5中的数据集也用于训练和测试AD分类器,如(Pu et al., 2021)中提出的 进行比较。 由于AD模型无法对测试集中的Dtest(C2)示例进行分类,因此我们仅测试其在Dtest(C1)分类和Dtest(COOD)示例检测上的性能。
对于测试集中 OOD 数据的实验 3 和 5,我们将相似度值设置为 0.75 作为 IsPlanktonIR 拒绝识别的阈值。
最后,为了测试LUT剪枝对图像检索框架的影响,我们在实验2的设置下,进一步评估了不同LUT压缩率下相似度阈值变化的性能。
在所有实验中,准确率(ACC)、精度、召回率和 F1 用作表征 IsPlanktonIR 框架性能的指标。