工业缺陷检测实战——RSDDs北交轨道缺陷分割

第一步:准备数据

RSDD数据集是北京交通大学公布的,包含两种类型数据,Type-II RSDDs dataset是快车道数据集,样本数为67个;Type-II RSDDs dataset是普通/重型运输轨道数据集,含分割标注,一共118个样本。

第二步:搭建模型

本系统用的模型为UNet,UNet主要贡献是在U型结构上,该结构可以使它使用更少的训练图片的同时,且分割的准确度也不会差,UNet的网络结构如下图:

(1)UNet采用全卷积神经网络。(2)左边网络为特征提取网络:使用conv和pooling(3)右边网络为特征融合网络:使用上采样产生的特征图与左侧特征图进行concatenate操作。(pooling层会丢失图像信息和降低图像分辨率且是永久性的,对于图像分割任务有一些影响,对图像分类任务的影响不大,为什么要做上采样呢?上采样可以让包含高级抽象特征低分辨率图片在保留高级抽象特征的同时变为高分辨率,然后再与左边低级表层特征高分辨率图片进行concatenate操作)(4)最后再经过两次卷积操作,生成特征图,再用两个卷积核大小为1*1的卷积做分类得到最后的两张heatmap,例如第一张表示第一类的得分,第二张表示第二类的得分heatmap,然后作为softmax函数的输入,算出概率比较大的softmax,然后再进行loss,反向传播计算。

第三步:代码

1)损失函数为:交叉熵损失函数 + dice损失函数

2)网络代码:

复制代码
class U_Net(nn.Module):

    def __init__(self,img_ch=3,output_ch=1):
        super(U_Net,self).__init__()
        self.Maxpool = nn.MaxPool2d(kernel_size=2,stride=2)
        self.Conv1 = conv_block(ch_in=img_ch,ch_out=64)
        self.Conv2 = conv_block(ch_in=64,ch_out=128)
        self.Conv3 = conv_block(ch_in=128,ch_out=256)
        self.Conv4 = conv_block(ch_in=256,ch_out=512)
        self.Conv5 = conv_block(ch_in=512,ch_out=1024)
        self.Up5 = up_conv(ch_in=1024,ch_out=512)
        self.Up_conv5 = conv_block(ch_in=1024, ch_out=512)
        self.Up4 = up_conv(ch_in=512,ch_out=256)
        self.Up_conv4 = conv_block(ch_in=512, ch_out=256)
        self.Up3 = up_conv(ch_in=256,ch_out=128)
        self.Up_conv3 = conv_block(ch_in=256, ch_out=128)
        self.Up2 = up_conv(ch_in=128,ch_out=64)
        self.Up_conv2 = conv_block(ch_in=128, ch_out=64)
        self.Conv_1x1 = nn.Conv2d(64,output_ch,kernel_size=1,stride=1,padding=0)
    def forward(self,x):
        # encoding path
        x1 = self.Conv1(x)
        x2 = self.Maxpool(x1)
        x2 = self.Conv2(x2)
        x3 = self.Maxpool(x2)
        x3 = self.Conv3(x3)
        x4 = self.Maxpool(x3)
        x4 = self.Conv4(x4)
        x5 = self.Maxpool(x4)
        x5 = self.Conv5(x5)
        # decoding + concat path
        d5 = self.Up5(x5)
        d5 = torch.cat((x4,d5),dim=1)
        d5 = self.Up_conv5(d5)
        d4 = self.Up4(d5)
        d4 = torch.cat((x3,d4),dim=1)
        d4 = self.Up_conv4(d4)
        d3 = self.Up3(d4)
        d3 = torch.cat((x2,d3),dim=1)
        d3 = self.Up_conv3(d3)
        d2 = self.Up2(d3)
        d2 = torch.cat((x1,d2),dim=1)
        d2 = self.Up_conv2(d2)
        d1 = self.Conv_1x1(d2)
        return d1

第四步:统计一些指标(训练过程中的loss和miou)

第五步:搭建GUI界面

第六步:整个工程的内容

有训练代码和训练好的模型以及训练过程,提供数据,提供GUI界面代码

项目完整文件下载请见演示与介绍视频的简介处给出:➷➷➷

https://www.bilibili.com/video/BV1x3fmB4Eai/

相关推荐
CS创新实验室16 小时前
数据分析与数据挖掘领域就业分析报告
人工智能·数据挖掘·数据分析
rrrjqy16 小时前
深入浅出 RAG:基于 Spring AI 的文档分块 (Chunking) 策略详解与实战
java·人工智能·后端·spring
测试员周周16 小时前
【Hermes系列3】登录回归不用先搭平台:我用 Hermes 跑通拆解→脚本→报告(实战篇:提示词可复制)
人工智能
Deepoch16 小时前
VLA分布式协同中枢:Deepoc开发板激活采摘机器人集群智能
人工智能·科技·机器人·具身模型·deepoc·采摘
薛定猫AI16 小时前
【技术干货】自进化知识库 + AI 编码代理:从概念到落地实战(含完整代码示例)
人工智能
见行AGV机器人16 小时前
AGV 无线通信
人工智能·agv·非标定制agv·agv控制器
wangqiaowq16 小时前
DeepSpeed 是一个由微软开发的开源深度学习优化库
人工智能
devnullcoffee16 小时前
深度思维与AI工具重塑亚马逊选品:从评论数据挖掘到Agent工作流的工程实践
java·人工智能·数据挖掘·亚马逊运营·亚马逊 asin 数据采集·数据决策
用户51914958484516 小时前
InstaWP Connect 漏洞利用工具 (CVE-2024-2667)
人工智能·aigc
2601_9544345516 小时前
2026年电钢琴品牌专业深度测评:排名前五权威榜单发布
大数据·人工智能·python