当前位置: 首页 > news >正文

【YOLO算法改进】ALSS-YOLO:无人机热红外图像|野生动物小目标检测

目录

论文信息

论文创新点

1.自适应轻量通道分割和洗牌(ALSS)模块

2.轻量坐标注意力(LCA)模块

3.单通道聚焦模块

4.FineSIOU损失函数

摘要

架构设计

轻量高效网络架构 - ALSS模块 

LCA模块

单通道聚焦模块

损失函数优化 - FineSIOU

实验与分析

消融实验

对比实验 

Coovally AI模型训练与应用平台 


论文信息

题目:ALSS-YOLO: An Adaptive Lightweight Channel Split and Shuffling Network for TIR Wildlife Detection in UAV Imagery

ALSS-YOLO:用于无人机红外图像中野生动物检测的自适应轻量通道分割和洗牌网络

作者:Ang He,Xiaobo Li,Ximei Wu,Chengyue Su,Jing Chen,Sheng Xu,Xiaobin Guo

论文链接: https://arxiv.org/abs/2409.06259


论文创新点

1.自适应轻量通道分割和洗牌(ALSS)模块

作者提出了一个新颖的ALSS模块,该模块采用自适应通道分割策略来优化特征提取,并集成了通道洗牌机制以增强通道间信息交换。这一改进提高了对模糊目标的检测准确性,尤其是在处理由抖动引起的模糊和重叠目标时。

2.轻量坐标注意力(LCA)模块

开发了一个LCA模块,该模块使用自适应池化分组卷积来整合跨维度的特征信息。这一模块在保持轻量操作的同时,确保了高检测精度和对抖动及目标重叠的鲁棒性。

3.单通道聚焦模块

为了提高红外图像的特征表示效率,作者设计了一个单通道聚焦模块,将每个通道的宽度和高度信息聚合到四维通道融合中,从而改善了特征的表示和提取。

4.FineSIOU损失函数

作者修改了定位损失函数,提出了FineSIOU,该函数通过强调与小目标相关的损失值,提高了小目标的定位精度。此外,FineSIOU将角度成本作为独立项纳入总成本的计算中,加速了模型的收敛速度。


摘要

搭载热红外(TIR)相机的无人机在打击夜间野生动物偷猎中发挥着关键作用。然而,TIR图像常面临抖动和野生动物重叠等挑战,需要无人机具备识别模糊和重叠小目标的能力。当前部署在无人机上的传统轻量网络难以从模糊小目标中提取特征。为了解决这一问题,作者开发了ALSS-YOLO,这是一种针对TIR航空图像优化的高效轻量检测器。首先,作者提出了一种新颖的自适应轻量通道分割和洗牌(ALSS)模块。该模块采用自适应通道分割策略来优化特征提取,并集成了通道洗牌机制以增强通道间信息交换。这改善了模糊特征的提取,对于处理抖动引起的模糊和重叠目标至关重要。其次,作者开发了一个轻量坐标注意力(LCA)模块,该模块采用自适应池化和分组卷积来整合跨维度的特征信息。该模块确保了轻量操作,同时保持了高检测精度和对抖动和目标重叠的鲁棒性。此外,作者开发了一个单通道聚焦模块,将每个通道的宽度和高度信息聚合到四维通道融合中,提高了红外图像的特征表示效率。最后,作者修改了定位损失函数,强调与小目标相关的损失值,以提高定位精度。在BIRDSAI和ISOD TIR UAV野生动物数据集上的广泛实验表明,ALSS-YOLO实现了最先进的性能。


架构设计

作者的ALSS-YOLO检测器的整体架构源自最新的YOLOv8-n目标检测器。作者引入了一个创新的ALSS模块作为主干网络。通过利用通道分割和随后的独立处理,网络可以学习输入数据的各种特征,提高模型识别复杂或微妙特征的能力。利用瓶颈设计和深度卷积,ALSS模块实现了高效的特征提取,参数数量最少。此外,通过通道洗牌和跨不同路径的特征融合,模型的表达能力和泛化能力得到了显著提升。其次,受通道注意力(CA)[46]的启发,作者引入了一个LCA模块,该模块对输入特征图的高度和宽度维度应用自适应平均池化,从而生成跨两个空间维度的全局上下文特征。解耦和独立处理每个方向的特征,提高了模型捕获全局信息的能力,优化了计算效率和参数使用。此外,特别为单通道UAV FIR图像设计了一个单通道聚焦模块。该模块将单通道的宽度和高度信息聚合到四维通道中,从而在较小的空间分辨率下保留更多细节。宽度和高度数据通过卷积操作与通道信息集成,从而提高了特征表示的效率和准确性。最后,引入了FineSIOU,它强调了形状成本与真实边界框尺寸之间的相关性,并将角度成本作为独立项纳入总成本的计算中,从而提高了回归速度和小目标检测能力。图2展示了ALSS-YOLO检测器的架构。

  • 轻量高效网络架构 - ALSS模块 

在深度学习中,轻量和效率是当前研究的热点之一。设计一个轻量高效的神经网络架构对于资源受限的场景至关重要。在这种情况下,作者引入了一个名为ALSS的新型网络架构,旨在实现轻量高效的目标检测。该模块的结构如图3所示。

此外,图4展示了ALSS模块作为下采样操作时的配置。在较低的特征级别,重点是捕获细粒度细节和低级特征,我们设置一个较低的α值。这确保了只有一小部分通道通过图3的A部分进行处理,通常涉及基本的卷积操作。大多数通道被导向更复杂的多级网络(图3的B部分),旨在增强特征提取和捕获复杂模式。随着特征级别的提高,对抽象和高阶语义信息的需求变得更加关键。为了适应这一点,我们在更高级别增加α值。这种调整将输入通道直接连接到输出通道,促进了复杂特征的提取和网络的表示能力。通过优先考虑低级别的卷积操作,并将重点转向更高级别的ResNet类结构进行残差学习,这种策略平衡了计算效率和特征丰富性之间的权衡,优化了网络在不同特征层次的性能。

