YOLOv8改进 | 2023 | AKConv轻量级架构下的高效检测(既轻量又提点)

简介: YOLOv8改进 | 2023 | AKConv轻量级架构下的高效检测(既轻量又提点)

一、本文介绍

本文给大家带来的改进内容是AKConv是一种创新的变核卷积,它旨在解决标准卷积操作中的固有缺陷(采样形状是固定的),AKConv的核心思想在于它为卷积核提供了任意数量的参数和任意采样形状,能够使用任意数量的参数(如1, 2, 3, 4, 5, 6, 7等)来提取特征,这在标准卷积和可变形卷积中并未实现。AKConv能够根据硬件环境,使卷积参数的数量呈线性增减(非常适用于轻量化模型的读者)本文通过先介绍AKConv的基本网络结构和原理让大家对该卷积有一个大概的了解,然后教大家如何将该卷积添加到自己的网络结构中

image.png

(同时我修改了AKConv官方版本在训练到最后一个轮次报错和版本警告的问题RuntimeError: CUDA error: device-side assert triggered)

适用检测目标:所有的目标检测均有一定的提点(既轻量又提点)

推荐指数:⭐⭐⭐⭐⭐

专栏目录:YOLOv8改进有效系列目录 | 包含卷积、主干、检测头、注意力机制、Neck上百种创新机制

专栏回顾:YOLOv8改进系列专栏——本专栏持续复习各种顶会内容——科研必备

二、AKConv网络结构讲解

image.png

2.1 AKConv的主要思想和改进

AKConv的主要思想:AKConv(可变核卷积)主要提供一种灵活的卷积机制,允许卷积核具有任意数量的参数和采样形状。这种方法突破了传统卷积局限于固定局部窗口和固定采样形状的限制,从而使得卷积操作能够更加精准地适应不同数据集和不同位置的目标。

AKConv的改进点:

  1. 灵活的卷积核设计:AKConv允许卷积核具有任意数量的参数,这使得其可以根据实际需求调整大小和形状,从而更有效地适应目标的变化。
  2. 初始采样坐标算法:针对不同大小的卷积核,AKConv提出了一种新的算法来生成初始采样坐标,这进一步增强了其在处理各种尺寸目标时的灵活性。
  3. 适应性采样位置调整:为适应目标的不同变化,AKConv通过获得的偏移量调整不规则卷积核的采样位置,从而提高了特征提取的准确性。
  4. 减少模型参数和计算开销:AKConv支持线性增减卷积参数的数量,有助于在硬件环境中优化性能,尤其适合于轻量级模型的应用。

个人总结:总的来说,AKConv通过其创新的可变核卷积设计,为卷积神经网络带来了显著的性能提升。其能够根据不同的数据集和目标灵活调整卷积核的大小和形状,从而实现更高效的特征提取。

图片展示了AKConv结构的详细示意图,并附上我个人的过程理解:

image.png

1. 输入:输入图像具有维度(C, H, W),其中C是通道数,H和W分别是图像的高度和宽度。

2. 初始采样形状:这一步是AKConv特有的,它给出了卷积核的初始采样形状。

3. 卷积操作:使用Conv2d对输入图像执行卷积操作。

4. 偏移:通过学习得到的偏移量来调整初始采样形状。这一步是AKConv的关键,允许卷积核形状动态调整以适应图像的特征。

5. 重采样:根据调整后的采样形状对特征图进行重采样。

6. 输出管道:重采样后的特征图经过重塑、再次卷积、标准化,最后通过激活函数SiLU输出最终结果。

底部的三行展示了采样坐标的变化:

  • 原始坐标:显示了卷积核在没有任何偏移的情况下的初始采样位置。
  • 偏移:展示了学习到的偏移量,这些偏移量将应用于原始坐标。
  • 修改后的坐标:应用偏移后的采样坐标。

总结:官方这个图说明了AKConv如何为任意大小的卷积分配初始采样坐标,并通过可学习的偏移调整采样形状。与原始采样形状相比,每个位置的采样形状都通过重采样进行了改变,这使得AKConv可以根据图像内容动态调整其操作,为卷积网络提供了前所未有的灵活性和适应性。

2.1.1 灵活的卷积核设计

AKConv中的灵活卷积核设计是一种创新的机制,旨在使卷积网络更加适应性和有效率。以下是其主要原理和机制的总结:

主要原理

  1. 任意参数数量:传统的卷积核通常具有固定的尺寸和形状,例如3x3或5x5的方形网格。而AKConv的核心原理是允许卷积核具有任意数量的参数。这意味着卷积核不再局限于标准的方形网格,而是可以根据图像特征和任务需求,采用更多样化和灵活的形状(如下图所示,任意参数数量)
  2. 自适应采样形状:在处理不同的图像和目标时,AKConv的卷积核能够自动调整其采样形状。这是通过引入一种新的坐标生成算法实现的,该算法能够为不同大小和形状的卷积核生成初始采样坐标(如下图所示,自适应采样形状)

image.png

工作机制

  1. 初始坐标生成:AKConv首先通过其坐标生成算法确定卷积核的初始采样位置。这些位置不再是固定不变的,而是可以根据图像中的特征和目标动态变化。
  2. 采样位置调整:为了更好地适应图像中目标的大小和形状变化,AKConv会根据目标的特点调整卷积核的采样位置。这种调整是通过添加偏移量来实现的,使得卷积操作更加灵活和适应性强。

个人总结:通过这种灵活的设计,AKConv能够有效地适应各种大小和形状的目标,提高了特征提取的准确性和效率。它在标准卷积核基础上引入了更多的灵活性和自适应性,从而使得卷积神经网络在处理复杂和多样化的图像数据时更为高效。这种灵活的卷积核设计不仅提升了模型的性能,还为减少模型参数和计算开销提供了可能,特别是在轻量级模型的应用中显示出其优势。

2.1.2 初始采样坐标算法

AKConv中的初始采样坐标算法是其核心特征之一,这个算法为AKConv的灵活性和适应性提供了基础。以下是该算法的主要原理和机制的概述:

主要原理

  1. 针对多样化尺寸的适应性:传统卷积操作通常使用固定尺寸的卷积核,这限制了其在处理不同尺寸和形状目标时的效果。AKConv的初始采样坐标算法旨在解决这一问题,通过允许卷积核适应不同大小的目标,增强其灵活性和有效性。
  2. 动态采样坐标生成:该算法能够根据目标的尺寸和形状动态生成卷积核的初始采样坐标。这种动态生成方式使卷积核能够更精确地覆盖和处理图像中的不同区域,从而提高特征提取的精度。

image.png

工作机制

  1. 适应不同目标尺寸:对于每一个卷积操作,算法首先考虑目标的尺寸。基于这一信息,它生成一组初始坐标,这些坐标定义了卷积核将要采样的位置。
  2. 灵活的坐标调整:生成的初始坐标不是固定不变的,而是可以根据图像中的特征动态调整。这意味着卷积核可以根据图像内容的不同而改变其采样策略,从而更有效地提取特征。

个人总结:通过引入这种初始采样坐标算法,AKConv能够更灵活地处理各种尺寸的目标,无论是大尺寸还是小尺寸的目标,都能得到更准确的特征提取。

2.1.3 适应性采样位置调整

AKConv的适应性采样位置调整机制是其核心之一,该机制允许卷积核基于图像内容进行动态调整。这里是对这一机制的概述:

  1. 动态采样调整:传统的卷积网络使用固定形状的卷积核在图像上滑动来提取特征,这种方法忽略了图像中对象形状和尺寸的多样性。AKConv采用一种新颖的方法,它允许卷积核的形状和位置根据图像内容动态调整,更好地匹配和覆盖目标区域。
  2. 偏移量学习:在AKConv中,卷积核的位置可以通过学习到的偏移量来调整。在训练过程中,网络学习到对于特定图像和目标最有效的偏移量,以便在采样过程中自动调整卷积核的位置。
  3. 提高特征提取准确性:通过这种自适应调整,AKConv能够更准确地对齐并提取图像中的关键特征,特别是当目标的形状和大小在不同图像中有所变化时。


image.png

个人总结:AKConv的适应性采样位置调整为卷积网络提供了前所未有的灵活性和适应性,使其能够对各种不同形状和尺寸的目标实现更精确的特征提取。

2.1.4 线性增减卷积参数的数量

AKConv通过其独特的设计减少了模型参数和计算开销实现方式如下:

1. 线性参数调整:AKConv允许卷积核的参数数量根据需要进行线性调整。这与传统卷积网络中参数数量随着卷积核尺寸平方级增长的情况形成对比。通过支持参数数量的线性调整,AKConv能够根据任务需求和硬件能力灵活地增减模型的复杂度。

2. 优化性能:在硬件资源有限的环境中,AKConv能够通过减少不必要的参数来优化性能。这样不仅减轻了对存储和计算资源的需求,还有助于加快模型的训练和推理速度,同时降低能耗。

