搭建自己的语义分割平台deeplabV3+

这篇具有很好参考价值的文章主要介绍了搭建自己的语义分割平台deeplabV3+。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


前言

在上一篇主要了解了语义分割,实例分割,全景分割的区别,以及labelme标注的数据进行转换,这边文章主要是通过deeplabV3+ 构建自己的语义分割平台

一、deeplabV3+

deeplabv3+实战,语义分割,深度学习,人工智能,计算机视觉
上图所示,是deeplabV3+的主体框架,简单来说就是编码,解码的过程。将输入的图片通过DCNN深度卷积神经网络,获得两个有效的特征层(浅层)(深层)对深层特征层进行ASPP(利用不同膨胀率的膨胀卷积进行特征提取,然后对特征进行堆叠,通过1X1卷积调整通道数,得到最终的特征)将高语义的特征信息经过上采样与浅层特征进行特征融合,在进行3X3的卷积,然后通过1*1卷积进行通道数的调整,调整成num_class(分类数)进行上采样使得最终输出层,宽高与输入图片一样,得到每一个像素点的每一个种类。

二、数据准备

1.我们首先要对数据进行一些处理
deeplabv3+实战,语义分割,深度学习,人工智能,计算机视觉
JPEGImages 存放的是图片
deeplabv3+实战,语义分割,深度学习,人工智能,计算机视觉
SegmentationClass 存放的是mask掩码图像
deeplabv3+实战,语义分割,深度学习,人工智能,计算机视觉
ImageSets 存放是一些txt文件
deeplabv3+实战,语义分割,深度学习,人工智能,计算机视觉

三、修改代码

1.根目录下的mypath.py文件
deeplabv3+实战,语义分割,深度学习,人工智能,计算机视觉
2.dataloaders\datasets创建自己的数据集文件hat.py
复制这一路径下的pascal.py文件
deeplabv3+实战,语义分割,深度学习,人工智能,计算机视觉
3.dataloaders/utils.py
deeplabv3+实战,语义分割,深度学习,人工智能,计算机视觉
deeplabv3+实战,语义分割,深度学习,人工智能,计算机视觉
4.dataloaders/__init__.py
deeplabv3+实战,语义分割,深度学习,人工智能,计算机视觉
deeplabv3+实战,语义分割,深度学习,人工智能,计算机视觉
5.train.py
deeplabv3+实战,语义分割,深度学习,人工智能,计算机视觉

四、开始训练

一些主要的参数
deeplabv3+实战,语义分割,深度学习,人工智能,计算机视觉
deeplabv3+实战,语义分割,深度学习,人工智能,计算机视觉
deeplabv3+实战,语义分割,深度学习,人工智能,计算机视觉
然后就可以直接训练了:
deeplabv3+实战,语义分割,深度学习,人工智能,计算机视觉
也可以搭载服务器进行训练,可以看我之前的文章。

五、测试

训练完成之后,就可以进行测试了,下面直接看代码。

import torch
from modeling.deeplab_v3_50_modify_256 import deeplab_v3_50
import glob
import cv2
import os
from modeling.deeplab import *

from PIL import Image
from torchvision import transforms
from dataloaders.utils import  *
from utils.saver import save_colored_mask
num_class=3

path = 'test_image'
out_path='out_image'

test_images = glob.glob(os.path.join(path,"*.jpg"))

composed_transforms = transforms.Compose([transforms.ToTensor()])
totensor = transforms.ToTensor()

model=DeepLab(num_classes=num_class,backbone='drn')
model.load_state_dict(torch.load(r'D:\xiangmu\deeplaV3_run\run_hat\hat\deeplab-drn\model_best.pth.tar')['state_dict'])
model.eval()

def Normalize(img,mean,std):
    img = np.array(img).astype(np.float32)
    img /= 255.0
    img -= mean
    img /=std
    return img


for test_image in test_images:
    name=os.path.basename(test_image)
    name=name.replace('jpg','png')


    img = Image.open(test_image)
    img_norm = Normalize(img,mean=(0.485, 0.456, 0.406),std=(0.229, 0.224, 0.225))
    img_resize = cv2.resize(img_norm,(513,513))
    compose = composed_transforms(img_resize).unsqueeze(0)
    out = model(compose)
    pred=torch.argmax(out,1)[0].numpy()
    H,W=img_norm.shape[0],img_norm.shape[1]
    pred_orgin=cv2.resize(pred,(W,H),interpolation=cv2.INTER_NEAREST)
    out_file=os.path.join(out_path,name)
    save_colored_mask(pred_orgin,out_file)
    print('save {} 测试完成'.format(out_file))

测试的结果:
deeplabv3+实战,语义分割,深度学习,人工智能,计算机视觉文章来源地址https://www.toymoban.com/news/detail-790695.html