此外,在低级别特征中,网络结构如图3的A部分所示,我们使用卷积操作来提取特征。这是因为在浅层卷积层中,特征更加局部化和详细。通过卷积操作,网络可以获得多种过滤器来检测图像中的局部特征,包括边缘、纹理和其他特征。这种方法使网络能够高效地提取基本特征,并逐步将它们融合成更高级的特征表示。相反,在高级别特征中,我们更倾向于使用恒等连接。在深层卷积层中,特征变得更加抽象和语义化,包含更高级别的语义信息,如物体形状、类别等。通过使用恒等连接,我们可以保留这些高级特征,并防止网络学习到的重要信息被过度压缩或丢失。这个过程可以表示为:这种自上而下的信息传播促进了信息的流动和共享,最终提升了模型的性能和泛化能力。参数设置策略的α和网络结构选择策略的合理性将在后续的实验部分得到验证。为了减少模型的参数数量并提高计算效率,我们使用瓶颈结构和深度卷积(图3的B部分)。瓶颈结构通过在较低维度提取特征有效地降低了计算成本,而深度卷积进一步提高了网络的感知范围和特征提取能力,特别适合处理更复杂的语义信息。具体来说,首先应用一个3×3的卷积核,步长为1,以实现降维。这种操作引入了一个降维系数β,它修改了输出通道的数量,以调节模型的参数数量和计算工作量。在实践中,当处理具有更多通道的级别时,选择较大的β值,以通过更积极地压缩通道来显著降低资源消耗。这使得模型能够有效地管理增加的计算负载和内存使用。相反,在通道数量较低的级别,使用较小的β值,以确保模型能够保持足够的特征提取能力,保留特征图中的关键信息。因此,β的选择是在资源效率和捕捉及表示关键特征的能力之间的平衡。深度卷积的使用进一步补充了这一策略,通过减少参数数量和计算复杂性,同时保持数据中的空间和通道关系,为轻量而有效的架构做出了贡献。在降维操作之后,为了进一步增强模型的特征提取能力,这种策略然后应用了一层3×3的深度卷积。深度卷积通过单独对输入特征图的每个通道进行卷积来增强网络的非线性,从而减少了与传统卷积相比的参数数量;然后,为了调整模型的输出维度,再次应用一个3×3的卷积核,并将输出维度设置为Cout - αC, 其中Cout代表输出通道的数量,α表示前面提到的预定义缩放因子。作者的网络设计还遵循了ShuffleNetV2[42]中提到的轻量网络设计原则,避免过多的分支结构,选择沿通道方向连接特征图以减少计算负担。这种设计不仅提高了网络的计算效率,还增强了信息交换和特征表示能力,使网络更适合各种复杂场景中的实用应用。根据文献[47]的建议,在深度卷积之后不使用SiLU激活函数。在模块的最后阶段,采用了通道洗牌操作来增强不同特征通道之间的信息交换。这种操作重新排列了输入特征图的通道,使得之前隔离的特征分支能够共享学习到的信息,从而改善了信息流和特征表达的多样性。整个网络架构在保持轻量设计的同时,更好地捕获和整合多尺度、多角度的特征信息,增强了从复杂场景中提取特征的能力。在作为下采样结构的ALSS模块中,作者设计了三个模块来下采样αCin输入特征图通道。如图4的A部分所示,根据网络模型内的特征级别,从低到高依次应用以下操作:卷积、卷积-池化和池化;这些操作能够在低级别实现详细的特征提取,并帮助捕获图像的基本纹理和形状信息。在更高级别,纳入了类似于ResNet的残差学习结构,以促进网络的有效训练,特别是在网络非常深的情况下。这种方法使网络能够更好地学习高级抽象特征,而不会丢失低级信息。对于(1 - α)Cin输入特征图通道,瓶颈阶段的初始3×3卷积中使用了2的步长来减少特征图的宽度和高度;在ALSS-YOLO网络架构中,从下到上的α系数设置为(0.4, 0.4, 0.5, 0.6, 0.7, 0.2, 0.3, 0.2, 0.2),而β系数定义为(0.4, 0.4, 0.5, 0.6, 0.6, 0.8, 0.8, 0.8, 0.8)。

  • LCA模块

最近深度学习的进步强调了注意力机制在提升神经网络性能方面的重要性,特别是在各种任务中优化特征表示。具体来说,引入的CA[48]机制进一步优化了这一过程。它不仅关注特征的通道维度,还强调了特征空间的坐标信息。这种设计使模型能够更有效地整合全局上下文信息,同时解析空间维度。为了增强特征提取的效率并最小化参数数量,本文提出了一种改进的坐标注意力机制,即LCA。图5提供了CA和LCA之间的比较视图,而图6揭示了LCA的内部结构细节。在以下部分中,将详细阐述LCA的设计原则和实现细节。对于输入张量X,其尺寸为C×W×H,其中H、W和C分别代表高度、宽度和通道数,我们采用了一种特殊的方法来捕获沿特定空间维度的特征。这是通过应用两个独立的池化操作实现的,每个操作使用不同的内核尺寸:一个沿水平维度使用(H, 1)的池化内核,另一个沿垂直维度使用(1, W)的池化内核。这些操作分别在每个通道上执行,以保留沿各自维度的空间信息。对于输入张量X的第c个通道,在高度h处应用水平池化,内核尺寸为(H, 1),而在宽度w处应用垂直池化,内核尺寸为(1, W)。

这两个方向的池化操作使得捕获沿两个空间维度的特征成为可能,从而产生了一个方向感知的特征图,增强了网络识别精确位置和提高空间意识的能力。这种新颖的方法将沿两个维度的特征处理解耦,允许高效且成本效益的特征提取,特别是对于计算资源有限的移动设备来说非常有利。一旦通过上述池化操作生成了特征图,它们就会经历不同的1×1深度可分离卷积。这些卷积促进了通道间的线性变换,同时结合非线性激活函数来调节注意力权重。LCA模块进一步完善了网络聚焦空间特征的能力。通过沿高度和宽度维度应用自适应平均池化,然后进行深度可分离卷积,该模块捕获了全局空间信息,同时保持了计算效率。通过这些过程生成的注意力权重调节输入张量,增强了网络的区分能力。在将LCA模块集成到网络架构时,特别关注具有较高分辨率特征图的层,尤其是对于检测小物体。根据作者的分析,小物体在这些特征图上更有效地被检测。因此,LCA模块被策略性地放置在第15层,靠近检测头,以最大化在复杂场景中小物体的检测精度。作者将在以下实验部分验证其合理性。总之,LCA模块结合自适应池化和深度可分离卷积,提供了一种强大的机制来增强空间注意力,同时保持低计算复杂性。其在网络架构中的策略性集成显著提高了特征区分和检测能力,特别是在以复杂空间结构和存在小、重叠物体为特征的环境中,使其成为需要精确度和效率的任务的基本组成部分。

