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

网站建设全屏网站建设销售人员培训教程

网站建设全屏,网站建设销售人员培训教程,徐州百姓网发布信息,php服装网站模板欢迎访问个人网络日志🌹🌹知行空间🌹🌹 文章目录1.基础介绍2.分类网络转换成全卷积分割网络3.转置卷积进行上采样4.特征融合5.一个pytorch源码实现参考资料1.基础介绍 论文:Fully Convolutional Networks for Semantic Segmentati…

欢迎访问个人网络日志🌹🌹知行空间🌹🌹


文章目录

    • 1.基础介绍
    • 2.分类网络转换成全卷积分割网络
    • 3.转置卷积进行上采样
    • 4.特征融合
    • 5.一个pytorch源码实现
    • 参考资料

1.基础介绍

论文:Fully Convolutional Networks for Semantic Segmentation

Fully Convolutional Networks, FCN是2014年11月UC BerkeleyJonathan Long等提交的论文中提出的。论文的主要工作是设计了用于语义分割的全卷积网络结构,能够实现端到端的训练,输出逐像素的稠密预测结果。因为使用了全卷积结构,可以不用限制输入的大小。全卷积网络借用了分类网络的预训练权重,在下采样特征提取部分可以使用分类网络模型的权重。

FCN网络中作者的主要工作有三部分:

  • 1)将分类网络转换成用于分割任务的全卷积网络
  • 2)使用转置卷积进行上采样得到分割输出,不再同以往的方法使用shift-stitch方法
  • 3)将低层的空间信息和高层的语义信息相融合,fuse what and where information

2.分类网络转换成全卷积分割网络

分类任务中,网络模型中多使用了全连接层,因此要求固定的网络输入,如alexnet/vgg/googlenet等,作者认为,全连接和卷积操作是类似的,都是加权求和,只不过全连接层应当被看成感受野是整个特征图的卷积层。将全连接层换成卷积层,可以给模型任意大小的输入,输出相应大小的分割图。

在这里插入图片描述

如上图,移除特征提取后的全连接层前的flatten操作,将全连接换成卷积层,在这里可以得到10x10的带空间位置信息的预测热力图。

通过对此添加上采样层,并对网络使用带空间信息的损失函数,可以得到用于语义分割的全连接网络模型:

在这里插入图片描述

如上图就是一个可以端到端训练的全卷积语义分割模型。

3.转置卷积进行上采样

使用分类网络进行特征提取的过程中,使用了池化层,对特征图进行了下采样,这会导致细节信息的丢失,导致得到的分割结果比较粗糙。在以往的分割算法中,对于这种情况使用的是shift-stitch方法。

假设降采样因子为s,那么output map(这里为了简单起见,仅考虑二维)的spatial size则是input的 1/s,向左或向上(向右向下情况一样平移input map,偏移量为(x,y), 其中,x,y∈{0,1,..,s−1}x,y\in\{0,1,..,s-1\}x,y{0,1,..,s1}。这样就得到 s2s^2s2个 inputs,通过网络前向传播自然得到 s2s^2s2 个outputs,将outputs 交织成与origin input 大小相同的output map,就实现了pixel级别的dense prediction。

设网络只有一层 2x2 的maxpooling 层且 stride = 2,所以下采样因子 为2, 我们需要对input image 的 pixels 平移 (x,y)个单位,即将 image 向左平移 x 个pixels , 再向上平移y个单位,整幅图像表现向左上方向平移,空出来的右下角就以0 padding 。我们当然可以采取 FCN论文中的做法,将图像向右下角平移,空出来的左上角用 0 padding ,这两种做法产生的结果是一致的,没有本质区别。(x,y) 取(0,0), (0,1),(1,0),(1,1) 后,就产生了 s2=4s^2=4s2=4个input,不妨记为: shifted input (0,0)、shifted input (0,1),shifted input (1,0),shifted input (1,1)(图中的数字表示像素值,不是索引值 )。

在这里插入图片描述

4个input分别进行 2x2 的maxpooling操作后,共产生了4个output,
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OVbCsXXV-1678278382307)(/images/Segmentation/2FCN/3.jpeg)]

最后,stitch the 4 different output获得dense prediction,
在这里插入图片描述

以上就是shift-and-stitch的过程,引用自1

以上可以看到,对于一个图像需要输入预测s2s^2s2次,比较耗时。

FCN中作者使用转置卷积作为上采样层,通过可学习的参数对特征图进行插值上采样,能够得到更好的结果。

在这里插入图片描述

关于转置卷积的详细介绍可以参考3.转置卷积

4.特征融合

作者在论文中还提到的是combine what and where,具体是指在分类网络的特征提取下采样过程中,随着网络变深,卷积感受野变大,因此,高层卷积的特征图中包含更多的语义信息(更有全局视野,空间信息丰富,know where),而低层卷积的特征图包含更多的细节信息(know what),为了改善语义分割的结果,自然的想法就是将低层和高层特征图信息相融合。

