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

小型网站建设案例南京百度推广优化

小型网站建设案例,南京百度推广优化,河北建投商务网电子招标采购平台,东莞网络推广排名目录 一 SCINet 1 本文方法 ① 权重共享的照明学习 ② 自校准模块 ③ 无监督训练损失 二 使用SCINet助力YOLOv8在黑暗环境的目标检测效果 1 整体修改 2 配置文件 3 训练 其他 一 SCINet 官方论文地址#xff1a;https://arxiv.org/pdf/2204.10137 官方代码地址https://arxiv.org/pdf/2204.10137 官方代码地址GitCode - 开发者的代码家园 现有的弱光图像增强技术不仅难以处理视觉质量和计算效率问题而且在未知的复杂场景下通常无效。在本文中提出了一种新的自校准照明(SCI)学习框架用于在现实世界低光场景下快速灵活和鲁棒的增亮图像。具体来说建立了一个具有权重共享的级联照明学习过程来处理这个任务。作者考虑到级联模式的计算负担构建了自校准模块实现了各阶段结果之间的收敛产生了仅使用单个基本块进行推理的增益(但在以往的工作中尚未被利用)大大降低了计算成本。然后定义了无监督训练损失以提高模型适应一般场景的能力。进一步进行了全面的探索挖掘SCI的固有属性(现有作品所缺乏的)包括操作不敏感的适应性。最后大量的实验和消融研究充分表明了这一方法在质量和效率上的优势。在微光人脸检测和夜间语义分割等方面的应用充分显示了该方法潜在的实用价值。 在本文中成功地建立了一个轻量级而有效的框架即自校准照明(SCI)用于针对不同现实场景的低光图像增强。不仅对SCI的优良特性进行了深入的探索还进行了大量的实验证明了在弱光图像增强、暗人脸检测、夜间语义分割等方面的有效性和优越性。 1 本文方法 ① 权重共享的照明学习 建立了一个具有权重共享的级联照明学习过程来处理低照度图像增强的任务。各个阶段共享权重。 ② 自校准模块 构建了自校准模块减少计算负担实现了各阶段结果之间的收敛产生了仅使用单个基本块进行推理的增益。 ③ 无监督训练损失 定义了无监督训练损失以提高模型适应一般场景的能力。 下图为SCI的整个框架。在训练阶段SCI由照度估计和自校准模块组成。将自校准的模块映射添加到原始低照度输入中作为下一阶段照度估计的输入。注意这两个模块在整个训练过程中分别是共享参数。在测试阶段只使用单个照明估计模块。权重共享的照明学习和自校准模块的设计为减少计算量并且提升结果的稳定性。 下图为比较是否使用自校准模块时各阶段结果的t-SNE[21]分布。这说明了为什么可以使用单级进行测试即SCI中每级的结果都可以快速收敛到相同的值而w/o自校准模块却无法始终实现这一点。 以下为各方法对比结果 二 使用SCINet助力YOLOv8在黑暗环境的目标检测效果 整个结构的示意图如下所示 1 整体修改 ① 添加SCINet.py文件 在ultralytics/nn/modules目录下新建SCINet.py文件文件的内容如下 import torch import torch.nn as nn__all__ [EnhanceNetwork]class EnhanceNetwork(nn.Module):def __init__(self, layers, channels):super(EnhanceNetwork, self).__init__()kernel_size 3dilation 1padding int((kernel_size - 1) / 2) * dilationself.in_conv nn.Sequential(nn.Conv2d(in_channels3, out_channelschannels, kernel_sizekernel_size, stride1, paddingpadding),nn.ReLU())self.conv nn.Sequential(nn.Conv2d(in_channelschannels, out_channelschannels, kernel_sizekernel_size, stride1, paddingpadding),nn.BatchNorm2d(channels),nn.ReLU())self.blocks nn.ModuleList()for i in range(layers):self.blocks.append(self.conv)self.out_conv nn.Sequential(nn.Conv2d(in_channelschannels, out_channels3, kernel_size3, stride1, padding1),nn.Sigmoid())def forward(self, input):fea self.in_conv(input)for conv in self.blocks:fea fea conv(fea)fea self.out_conv(fea)illu fea inputillu torch.clamp(illu, 0.0001, 1)return illuclass CalibrateNetwork(nn.Module):def __init__(self, layers, channels):super(CalibrateNetwork, self).__init__()kernel_size 3dilation 1padding int((kernel_size - 1) / 2) * dilationself.layers layersself.in_conv nn.Sequential(nn.Conv2d(in_channels3, out_channelschannels, kernel_sizekernel_size, stride1, paddingpadding),nn.BatchNorm2d(channels),nn.ReLU())self.convs nn.Sequential(nn.Conv2d(in_channelschannels, out_channelschannels, kernel_sizekernel_size, stride1, paddingpadding),nn.BatchNorm2d(channels),nn.ReLU(),nn.Conv2d(in_channelschannels, out_channelschannels, kernel_sizekernel_size, stride1, paddingpadding),nn.BatchNorm2d(channels),nn.ReLU())self.blocks nn.ModuleList()for i in range(layers):self.blocks.append(self.convs)self.out_conv nn.Sequential(nn.Conv2d(in_channelschannels, out_channels3, kernel_size3, stride1, padding1),nn.Sigmoid())def forward(self, input):fea self.in_conv(input)for conv in self.blocks:fea fea conv(fea)fea self.out_conv(fea)delta input - feareturn deltaclass Network(nn.Module):def __init__(self, stage3):super(Network, self).__init__()self.stage stageself.enhance EnhanceNetwork(layers1, channels3)self.calibrate CalibrateNetwork(layers3, channels16)self._criterion LossFunction()def weights_init(self, m):if isinstance(m, nn.Conv2d):m.weight.data.normal_(0, 0.02)m.bias.data.zero_()if isinstance(m, nn.BatchNorm2d):m.weight.data.normal_(1., 0.02)def forward(self, input):ilist, rlist, inlist, attlist [], [], [], []input_op inputfor i in range(self.stage):inlist.append(input_op)i self.enhance(input_op)r input / ir torch.clamp(r, 0, 1)att self.calibrate(r)input_op input attilist.append(i)rlist.append(r)attlist.append(torch.abs(att))return ilist, rlist, inlist, attlistdef _loss(self, input):i_list, en_list, in_list, _ self(input)loss 0for i in range(self.stage):loss self._criterion(in_list[i], i_list[i])return lossclass Finetunemodel(nn.Module):def __init__(self, weights):super(Finetunemodel, self).__init__()self.enhance EnhanceNetwork(layers1, channels3)self._criterion LossFunction()base_weights torch.load(weights)pretrained_dict base_weightsmodel_dict self.state_dict()pretrained_dict {k: v for k, v in pretrained_dict.items() if k in model_dict}model_dict.update(pretrained_dict)self.load_state_dict(model_dict)def weights_init(self, m):if isinstance(m, nn.Conv2d):m.weight.data.normal_(0, 0.02)m.bias.data.zero_()if isinstance(m, nn.BatchNorm2d):m.weight.data.normal_(1., 0.02)def forward(self, input):i self.enhance(input)r input / ir torch.clamp(r, 0, 1)return i, rdef _loss(self, input):i, r self(input)loss self._criterion(input, i)return loss ② 修改ultralytics/nn/tasks.py文件 具体的修改内容如下图所示 修改parse_model函数的内容如下所示 2 配置文件 yolov8_SCINet.yaml 的内容与原版对比 3 训练 上述修改完毕后开始训练吧 训练示例 yolo taskdetect modetrain modelcfg/models/v8/yolov8_SCINet.yaml datacfg/datasets/coco128.yaml epochs200 batch16 devicecpu projectyolov8 其他 说明私信问题不回答了哈有问题可以评论会随缘回答哈。希望理解哈 ❤️   ❤️   到此本文分享的内容就结束啦遇见便是缘感恩遇见 ❤️
http://www.w-s-a.com/news/134078/

