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

注册企业邮箱号wordpress 优化js

注册企业邮箱号,wordpress 优化js,备案名称和网站名称不一致,百度网盘如何获得2t免费空间上节研究了PaddleOCR文本检测v3模型的骨干网,本文接着研究其颈部网络。 文章目录 研究起点残注层颈部网络代码实验小结 研究起点 摘取开源yml配置文件,摘取网络架构Architecture中颈部网络的配置如下 Neck:name: RSEFPNout_channels: 96shortcut: True可…

上节研究了PaddleOCR文本检测v3模型的骨干网,本文接着研究其颈部网络。

文章目录

  • 研究起点
  • 残注层
  • 颈部网络
  • 代码实验
  • 小结

研究起点

摘取开源yml配置文件,摘取网络架构Architecture中颈部网络的配置如下

  Neck:name: RSEFPNout_channels: 96shortcut: True

可以看出颈部网络的名称为RSEFPN,这个名字可以拆开来做如下理解:

  • R
    代表残差(Residual),即输入特征与中间输出特征做加法,形成最终输出特征。
  • SE
    代表压发层(Squeeze&Excitation),即通道注意力机制,通过压制与发扬,减弱低效通道作用,强化高效通道效能,详情参考上一节分析。
  • FPN
    代表特征金字塔(FeaturePyramidNetwork),即在各个不同尺度上提取目标特征,形成一个原始图像从整体到细节的全方位理解。参照上节的分析,骨干网通过四个阶段,分别在1/4、1/8、1/16、1/32等四个层次上进行操作。

通过搜索,可以找到RSEFPN类的定义在db_fpn.py文件的246-304行,官方链接请参考gitee。

残注层

RSELayer的代码,在db_fpn.py文件的221-243行,包含一个卷积层和一个压发层,这里将RSELayer中文名称取为残注层,意思是既有残差的含义,也有注意力机制的含义。阅读源代码,可以将RSELayer的结构图示如下:
残注层
从上到下看残注层结构示意图,首先是传入了一个输入通道数c_in的张量,结构为c_in,h,w,经过一个卷积核为k_in步长为1的卷归层的处理,输出一个结构为c_out,h,w的张量,其中c_out代表设置的输出通道数。接着是一个压发层SEModule,不改变输入张量结构。最后根据shortcut参数是否为True,来决定是否将压发层的结果与压发层的输入做加法。

颈部网络

有了上节残注层的基础知识,RSEFPN类的源码就能看懂。但代码阅读,远没有图来得直观。通过总结理解RSEFPN的代码,可以形成如下颈部网络示意图:
RSEFPN通过上图,可以将颈部网络划分为如下几个部分:

  • 对接
    需要从骨干网四个阶段输出,依此承接,参照上图左侧虚线部分,详情见上节都骨干网的分析。
  • 通道统一
    通过四个残注层RSELayer,将骨干网四阶段输出,统一转为96通道,宽高不变,依此形成in5/in4/in3/in2四层输出。
  • 上采样
    通过三个scale为2的上采样操作,将细粒度下层特征放大,并与上层结果做加法,实现各层次视觉信息的融合,依此形成out4/out3/out2
  • 通道压缩
    通过四个卷积核大小为3的残注层RSELayer,将上采样结果进行通道压缩,将原通道数缩为1/4,依此形成p5/p4/p3/p2
  • 聚合
    将通道压缩结果,依此做scale=8/4/2的上采样,将所有四层金字塔视觉信息处理成果统一转为通道数、宽、高一致的信息,在通道维度上做拼接,最终将骨干网16/24/56/480通道的四阶段输出,结果颈部网络RSEFPN的处理,形成96通道的输出,宽高与骨干网stage0的输出一致。

代码实验

下面做python的代码实践。通过paddle.summary函数调用,得到以下输出:

