【23】搭建FCN语义分割网络完成自己数据库图像分割(总述)

2021/6/5 2:24:56

本文主要是介绍【23】搭建FCN语义分割网络完成自己数据库图像分割(总述),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

【1】模型介绍

搭建了一个分割网络,以此网络为基础完成图像的分割并计算最终的分割精度。

----------------------------------------------------------------
        Layer (type)               Output Shape         Param #
================================================================
            Conv2d-1         [-1, 64, 320, 480]           1,792
              ReLU-2         [-1, 64, 320, 480]               0
            Conv2d-3         [-1, 64, 320, 480]          36,928
              ReLU-4         [-1, 64, 320, 480]               0
         MaxPool2d-5         [-1, 64, 160, 240]               0
            Conv2d-6        [-1, 128, 160, 240]          73,856
              ReLU-7        [-1, 128, 160, 240]               0
            Conv2d-8        [-1, 128, 160, 240]         147,584
              ReLU-9        [-1, 128, 160, 240]               0
        MaxPool2d-10         [-1, 128, 80, 120]               0
           Conv2d-11         [-1, 256, 80, 120]         295,168
             ReLU-12         [-1, 256, 80, 120]               0
           Conv2d-13         [-1, 256, 80, 120]         590,080
             ReLU-14         [-1, 256, 80, 120]               0
           Conv2d-15         [-1, 256, 80, 120]         590,080
             ReLU-16         [-1, 256, 80, 120]               0
           Conv2d-17         [-1, 256, 80, 120]         590,080
             ReLU-18         [-1, 256, 80, 120]               0
        MaxPool2d-19          [-1, 256, 40, 60]               0
           Conv2d-20          [-1, 512, 40, 60]       1,180,160
             ReLU-21          [-1, 512, 40, 60]               0
           Conv2d-22          [-1, 512, 40, 60]       2,359,808
             ReLU-23          [-1, 512, 40, 60]               0
           Conv2d-24          [-1, 512, 40, 60]       2,359,808
             ReLU-25          [-1, 512, 40, 60]               0
           Conv2d-26          [-1, 512, 40, 60]       2,359,808
             ReLU-27          [-1, 512, 40, 60]               0
        MaxPool2d-28          [-1, 512, 20, 30]               0
           Conv2d-29          [-1, 512, 20, 30]       2,359,808
             ReLU-30          [-1, 512, 20, 30]               0
           Conv2d-31          [-1, 512, 20, 30]       2,359,808
             ReLU-32          [-1, 512, 20, 30]               0
           Conv2d-33          [-1, 512, 20, 30]       2,359,808
             ReLU-34          [-1, 512, 20, 30]               0
           Conv2d-35          [-1, 512, 20, 30]       2,359,808
             ReLU-36          [-1, 512, 20, 30]               0
        MaxPool2d-37          [-1, 512, 10, 15]               0
  ConvTranspose2d-38          [-1, 512, 20, 30]       2,359,808
             ReLU-39          [-1, 512, 20, 30]               0
      BatchNorm2d-40          [-1, 512, 20, 30]           1,024
  ConvTranspose2d-41          [-1, 256, 40, 60]       1,179,904
             ReLU-42          [-1, 256, 40, 60]               0
      BatchNorm2d-43          [-1, 256, 40, 60]             512
  ConvTranspose2d-44         [-1, 128, 80, 120]         295,040
             ReLU-45         [-1, 128, 80, 120]               0
      BatchNorm2d-46         [-1, 128, 80, 120]             256
  ConvTranspose2d-47         [-1, 64, 160, 240]          73,792
             ReLU-48         [-1, 64, 160, 240]               0
      BatchNorm2d-49         [-1, 64, 160, 240]             128
  ConvTranspose2d-50         [-1, 32, 320, 480]          18,464
             ReLU-51         [-1, 32, 320, 480]               0
      BatchNorm2d-52         [-1, 32, 320, 480]              64
           Conv2d-53         [-1, 21, 320, 480]             693
================================================================
Total params: 23,954,069
Trainable params: 23,954,069
Non-trainable params: 0
----------------------------------------------------------------
Input size (MB): 1.76
Forward/backward pass size (MB): 972.07
Params size (MB): 91.38
Estimated Total Size (MB): 1065.21
----------------------------------------------------------------

【2】文件介绍


程序文件夹介绍
│  batchimageprocess.py      #批量图片处理、改名字、改类型
│  dataimagetest.py          #多种图片测试(此处是8张图片)
│  dateset.py                #图像预处理和加载
│  Digraph.gv                #Digraph生成的文件
│  knowdege.md               #相关知识的补充
│  oneimagetest.py           #单张图片测试
│  segmentmodel.py           #分割模型搭建
│  segmentmodelaccuracy.py   #分割精度测试
│  structure.txt             #文件树
│  trainmodel.py             #训练模型
│  visualize.py              #模型pdf转换的文件
│  
├─.vscode                   #默认文件
│      settings.json
│      
├─accuracylable             #分割精度测试图片
│      2007_000033.jpg
│      2007_000033.png
│      
├─chenxutest                #常规函数测试程序
│      mytest.py
│      ownsegnet.py
│      
├─data                      #常规函数测试程序所需的数据库
│      01.jpg
│      02.jpg
│      
├─modelimage                #模型结构文件
│      Digraph.gv.pdf
│      fcn8s.png
│      
├─savemodel                 #保存.pth模型
│      fcn8s.pth
│      
├─savemodelpkl              #保存.pkl模型
│      fcn8s.pkl
│      
├─segmentresult             #分割结果
│      0.png
│      1.png
│      2.png
│      3.png
│      
└─__pycache__               #默认文件
        dateset.cpython-36.pyc
        segmentmodel.cpython-36.pyc
        segmentmodelaccuracy.cpython-36.pyc
        visualize.cpython-36.pyc 


  【3】主要工作

(1)搭建分割网络模型、测试和训练程序。

(2)使用visdom训练过程可视化。

(3)使用labelme完成图像分割标签的制造。

(4)计算分割的效果和精度。

(5)对多张图像分割效果进行评估和展示。

 



这篇关于【23】搭建FCN语义分割网络完成自己数据库图像分割(总述)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程