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

b2c交易流程全网关键词优化公司哪家好

b2c交易流程,全网关键词优化公司哪家好,四川手机网站开发,学院网站建设 好处论文《FarSee-Net: Real-Time Semantic Segmentation by Efficient Multi-scale Context Aggregation and Feature Space Super-resolution》原理解析及代码复现。 用自己的数据训练yolov11目标检测 实时语义分割之BiSeNetv2(2020)结构原理解析及建筑物提…

论文《FarSee-Net: Real-Time Semantic Segmentation by Efficient Multi-scale Context Aggregation and Feature Space Super-resolution》原理解析及代码复现。
用自己的数据训练yolov11目标检测
实时语义分割之BiSeNetv2(2020)结构原理解析及建筑物提取实践
实时语义分割之Deep Dual-resolution Networks(DDRNet2021)原理解析及建筑物提取实践
SegFormer 模型解析:结合 Transformer 的高效分割框架原理及滑坡语义分割实战

文章目录

  • 概要
  • 理论知识
    • 整体架构流程
      • 前端网络(frontend_network):基于ResNet的特征提取
      • 后端网络(backend_network):FASPP(基于空间金字塔池化的特征聚合)
  • 模型实践
    • 训练数据准备
    • 模型训练
    • 影像测试
    • 结果示例

概要

提示: (1)论文地址:https://arxiv.org/abs/2003.03913 (2)本人打包好数据可运行代码:FarSeeNet.zip 链接: https://pan.baidu.com/s/1febtaxNsKVVURu03IIacYA?pwd=1pve 提取码: 1pve
FarSee-Net包括前端、后端两个部分,前端采用ResNet基础的骨干网络确保了鲁棒的特征提取;而后端网络的FASPP模块则通过有效结合高低层特征进行精准分割。网络围绕两个关键思想构建:
1、高效的多尺度上下文聚合:模型整合了多层次的上下文信息,提高了分割精度,尤其是在物体大小差异较大的复杂场景中。
2、特征空间超分辨率:通过使用超分辨率技术,FarSee-Net增强了特征表示,使得在不显著增加计算开销的情况下,能够实现更高像素级别的精度。
精度效率对比

理论知识

整体架构流程

在这里插入图片描述

class FarSeeNet(nn.Module):def __init__(self, num_class=1, n_channel=3, backbone_type='resnet18', act_type='relu'):super().__init__()if 'resnet' in backbone_type:self.frontend_network = ResNet(backbone_type)high_channels = 512 if backbone_type in ['resnet18', 'resnet34'] else 2048low_channels = 256 if backbone_type in ['resnet18', 'resnet34'] else 1024else:raise NotImplementedError()self.backend_network = FASPP(high_channels, low_channels, num_class, act_type)def forward(self, x):size = x.size()[2:]_, _, x_low, x_high = self.frontend_network(x)x = self.backend_network(x_high, x_low)x = F.interpolate(x, size, mode='bilinear', align_corners=True)return x

FarSeeNet 由两部分组成:

  • frontend_network(主干网络):基于ResNet的特征提取。
  • backend_network(解码头):基于FASPP模块通过有效结合高低层特征进行精准分割。

前端网络(frontend_network):基于ResNet的特征提取

self.frontend_network = ResNet(backbone_type)
high_channels = 512 if backbone_type in ['resnet18', 'resnet34'] else 2048
low_channels = 256 if backbone_type in ['resnet18', 'resnet34'] else 1024

FarSee-Net的前端网络采用了ResNet架构。ResNet是一种著名的深度卷积网络,通过残差连接克服了梯度消失问题。前端网络输出低层和高层特征(分别为x_low和x_high),并将其传递给后端网络进一步处理。

  • 高层特征(深层):resnet18和resnet34为512个通道,较深的ResNet变体为2048个通道。
  • 低层特征(浅层):resnet18和resnet34为256个通道,较深的变体为1024个通道。

后端网络(backend_network):FASPP(基于空间金字塔池化的特征聚合)

在这里插入图片描述

代码逻辑(简化示意)

