即插即用系列 | 2024 SOTA LAM-YOLO : 无人机小目标检测模型

即插即用系列 | 2024 SOTA LAM-YOLO : 无人机小目标检测模型

论文名称:LAM-YOLO: Drones-based Small Object Detection
on Lighting-Occlusion Attention Mechanism YOLO

论文原文 (Paper)https://arxiv.org/abs/2411.00485

GitHub 仓库链接https://github.com/AITricks/AITricks
哔哩哔哩视频讲解https://space.bilibili.com/57394501?spm_id_from=333.337.0.0

目录

1. 核心思想

本文针对无人机航拍图像中目标尺寸多变、遮挡严重、光照复杂等挑战,提出了一种名为 LAM-YOLO 的新型目标检测模型。该模型以 YOLOv8 为基础,引入了 光照-遮挡注意力机制 (LAM) 来增强模型在复杂光照和遮挡环境下的特征提取能力,并利用 内卷 (Involution) 模块改善特征层之间的交互。此外,通过引入 辅助小目标检测头 和改进的 SIB-IoU 损失函数,显著提升了对微小和密集目标的检测精度,在 VisDrone2019 数据集上实现了 7.1% 的 mAP 提升。

2. 背景与动机

  • 文本角度总结
    无人机航拍图像中的小目标检测面临着独特的挑战:目标尺寸极小且变化大、易被遮挡、光照条件多变(如强光或昏暗)。现有的 YOLO 系列模型虽然速度快,但在这些复杂场景下往往出现漏检和误检。
    1. 尺寸问题:传统 YOLO 的检测头对于远距离、极微小的目标(如行人、自行车)感受野不足。
    2. 特征提取不足:标准卷积难以捕捉全局光照变化和遮挡下的细微特征,且容易将目标特征淹没在背景噪声中。
    3. 回归精度:现有的 IoU 损失函数在处理小目标时,对位置偏差不够敏感,导致定位不准。
      因此,本文旨在设计一种能够自适应光照变化、抗遮挡且对小目标极其敏感的检测框架。
  • 动机图解分析
    • 图 1 (Fig. 1): 挑战展示
      • (a) 密集小目标:展示了密集的行人和车辆,说明了目标极小且易混淆。
      • (b) 遮挡:展示了树木遮挡下的车辆,说明了仅靠局部特征难以识别完整目标。
      • © & (d) 极端光照:分别展示了强光过曝和夜间昏暗场景,说明了光照变化会严重影响特征的显著性。
      • 总结:这四幅图直观地列出了 LAM-YOLO 想要解决的三大核心痛点:小、遮、光。这也引出了为何需要引入专门的 LAM 注意力模块和辅助检测头。
    • 图 10 (Fig. 10): LAM 层数热力图对比
      • 现象:随着 LAM 层数从 0 增加到 6,热力图(Grad-CAM)对目标的关注度逐渐增强,背景噪声被抑制。
      • 分析:这直观地证明了 LAM 模块在提取关键特征、抑制复杂背景干扰方面的有效性,验证了引入该模块的动机。

3. 主要贡献点

  • [贡献点 1]:提出了光照-遮挡注意力模块 (LAM)
    设计了一种混合注意力机制,结合了通道注意力和基于窗口的自注意力。它利用全局统计信息和强大的局部特征提取能力,专门用于解决光照变化和遮挡带来的特征模糊问题,使模型能“看清”暗处或被遮挡的目标。
  • [贡献点 2]:改进了检测头与特征融合 (Auxiliary Heads & Involution)
    在 YOLOv8 原有三个检测头的基础上,增加了两个专门针对微小目标的辅助检测头(160x160 和 320x320 分辨率),显著降低了小目标的漏检率。同时,在 Neck 部分引入 Involution(内卷) 模块,增强了不同尺度特征层之间的交互,提高了特征表示的丰富性。
  • [贡献点 3]:提出了 SIB-IoU 损失函数
    针对小目标回归难的问题,提出了一种新的边界框回归损失 SIB-IoU。它引入了比例因子 (Ratio) 来生成不同尺度的辅助边界框,计算 Soft Intersection,从而在不同重叠度下都能提供有效的梯度,加速收敛并提高定位精度。