LCA代码如下:

class LCA(nn.Module):def __init__(self, input_channel, reduction=32):super(LCA, self).__init__()self.pool_h = nn.AdaptiveAvgPool2d((None, 1))self.pool_w = nn.AdaptiveAvgPool2d((1, None))self.conv1 = nn.Conv2d(input_channel, input_channel, kernel_size=1, stride=1, padding=0)self.bn1 = nn.BatchNorm2d(input_channel)self.act = h_swish()self.conv_h = nn.Conv2d(input_channel, input_channel, kernel_size=1, stride=1, padding=0,groups=input_channel)self.conv_w = nn.Conv2d(input_channel, input_channel, kernel_size=1, stride=1, padding=0,groups=input_channel)def forward(self, x):  # torch.Size([2, 32, 64, 64])identity = xb, c, h, w = x.size()x_h = self.pool_h(x)  # torch.Size([2, 32, 64, 1])x_w = self.pool_w(x)  # torch.Size([2, 32, 1, 64]) a_h = self.conv_h(x_h).sigmoid()  #  torch.Size([2, 32, 64, 1])a_w = self.conv_w(x_w).sigmoid()  #  torch.Size([2, 32, 1, 64])out = identity * a_w * a_h  # torch.Size([2, 32, 64, 64])return out

  • 单通道聚焦模块

一个高效且准确的特征提取机制可以显著提升模型的性能。对于单通道TIR图像,传统的特征提取方法面临着信息利用不足或高计算资源消耗的挑战。

为此,作者提出了一个单通道聚焦模块,旨在通过将宽度和高度信息有效地聚合到通道维度,并通过优化的卷积策略,增强模型的特征表示能力。对于给定的x ∈ RN×1×H×W TIR图像,其中N是样本数(批量大小),1是通道数,H和W分别是高度和宽度。它首先在宽度和高度维度上被分割,并将分割的区域在通道维度上组合,生成一个x ∈ RN×4×H/2×W/2图像,如方程(13)所示。每个通道携带原始TIR图像中的局部信息,新的多通道组合在通道维度上融合了这些局部信息,从而实现了信息聚合的效果。随后,生成的特征图通过一个卷积核尺寸为6、步长为2的卷积操作进行处理(参考方程(15)),这扩展了全局特征提取的感受野,有助于从输入特征图中更有效地捕获空间信息。这进一步帮助模型学习更全局和抽象的特征,提高了识别复杂模式和结构的能力,并将特征图的大小减半。这种方法有助于减少后续层的参数数量和计算负载,同时保留关键特征信息。


class Focus(nn.Module):"""Focus wh information into c-space."""def __init__(self, c1, c2, k=1, s=1, p=None, g=1, act=True):"""Initializes Focus object with user defined channel, convolution, padding, group and activation values."""super().__init__()self.conv = Conv(c1 * 4, c2, k, s, p, g, act=act)# self.contract = Contract(gain=2)def forward(self, x):"""Applies convolution to concatenated tensor and returns the output.Input shape is (b,c,w,h) and output shape is (b,4c,w/2,h/2)."""return self.conv(torch.cat((x[..., ::2, ::2], x[..., 1::2, ::2], x[..., ::2, 1::2], x[..., 1::2, 1::2]), 1))# return self.conv(self.contract(x))
  • 损失函数优化 - FineSIOU

在YOLOv8中,损失函数包括分类损失和边界框回归损失。与YOLOv8中用于边界框回归损失的CIOU相比,SIOU[49]损失函数考虑了真实框和预测框之间的角度。它使模型在训练期间更容易和更快地接近真实框,显著提高了模型的训练效率和准确性,尤其是在检测复杂背景和重叠场景中的对象时。在SIOU的基础上,作者考虑了边界框回归与真实框大小之间的密切关系(对于小目标的回归难度大于大目标),通过调整形状损失来强调真实框的大小和形状,显著提高了小目标检测的准确性。此外,角度成本被单独作为一个项纳入总成本的计算中,以加速收敛。这种增强的损失函数被称为FineSIOU。为了提供背景,简要回顾一下SIOU是必要的,它整合了四个组成部分:角度成本、距离成本、形状成本和IOU成本。图8显示了SIOU计算方案。

SIOU将形状成本定义为[49]:ω其中wgt和hgt分别代表真实框的宽度和高度。W和h分别代表预测框的宽度和高度。θ用于控制对形状损失的关注程度。其中IOU代表IOU损失,∆代表距离成本,Ω对应于形状成本,角度成本λ被整合到距离成本的计算中。在作者对形状成本的计算进行研究时,发现形状回归的难度与真实框的大小密切相关。如图9(a,b)所示,在保持角度成本和距离成本不变的前提下,SIOU得到的形状成本结果是相同的。相比之下,作者认为图9(a)中小真实框与大预测框之间的回归难度应该高于图9(b)中大真实框与小预测框之间的回归难度。

此外,在距离成本为零的特定情况下,如图10(a,b)所示,作者认为图10(a)的形状成本应该低于图10(b)。基于以上分析,作者设计的形状成本如下:ωω参数θ用于调节形状损失的重视程度。当θ被赋予1的值时,形状优化过程将被优先考虑。作者的实验结果表明,将其设置为6可以获得良好的结果。经过改进的形状成本更加关注真实框的大小,特别是对于以小目标为主的航空图像。较小的边界框将产生更高的形状损失值,这与小目标比大目标具有更大的回归挑战这一直观观点是一致的。表II提供了在各种真实框和预测框下计算的形状成本的例子。同时,作者还关注角度成本,并将其作为单独的一项纳入总成本的计算中。其中σ代表真实框中心点与预测框之间的欧几里得距离,而bh表示真实框中心点与预测框之间的高度差。计算值0.9847对应于角度α=5°。当角度小于5°时,预测框与真实框之间的角度损失不再是主要关注点,但距离损失和形状损失应该得到更多关注。η是一个用于调节角度损失重视程度的参数,作者的实验表明,将其设置为3可以获得良好的结果,作者认为更精细的参数调整可能会带来更好的结果。