到了这里,关于搭建自己的语义分割平台deeplabV3+的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 图像分割实战-系列教程15:deeplabV3+ VOC分割实战3-------网络结构1

    有任何问题欢迎在下面留言 本篇文章的代码运行界面均在Pycharm中进行 本篇文章配套的代码资源已经上传 deeplab系列算法概述 deeplabV3+ VOC分割实战1 deeplabV3+ VOC分割实战2 deeplabV3+ VOC分割实战3 deeplabV3+ VOC分割实战4 deeplabV3+ VOC分割实战5 本项目的网络结构在network文件夹中,主要在

    2024年01月19日
    浏览(64)
  • DeepLabV3+:ASPP加强特征提取网络的搭建

    目录 ASPP结构介绍 ASPP在代码中的构建 参考资料 ASPP:Atrous Spatial Pyramid Pooling,空洞空间卷积池化金字塔。 简单理解就是个至尊版池化层,其目的与普通的池化层一致,尽可能地去提取特征。 利用主干特征提取网络,会得到一个浅层特征和一个深层特征,这一篇主要以如何对

    2024年02月16日
    浏览(69)
  • 改进 DeepLabV3+

    CFF结构图    10.28更新(解码复习)

    2024年02月13日
    浏览(43)
  • DeepLabv3+

    本文在进行语义分割任务时将空间金字塔池化(SPP)模块或encoder-decoder结构引入到深度神经网络中。以前的网络通过对输入的feature map使用多种尺度的卷积核或者池化操作以及多种感受野能够编码出多尺度的环境信息。而之后的一些工作中提出的网络通过逐渐恢复空间信息能

    2024年02月06日
    浏览(74)
  • Docker 部署深度学习 运行deeplabV3

    本文主要介绍docker发展历史,常用的镜像,容器命令。以及部署深度学习环境,运行deeplabV3 项目。 2010年,美国一家公司dotcloud做一些pass的云计算服务,lxc有关的容器技术,他们讲自己的技术(容器化技术)命名为Docker。 刚诞生的时候,没有引起关注,然后2013年,他们讲D

    2024年01月21日
    浏览(40)
  • DeepLabV3+:Mobilenetv2的改进以及浅层特征和深层特征的融合

    目录 Mobilenetv2的改进 浅层特征和深层特征的融合 完整代码 参考资料 在DeeplabV3当中,一般不会5次下采样,可选的有3次下采样和4次下采样。因为要进行五次下采样的话会损失较多的信息。 在这里mobilenetv2会从之前写好的模块中得到,但注意的是,我们在这里获得的特征是[-

    2024年01月19日
    浏览(56)
  • 憨批的语义分割重制版11——Keras 搭建自己的HRNetV2语义分割平台

    最近学了一下HRnet,代码真的好难看懂,还只有Pytorch版本的,Keras复现很有难度,作者写的逻辑很厉害,只能慢慢攻破啦! 传统的卷积神经网络模型是自上而下不断进行特征提取的,如VGG、Mobilenet、Resnet系列等,VGG网络中存在5个步长为(2, 2)最大池化,Mobilenet网络中存在5个步

    2023年04月21日
    浏览(52)
  • 【Bubbliiiing视频记录】Pytorch 搭建自己的Unet语义分割平台

    b站 地址 语义分割:对图像每个像素点进行分类 常见神经网络处理过程:Encoder提取特征,接着Docoder恢复成原图大小的图片 分为三个部分 主干特征提取部分: 卷积和最大池化的堆叠 获得五个初步有效特征层 加强特征提取部分: 五个初步有效特征层进行上采样 + 特征融合

    2024年02月12日
    浏览(41)
  • deeplabv3+源码之慢慢解析 第二章datasets文件夹(1)voc.py--voc_cmap函数和download_extract函数

    第一章deeplabv3+源码之慢慢解析 根目录(1)main.py–get_argparser函数 第一章deeplabv3+源码之慢慢解析 根目录(2)main.py–get_dataset函数 第一章deeplabv3+源码之慢慢解析 根目录(3)main.py–validate函数 第一章deeplabv3+源码之慢慢解析 根目录(4)main.py–main函数 第一章deeplabv3+源码之慢慢解析 根目

    2024年02月13日
    浏览(52)
  • MMSegmentation训练自己的语义分割数据集

    然后 ctrl +N 开启多边形标注即可,命名类为person 之后会保存到同目录下json文件: 下载labelme代码里的转换代码: labels里存储的如下形式 运行指令 生成如下 mmseg/datasets里生成一个my_data.py文件,这个文件存储的是类别信息和seg颜色 需要多加一个backbone mmseg/utils/class_names.py文件

    2024年02月10日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包