4. 方法细节

    • 主干网络 (Backbone):采用 CSPDarkNet 提取特征。在 Backbone 的末端,插入了 LAM 模块,用于在特征进入 Neck 之前增强其对光照和遮挡的鲁棒性。
    • 颈部网络 (Neck)
      1. FPN + PAN:采用特征金字塔和路径聚合网络进行多尺度融合。
      2. Involution 模块:在 FPN 的横向连接处引入 Involution,替代传统卷积,以增强跨通道和跨空间的特征交互。
      3. LAM 模块:在 PAN 的输出阶段也嵌入了 LAM,进一步提纯融合后的特征。
    • 检测头 (Head)
      • 5 个检测头:除了原有的 P3, P4, P5(针对大中小目标),新增了 P1, P2 两个高分辨率检测头,专门负责极微小目标的检测。
      • SIB-IoU Loss:用于训练阶段的边界框回归。
  • 核心创新模块详解
      • 内部结构:由三个子模块串联组成:浅层特征提取深层特征提取 (RHAG)图像重建
      • 核心组件 (RHAG):残差混合注意力组 (RHAG) 包含:
        1. VAB (Vision-aware Attention Block):包含 SW-MSA (Shifted Window Multi-head Self-Attention) 和 MLP。利用窗口自注意力捕捉局部上下文,同时节省计算量。
        2. OLAB (Overlapping Light-aware Attention Block):包含 OCA (Overlapping Cross Attention) 和 MLP。用于增强特征的重叠区域关注度。
        3. CAB (Channel Attention Block):在 VAB 内部并联,利用全局平均池化和卷积来重新校准通道权重,强化对关键特征通道(如特定光照响应通道)的关注。
      • 设计目的:通过结合通道注意力(关注“什么”特征重要)和窗口自注意力(关注“哪里”特征重要),LAM 能够在复杂光照下动态调整特征权重,突出被遮挡或昏暗的目标。
      • 设计理念:传统的卷积在空间上是共享权重的(空间不变性),但在通道上是密集的。Involution 反其道而行之,在空间上特定(Spatial-specific),但在通道上共享(Channel-agnostic)
      • 数据流
        1. 核生成 (Kernel Generation):对于输入特征图上的每个像素点 ( i , j ) (i, j) (i,j),利用 ϕ \phi ϕ 函数(由 1 × 1 1\times1 1×1 卷积实现)从该像素自身生成一个特定的 K × K K\times K K×K 卷积核 H i , j \mathcal{H}_{i,j} Hi,j​。
        2. 乘加运算 (Multiply-Add):将生成的核 H i , j \mathcal{H}_{i,j} Hi,j​ 与该像素周围 K × K K\times K K×K 的邻域进行乘加运算。
      • 作用:这种机制使得卷积核能够根据具体的空间位置自适应地变化,从而更好地捕捉不同位置(如光照不均区域)的特征,同时减少了参数量。
  • 理念与机制总结
    • 核心理念“关注微小,适应环境”
    • LAM 机制:通过模拟人类视觉对光照和遮挡的适应性(非视觉效应),动态调整特征响应,使得在暗处或遮挡下的目标特征依然显著。
    • SIB-IoU 机制:通过引入缩放因子 Ratio,人为构造“内框”和“外框”。当预测框与真值框重叠较少时,外框能提供梯度;当重叠较多时,内框能提供更精细的约束。这解决了小目标 IoU 变化剧烈导致的训练不稳定问题。
  • 图解总结
    • Fig. 2 清晰展示了 5 头架构和 LAM/Involution 的插入位置,强调了对多尺度(特别是小尺度)的极致追求。
    • Fig. 3 详细拆解了 LAM 的内部结构,展示了如何通过残差连接堆叠多种注意力模块(VAB, OLAB, CAB)来逐步提炼特征。
    • Fig. 7 的 Precision-Recall 曲线显示,LAM-YOLO(粗蓝线)在所有阈值下都包络了其他模型,证明了其综合性能的优越性。

模块 B:内卷模块 (Involution)(对应 Figure 4)

结构图4

模块 A:光照-遮挡注意力模块 (LAM)(对应 Figure 3)

结构图3

整体网络架构(对应 Figure 2)

结构图2

5. 即插即用模块的作用

本文提出的模块通用性较强,可应用于其他目标检测任务:

  1. LAM 模块 (Lighting-occlusion Attention Module)
    • 适用场景低光照强光干扰雾天遮挡严重的检测/分割任务。
    • 具体应用
      • 自动驾驶:在夜间或隧道场景下,将 LAM 插入到检测器的 Backbone 或 Neck 中,提升对暗处车辆和行人的感知。
      • 安防监控:用于处理光照变化剧烈的监控视频,减少误报。
  2. SIB-IoU Loss (Soft Inner-section Bounding-box IoU)
    • 适用场景小目标检测高精度定位任务。
    • 具体应用
      • 通用目标检测:可以直接替换现有的 CIoU, DIoU, SIoU 损失函数。在训练 YOLO 或 R-CNN 系列模型时,只需修改 Loss 计算公式,即可加速收敛并提升最终的 mAP,特别是对于小物体(Small Objects)的提升尤为明显。
  3. Auxiliary Detection Heads (辅助小目标检测头)
    • 适用场景无人机航拍卫星遥感显微镜图像分析
    • 具体应用
      • 微小瑕疵检测:在工业质检中,如果目标极其微小(如像素占比 < 1%),可以借鉴此策略,在现有的 P3-P5 层级下继续上采样,增加 P2 甚至 P1 层级的检测头,专门负责“显微镜级”的检测。