实验与分析

  • 消融实验

为了评估本研究提出的增强策略的效果,我们进行了系列消融实验以量化其影响。如表 III、表 IV 和图 13 所示,每项技术增强均带来了性能提升。在 YOLOv8-n 基准模型的基础上,为了保持模型参数量的大致一致性,我们将模型的宽度超参数从 0.25 调整为 0.18,并将其标记为 YOLOv8-N’(尽管我们还尝试调整了深度超参数,但效果不佳,mAP0.50 仅达到 0.863)。本研究提出了一种以 ALSS 模块为核心的网络结构,同时引入单通道焦点模块。原始模型中第 16 至 19 层和第 20 至 23 层的步幅为 2 的 3 × 3 卷积被最大池化和 1 × 1 点卷积取代。此外,还引入了 LCA 模块,并相应修改了损失函数。同时,我们进行了 CA 模块与 LCA 模块性能对比的对照实验。

为探究ALSS模块作为模型核心组件的有效性,本研究对 YOLOv8-N’ 进行了改进,将原始的 C2F 模块替换为 ALSS 模块,并调整了不同特征尺度通向检测头的通道比例。新的网络结构命名为M1。根据表 III(第 1 行和第 2 行)中的数据,与 YOLOv8-N’ 相比,M1 模型在 mAP0.50 指标上提高了0.3 个百分点,同时参数量减少了 17.4%。特别值得注意的是,精确度显著提高,从 0.869 增加到 0.889。从图 13(a) 可以看出,M1 模型的收敛速度快于 YOLOv8-N’,而图 13(c) 显示,在高置信度阈值设置下,YOLOv8-N’ 的 F1 分数显著下降,这一现象在后续图 14 中进一步得到验证。这些结果充分证明了 ALSS 模块的轻量化和高效性。

此外,为验证单通道焦点模块在增强模型识别复杂模式和结构能力方面的有效性,本研究在 M1 模型的第一层中引入了该模块,形成M2 网络结构。表 III(第 2 行和第 3 行)显示,在参数量基本不变的情况下,M2 模型的 mAP0.50 提高了 **1%**。同时,表 IV(第 2 行和第 3 行)指出,除未知类别的 AP 值略有下降外,其他类别的 AP 值均有所提高。

为了进一步减少参数量和模型复杂度,我们将 M2 模型中第 16 至 19 层和第 20 至 23 层的 3 × 3 卷积层(步幅 2)替换为步幅为 2 的最大池化层和点卷积结构,称为M3。通过最大池化进行下采样,提高了模型的空间不变性。相比 3 × 3 卷积核的卷积层,点卷积的参数量和计算成本更低,有助于调整输入特征图的深度以实现跨通道信息整合。根据表 III 和表 IV(第 3 行和第 4 行)的数据,与 M2 相比,M3 模型的参数量减少了 3.4%,同时 mAP0.50 **仅降低了 0.1%**,各类别的 AP 值也相似。图 13 还显示,M3 模型在多个评价指标下维持了接近的性能。

此外,为评估 LCA 模块在增强特征判别能力和整体网络性能方面的作用,同时保持相对较低的复杂度和高计算效率,本研究在 M3 模型的第 15 层集成了 LCA 模块,从而形成M4 模型。从表 III 和表 IV(第 4 行和第 5 行)的对比来看,尽管模型参数量增加了 1.3%,mAP 提高了 0.3%。考虑到基准 mAP 值已达到 88.6%,这一提升相当显著。同时,召回率从 0.834 提升到 0.854,各类别的 AP 值也各有增减。

损失函数的修改通常仅影响训练阶段,对网络的推理时间没有影响。本文提出的 FineSIOU 损失函数是一种提高检测边界框精度的方法。从表 III 和表 IV(第 5 行和第 6 行)的数据以及图 13 的趋势可见,引入新损失函数使 mAP0.50 提升了 **0.2%**,并在模型收敛速度、PR 曲线和 F1 分数等方面表现最佳。模型实现了精度与速度的优化平衡,在计算资源有限的无人机平台上实现了更高的精度。FineSIOU 损失函数中角度损失作为独立项的分离加速了收敛。鉴于 BIRDSAI 数据库中存在大量小目标,模型对小目标检测的能力也得到了实验证明。

此外,我们还进行了 CA 模块的对比实验,如表 III 和表 IV(第 6 行和第 7 行)所示。实验表明,在 BIRDSAI 数据集上,LCA 模块的性能优于 CA 模块,M5 模型的 mAP50 比 M6 高出 0.3%。在 ISOD 数据集[10]上也观察到了这一现象。这些发现表明,LCA 模块在某些场景下具有增强性能的潜力。未来的工作将扩展这些评估至更多数据集,以进一步验证性能差异,并探索各模块在不同场景下的适用性。

如图 14 所示的消融实验基于置信度大于 0.6 的检测结果进行。从图 13(c) 可以看出,当置信度为 0.6 时,F1 值仅约为 0.1,表明模型的召回率显著降低。如图 14(a) 所示,有大量漏检,但在我们改进的后续模型中,漏检问题已被消除。此外,ALSS-YOLO 检测框的整体置信度最高。图 15 展示了第 10、12、14 和 16 层模块检测区域的特征激活图可视化。这些可视化表明,尤其是在集成 LCA 模块后,网络能够有效关注被检测目标的整体,即使在相对浅层,网络也能聚焦于目标的语义信息,展现出出色的特征抽象能力。这进一步凸显了 LCA 模块在提升特征表示和判别能力方面的作用,从而有助于检测过程的整体性能提升。

  • 对比实验 

