EnYOLO | 实现SOTA性能的实时图像增强与目标检测框架

技术

点击下方卡片,关注「集智书童」公众号

点击加入👉「集智书童」交流群

picture.image

近年来,在水下图像增强(UIE)领域已取得了重大进展。然而,对于自主潜水器(AUVs)中的水下目标检测(UOD)等高级视觉任务的实际应用仍然相对未被探索。这可能是由于以下几个因素:

  1. 现有方法通常将UIE作为预处理步骤,这不可避免地引入了相当大的计算开销和延迟。

  2. 在训练目标检测器之前增强图像的过程未必能带来性能的提升。

  3. 复杂的水下环境可能在不同场景间引起显著的领域偏移,严重降低UOD性能。

为了应对这些挑战,作者引入了EnYOLO,这是一个集成的实时框架,旨在同时进行具有领域自适应能力的UIE和UOD。

具体来说,UIE和UOD任务头共享相同的网络主干,并采用轻量级设计。此外,为了确保两个任务的平衡训练,作者提出了一种多阶段训练策略,旨在持续提升它们的性能。

另外,作者提出了一种新颖的领域自适应策略,用于对来自不同水下环境的特征嵌入进行对齐。全面实验表明,作者的框架不仅在UIE和UOD任务上达到了最先进(SOTA)的性能,而且在应用于不同的水下场景时也显示出卓越的适应性。作者的效率分析进一步突显了框架在船上部署的巨大潜力。

I Introduction

复杂的水下环境带来了严重的挑战,这些挑战显著降低了水下图像的质量,限制了自主潜水器(AUVs)执行如水下目标检测(UOD)等高级视觉任务的能力。因此,使用水下图像增强(UIE)方法获取清晰的水下图像通常被认为是与视觉相关的水下任务的一个重要前提条件。然而,尽管近年来UIE技术迅速发展,其在水下视觉任务中的应用,例如AUVs进行UOD,仍然是相对未探索的领域。这可以归因于以下因素。

首先,将UIE作为UOD预处理步骤不可避免地引入了额外的计算延迟,因为该方式需要系统在执行UOD任务之前等待UIE的结果。因此,这种方法显著降低了其实时应用的适用性。此外,大多数基于深度学习的UIE技术需要大量的计算资源,限制了它们在现实世界中AUV部署中实际集成的可行性。

其次,直接将UIE生成的增强图像输入到目标检测器可能不会导致性能提升。这是因为大多数现有的SOTA UIE技术主要设计用于生成视觉上吸引人的图像,这可能与UOD任务的要求不一致。此外,增强图像可能会引入使目标检测器混淆的伪迹。

最后,复杂的水下条件常常导致各种成像效应(图1),在不同场景间造成显著的领域偏移。这表明在特定水下条件下训练的网络在适应不同场景时可能会遇到挑战。尽管先前的研究者们已经探讨了针对水下图像增强(UIE)的领域适应,但针对水下目标检测(UOD)的领域适应挑战的研究仍然有限。

picture.image

为了解决上述问题,作者提出了EnYOLO,这是一个具有领域自适应能力的集成实时框架,可以同时执行UIE(用户界面提取)和UOD(水下目标检测)任务。具体来说,UIE和UOD任务头都采用相同的网络 Backbone ,并采用轻量级架构。此外,作者引入了多阶段训练方法,以保持两个任务训练的平衡,其总体目标是持续提高它们的性能。另外,作者提出了一种新颖的领域自适应方法,以减轻各种水下环境之间的领域差距。作者的主要贡献如下:

作者提出了一个统一的框架,该框架能够实时同时执行UIE和UOD任务。* 作者引入了一种多阶段训练策略,旨在持续提升UIE和UOD任务的效果。

作者提出了一种新颖的领域自适应技术,用以缓解无监督异常检测(UOD)中的领域偏移问题。

广泛的实验证明了作者框架在实现UIE和UOD的顶级性能(SOTA)的同时,也展示了在多种水下场景中的卓越适应性。