--------------------------------------------------------------------------------Layer (type)         Input Shape          Output Shape         Param #    
================================================================================Conv2D-82        [[5, 480, 2, 10]]      [5, 96, 2, 10]        46,080     
AdaptiveAvgPool2D-15   [[5, 96, 2, 10]]      [5, 96, 1, 1]            0       Conv2D-83         [[5, 96, 1, 1]]       [5, 24, 1, 1]          2,328     Conv2D-84         [[5, 24, 1, 1]]       [5, 96, 1, 1]          2,400     SEModule-15        [[5, 96, 2, 10]]      [5, 96, 2, 10]           0       RSELayer-7       [[5, 480, 2, 10]]      [5, 96, 2, 10]           0       stage3->in5Conv2D-76         [[5, 56, 4, 20]]      [5, 96, 4, 20]         5,376     
AdaptiveAvgPool2D-13   [[5, 96, 4, 20]]      [5, 96, 1, 1]            0       Conv2D-77         [[5, 96, 1, 1]]       [5, 24, 1, 1]          2,328     Conv2D-78         [[5, 24, 1, 1]]       [5, 96, 1, 1]          2,400     SEModule-13        [[5, 96, 4, 20]]      [5, 96, 4, 20]           0       RSELayer-5        [[5, 56, 4, 20]]      [5, 96, 4, 20]           0       stage2->in4Conv2D-70         [[5, 24, 8, 40]]      [5, 96, 8, 40]         2,304     
AdaptiveAvgPool2D-11   [[5, 96, 8, 40]]      [5, 96, 1, 1]            0       Conv2D-71         [[5, 96, 1, 1]]       [5, 24, 1, 1]          2,328     Conv2D-72         [[5, 24, 1, 1]]       [5, 96, 1, 1]          2,400     SEModule-11        [[5, 96, 8, 40]]      [5, 96, 8, 40]           0       RSELayer-3        [[5, 24, 8, 40]]      [5, 96, 8, 40]           0       stage1->in3Conv2D-64        [[5, 16, 16, 80]]     [5, 96, 16, 80]         1,536     
AdaptiveAvgPool2D-9   [[5, 96, 16, 80]]      [5, 96, 1, 1]            0       Conv2D-65         [[5, 96, 1, 1]]       [5, 24, 1, 1]          2,328     Conv2D-66         [[5, 24, 1, 1]]       [5, 96, 1, 1]          2,400     SEModule-9       [[5, 96, 16, 80]]     [5, 96, 16, 80]           0       RSELayer-1       [[5, 16, 16, 80]]     [5, 96, 16, 80]           0       stage0->in2Conv2D-85         [[5, 96, 2, 10]]      [5, 24, 2, 10]        20,736     
AdaptiveAvgPool2D-16   [[5, 24, 2, 10]]      [5, 24, 1, 1]            0       Conv2D-86         [[5, 24, 1, 1]]        [5, 6, 1, 1]           150      Conv2D-87          [[5, 6, 1, 1]]       [5, 24, 1, 1]           168      SEModule-16        [[5, 24, 2, 10]]      [5, 24, 2, 10]           0       RSELayer-8        [[5, 96, 2, 10]]      [5, 24, 2, 10]           0       in5->p5Conv2D-79         [[5, 96, 4, 20]]      [5, 24, 4, 20]        20,736     
AdaptiveAvgPool2D-14   [[5, 24, 4, 20]]      [5, 24, 1, 1]            0       Conv2D-80         [[5, 24, 1, 1]]        [5, 6, 1, 1]           150      Conv2D-81          [[5, 6, 1, 1]]       [5, 24, 1, 1]           168      SEModule-14        [[5, 24, 4, 20]]      [5, 24, 4, 20]           0       RSELayer-6        [[5, 96, 4, 20]]      [5, 24, 4, 20]           0       out4->p4Conv2D-73         [[5, 96, 8, 40]]      [5, 24, 8, 40]        20,736     
AdaptiveAvgPool2D-12   [[5, 24, 8, 40]]      [5, 24, 1, 1]            0       Conv2D-74         [[5, 24, 1, 1]]        [5, 6, 1, 1]           150      Conv2D-75          [[5, 6, 1, 1]]       [5, 24, 1, 1]           168      SEModule-12        [[5, 24, 8, 40]]      [5, 24, 8, 40]           0       RSELayer-4        [[5, 96, 8, 40]]      [5, 24, 8, 40]           0       out3->p3Conv2D-67        [[5, 96, 16, 80]]     [5, 24, 16, 80]        20,736     
AdaptiveAvgPool2D-10  [[5, 24, 16, 80]]      [5, 24, 1, 1]            0       Conv2D-68         [[5, 24, 1, 1]]        [5, 6, 1, 1]           150      Conv2D-69          [[5, 6, 1, 1]]       [5, 24, 1, 1]           168      SEModule-10       [[5, 24, 16, 80]]     [5, 24, 16, 80]           0       RSELayer-2       [[5, 96, 16, 80]]     [5, 24, 16, 80]           0       out2->p2
================================================================================
Total params: 158,424
Trainable params: 158,424
Non-trainable params: 0
--------------------------------------------------------------------------------
Input size (MB): 0.81
Forward/backward pass size (MB): 23.39
Params size (MB): 0.60
Estimated Total Size (MB): 24.80
--------------------------------------------------------------------------------

主要输出与上节图形残注层RSELayer的对应关系,备注在行尾。

小结

本文分析了残注层RSELayer的内部结构,了解到卷归层和压发层是其内核;分析了颈部网络RSEFPN的四层金字塔结构,以及颈部网络与骨干网络的对接关系;做了简单的代码实验,将实战输出与图形描述进行了对应标注。代码实验参见gitee。

http://www.yayakq.cn/news/151129/

相关文章:

  • pathon做网站网站建设要那些收费项
  • 住房和城乡建设部办公厅网站做a网站
  • 广东佛山如何制作网站公司山东青岛网站制作公司
  • 浦江县做网站加州网络公司排名
  • 网站建设要花在哪些项目上最低成本做企业网站 白之家
  • 做网站怎么收集资料网站落地页怎么做的
  • 网站规划与设计网站页面喜满堂网站建设
  • 免费的网站cmsapp与移动网站开发资料
  • 智能写作网站网站备案状态查询
  • 苏州住房建设局网站如何分析他人网站流量
  • 中国建设工程造价管理协会网站简称2023年新闻热点事件摘抄
  • 专业网站设计制作优化排名河北廊坊网站建设
  • 郑州网站推广上海建设银行官网网站首页
  • 公司网站建设需要哪些方面湖北做网站系统哪家好
  • 厦门无忧网站建设有限公司做网站年入百万
  • 个人网站怎么挣钱建设境外网站需要什么手续
  • 北京礼品网站建设网站联系方式修改织梦
  • 网站建设备案优化之看网站的优化怎么做
  • 石大远程在线考试 《网页设计与网站建设》如何为公司做网站
  • 网站后台管理系统背景图片三星网上商城app官方版
  • 找人做淘宝网站需要多少钱wordpress导航页面样式
  • 1号店网站模板下载网站建设国际标准
  • html5 服装网站淘宝客怎么做网站导购
  • 网站一般采用的设计方案进一步优化
  • 怎么用2级目录做网站电商app系统开发公司
  • 潍城区住房和城乡建设局网站谷歌浏览器搜索引擎入口
  • 洛阳霞光营销型网站山西省住房建设厅网站
  • 重庆营销型网站开发公司龙宜推广公司是正规吗
  • 佛山公司网站设计网站的建设目标
  • 50万做网站硬件开发和嵌入式的区别