为了证明我们模型的优越性能,我们精心调整了 ALSS-YOLO 框架的宽度和深度超参数,衍生出两个新变种,分别命名为 ALSS-YOLO-s 和 ALSS-YOLO-m。同时,对 YOLOv8-n 模型的宽度超参数进行微调,生成了 YOLOv8-n''。如表 V 所示,我们的 ALSS-YOLO-m 模型相比 YOLOv8-n 实现了 mAP0.50 提升 0.9%,而 ALSS-YOLO-s 则比 YOLOv8-n'' 提高了 1.1% 的 mAP,尽管两者参数量相近。值得注意的是,尽管我们模型在检测“长颈鹿”类别时的 AP 略逊于 YOLOv8,但在其他类别的错误检测上表现优越。

为了验证第 3.1 节讨论的超参数 设置策略以及 ALSS 模块中图 3 和图 4 第 A 部分所示的网络选择策略,我们进行了如表 VI 所示的实验。具体而言,

ALSS-YOLO’ 采用与 ALSS-YOLO 相反的 设置策略:在低层特征层分配较大的 值,以确保大部分特征通道通过图 3 和图 4 第 A 部分所示的网络结构;而高层特征层则设置较小的 值。

ALSS-YOLO'' 则保持与 ALSS-YOLO 相同的 值,但采用相反的网络结构选择策略,即在低层特征层使用恒等连接,在高层特征层使用卷积操作。

表 VI 数据显示,ALSS-YOLO 的 mAP0.50 比 ALSS-YOLO’ 高 0.4%,比 ALSS-YOLO'' 高 1.5%。这些结果验证了第 3.1 节的讨论,并表明 ALSS-YOLO 的网络结构选择策略能够更有效地学习和表示输入数据的特征,从而提升模型性能。

为研究在不同层集成 LCA 模块的影响,我们基于 ALSS-YOLO 模型进行了一系列对比实验,分析 LCA 模块分别置于第 8、18 和 22 层时的性能表现。这些配置分别标记为 ALSS-YOLO(LCA@L8)、ALSS-YOLO(LCA@L18) 和 ALSS-YOLO(LCA@L22)。原始 ALSS-YOLO 模型也被纳入对比。实验结果总结于表 VII 中。结果显示,ALSS-YOLO 在 mAP@0.50 指标上取得了最高值,并在其他指标上表现出强竞争力。而 ALSS-YOLO(LCA@L22) 的 mAP@0.50 最低,表明该配置对整体模型性能产生负面影响。这些结果进一步验证了第 3.2 节中 LCA 模块位置选择的合理性。

为验证 ALSS-YOLO 模型的性能,我们在BIRDSAI TIR UAV 数据集上与其他先进目标检测模型进行对比。这些模型包括 YOLOv3-tiny、YOLOX-nano、YOLOv5-n'、YOLOv6-n'、YOLOv8-ghost、YOLOv8-AM、YOLOv8-p2、MASK-RCNN-r18、FASR-RCNN-r18、RTMDet-tiny、VarifocalNet 和 CE-RetinaNet。为确保各模型性能对比的公平性,所有模型均在相同训练环境下进行训练。ALSS-YOLO 与其他模型的对比结果见表 VIII,性能最优模型的对比见图 16。

 · ALSS-YOLO 模型在仅拥有 145.2 万参数的情况下,取得了 mAP0.50 为 89.1% 的卓越表现,展现了其在无人机应用中的高效性。

 · 专为红外野生动物检测设计的 CE-RetinaNet 虽然获得了更高的 mAP0.50(91.8%),但其 5582.3 万的庞大参数量使其不适合在计算资源有限的无人机上部署。

 · YOLOX-nano 拥有最小的参数量(91.2 万),但其检测精度比 ALSS-YOLO 低了 2.6%。

 · 如图 16 所示的详细分析表明,尽管 YOLOv8-p2 略胜一筹,但参数量相当的 ALSS-YOLO-m 超越了 YOLOv8-p2 0.9%,取得了 mAP0.50 为 90.3% 的优异成绩。

ALSS-YOLO 的较高召回率(如图 16(b) 和 (c) 所示)进一步突显了其鲁棒性。

这些发现清楚地表明,ALSS-YOLO 能够有效应对 TIR 野生动物检测任务中的图像模糊和目标重叠等挑战。我们的模型在准确性与计算效率之间的平衡使其非常适合于基于无人机的监测任务。

为展示模型在不同类别上的适用性,我们在典型场景条件下展示了各种物种的检测结果,测试结果如图 17 所示。ALSS-YOLO-m 展现了优越的整体检测性能,未出现漏检或误报。尽管 ALSS-YOLO 在某一场景中存在轻微漏检,但其表现仍优于 YOLOv8-p2 等其他模型,而后者在某些具有挑战性的场景中发生了显著漏检,可能是由于特定场景条件或图像模糊(详见表 VIII)。这些分析证实 ALSS-YOLO 为无人机应用中的 TIR 野生动物检测提供了可靠的解决方案。

图 18 和 19 展示了模型在高度挑战性条件下的检测性能。在图 18 所示的高噪声干扰场景中,ALSS-YOLO-m 模型实现了最高的召回率,展现了卓越的检测性能。同时,ALSS-YOLO-n 模型也取得了高度竞争力的结果,表明其在挑战性条件下的有效性。图 19 所示的严重遮挡场景表明,只有 ALSS-YOLO-m 模型能够检测到所有目标,突出其在困难条件下的鲁棒性。


总结来说,ALSS-YOLO在各个方面性能都有所提升。如果您有兴趣了解更多关于模型算法的使用方法等,欢迎关注我们,我们将继续为大家带来更多干货内容!

相关文章:

【YOLO算法改进】ALSS-YOLO:无人机热红外图像|野生动物小目标检测

目录 论文信息 论文创新点 1.自适应轻量通道分割和洗牌(ALSS)模块 2.轻量坐标注意力(LCA)模块 3.单通道聚焦模块 4.FineSIOU损失函数 摘要 架构设计 轻量高效网络架构 - ALSS模块 LCA模块 单通道聚焦模块 损失函数优…...

时间序列预测算法---LSTM

文章目录 一、前言1.1、深度学习时间序列一般是几维数据?每个维度的名字是什么?通常代表什么含义?1.2、为什么机器学习/深度学习算法无法处理时间序列数据?1.3、RNN(循环神经网络)处理时间序列数据的思路?1.4、RNN存在哪些问题?…...

