Deeplab系列,核心ASPP

前言

Deeplab系列网络是由Geogle所提出,V2以后主要是引入了atrous spatial pyramid pooling(ASPP),利用不同膨胀因子的空洞卷积融合多尺度信息。其实就是利用空洞卷积(带孔卷积)用不同的rate来对图像特征进行操作的。
在这里插入图片描述

其具体结构如图所示:特征经过pooling5以后,分别采用了33卷积,rate不同,进行多尺度特征融合,后两层都用11卷积,最后相加。

代码实现

总的来说ASPP的代码架构还是非常好实现的

#################ASPP

import tensorflow as tf


x = tf.placeholder(tf.float32,[None, 500, 500, 3])#输入图片大小

def ASPP(x, rate1, rate2, rate3, rate4, channel):
    ##第一层
    layer1_1=tf.layers.conv2d(x,channel,3,strides=1, padding='same',dilation_rate=rate1)
    layer1_2=tf.layers.conv2d(x,channel,3,strides=1, padding='same',dilation_rate=rate2)
    layer1_3=tf.layers.conv2d(x,channel,3,strides=1, padding='same',dilation_rate=rate3)
    layer1_4=tf.layers.conv2d(x,channel,3,strides=1, padding='same',dilation_rate=rate4)
    ##第二层
    layer1_1=tf.layers.conv2d(layer1_1,channel,1,strides=1, padding='same')
    layer1_2=tf.layers.conv2d(layer1_2,channel,1,strides=1, padding='same')
    layer1_3=tf.layers.conv2d(layer1_3,channel,1,strides=1, padding='same')
    layer1_4=tf.layers.conv2d(layer1_4,channel,1,strides=1, padding='same')    
    #第三层
    layer1_1=tf.layers.conv2d(layer1_1,channel,1,strides=1, padding='same')
    layer1_2=tf.layers.conv2d(layer1_2,channel,1,strides=1, padding='same')
    layer1_3=tf.layers.conv2d(layer1_3,channel,1,strides=1, padding='same')
    layer1_4=tf.layers.conv2d(layer1_4,channel,1,strides=1, padding='same')      
    
    output=layer1_1+layer1_2+layer1_3+layer1_4
    return output
    
    
    
    
layer1=tf.layers.conv2d(x,256,3,strides=1, padding='same')
layer1=tf.nn.relu(layer1)
layer2=ASPP(layer1,2,4,6,8,256)
print(layer2)
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值