当前位置: 首页 > news >正文

上海做网站那家公司好巨量引擎广告投放

上海做网站那家公司好,巨量引擎广告投放,腾讯企点怎么用,wordpress淘宝客模版图像语义分割 pytorch复现DeepLab v1图像分割网络详解以及pytorch复现#xff08;骨干网络基于VGG16、ResNet50、ResNet101#xff09; 背景介绍2、 网络结构详解2.1 LarFOV效果分析 2.2 DeepLab v1-LargeFOV 模型架构2.3 MSc#xff08;Multi-Scale#xff0c;多尺度(预测… 图像语义分割 pytorch复现DeepLab v1图像分割网络详解以及pytorch复现骨干网络基于VGG16、ResNet50、ResNet101 背景介绍2、 网络结构详解2.1 LarFOV效果分析 2.2 DeepLab v1-LargeFOV 模型架构2.3 MScMulti-Scale多尺度(预测)2.3 以VGG16为特征提取骨干网络代码 背景介绍 论文名称Semantic Image Segmentation with Deep Convolutional Nets and Fully Connected CRFs 2014 年发表于 CVPRDeepLab v1 是一种用于语义分割的卷积神经网络模型其核心思想是结合了全局上下文信息以更好地理解图像中的语义内容。 论文中指出了当前图像语义分割的存在问题 下采样会导致图像的分辨率降低 在 DCNN 中通常通过池化层来进行信号下采样这是为了减少特征图的尺寸和参数数量。然而池化操作会导致特征图的空间分辨率降低从而损失了一部分细节信息。在图像标注任务中像素级的细节信息对于准确的标注非常重要因此信号下采样可能会影响标注的质量。 空间不敏感 DCNNs 在高级视觉任务中表现出色的一个原因是它们具有一定程度的平移、旋转、缩放等空间不变性。然而对于像素级标注任务如语义分割或像素级分类我们希望网络能够对每个像素点进行精细的标注这就需要网络具有较高的空间敏感性。然而DCNNs 的不变性特性可能导致在特征提取过程中丢失一些空间信息使得网络对于像素级标注任务不够敏感。 论文中解决以上两个问题的方案 1、采用空洞卷积2、采用fully-connected CRFCondition Random Fie(全连接条件随机场) CRF在语义分割领域是常用的方法但是在DeepLab V3之后便不再使用 网络优势 速度更快论文中说因为采用了膨胀卷积的原因但fully-connect CRF很耗时准确率更高相比之前最好的网络提升了7.2个点结构简单主要采用DCNN和CRFs级联构成 DeepLab本文提出的语义分割模型 MScMulti-Scale多尺度 CRF全连接条件随机场用于对图像进行后处理以改善分割或标注的结果。它通常用于在图像分割任务中对神经网络的输出进行精炼和优化 LargeFOV空洞卷积 2、 网络结构详解 DeepLab v1 的 Backbone 使用的是 VGG16作为主要的卷积神经网络架构2014年最牛逼的分类网络为VGG。在 DeepLab v1 中VGG16 的部分或全部全连接层被去除而只保留卷积层并通过空洞卷积Atrous Convolution来增大感受野从而实现对图像的全局上下文信息的捕获 VGG16 的结构包含 16 层卷积层和全连接层其中包括 13 个卷积层和 3 个全连接层。该模型在 ImageNet 数据集上进行了训练并在图像分类任务上取得了很好的性能。 2.1 LarFOV效果分析 将卷积核减小比如从原来的 kernel_size (7, 7) 变为 kernel_size (4, 4) 或 kernel_size (3, 3) 注意❗️ 这里替换全连接层的卷积层并非普通卷积层而是一个膨胀卷积它有一个膨胀系数 r可以扩大感受野。图中的 input stride 其实是膨胀系数 r。 2.2 DeepLab v1-LargeFOV 模型架构 VGG系列网络结构 DeepLab-LargeFOV 模型架构 经过上采样得到 224 × 224 × num class的特征图并非模型最终输出结果还要经过一个 Softmax 层后才是模型最终的输出结果。 Softmax 层的作用是将每个像素的类别预测转换为对应类别的概率。它会对每个像素的 num_classes 个类别预测进行归一化使得每个预测值都落在 0 到 1 之间并且所有类别的预测概率之和为 1。这样对于每个像素点我们可以得到每个类别的概率从而确定该像素属于哪个类别的概率最大。最终的输出结果通常是经过 Softmax 处理后的特征图其中每个像素点都包含了 num_classes 个类别的概率信息。 LargeFOV 本质上就是使用了膨胀卷积。 通过分析发现虽然 Backbone 是 VGG-16 但使用 Maxpool 略有不同VGG 论文中是 kernel2stride2但在 DeepLab v1 中是 kernel3stride2padding1。接着就是最后两个 Maxpool 层的 stride 全部设置成了 1这样下采样的倍率就从原来的 32 变成了 8。最后三个 3 × 3 的卷积层采用了膨胀卷积膨胀系数 r 2。然后关于将全连接层卷积化过程中对于第一个全连接层FC1在 FCN 网络中是直接转换成卷积核大小为 7 × 7卷积核个数为 4096 的卷积层普通卷积但在 DeepLab v1 中作者说是对参数进行了下采样最终得到的是卷积核大小 3 × 3 卷积核个数为 1024 的卷积层膨胀卷积这样不仅可以减少参数还可以减少计算量详情可以看下论文中的 Table2对于第二个全连接层FC2卷积核个数也由 4096 4096 采样成 1024普通卷积。将 FC1 卷积化后还设置了膨胀系数膨胀卷积论文 3.1 中说的是 r 4 但在 Experimental Evaluation 中 Large of View 章节里设置的是 r 12 对应 LargeFOV。对于 FC2 卷积化后就是卷积核 1 × 1 卷积核个数为 1024 的普通卷积层。接着再通过一个卷积核 1 × 1 卷积核个数为 num_classes包含背景的普通卷积层。最后通过 8 倍上采样还原回原图大小。 注意❗️采用的是双线性插值Bilinear Interpolation的策略来实现上采样双线性插值会考虑其周围 4 个最近的像素点根据距离权重进行插值计算。这样可以有效地将特征图还原到原始输入图像的大小使得网络的输出和输入在空间尺寸上保持一致 2.3 MScMulti-Scale多尺度(预测) 即融合多个特征层的输出 DeepLab-LargeFOV-MSc 模型架构 2.3 以VGG16为特征提取骨干网络代码 DeepLab-LargeFOV #!/usr/bin/python # -*- encoding: utf-8 -*-import torchvision import torch import torch.nn as nn import torch.nn.functional as F斜体样式 class DeepLabLargeFOV(nn.Module):def __init__(self, in_dim, out_dim, *args, **kwargs):super(DeepLabLargeFOV, self).__init__(*args, **kwargs)# vgg16 torchvision.models.vgg16()layers []layers.append(nn.Conv2d(in_dim, 64, kernel_size 3, stride 1, padding 1))layers.append(nn.ReLU(inplace True))layers.append(nn.Conv2d(64, 64, kernel_size 3, stride 1, padding 1))layers.append(nn.ReLU(inplace True))layers.append(nn.MaxPool2d(3, stride 2, padding 1))layers.append(nn.Conv2d(64, 128, kernel_size 3, stride 1, padding 1))layers.append(nn.ReLU(inplace True))layers.append(nn.Conv2d(128, 128, kernel_size 3, stride 1, padding 1))layers.append(nn.ReLU(inplace True))layers.append(nn.MaxPool2d(3, stride 2, padding 1))layers.append(nn.Conv2d(128, 256, kernel_size 3, stride 1, padding 1))layers.append(nn.ReLU(inplace True))layers.append(nn.Conv2d(256, 256, kernel_size 3, stride 1, padding 1))layers.append(nn.ReLU(inplace True))layers.append(nn.Conv2d(256, 256, kernel_size 3, stride 1, padding 1))layers.append(nn.ReLU(inplace True))layers.append(nn.MaxPool2d(3, stride 2, padding 1))layers.append(nn.Conv2d(256, 512, kernel_size 3, stride 1, padding 1))layers.append(nn.ReLU(inplace True))layers.append(nn.Conv2d(512, 512, kernel_size 3, stride 1, padding 1))layers.append(nn.ReLU(inplace True))layers.append(nn.Conv2d(512, 512, kernel_size 3, stride 1, padding 1))layers.append(nn.ReLU(inplace True))layers.append(nn.MaxPool2d(3, stride 1, padding 1))# 以下采用膨胀卷积layers.append(nn.Conv2d(512,512,kernel_size 3,stride 1,padding 2,dilation 2))layers.append(nn.ReLU(inplace True))layers.append(nn.Conv2d(512,512,kernel_size 3,stride 1,padding 2,dilation 2))layers.append(nn.ReLU(inplace True))layers.append(nn.Conv2d(512,512,kernel_size 3,stride 1,padding 2,dilation 2))layers.append(nn.ReLU(inplace True))layers.append(nn.MaxPool2d(3, stride 1, padding 1))self.features nn.Sequential(*layers)classifier []classifier.append(nn.AvgPool2d(3, stride 1, padding 1))classifier.append(nn.Conv2d(512,1024,kernel_size 3,stride 1,padding 12,dilation 12))classifier.append(nn.ReLU(inplaceTrue))classifier.append(nn.Conv2d(1024, 1024, kernel_size1, stride1, padding0))classifier.append(nn.ReLU(inplaceTrue))classifier.append(nn.Dropout(p0.5))classifier.append(nn.Conv2d(1024, out_dim, kernel_size1))self.classifier nn.Sequential(*classifier)self.init_weights()def forward(self, x):N, C, H, W x.size()x self.features(x)x self.classifier(x)x F.interpolate(x, (H, W), modebilinear, align_cornersTrue)return xdef init_weights(self):vgg torchvision.models.vgg16(pretrainedTrue)state_vgg vgg.features.state_dict()self.features.load_state_dict(state_vgg)for ly in self.classifier.children():if isinstance(ly, nn.Conv2d):nn.init.kaiming_normal_(ly.weight, a1)nn.init.constant_(ly.bias, 0)if __name__ __main__:net DeepLabLargeFOV(3, 10)in_ten torch.randn(1, 3, 224, 224)out net(in_ten)print(out.size())in_ten torch.randn(1, 3, 64, 64)mod nn.Conv2d(3,512,kernel_size 3,stride 1,padding 2,dilation 2)out mod(in_ten)print(out.shape)import osimport torchfrom torchsummary import summaryos.environ[CUDA_VISIBLE_DEVICES] 1device torch.device(cuda if torch.cuda.is_available() else cpu)netDeepLabLargeFOV(3,21).to(device)print(summary(net,(3,224,224)))print(torch.cuda.current_device())
http://www.pierceye.com/news/428054/