II Related Work

Underwater Image Enhancement

UIE技术可以分为传统方法和基于学习的方法。虽然传统方法可以在某些先验假设下通过估计反向散射和透射来生成清晰的图像[10][11],但在复杂的现实世界场景中,它们的有效性可能会降低。

相比之下,基于学习的方法直接获取退化水下图像到其清晰对应图像的映射,表现出在复杂情况下的改进适应性。例如,王等人[12]引入了一种基于Swin Transformer[13]的UIE方法,该方法利用局部特征学习和长距离依赖建模。黄等人[14]提出了一种半监督的UIE技术,通过对比正则化提高水下图像的视觉质量。然而,这些方法涉及高计算复杂度,限制了它们在实际部署中集成的实用可行性。尽管Jamieson等人[15]提出了一种实时算法,该算法结合了最新的水下图像形成模型和深度学习框架的计算效率,但他们的主要关注点是视觉质量增强,未探索在高层次水下视觉任务中的应用性。在本研究中,作者设计了一种轻量级的UIE架构,并探讨了其在UOD任务中的潜力。

Underwater Object Detection

尽管通用目标检测技术在各种陆地应用中已经取得了显著的进步[16][17],但复杂的水下环境对水下目标检测(UOD)提出了巨大的挑战。

为了提升水下目标检测(UOD)的性能,研究行人通常会利用水下图像增强(UIE)技术作为初步步骤来提高图像质量。例如,姜等人使用了WaterNet来增强水下图像质量,随后提高了检测性能。范等人通过在特征层面增强退化的水下图像,提升了检测性能。在检测前提升图像质量的做法也常应用于应对具有挑战性的陆地天气条件下的目标检测。然而,这些方法不可避免地引入了大量的计算开销和延迟。此外,增强图像中潜在的伪影可能会导致在某些环境下检测性能的下降。因此,程等人提出了一个多任务框架,可以端到端地共同训练UIE和UOD任务。然而,这种方法依赖于复杂的网络结构来平衡两个任务的训练过程,这使得它在实际应用中不可行。在本研究中,作者设计了一个简单的框架,将UIE和UOD统一起来,采用多阶段训练策略,旨在持续提升两个任务的性能。

Underwater Domain Adaptation

域自适应技术在各种任务中已经通过减轻不同领域间特征分布的偏移得到了广泛研究。在海底视觉任务的背景下,域自适应主要在UIE(水下图像增强)中讨论。例如,Uplavikar等人提出了一种UIE网络,通过对抗性地学习领域无关特征来处理水质的多样性。陈等人引入了一种域自适应UIE框架,通过利用各种领域中的内容和风格分离。温等人开发了一种UIE网络,该网络具有跨领域和领域内自适应策略,增强了其在各种水下场景中的适应性。然而,当前技术主要局限于UIE领域,对UOD(水下目标检测)的域自适应探索有限。尽管刘等人提出了一种使用WCT2风格转移的域泛化方法来增强水下目标检测器的能力,但他们的方法没有解决域分布偏移的问题。在本研究中,作者为UOD引入了一种简单但有效的域自适应策略,利用从UIE获得的增强特征嵌入。

III Proposed Method

Problem Definition

作者提出的研究框架旨在同时有效地实现水下图像增强(UIE)和水下目标检测(UOD)。本研究中用于训练的数据集定义如下。如图2(a)所示,作者使用一对水下合成数据集 来促进UIE任务的训练;其中 代表合成数据集的大小, 表示退化的合成水下图像,而 是相应的清晰图像。对于UOD任务的训练,作者利用一个标记的真实水下数据集 ;其中 指的是真实世界数据集的大小, 代表真实水下图像, 指示边界框标注, 是类别标签。此外,来自 的真实水下图像也构成了一个非配对的真实水下数据集 ,以增强UIE模块在实际场景中的性能。另外,对于每个 的UIE增强结果 ,以及它们相应的 和 ,构成了一个标记增强的真实数据集 ,这也用于训练UOD任务。在推理过程中,网络接收真实水下图像 ,并随后预测增强图像 和检测结果 ,如图2(b)所示。