到此,所有的内容就基本讲完了。如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦😄。

获取更多高质量论文及完整源码关注 【AI即插即用】

Read more

前端WebSocket实时通信:别再用轮询了!

前端WebSocket实时通信:别再用轮询了! 毒舌时刻 WebSocket?听起来就像是前端工程师为了显得自己很专业而特意搞的一套复杂技术。你以为随便用个WebSocket就能实现实时通信?别做梦了!到时候你会发现,WebSocket连接断开的问题让你崩溃,重连机制让你晕头转向。 你以为WebSocket是万能的?别天真了!WebSocket在某些网络环境下会被防火墙拦截,而且服务器的负载也是个问题。还有那些所谓的WebSocket库,看起来高大上,用起来却各种问题。 为什么你需要这个 1. 实时性:WebSocket提供全双工通信,可以实现真正的实时通信,比轮询更高效。 2. 减少网络流量:WebSocket只需要建立一次连接,减少了HTTP请求的开销。 3. 服务器推送:服务器可以主动向客户端推送数据,而不需要客户端轮询。 4. 低延迟:WebSocket的延迟比轮询低,适合实时应用。 5. 更好的用户体验:实时通信可以提供更好的用户体验,比如实时聊天、实时数据更新等。 反面教材 // 1. 简单WebSocket连接 const socket =

BK7258 x LiveKit WebRTC :从 0 到 1 的端侧适配

BK7258 x LiveKit WebRTC :从 0 到 1 的端侧适配

> 面向对象:做 AI 硬件、语音对讲、智能终端的开发者 > 关键词:BK7258、LiveKit、WebRTC、实时语音、MCP、设备控制 一、为什么是 LiveKit? 在实时语音 AI 场景里,很多团队一开始只关注“音频能不能传”,但真正落地会遇到更多问题:连接稳定性、会话管理、设备控制、Agent 协同、扩展能力等。 LiveKit 的价值就在于:它不仅是传输层,更是一个面向实时 AI Agent 的平台能力层,统一了房间、参与者、媒体轨道和数据通道能力。 官方定位可以概括为:构建 voice / video / physical AI agents 的平台。   二、BK7258

PowerShell中Invoke-WebRequest的正确使用:避免参数匹配错误

1. 从一次报错说起:为什么我的curl命令在PowerShell里不灵了? 那天我正在调试一个本地API接口,很自然地就在PowerShell里敲下了 curl -X POST http://127.0.0.1:8199/api/post。这命令在Linux的Bash终端里我用了无数次,闭着眼睛都能敲对。结果,PowerShell毫不留情地甩给我一个红字报错:Invoke-WebRequest : 找不到与参数名称“X”匹配的参数。 我当时就愣住了,心想:“-X POST”这不是curl的标准写法吗?怎么到你这儿就不认了?相信很多从Linux/macOS转战Windows,或者刚开始接触PowerShell的朋友,都踩过这个坑。这个错误看似简单,背后却藏着PowerShell设计哲学和命令别名的“小心思”。简单来说,在PowerShell里,curl 并不是你熟悉的那个cURL工具,而是 Invoke-WebRequest 这个PowerShell原生Cmdlet的一个别名。这就好比你在北京叫“师傅”可能是在打招呼,在别的地方可能就是在称呼真正的老师傅,语境完全不同。Invoke-

嗨! Coze 的 AI 漫游:解锁智能体与工作流,轻松拿捏智能应用(1)

嗨! Coze 的 AI 漫游:解锁智能体与工作流,轻松拿捏智能应用(1)

Hi,好久不见,我是云边有个稻草人,一个偶尔中二的万粉博主与你分享专业知识 ~ U·ェ·U ~ 《有趣的AI》—本篇文章所属专栏—持续更新中—欢迎订阅! 现在来一场 Coze 的 AI 漫游——解锁智能体与工作流,轻松拿捏智能应用吧! 目录 一、课程概述 1.1 什么是coze? 1.2 为什么要学习coze? 1.3 学习完coze你能收获到什么? 1.4 学习coze你需要什么基础? 二、扣子产品生态 2.1 扣子产品矩阵  2.2 注册扣子  2.3 扣子开发平台  (1)什么是扣子开发平台? (2)扣子开发平台使用 (3)扣子开发平台付费管理