相关文章:

  • php网站开发外包北京网站建设迈程网络
  • 微信开发者平台取消授权seo资源网站排名
  • 将网站源码下载下来如何使用网站seo链接购买
  • 可信网站认证必须做苏州那里可以建网站
  • 手机网站底部代码有名的网站建设
  • 做一个网站需要多长时间网站制作有哪些种类
  • 做微信推送的网站小刘网站建设
  • 18款禁用软件app网站入口台州网站推广排名
  • 网站的服务内容济南网站制作方案
  • 微网站模板 phpwordpress 支付宝
  • wordpress dux主题破解安装全屏网站 图片优化
  • 一键建站公司做网站 怎么做留言
  • 制作的网站西安网页设计培训哪里有
  • 株洲市住房和城乡建设局门户网站中国建设银行官网站大同
  • 北京响应式网站制作公司wordpress邀请码注册
  • 衡阳网站开发有哪些公司怎么建设淘客自己的网站、
  • 国内扁平化网站欣赏什么站做咨询网站好
  • 评价校园网站建设范例wordpress插件获取数据库
  • 网站开发具体问题重庆装修公司排名前十名
  • 萝卜建站织梦网站采集如何做
  • 邢台在百度上做个网站河南营销网站建设联系方式
  • 电力建设科学技术进步申报网站教学工作总结
  • 做淘宝客必须建网站吗杭州网站优化效果
  • 网站开发有什么职位用vs做网站教程
  • 行业网站渠道选择和内容运营网站续费问题
  • 什么是seo优化推广阿里云网站建设优化
  • 信息发布型网站建设的特点免费
  • 陕西有限公司网站建设招标公告如何做影视网站的标题
  • wordpress网站百度搜索吗百度关键词推广怎么做
  • 马鞍山市网站建设服务有限公司计算机平面设计主要做什么