picture.image

Network Overview

如图2所示,作者的网络架构遵循一种简单的多任务结构,包括三个组成部分:网络基础架构、水下目标检测(UOD) Head 和水下图像增强(UIE) Head 。UIE和UOD Head 共享相同的网络基础架构,在推理过程中它们之间没有特征交换。尽管这种设计在各种多任务网络范例中很常见,但它对于实际水下视觉任务具有特别重要的意义。首先,在实际测试过程中,UOD Head 不需要依赖于UIE任务增强的结果,从而显著减少了计算延迟。其次,UOD和UIE Head 的解耦特性为实际测试带来了更大的灵活性(第IV-E节)。

显然,网络 Backbone 和UOD Head 构成了一个通用目标检测器。为了实现实时检测并保持轻量级架构,作者采用了经典的一阶段目标检测器YOLOv5 ,其中整合了CSPDarkNet53 作为 Backbone 网络。对于UIE Head ,作者采用了CSPLayer 的核心概念,以实现网络性能与计算效率之间的平衡。如图3所示,CSPLayer中的大部分卷积滤波器采用了的核大小,显著减少了参数数量和计算需求。此外,作者UIE Head 的上采样层使用双线性插值,这种方法不需要额外的网络参数,并保持计算效率。

picture.image

Multi-Stage Training Strategy

UOD和UIE的训练过程都是非琐碎的,因为UIE主要旨在提高视觉质量和精细细节,而UOD主要关注提取相关的目标特征及其定位。为了解决这个问题,作者引入了一种多阶段训练策略(算法1),包括三个训练阶段:预热 阶段,互学习 阶段,以及领域适应 阶段。

picture.image

(1) 烧录 阶段:在这个阶段,整个网络被训练以获得在UIE和UOD任务中的基本能力。如图2(a)所示,对于UIE任务,网络被提供了成对的具有弱增强的合成水下图像,包括随机水平翻转和裁剪。同理,UOD任务通过使用带有强增强的标记真实水下数据集进行优化,这些增强包括马赛克贴片、随机颜色抖动、模糊,以及随机水平翻转和裁剪。由于包含了参考图像,而被良好地标注,两个任务都是以监督方式训练的。在这个阶段,虽然网络获得了增强合成水下图像的能力,但在处理真实水下图像时可能会遇到困难。同样,尽管UOD最初具备检测真实水下物体的能力,但在不同水下环境中检测物体时可能会面临挑战。

(2) 相互学习 阶段:在这个阶段,通过相互知识学习,进一步提高了UIE任务和UOD任务的性能。在UIE任务的情况下,通过使用未配对的现实水下图像进行训练,利用真实水下图像中的知识,以提高其在处理真实世界场景的能力。需要注意的是,由于缺少参考图像,作者应用了一种无监督损失(第三节-D)来指导UIE优化。同时,UIE Head 生成的增强图像被用于向UOD任务转移知识,提高在更清晰的水下条件下的目标检测。如图2(a)所示,增强图像以及标注的边界框和类别标签构成了一个标记增强的水下数据集,以监督方式用于提高UOD性能。

(3)领域自适应 阶段:在这一阶段,作者的目标是减少领域间的差异,并在各种水下环境中提升水下目标检测(UOD)的性能。假设在足够的训练迭代后,由UIE Head 生成的增强的真实水下图像中的领域差距已得到有效减少。因此,可以认为增强图像的特征嵌入是领域不变的,而原始真实水下图像的嵌入被调整以与对齐。作者不是采用对抗性学习进行特征对齐,这需要额外的网络结构并增加训练复杂性,而是采用一种更简单的方法,即固定领域不变嵌入,并使用作者提出的领域自适应损失(第III-D节)减少的领域偏移。

算法1 多阶段训练策略

We propose a multi-stage training strategy to improve the performance of our model. The training process is divided into three stages, each with a specific objective.

