一、背景介绍
U-Net 是语义分割领域的经典模型,广泛应用于医学影像处理和工业场景中。然而,U-Net 的原始架构参数量较大,不适合在资源受限的设备上进行高效推理。此外,对于分割任务中的小目标检测,原始模型在边缘处理上仍有一定改进空间。
在本次项目中,针对一个结构化的语义分割数据集(如工业钢材表面缺陷检测),我们对 U-Net 模型进行了以下改进:
- 模型轻量化:通过使用深度可分离卷积和注意力机制(ECA 模块),减少模型参数和计算开销。
- 优化损失函数:结合 Focal Loss 和 Dice Loss,改善小目标检测能力。
- 数据增强:增加图像变换的多样性,提升模型对不同图像特征的适应性。
二、模型改进方案
1. 深度可分离卷积
深度可分离卷积将标准卷积分解为两步:
- 深度卷积:每个通道单独执行卷积,用于提取空间特征。
- 逐点卷积:使用 1x1 卷积将各通道信息融合。
这种方式可以大幅减少参数量,同时保持模型的表达能力。代码实现如下:
class SeparableConv(nn.Module):
def __init__(self, in_channels, out_channels, stride=1):
super(Sepa