相关文章:

  • 衣服网站建设策划书广州住房和城乡建设部网站
  • 微商城科技淄博网站建设优化seo
  • 杭州 网站设计制作东圃手机网站开发
  • 网站文章页内链结构不好可以改吗微信平台如何开发
  • 炫酷业务网站课程网站如何建设方案
  • 网站建设服务器可以租吗wordpress微信打赏
  • 网站制作的重要流程图大连网站优化快速排名
  • 河南省住房建设厅官方网站注册公司邮箱需要什么
  • 美橙网站注册华为手机网站建设策划方案论文
  • 河南省和建设厅网站首页在线图片翻译
  • 关于备案空壳网站清理通知去别人网站挂黑链
  • 做网站待遇世界购物平台排行榜
  • 售后服务网站什么网站免费做简历模板
  • 网站模板怎么修改成都网站优化seo
  • 给装修公司做推广的网站wordpress站点的根目录
  • 怎么创建企业网站wordpress怎么做404页面跳转
  • 福建省住房和建设厅网站网站做著作权
  • 编程代码网站网站搭建的注意事项
  • 音乐网站排名公司如何做自己的网站
  • 网站设计模式三网合一网站源代码
  • 珠海市品牌网站建设哪家好宛城区网站制作
  • 网站维护工程师代写文章兼职
  • 贵州城乡和建设厅网站企业网站备案名称窍门
  • .cc后缀网站湛江霞山
  • 青岛制作网站软件ui设计培训哪里好
  • 网站建设的构思环保公司宣传册设计样本
  • 如何做微网站网站和网店的区别
  • 免费下载建设银行官方网站下载天河区做网站
  • 中文网站建设开发北京网站建设公司升上去
  • 邯郸网站设计 贝壳下拉服务器绑定网站打不开