作者提出了一种多阶段训练策略来提高作者模型的性能。训练过程分为三个阶段,每个阶段都有特定的目标。

In the first stage, we pre-train the model on a large-scale dataset to learn general features. The pre-trained model is then fine-tuned in the second stage on a target dataset with harder examples to enhance its robustness. Finally, in the third stage, we apply a distillation technique to transfer knowledge from the fine-tuned model to a smaller model.

  1. 第一阶段,作者在大规模数据集上对模型进行预训练以学习通用特征。
  2. 第二阶段,在目标数据集上对预训练模型进行微调,使用更难的样本以增强其鲁棒性。
  3. 第三阶段,作者应用一种蒸馏技术,将知识从微调后的模型转移到较小的模型。

The overall training strategy can be summarized as follows:

整个训练策略可以总结如下:

  1. Pre-train the model ( \mathcal{M} ) on a large-scale dataset ( D_{\text{large}} ) using a classification loss ( \mathcal{L}_{\text{cls}} ).
  2. Fine-tune ( \mathcal{M} ) on the target dataset ( D_{\text{target}} ) with harder examples using ( \mathcal{L}{\text{cls}} ) and a robustness loss ( \mathcal{L}{\text{robust}} ).
  3. Distill knowledge from the fine-tuned model ( \mathcal{M} ) to a smaller model ( \mathcal{S} ) using a distillation loss ( \mathcal{L}_{\text{distill}} ).
  4. 使用分类损失 ( \mathcal{L}{\text{cls}} ) 在大规模数据集 ( D{\text{large}} ) 上预训练模型 ( \mathcal{M} )。
  5. 在目标数据集 ( D_{\text{target}} ) 上使用 ( \mathcal{L}{\text{cls}} ) 和鲁棒性损失 ( \mathcal{L}{\text{robust}} ) 对 ( \mathcal{M} ) 进行微调,以处理更难的样本。
  6. 使用蒸馏损失 ( \mathcal{L}_{\text{distill}} ) 将从微调后的模型 ( \mathcal{M} ) 知识蒸馏到较小的模型 ( \mathcal{S} )。

Loss Design

如算法1所示,总损失 是不同训练阶段的损失累积,因此作者将依次介绍每个训练阶段的损失函数。

Iii-D1 Burn-In Stage

在这个阶段,UIE任务以监督方式用配对数据集 进行训练,然后增强损失 表达为:

其中 表示由UIE头生成的增强合成图像,而 代表501范数。

UOD任务是通过标记的真实世界数据集进行优化的。然后,检测损失是:

其中 是分类损失, 是边界框损失,而 是目标性损失 [29]。

Iii-D2 Mutual-Learning Stage

在这个阶段,除了之外,UIE任务还使用一个未配对的现实世界数据集进行优化。假设增强的现实世界图像应符合清晰自然图像的某些固有原则。受到[15]的启发,作者基于“灰世界”假设提出了一种无监督损失,表示为:

其中 表示增强的真实水下图像, 代表颜色通道, 是像素数量,而 指的是像素位置。

对于UOD任务,作者将 替换为 ,那么检测损失 表达为:

Iii-D3 Domain-Adaptation Stage

在这个阶段,作者通过作者提出的域自适应损失 将 与 对齐。受到[31]的启发, 通过最小化它们的平均平方误差和协方差距离,减少 与 之间的域差异,具体为:

在这段文本中, 表示特征协方差矩阵, 代表均方误差,而 是矩阵弗罗贝尼乌斯范数的平方。

IV Experiments

Implementation Details

数据集 :用于水下图像增强(UIE)的成对合成水下数据集 是从Syrea数据集[4]中提取的。这个数据集总共包含20,688个训练对。用于水下目标检测(UOD)的标注数据集来源于DUO数据集[32],包括6,671张训练图像和1,111张测试图像。DUO数据集涵盖了四个不同的标注类别:海参、海胆、扇贝和海星。

