YOLOv12即插即用-Pconv(风车卷积)

1.模块介绍

PinwheelConv(风车状卷积)充分利用了IRST(红外搜索与跟踪)中的高斯分布特性,以极少的参数实现了高效且更大感受野的特性。此外,本文还提出了一种简单而高效的 SD 损失函数,有效缓解了标签 IoU 变化带来的不稳定性。通过与现有卷积模块和损失函数的广泛对比,所提出的方法在准确性和鲁棒性方面始终优于最先进的方法,展现出卓越的性能和广泛的应用潜力。

2.改进后的结构图

3.将PConv融合进YOLOv12

首先找到ultralytics下面的Conv文件夹新建PConv.py把下面代码写入:

import torch
import torch.nn as nn
import torch.nn.functional as F


def autopad(k, p=None, d=1):  # kernel, padding, dilation
    """Pad to 'same' shape outputs."""
    if d > 1:
        k = d * (k - 1) + 1 if
### 风车卷积算法概述 风车卷积PConv)是一种专门为改进计算机视觉任务设计的独特卷积方法[^1]。与传统卷积操作相比,PConv采用了非对称填充策略来处理图像数据中的不同区域,从而生成具有特定方向性的水平和垂直卷积核。这种特性使得PConv能够更有效地捕捉特征,并且特别适用于增强小目标检测的效果。 #### 特征描述 - **非对称填充**:通过不对称的方式为输入张量\( X(h_1, w_1, c_1)\) 的高度、宽度以及通道数设置不同的填充参数,形成独特的卷积模式。 - **批归一化与激活函数**:每一次卷积之后都会施加批归一化(BN),随后接上SiLU作为激活函数,以此提高模型收敛的速度及稳定性。 ```python import torch.nn as nn class PConv(nn.Module): def __init__(self, in_channels, out_channels, kernel_size=3, stride=1, padding=(0, 1)): super(PConv, self).__init__() self.conv_h = nn.Conv2d(in_channels=in_channels, out_channels=out_channels//2, kernel_size=(kernel_size, 1), stride=stride, padding=(padding[0], 0)) self.conv_v = nn.Conv2d(in_channels=in_channels, out_channels=out_channels//2, kernel_size=(1, kernel_size), stride=stride, padding=(0, padding[1])) self.bn = nn.BatchNorm2d(out_channels) self.act = nn.SiLU() def forward(self, x): h_out = self.conv_h(x) v_out = self.conv_v(x) combined = torch.cat([h_out, v_out], dim=1) normalized = self.bn(combined) activated = self.act(normalized) return activated ``` #### 应用场景 - **物体检测优化**:特别是在YOLOv8架构中引入了基于PConv的改进措施,旨在强化对于较小尺寸对象识别的能力[^2]。 - **姿态估计领域**:利用该技术构建更加精准的关键点定位系统,在人体或其他生物体的姿态分析方面展现出优越性能[^3]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值