【QT】:QT图形化界面概述

Qt背景介绍 1.1 什么是Qt Qt 是⼀个跨平台的C图形⽤⼾界⾯应⽤程序框架。它为应⽤程序开发者提供了建⽴艺术级图形 界⾯所需的所有功能。它是完全⾯向对象的,很容易扩展。Qt为开发者提供了⼀种基于组件的开发模 式,开发者可以通过简单的拖拽和组合来实现…...

[论文笔记]Representation Learning with Contrastive Predictive Coding

引言 今天带来论文 Representation Learning with Contrastive Predictive Coding的笔记。 提出了一种通用的无监督学习方法从高维数据中提取有用表示,称为对比预测编码(Contrastive Predictive Coding,CPC)。使用了一种概率对比损失, 通过使用负采样使…...

Redis相关

Redis相关 什么是redis?redis可以干什么? Redis是一个c语言编写的nosql数据库(不仅仅是sql,泛指非关系型数据库,一般把非关系型数据库称为nosql数据库),数据在内存中以键值对的形式存储,读写速度快,提供数据持久化方式. 常常被广泛应用到做缓存 Redis使用场景 1.缓存 2…...

【优选算法】Binary-Blade:二分查找的算法刃(上)

文章目录 1.概念解析2.二分查找的简单模版3.二分查找的进阶模版4.x的平方根5.搜索插入位置希望读者们多多三连支持小编会继续更新你们的鼓励就是我前进的动力! 本篇是优选算法之二分查找算法,该算法是一种高效的在有序数组中查找特定元素的搜索算法 1.概…...

Docker--Docker Network(网络)

Docker Network(网络)是Docker容器之间和容器与外部网络之间的通信和连接的一种机制。以下是对Docker Network的详细解释: 一、Docker网络的重要性 Docker容器网络是为应用程序所创造的虚拟环境的一部分,它能让应用从宿主机操作…...

转化率是衡量网页设计的一个重要指标,请问如何做?

AARRR是互联网产品运营中一个非常重要的模型,这些模型的每一个步骤都涉及到转化率问题,那么AARRR是是什么呢?转化漏斗是什么吗?转化率为什么重要?设计师在做网页设计的时候,如何提升转化率呢?本…...

运维工具之syncthing工具的安装和使用

一、syncthing工具简介 Syncthing是一款开源的文件同步工具,采用Go语言编写。它支持在多个操作系统上运行,包括Windows、macOS和Linux,以及BSD、Solaris和Android等。以下是对这款软件的详细介绍,主要功能: 实时文件同…...

国产数据库-崖山使用介绍

本文档基于崖山数据库23.3 个人版本,单机(主备)部署模式的情况下的使用介绍。 数据库实例状态: NOMOUNT:仅读取参数文件,不加载数据库 MOUNT:读取控制文件,加载数据库&#xff…...

primevue的<Menu>组件

1.使用场景 2.代码 1.给你的menu组件起个引用名 2.<Menu>组件需要一个MenuItem[] 3.你要知道MenuItem[ ]的特殊的数据格式&#xff0c;就像TreeNode[ ]一样&#xff0c;数据格式不对是不渲染的。。。。 常用的属性就这几种&#xff0c;js语言和java不一样&#xff0c;J…...

【玩转23种Java设计模式】行为型模式篇:备忘录模式

软件设计模式&#xff08;Design pattern&#xff09;&#xff0c;又称设计模式&#xff0c;是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。 汇总目录链接&…...

便捷饭店点餐小程序的设计与实现ssm+论文源码调试讲解

第4章 系统设计 一个成功设计的系统在内容上必定是丰富的&#xff0c;在系统外观或系统功能上必定是对用户友好的。所以为了提升系统的价值&#xff0c;吸引更多的访问者访问系统&#xff0c;以及让来访用户可以花费更多时间停留在系统上&#xff0c;则表明该系统设计得比较专…...

微信小程序Uniapp

使用命令行创建项目&#xff08;vuets&#xff09; npx degit dcloudio/uni-preset-vue#vite-ts my-vue3-project然后用HBX打开项目 再安装依赖 npm i 再运行开发版本&#xff0c;生成dist目录 pnpm dev:mp-weixin 注意要设置APPid 再用微信小程序打开...

Android GameActivity(NativeActivity)读写文件

最近研究native android相关内容&#xff0c;其中最棘手的就是文件读写问题&#xff0c;最主要的是相关的文档很少。这里写下我所知道的方法。 由于本人使用的是Android14[arm64-v8a]版本的设备,能访问的路径相当有限&#xff0c;如果想要访问更多的路径&#xff0c;就不得不申…...

《计算机网络A》单选题-复习题库解析-2

目录 51、下列关于以太网网卡地址特点的说法中&#xff0c;不正确的是&#xff08; &#xff09;。 52、当一个Web Browser向一个使用标准服务器端口的Web Server提出请求时&#xff0c;那么在服务返回的响应包中&#xff0c;所使用的源端口是&#xff08; &#xff0…...

GPU 进阶笔记(二):华为昇腾 910B GPU

大家读完觉得有意义记得关注和点赞&#xff01;&#xff01;&#xff01; 1 术语 1.1 与 NVIDIA 术语对应关系1.2 缩写2 产品与机器 2.1 GPU 产品2.2 训练机器 底座 CPU功耗操作系统2.3 性能3 实探&#xff1a;鲲鹏底座 8*910B GPU 主机 3.1 CPU3.2 网卡和网络3.3 GPU 信息 3.3…...

如何利用 ClickHouse 实现高级分析:MySQL 到 ClickHouse 实时数据同步指南

在数据驱动的时代&#xff0c;企业必须依靠先进的数据分析能力来提升竞争力。随着数据量的激增和业务需求的复杂化&#xff0c;传统的关系型数据库已经无法满足高效处理和实时分析的需求。ClickHouse 作为一款高性能的列式数据库&#xff0c;凭借其卓越的查询性能和可扩展性&am…...

Python读取TIF文件