class FASPP(nn.Module):def __init__(self, high_channels, low_channels, num_class, act_type, dilations=[6,12,18], hid_channels=256):super().__init__()# 高层特征处理self.conv_high = nn.ModuleList([ConvBNAct(high_channels, hid_channels, 1, act_type)])for dt in dilations:self.conv_high.append(nn.Sequential(ConvBNAct(high_channels, hid_channels, 1, act_type),DWConvBNAct(hid_channels, hid_channels, 3, dilation=dt, act_type)))self.sub_pixel_high = nn.Sequential(conv1x1(hid_channels*4, hid_channels*2*(2**2)), nn.PixelShuffle(2))# 低层特征处理self.conv_low_init = ConvBNAct(low_channels, 48, 1, act_type)self.conv_low = nn.ModuleList([ConvBNAct(hid_channels*2+48, hid_channels//2, 1, act_type)])for dt in dilations[:-1]:self.conv_low.append(nn.Sequential(ConvBNAct(hid_channels*2+48, hid_channels//2, 1, act_type),DWConvBNAct(hid_channels//2, hid_channels//2, 3, dilation=dt, act_type)))self.conv_low_last = nn.Sequential(ConvBNAct(hid_channels//2*3, hid_channels*2, 1, act_type),ConvBNAct(hid_channels*2, hid_channels*2, act_type))self.sub_pixel_low = nn.Sequential(conv1x1(hid_channels*2, num_class*(4**2)), nn.PixelShuffle(4))def forward(self, x_high, x_low):# 处理高层特征high_feats = [conv_high(x_high) for conv_high in self.conv_high]x = torch.cat(high_feats, dim=1)x = self.sub_pixel_high(x)# 处理低层特征x_low = self.conv_low_init(x_low)x = torch.cat([x, x_low], dim=1)low_feats = [conv_low(x) for conv_low in self.conv_low]x = torch.cat(low_feats, dim=1)x = self.conv_low_last(x)x = self.sub_pixel_low(x)return x

1、高层特征处理(High-level Features):

  • self.conv_high:首先,使用一个 1x1 卷积层提取高层特征。然后,对于每个膨胀率 dilations 中的值,使用一个 1x1 卷积和一个带有不同膨胀率的深度可分离卷积(DWConv)来提取不同尺度的高层特征。
  • self.sub_pixel_high:将所有提取的高层特征合并,并通过一个 1x1 卷积和 PixelShuffle 层进行上采样,提升图像分辨率。

2、低层特征处理(Low-level Features):

  • self.conv_low_init:对低层输入特征图应用一个 1x1 卷积,初始化低层特征。
  • self.conv_low:随后,低层特征与高层特征拼接,并使用多个 1x1 卷积和深度可分离卷积来进一步处理低层特征。
  • self.conv_low_last:经过多个卷积处理后,最终的低层特征通过一个 1x1 卷积和卷积层进一步调整维度。
  • self.sub_pixel_low:类似于高层特征的处理,将低层特征通过一个 1x1 卷积和 PixelShuffle 层进行上采样。

3、前向传播:

  • 高层特征处理:通过 self.conv_high 进行一系列卷积操作,并将结果合并,最终通过 self.sub_pixel_high 层进行上采样。
  • 低层特征处理:低层输入通过 self.conv_low_init 进行初始化,然后与高层特征拼接,经过多层卷积处理后,最终通过 self.sub_pixel_low 层进行上采样,生成最终输出。

模型实践

训练数据准备

提示:云盘代码已内置少量山体滑坡数据集

训练数据分为原始影像和标签(二值化,0和255),均位于Sample文件夹内,数据相对路径为:

Sample\landslide\train\ IMG_T1
------------------\ IMG_LABEL
-------------\val \ IMG_T1
------------------\IMG_LABEL

本示例中影像尺寸不一,在dp0_train.py文件parser参数项,crop_height 、crop_width设置为256、256,训练数据在CDDataset_Seg定义中进行了resize,模型训练中均为256*256。

模型训练