在这里插入图片描述

在这里FCN-32s直接将pooling5层的输出进行32倍上采样得到的分割结果,FCN-16s是将pooling4的结果和pool5的结果2x上采样后element-wise求和得到的,同样的方式可以得到FCN-8s。作者在实验部分也指出了,融合what and where特征后输出的分割结果更好,如下图所示。

在这里插入图片描述

在这里特征融合使用的方式是size相同的特征图,元素间相加求和,如此将低层卷积的结果传递给高层特征图,这种方式和ResNet的恒等映射思想有些相似,不过ResNet是2015年12月提交的论文。除了element-wise求和外,还有不少论文使用的是concatenation on channel,像2015年05月份的U-Net,2021年04月份的STDCNet等。

5.一个pytorch源码实现

参考自3

class FCN16s(nn.Module):def __init__(self, pretrained_net, n_class):super().__init__()self.n_class = n_classself.pretrained_net = pretrained_netself.relu    = nn.ReLU(inplace=True)self.deconv1 = nn.ConvTranspose2d(512, 512, kernel_size=3, stride=2, padding=1, dilation=1, output_padding=1)self.bn1     = nn.BatchNorm2d(512)self.deconv2 = nn.ConvTranspose2d(512, 256, kernel_size=3, stride=2, padding=1, dilation=1, output_padding=1)self.bn2     = nn.BatchNorm2d(256)self.deconv3 = nn.ConvTranspose2d(256, 128, kernel_size=3, stride=2, padding=1, dilation=1, output_padding=1)self.bn3     = nn.BatchNorm2d(128)self.deconv4 = nn.ConvTranspose2d(128, 64, kernel_size=3, stride=2, padding=1, dilation=1, output_padding=1)self.bn4     = nn.BatchNorm2d(64)self.deconv5 = nn.ConvTranspose2d(64, 32, kernel_size=3, stride=2, padding=1, dilation=1, output_padding=1)self.bn5     = nn.BatchNorm2d(32)self.classifier = nn.Conv2d(32, n_class, kernel_size=1)def forward(self, x):output = self.pretrained_net(x)x5 = output['x5']  x4 = output['x4']  score = self.relu(self.deconv1(x5))               score = self.bn1(score + x4)                      score = self.bn2(self.relu(self.deconv2(score)))  score = self.bn3(self.relu(self.deconv3(score)))  score = self.bn4(self.relu(self.deconv4(score)))  score = self.bn5(self.relu(self.deconv5(score)))  score = self.classifier(score)                   return score  

欢迎访问个人网络日志🌹🌹知行空间🌹🌹


参考资料

  • 1.https://zhuanlan.zhihu.com/p/56035377
  • 2.https://medium.com/image-processing-and-ml-note/fcn-fully-convolutional-network-semantic-segmentation-b81fdcc3c845
  • 3.https://github.com/bat67/pytorch-FCN-easiest-demo/blob/master/FCN.py
http://www.yayakq.cn/news/935637/

相关文章:

  • 全自动网站制作源码地产行业型网站开发
  • 中国建设银行国际互联网站公司网站过期未续费会怎样
  • 网站目录管理模版网址导航模板
  • 广州网站建设公司怎么样莆田网站格在哪里做
  • 岳阳网站设计公司ipad 设计网站
  • 网站设置首页连接分类页的视频教程嘉兴首页
  • 手机html5网站源码科技软件公司网站模板
  • 网站举报官网黄石网站开发
  • 做电影网站需要什么服务器中国工程信息网站
  • 网站的赚钱方式网站建设需求范本
  • 网站欢迎页面flash淘宝网站建设基本流程图
  • 家具网站建设比较好的网络工程师要学多久
  • 免费建网站 手机网站建设网站的公司哪个济南兴田德润怎么联系
  • 外链网站汕头企业制作网站
  • 怎么做网站的排名宁波企业免费建站
  • 南宁网站建设网站建设网站开发教程PDF微盘下载
  • 阿里云做网站怎么挣钱健康服务管理中心
  • 网站建设好找工作海兴县做网站价格
  • 网站怎么排版现在出入邯郸最新规定
  • 空间站 参考消息关键词优化网站
  • 网站后台安全性配置网站开发的初级技术员
  • 广安市建设局网站网络营销做的好的企业
  • 网站建设众筹discuz做资讯网站合适吗
  • 江西建设职业技术学院招生信息网站国外免备案虚拟主机
  • 网站 免费空间住房城乡建设部 网站
  • 怎样做网站的源代码黄石网站制作公司
  • 集团公司网站模板潍坊哪里有做360网站的
  • 广州建网站自助建站系统国家商标注册官网
  • 平度网站建设费用网站建设结论与改进
  • 手机网站怎么导入微信西安学校网站建设报价