在Python中&#xff0c;逐帧读取TIFF文件&#xff08;尤其是多页TIFF文件&#xff09;可以使用tifffile库或Pillow库。以下是两种方法的示例&#xff1a; 方法 1&#xff1a;使用 tifffile 逐帧读取 tifffile 是一个专门用于处理TIFF文件的库&#xff0c;支持多页TIFF文件的逐…...

vue3+ts+element-plus 表单el-form取消回车默认提交

问题描述&#xff1a;在表单el-form中的el-input中按回车后&#xff0c;页面会刷新&#xff0c;url也会改变&#xff0c; 回车前&#xff1a; 回车后&#xff1a; 相关代码&#xff1a; 解决方法1&#xff1a;在 el-form 上阻止默认的 submit 事件&#xff0c;增加 submit.pre…...

面试经典150题——滑动窗口

文章目录 1、长度最小的子数组1.1 题目链接1.2 题目描述1.3 解题代码1.4 解题思路 2、无重复字符的最长子串2.1 题目链接2.2 题目描述2.3 解题代码2.4 解题思路 3、串联所有单词的子串3.1 题目链接3.2 题目描述3.3 解题代码3.4 解题思路 4、最小覆盖子串4.1 题目链接4.2 题目描…...

目标检测之DINO详解

相关链接 论文:[2203.03605] DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detectionhttps://arxiv.org/abs/2203.03605 代码:...

Linux指令

1. 将一个文件夹中的前5000张图片移动到另一个文件夹 可以使用 find 和 mv 命令来实现将一个文件夹 folder1 中的前 5000 张 jpg 图片移动到另一个文件夹 folder2。下面是具体的步骤&#xff1a; 首先&#xff0c;确保 folder2 存在。如果不存在&#xff0c;可以使用 mkdir 命…...

groovy:多线程 简单示例

在Groovy中&#xff0c;多线程编程与Java非常相似&#xff0c;因为Groovy运行在Java虚拟机&#xff08;JVM&#xff09;上&#xff0c;并且可以利用Java的所有并发工具。以下是一些在Groovy中实现多线程编程的方法&#xff1a; class MyThread extends Thread {Overridevoid…...

硬件产品:做产品,不仅仅是产品思维

目录 前言 1. 产品思维阶段 2. 流量思维阶段 3. 用户思维阶段 作者简介 前言 从思维层面来看&#xff0c; 做产品会经历三个阶段&#xff0c;分别是&#xff1a; 1. 产品思维阶段&#xff1b; 2. 流量思维阶段&#xff1b; 3. 用户思维阶段。 如果不理解这三个思维…...

【小程序开发】解决 HBuilder X 提示“本项目类型无法运行到小程序模拟器”

今天在hbuilder引入一个项目时&#xff0c;准备将该项目在微信开发者工具上运行时&#xff0c;发现提示“本项目类型”&#xff0c;如何解决这个问题&#xff1f; 问题如下&#xff1a; 第一&#xff1a;检查一下文件夹是否为一级文件夹&#xff08;如图&#xff09; 不要有多个…...

RuoYi-Vue从http升级为https(Jar+Nginx)

一、前提条件 1.已通过数字证书管理服务控制台签发证书。 2.SSL证书绑定的域名已完成DNS解析,即域名与主机IP地址相互映射。 附:阿里云网站运维检测平台 3.已在Web服务器开放443端口(HTTPS通信的标准端口)。 如果使用的是阿里云ECS服务器,请确保已经在安全组规则入方向…...

探索 Yocto-Meta-OpenEuler:嵌入式开发的强大基石

title: 探索 Yocto-Meta-OpenEuler&#xff1a;嵌入式开发的强大基石 date: ‘2024-11-19’ category: blog tags: Yocto-Meta-OpenEuler嵌入式系统开源项目定制化开发 sig: EmbeddedTech archives: ‘2024-12’ author:way_back summary: Yocto-Meta-OpenEuler 为嵌入式系统开…...

leetcode 3219. 切蛋糕的最小总开销 II

题目&#xff1a;3219. 切蛋糕的最小总开销 II - 力扣&#xff08;LeetCode&#xff09; 排序贪心。 开销越大的越早切。 注意m或n为1的情况。 class Solution { public:long long minimumCost(int m, int n, vector<int>& horizontalCut, vector<int>&…...

UniApp 打开文件工具,获取文件类型,判断文件类型

注意&#xff1a;以下代码使用 typeScript 开发&#xff0c;如果想在 js 中使用&#xff0c;可参考 npm 已经发布的包&#xff1a;https://www.npmjs.com/package/uni-easy-file NPM 使用 如果想直接在 npm 项目中使用可以直接执行以下命令 npm i uni-easy-file然后直接使用 …...

webpack打包node后端项目

webpack打包后端项目 后端项目写好了&#xff0c;感觉也可以打包一下&#xff0c;然后就想到了用webpack试试 先要下载webpack和webpack-cli npm install webpack webpack-cli然后创建webpack配置文件webpack.config.js 核心配置为entry、output、target 但是因为咱们是后…...

《学习之道》

《学习之道》主要讲述了以下内容&#xff1a; 学习的原理 大脑的两种认知模式&#xff1a;介绍了专注模式和发散模式。专注模式适合集中精力解决具体问题、进行深度理解和记忆推理&#xff0c;但长时间使用易疲惫和陷入思维定式&#xff1b;发散模式则让大脑在更广泛的认知网…...

随笔 | 写在2024的最后一天

. 前言 转眼又到了一年的末端。过去这一年&#xff0c;和前些年有些不同&#xff0c;变化巨大&#xff0c;感触良多。多到一时竟不知从何开始写。今天这篇随笔&#xff0c;因为时间有限&#xff0c;可能文法也会有些凌乱&#xff0c;就是想到哪里写到哪里&#xff0c;如果未来…...

对三层架构的梳理(Controller、Service、Dao)

项目结构如下&#xff1a; src├── main│ └── java│ └── com│ └── example│ └── demo│ ├── controller│ │ └── UserController.java│ ├…...

常用的公共 NTP(网络时间协议)服务器

