美文网首页
深度学习断层实战(三)——UNet神经网络模型识别断层(附程序)

深度学习断层实战(三)——UNet神经网络模型识别断层(附程序)

作者: 科技州与数据州 | 来源:发表于2022-01-01 10:46 被阅读0次

    随着深度学习算法的蓬勃发展,卷积神经网络(CNN)被大规模的应用在分类任务中,输出的结果是整个图像的类标签。后来在生物医学领域,医生需要对病灶区域进行病理分析。这时需要一种更先进的网络模型,通过较少数量的训练图片,就能预测像素点类别,并且可以对像素点进行着色绘图,形成更复杂的判断,这时Unet网络设计出来了。

    地震勘探领域的断层识别,同样需要对断层位置进行精准判断,并画出断层线条甚至断面。越来越多的研究学者将Unet网络运用到地震勘探行业。

    01 Unet神经网络断层识别原理

    UNet网络结构最初由 Ronneberger 等人在2015年提出。该网络的核心思想是引入了跳跃连接,使得图像分割的精度大大提升。地震断层识别相比图像分割问题要简单一些,因此伍新明等教授对Unet网络进行了简化,使得更适用于断层的识别。

    Unet网络的主要结构包括了编码器、解码器、瓶颈层三个部分。

    (1)编码器部分:包括了三个程序块。每个程序块都包括3*3的卷积(使用Relu激活函数),步幅为2的2*2的池化层。每个程序块处理后,特征图逐步缩小。

    (2)瓶颈层部分:包含了两个3*3的卷积层。

    (3)解码器部分:与编码器部分对称,也包括三个程序块,每个程序块包括步幅为2的2*2的上采样操作,然后与编码部分进行特征映射级联(concatenate),最后通过两个3*3的卷积(使用Relu激活函数)。

    最终输出层包含一个1*1的卷积层,其后紧跟sigmoid激活函数,生成二维断层概率图像。

    UNet 网络结构的关键在于编码部分和解码部分的跳跃连接( Skip Connection),将来自解码器的深层高级特征与来自编码器的浅层低级特征相结合。编码器的浅层结构可以提取断层的简单特征,而深层结构则能抓取到断层的复杂特征。

    02 实战案例应用

    结合前期合成的地震断层数据作为模型训练的标签数据,我们构建一个完整的Unet神经网络作为训练模型,来给大家讲解Unet断层识别模型的构建过程。

    为了能够流畅的运行,同样建议大家使用独立的显卡,并且支持CUDA GPU加速,显存8G以上,内存64G以上。

    1.加载训练集数据

    我们使用前期机器自动生成的数据集,包括200个样本的训练集和20个样本的验证集,每个样本的尺寸是128*128*128。

    为了提高模型鲁棒性,还可以对训练数据进行增强处理。就是在加载仿真数据后,再对训练数据进行水平翻转多次翻转,进一步增加训练样本的多样性。

    使用下面的程序。

    2.构建Unet神经网络

    根据前文的介绍,构建了一个Unet网络结构:

    主要的代码包括编码、解码和瓶颈层三部分。编码部分的代码是这样的:

    其中每个代码块的内容是这样的:

    解码部分的代码是这样的:

    其中每个代码块的内容是这样的:

    瓶颈部分的代码是这样的:

    训练参数部分:

    由于整个地震数据中,断层部分很少,大部分都是非断层,造成了数据分布不均衡,因此这里修改了loss函数,优化了cross_entropy算法。

    3.训练神经网络

    整个网络训练了25个周期,平均每个周期训练时间10分钟左右。

    训练准确率可以达到94.91%,验证准确率达到95.67%,可见鲁棒性较好,没有出现过拟合。

    训练的图形是这样的:

    从训练图像来看,训练曲线比较稳定,可以收敛。验证曲线不太稳定,说明模型还需要优化。

    4.保存神经网络

    我们可以将训练的模型保存下来,未来进行其它数据预测时可以直接调用模型。

    5.识别效果

    下面两张图显示了其中卷积层学习到的特征。

    可以看到逐渐识别到了地震信号的特征。

    仿真数据的识别效果见下图。

    可以看到识别效果非常好,不管是主要断层还是细小的断层都能识别出来,也没有错误出现。

    具体可视化显示断层的方法后续会介绍。

    这次的课程就到这里。我们给大家讲解了建立Unet神经网络模型进行训练和断层识别的一套实战流程。如果大家对程序感兴趣欢迎联系我交流。再见。

    扩展阅读:

    怎样轻松入门地震勘探研究:先从地震数据处理开始

    教你如何从0开启地震深度学习科研之路

    相关文章

      网友评论

          本文标题:深度学习断层实战(三)——UNet神经网络模型识别断层(附程序)

          本文链接:https://www.haomeiwen.com/subject/xmdkfrtx.html