3. 轻量级模型设计:AKConv特别适合于轻量级模型的设计,这类模型需要在保持高性能的同时,尽可能地减少参数数量。AKConv的这一特性使其成为设计紧凑而高效模型的理想选择,特别是在移动设备、嵌入式系统和物联网设备等资源受限的平台上。

image.png

总结:AKConv通过支持卷积参数的线性增减,提供了一种在不牺牲性能的前提下,降低模型参数和计算开销的有效方法。这使得AKConv不仅在实现高精度的特征提取方面表现出色,而且在实际应用中具有显著的资源效率优势。

目录
相关文章
|
2月前
|
数据采集 机器学习/深度学习 大数据
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
这篇文章详细介绍了C3D架构在行为检测领域的应用,包括训练和测试步骤,使用UCF101数据集进行演示。
51 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
|
5月前
|
机器学习/深度学习 算法 网络架构
【YOLOv8改进 - Backbone主干】EfficientRep:一种旨在提高硬件效率的RepVGG风格卷积神经网络架构
【YOLOv8改进 - Backbone主干】EfficientRep:一种旨在提高硬件效率的RepVGG风格卷积神经网络架构
|
5月前
|
机器学习/深度学习 计算机视觉 异构计算
【YOLOv8改进 - Backbone主干】ShuffleNet V2:卷积神经网络(CNN)架构
【YOLOv8改进 - Backbone主干】ShuffleNet V2:卷积神经网络(CNN)架构
|
2月前
|
机器学习/深度学习 大数据 PyTorch
行为检测(一):openpose、LSTM、TSN、C3D等架构实现或者开源代码总结
这篇文章总结了包括openpose、LSTM、TSN和C3D在内的几种行为检测架构的实现方法和开源代码资源。
56 0
|
3月前
|
编解码 Linux 开发工具
Linux平台x86_64|aarch64架构RTMP推送|轻量级RTSP服务模块集成说明
支持x64_64架构、aarch64架构(需要glibc-2.21及以上版本的Linux系统, 需要libX11.so.6, 需要GLib–2.0, 需安装 libstdc++.so.6.0.21、GLIBCXX_3.4.21、 CXXABI_1.3.9)。
|
4月前
|
编解码 Linux 数据安全/隐私保护
Linux平台x86_64|aarch64架构如何实现轻量级RTSP服务
为满足在Linux平台(x86_64与aarch64架构)上实现轻量级RTSP服务的需求,我们开发了一套解决方案。该方案通过调用`start_rtsp_server()`函数启动RTSP服务,并设置端口号及认证信息。支持AAC音频和H.264视频编码,可推送纯音频、纯视频或音视频流。此外,还支持X11屏幕采集、部分V4L2摄像头采集、帧率/GOP/码率调整、摄像头设备选择与预览等功能。对于音频采集,支持alsa-lib和libpulse接口。整体设计旨在提供150-400ms的低延迟体验,适用于多种应用场景。
|
5月前
|
消息中间件 API 数据库
在微服务架构中,每个服务通常都是一个独立运行、独立部署、独立扩展的组件,它们之间通过轻量级的通信机制(如HTTP/RESTful API、gRPC等)进行通信。
在微服务架构中,每个服务通常都是一个独立运行、独立部署、独立扩展的组件,它们之间通过轻量级的通信机制(如HTTP/RESTful API、gRPC等)进行通信。
|
7月前
|
微服务
01.【微服务架构】服务注册与发现:AP和CP,你选哪个?-- 服务端崩溃检测
【5月更文挑战第3天】保证服务注册与发现的高可用需关注三个方面:服务端崩溃检测、客户端容错和注册中心选型。服务端崩溃时,注册中心通过心跳检测来识别,若心跳中断,立即通知客户端服务不可用,同时持续尝试恢复心跳。若一段时间后仍无法连接,则断定服务端彻底崩溃。这种方法兼顾及时故障通知和防止误判。
95 8
|
7月前
|
存储 传感器 缓存
轻量级的嵌入式模块化软件架构
轻量级的嵌入式模块化软件架构
129 1
|
7月前
|
机器学习/深度学习 边缘计算 自动驾驶
【初探GSConv】轻量化卷积层直接带来的小目标检测增益!摘录于自动驾驶汽车检测器的架构
【初探GSConv】轻量化卷积层直接带来的小目标检测增益!摘录于自动驾驶汽车检测器的架构
467 0
【初探GSConv】轻量化卷积层直接带来的小目标检测增益!摘录于自动驾驶汽车检测器的架构