公共 NTP 服务列表 以下是一些常用的公共 NTP&#xff08;网络时间协议&#xff09;服务器&#xff0c;供您参考&#xff1a; 中国地区公共 NTP 服务器 国家授时中心 NTP 服务器&#xff1a;ntp.ntsc.ac.cn中国 NTP 快速授时服务&#xff1a;cn.ntp.org.cn阿里云公共 NTP 服务…...

SimForge HSF 案例分享|复杂仿真应用定制——UAVSim无人机仿真APP(技术篇)

导读 「神工坊」核心技术——「SimForge HSF高性能数值模拟引擎」支持工程计算应用的快速开发、自动并行&#xff0c;以及多域耦合、AI求解加速&#xff0c;目前已实现航发整机数值模拟等多个系统级高保真数值模拟应用落地&#xff0c;支持10亿阶、100w核心量级的高效求解。其低…...

ROS2+OpenCV综合应用--10. AprilTag标签码追踪

1. 简介 apriltag标签码追踪是在apriltag标签码识别的基础上&#xff0c;增加了小车摄像头云台运动的功能&#xff0c;摄像头会保持标签码在视觉中间而运动&#xff0c;根据这一特性&#xff0c;从而实现标签码追踪功能。 2. 启动 2.1 程序启动前的准备 本次apriltag标签码使…...

Qanything 2.0源码解析系列6 PDF解析逻辑

Qanything 2.0源码解析系列6: PDF解析逻辑 type: Post status: Published date: 2024/12/04 summary: 深入剖析Qanything是如何拆解PDF的,核心是pdf转markdown category: 技术分享 原文:www.feifeixu.top 😀 前言: 在前面的文章中探究了图片是怎么进行解析的,这篇文章对…...

IDEA修改编译版本

目录 一、序言 二、修改maven配置 1.修改 2.代码 三、pom文件配置 1.修改 2.代码 3.问题 一、序言 有两种方法可以帮助大家解决IDEA每次刷新maven的pom配置时&#xff0c;会发生发行源版本不正常的报错。个人推荐第二种&#xff0c;原因&#xff1a;第二种你刷新maven后…...

Python 向量检索库Faiss使用

Faiss&#xff08;Facebook AI Similarity Search&#xff09;是一个由 Facebook AI Research 开发的库&#xff0c;它专门用于高效地搜索和聚类大量向量。Faiss 能够在几毫秒内搜索数亿个向量&#xff0c;这使得它非常适合于实现近似最近邻&#xff08;ANN&#xff09;搜索&am…...

LunarVim安装

LunarVim以其丰富的功能和灵活的定制性&#xff0c;迅速在Nvim用户中流行开来。它不仅提供了一套完善的默认配置&#xff0c;还允许用户根据自己的需求进行深度定制。无论是自动补全、内置终端、文件浏览器&#xff0c;还是模糊查找、LSP支持、代码检测、格式化和调试&#xff…...

机器学习随机森林回归时间序列预模型中时间滑动窗口作用以及参数设置

一、时间序列模型中时间滑动窗口作用 在时间序列模型中&#xff0c;时间滑动窗口&#xff08;Sliding Window&#xff09;起到了至关重要的作用。它是一种常见且有效的数据表示技术&#xff0c;通过将时间序列数据分割成多个固定大小的窗口&#xff0c;来捕捉和分析数据中的模式…...

【ArcGIS技巧】如何制作轨迹动画

轨迹是日常生活与工作经常要用到的&#xff0c;如跑步轨迹、自驾路线&#xff0c;考察轨迹等。地图根据路线生成轨迹也很好玩&#xff0c;今天小编就带大家用arcmap来实现这一功能&#xff0c;让你的制图动起来。 1、数据准备 在开始制作轨迹动画之前&#xff0c;准备一张影像…...

使用 Docker 搭建 Hadoop 集群

1.1. 启用 WSL 与虚拟机平台 1.1.1. 启用功能 启用 WSL并使用 Moba 连接-CSDN博客 1.2 安装 Docker Desktop 最新版本链接&#xff1a;Docker Desktop: The #1 Containerization Tool for Developers | Docker 指定版本链接&#xff1a;Docker Desktop release notes | Do…...

Bash 中的 2>1 | tee 命令详解

Bash 中的 2>&1 | tee 命令详解 在 Linux 和 Unix 系统中&#xff0c;命令行提供了强大的输出控制功能&#xff0c;能够灵活地处理标准输入&#xff08;stdin&#xff09;、标准输出&#xff08;stdout&#xff09;和标准错误&#xff08;stderr&#xff09;。本文将详…...

hpcrunner

title: 探索 Hpcrunner&#xff1a;高性能计算的得力助手 date: ‘2024-12-31’ category: blog tags: Hpcrunner高性能计算任务调度资源优化 sig: HPC archives: ‘2024-12’ author:way_back summary: Hpcrunner 作为高性能计算领域的一款实用工具&#xff0c;专注于优化任务…...

关于 PPPOE技术的详细解释

PPPoE&#xff08;以太网点对点协议&#xff09;是一种网络协议&#xff0c;它通过光纤将点对点协议&#xff08;PPP&#xff09;封装以实现宽带接入点。PPPoE主要用于ADSL和光纤等宽带接入技术中&#xff0c;它允许多个用户共享同一个交换机连接&#xff0c;同时为每个用户提供…...

java下载文件流,不生成中间文件。

java下载文件流&#xff0c;不生成中间文件。 代码设计&#xff1a;代码实现 代码设计&#xff1a; 从前端获取的数据经过后端加工后&#xff0c;生成文件流&#xff0c;并返回前端&#xff0c;&#xff08;不生成中间文件&#xff0c;注意内存&#xff0c;记得关闭流&#xf…...

Android:bug记录(简单)

1、theme 冲突 问题&#xff1a; java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.demokotlinapplication/com.example.demokotlinapplication.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (…...

【模块系列】STM321.69TFT屏幕

前言 在翻翻自己的器件盒的时候&#xff0c;发现这块好久之前买的TFT屏了&#xff0c;想起还没有用STM32点亮过&#xff0c;手头上正好有立创的梁山派STM32F4&#xff0c;就试着按照网上的文章教程顺便移植个LVGL看看&#xff0c;然后就有了就本文。 代码工程命名的是LvglDemo&…...