运行dp0_train.py,模型开始训练,核心参数包括:

parser参数说明
num_epochs训练批次
learning_rate初始学习率
batch_size单次样本数量
dataset数据集名字
crop_height训练时影像重采样尺度

数据结构CDDataset_Seg定义在utils文件夹dataset.py中,注意读取后进行了数据增强(随机翻转),灰度化,尺寸调整,标签归一化、 one-hot 编码,以及维度和数据类型的转换,最终得到适用于 PyTorch 模型训练的张量。

        # 读取训练图片和标签图片image_t1 = cv2.imread(image_t1_path,-1)#image_t2 = cv2.imread(image_t2_path)label = cv2.imread(label_path)# 随机进行数据增强,为2时不做处理if self.data_augment:flipCode = random.choice([-1, 0, 1, 2])if flipCode != 2:
#                image_t1 = normalized(image_t1, 'tif')image_t1 = self.augment(image_t1, flipCode)#image_t2 = self.augment(image_t2, flipCode)label = self.augment(label, flipCode)        label = cv2.cvtColor(label, cv2.COLOR_BGR2GRAY)image_t1 = cv2.resize(image_t1, (self.img_h, self.img_w))#image_t2 = cv2.resize(image_t2, (Config.img_h, Config.img_w))label = cv2.resize(label, (self.img_h, self.img_w))label = label/255label = label.astype('uint8')label = onehot(label, 2)label = label.transpose(2, 0, 1)label = torch.FloatTensor(label)

训练过程如下图所示,模型保存至checkpoints数据集同名文件夹内。

影像测试

运行dp0_AllPre.py,核心参数包括:

parser参数说明
Checkpointspath预训练模型位置名称
Dataset批量化预测数据文件夹
Outputpath输出数据文件夹

数据加载方式:

    pre_dataset = CDDataset_Pre(data_path=pre_imgpath1,transform=transforms.Compose([transforms.ToTensor()]))pre_dataloader = torch.utils.data.DataLoader(dataset=pre_dataset,batch_size=1,shuffle=False,pin_memory=True,num_workers=0)

需要注意,预测定义的数据结构CDDataset_Pre与训练时CDDataset_Seg有区别,此处将其resize回原始尺寸,后续使用自己的数据训练时注意调整。

结果示例

滑坡检测结果示例
在这里插入图片描述

http://www.dtcms.com/wzjs/153918.html

相关文章:

  • 广告设计案例网站数据分析培训
  • 改进网站建设英文作文五种网络营销推广方法
  • 山东网站建设设计新媒体营销六种方式
  • 长沙网站制作的如何制作一个网页链接
  • 电子商务网站建设心得体会seo网络推广案例
  • 用flash做网站网站优化关键词排名
  • wordpress导航菜单均报404网站seo课程
  • 网站搭建同一页不同按钮不同页面网址大全导航
  • 做明信片的网站搜索指数的数据来源
  • 用微信做网站网络推广是诈骗吗
  • 酒店网站建设客服外包平台
  • 怎样注册个人网站aso优化技巧大aso技巧
  • 域名绑定空间后 一般多久能打开网站百度首页优化排名
  • 网站正在紧急建设中网站自动推广软件
  • 网站设计不包括上海正规seo公司
  • 比亚迪电子股票武汉seo人才
  • 关于拳馆网站建设计划书sem对seo的影响有哪些
  • 做网站最好的公司百度今日排行榜
  • 视频网站后台登陆网络营销的概念及内容
  • wordpress 地方生活搜索引擎优化分析
  • php动态网站开发案例答案今晚比赛预测比分
  • 广州番禺哪个公司建网站比较好产品软文是什么意思
  • 北京做网站设计公司5118和百度指数
  • 四川民主法制建设官方网站爱论坛
  • 外贸独立网站设计seo优化总结
  • 有网站代码 如何建设网站市场营销推广
  • 上海著名网站建设自己建网站
  • 网站商城的建设北京优化核酸检测
  • b2b网站开发技术文档网站排名优化软件哪家好
  • 网站用户管理系统aso优化平台