训练设置 :作者以YOLOv5检测器[29]作为基准网络,为所提出的EnYOLO采用了CSPDarkNet53[33]作为 Backbone 网络。该网络使用SGD优化器进行训练,总计步,其中预热步数设为,互学习步数设为。基础学习率设置为,在和时分别通过0.1的因子进行衰减。对于UOD任务,采用批量大小为16,而对于UIE任务,则使用批量大小为8。作者的框架使用PyTorch在两张NVIDIA 3090 GPU上进行训练。

Experiment on Underwater Image Enhancement

作者通过将提出的EnYOLO与其他现有的顶级UIE技术进行全面比较,评估其在真实水下图像上的UIE性能。所用的水下图像选自UIEB数据集[34]和DUO测试集[32]。参与比较的方法包括传统方法UDCP[10]以及基于学习的方法,如UNet[35],GLNet[36]和SyreaNet[4]。

图4展示了视觉对比。如图所示,UDCP未能有效解决绿/蓝色彩偏差问题,而SyreaNet引入了明显的伪影。尽管UNet和GLNet可以产生视觉上吸引人的结果,但它们引入了明显的伪影(UNet的第4行)并将原始的绿色偏差转变为了蓝色色调(GLNet的第1行和第4行),这可能会对水下目标检测(UOD,第IV-C节)产生不利影响。相比之下,作者提出的EnYOLO不仅有效减轻了绿/蓝效应,还确保没有引入可能混淆UOD任务的伪影。值得注意的是,尽管EnYOLO在处理各种环境下的真实水下图像方面表现出色,但在恢复精细细节方面可能并不那么出色。这种权衡是为了在水下图像增强(UIE)和水下目标检测(UOD)任务目标之间取得平衡。作者还使用专门为水下图像设计的图像质量评估(IQA)指标进行定量评估,包括UIQM ,UCIQE ,以及基于学习的URanker 。结果在表1中呈现,展示了作者提出的方法EnYOLO与其他SOTA方法相比具有可比较的性能。

picture.image

picture.image

Experiment on Underwater Object Detection

作者还对所提出的EnYOLO进行了全面的水下目标检测(UOD)评估,与各种现有技术水平(SOTA)方法进行了比较,包括 Baseline YOLOv5 ,FasterRCNN ,CSAM ,JADSNet ,IA-YOLO ,DENet ,以及_Enhance_+YOLOv5。CSAM和JADSNet是两种专门为水下场景设计的检测方法。IA-YOLO和DENet最初是为了解决陆地上恶劣挑战性天气条件而开发的。为了评估它们在水下环境中的适应性,作者使用了它们的官方源代码,并使用相同的训练数据集进行了重新训练。对于_Enhance_+YOLOv5,作者采用了SOTA水下图像增强(UIE)方法GLNet 和 SyreaNet 作为预处理步骤,然后将增强后的图像用于训练YOLOv5进行水下目标检测(UOD)。

表2详细比较了EnYOLO与其他SOTA检测技术之间的mAP。作者的EnYOLO在mAP上比 Baseline 网络显著提高了,超越了所有其他SOTA检测方法。值得注意的是,将GLNet或SyreaNet等UIE方法作为预处理步骤会导致mAP分数降低。这表明,尽管增强方法旨在提高视觉质量,但它们可能对检测性能产生不利影响。

picture.image

为了进一步评估这些方法的领域适应性,作者采用文献中的技术,利用DUO测试集合成了不同环境下的水下图像。视觉比较结果展示在图1中。表2的最后三列显示,所有方法在新的环境下性能都有所下降,其中在偏蓝环境中的性能下降最为显著(YOLOv5为),这主要是由于训练集的领域差异造成的。作者提出的EnYOLO在多种环境下显著优于所有其他方法,在具有挑战性的偏蓝环境中,相较于基准方法实现了令人印象深刻的的提升,这表明了作者的方法对多样化的水下环境具有卓越的适应性。

Ablation Study

Iv-D1 Effectiveness of UIE head

