一、介绍
基于深度学习的缺陷检测主要集中在场景识别、object detection等方法,近年来,推出了一系列优秀的语义分割模型,比如SegNet、FCN、U-Net等。语义分割模型被广泛的应用到场景识别、道路分割等领域中,缺陷检测领域也逐渐接受该模型。
本博文主要关注和实现基于U-Net的语义分割模型。
二、U-Net
如下图所示,这是U-Net的核心思想,从编码到解码,编码过程就是下采样,解码时,把同级的编码特征进行拼接,一起上采样。
详细算法请参考:https://blog.csdn.net/natsuka/article/details/78565229
U-Net由于把编码特征加入到解码特征中,可以在小数据量下取得很好效果,但是有个问题,U-Net网络不够深,对特征的表达不够准确,残差网络之所以取得这么好的分类效果其实就是网络足够深,一般来说网络更深,表达能力更强。
下面是改进的U-Net,其中ResNet Block数量为6。
三、实验数据
如下图所示,对缺陷的地方直接赋值像素为255,其它区域像素值保持不变,这样就可以生成标签数据。在代码中,对训练图像和标签图像分别进行0~1处理,对输入图像直接除以255,对标签图像,生成二进制图像,像素值为255,则置1,否则置0。
四、测试结果
五、算法改进
实验表明,如果只使用U-Net+残差模块,对大的缺陷区域分割