UIE任务对UOD的有效性可以通过移除UIE Head 来进行测试,这与 Baseline 模型(表3中的Ab)是相同的。

表1:EnYOLO与其他SOTA方法在UIE性能方面的定量比较。#### Iv-D2 各训练阶段的有效性

烧录阶段的有效性可以从表3的Ab中看出,它显示了与Ab相比mAP显著降低了,这表明网络在进一步细化之前需要获得基本能力。相比之下,Ab与Ab相比,mAP的降低幅度很小。通过表3中Ab和Ab的结果,可以分别验证相互学习和领域适应阶段的有效性。作者进一步通过可视化不同水下图像的 Backbone 特征嵌入,来可视化领域适应的影响。如图5所示,经过领域适应后,来自不同水下环境的特征嵌入呈现出一种混合模式。

picture.image

Framework Flexibility and Efficiency Analysis

作者引入了三种适用于现实世界自治水下航行器(AUV)测试的模式:检测、增强和双重模式。这些选项使得操作更加灵活。在检测/增强模式下,AUV可以根据特定要求仅执行单一任务,从而显著降低计算成本。在双重模式下,UIE和UOD任务同时运行。这使得研究行人可以在增强的水下图像旁边可视化检测结果,从而促进对检测的更全面理解。

作者接着进行效率分析。如表格IV所示,在双模态下,与检测模式相比,推理延迟仅增加了毫秒,达到了令人印象深刻的帧/秒。这显著优于所有其他同时增强和检测的方法(第3行至第5行),突显了作者提出的方法更适合部署在自主潜水器的机上系统上的优越性。

V Conclusions

在这项研究中,作者提出了EnYOLO,一个统一的实时框架,旨在同时进行UIE和UOD并具备领域自适应能力。UIE和UOD Head 共享相同的 Backbone 网络,并采用轻量级设计。为了平衡双重训练,作者引入了一种多阶段训练策略,旨在持续提高两项任务的表现。还提出了一种新颖的领域适应方法,以减轻UOD的领域偏移。广泛的实验验证了EnYOLO在UIE和UOD任务上都达到了SOTA性能,同时在水下环境中展示出卓越的UOD适应性。效率分析突显了EnYOLO令人印象深刻的实时性能,展示了其在上部署的巨大潜力。

picture.image

表4:作者框架与其他方法(输入尺寸

,在单个NVIDIA RTX-3090 GPU上)的效率分析

参考

[1].A Real-Time Framework for Domain-Adaptive.

picture.image

扫码加入👉「集智书童」交流群

(备注: 方向+学校/公司+昵称 )

picture.image

picture.image

picture.image

picture.image

picture.image

picture.image

想要了解更多:

前沿AI视觉感知全栈知识👉「分类、检测、分割、关键点、车道线检测、3D视觉(分割、检测)、多模态、目标跟踪、NerF」

行业技术方案 👉「AI安防、AI医疗、AI自动驾驶」

AI模型部署落地实战 👉「CUDA、TensorRT、NCNN、OpenVINO、MNN、ONNXRuntime以及地平线框架」

欢迎扫描上方二维码,加入「 集智书童-知识星球 」,日常分享论文、学习笔记、问题解决方案、部署方案以及全栈式答疑,期待交流!

免责声明

凡本公众号注明“来源:XXX(非集智书童)”的作品,均转载自其它媒体,版权归原作者所有,如有侵权请联系我们删除,谢谢。

点击下方“ 阅读原文 ”,

了解更多AI学习路上的 「武功秘籍」

0
0
0
0
关于作者
关于作者

文章

0

获赞

0

收藏

0

相关资源
字节跳动大数据容器化构建与落地实践
随着字节跳动旗下业务的快速发展,数据急剧膨胀,原有的大数据架构在面临日趋复杂的业务需求时逐渐显现疲态。而伴随着大数据架构向云原生演进的行业趋势,字节跳动也对大数据体系进行了云原生改造。本次分享将详细介绍字节跳动大数据容器化的演进与实践。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论