当前位置:网站首页>FCN: Fully Convolutional Networks for Semantic Segmentation
FCN: Fully Convolutional Networks for Semantic Segmentation
2022-07-05 18:23:00 【00000cj】
paper: Fully Convolutional Networks for Semantic Segmentation
Innovation points
The structure of full convolution is proposed , That is, the last full connection layer of the classified network is replaced by the convolution layer , Thus, the input of any size can be processed .
Up sampling by deconvolution or interpolation , Restore the output back to the original input size .
Modify on the classification network , Replace the full connection layer with the convolution layer , You can share the weight of the previous layer , So as to carry out finetune.
Put forward skip structure , By combining shallow and deep features , It takes into account the shallow spatial details and deep semantic information , Make the final segmentation result more refined .
Implementation details analysis
Here we use MMSegmentation As an example , Compared with the original paper ,backbone from Vgg-16 Instead of ResNet-50,skip The structure is replaced by expansion convolution ,pytorch The official implementation is also like this .
Backbone
- The original ResNet-50 in 4 individual stage Of strides=(1, 2, 2, 2), Do not use expansion convolution, that is dilations=(1, 1, 1, 1), And in the FCN in 4 individual stage Of strides=(1, 2, 1, 1),dilations=(1, 1, 2, 4).
- There's another one contract_dilation=True Set up , That is, when the hole >1 when , Compress the first convolution . Here are the third and fourth stage One of the first bottleneck Halve the expansion rate , The third stage One of the first bottleneck Expansion convolution is not used in , The fourth one stage One of the first bottleneck in dilation=4/2=2.
- In addition, here we use ResNetV1c, namely stem Medium 7x7 Convolution is replaced by 3 individual 3x3 Convolution .
- Last , Pay attention to the padding, In the original implementation, except stem in 7x7 Convolution padding=3, Everything else padding=1. stay FCN Because of the expansion convolution , The latter two stage Of stride=1, In order to keep the input and output resolution always , From the following formula padding=dilation.
- hypothesis batch_size=4, Model input shape=(4, 3, 480, 480), be backbone four stage The outputs of are (4, 256, 120, 120)、(4, 512, 60, 60)、(4, 1024, 60, 60)、(4, 2048, 60, 60).
FCN Head
- take ResNet The fourth one stage Output (4, 2048, 60, 60), after Conv2d(2048, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False)、Conv2d(512, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) Two conv-bn-relu obtain (4, 512, 60, 60).
- The output of the previous step (4, 512, 60, 60) With the input (4, 2048, 60, 60) Spliced to get (4, 2560, 60, 60).
- Through a conv-bn-relu,Conv2d(2560, 512, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False), obtain (4, 512, 60, 60).
- use dropout,dropout_ratio=0.1.
- Last , after Conv2d(512, num_classes, kernel_size=(1, 1), stride=(1, 1)) Get the final output of the model (4, num_classes, 60, 60), Note that the number of categories here includes the background .
Loss
- The output of the previous step (4, 2, 60, 60) After bilinear interpolation resize Input size , obtain (4, 2, 480, 480).
- use CrossEntropy loss
Auxiliary Head
- take ResNet Third stage Output (4, 1024, 60, 60), after Conv2d(1024, 256, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) One conv-bn-relu obtain (4, 256, 60, 60).
- use dropout,dropout_ratio=0.1.
- after Conv2d(256, num_classes, kernel_size=(1, 1), stride=(1, 1)) Get the final output of the model (4, num_classes, 60, 60) Get the output of this branch .
边栏推荐
- Let more young people from Hong Kong and Macao know about Nansha's characteristic cultural and creative products! "Nansha kylin" officially appeared
- vulnhub之darkhole_2
- Exemple Quelle est la relation entre le taux d'échantillonnage, l'échantillon et la durée?
- Penetrate the whole intranet through socks agent
- 第十届全球云计算大会 | 华云数据荣获“2013-2022十周年特别贡献奖”
- Electron installation problems
- Record eval() and no in pytoch_ grad()
- LeetCode 6109. Number of people who know the secret
- Gimp 2.10 tutorial "suggestions collection"
- Is it safe for golden sun to open an account? Can I open an account free of 5 in case?
猜你喜欢
Sophon base 3.1 launched mlops function to provide wings for the operation of enterprise AI capabilities
第十一届中国云计算标准和应用大会 | 华云数据成为全国信标委云计算标准工作组云迁移专题组副组长单位副组长单位
Maximum artificial island [how to make all nodes of a connected component record the total number of nodes? + number the connected component]
How to obtain the coordinates of the aircraft passing through both ends of the radar
Share: ZTE Yuanhang 30 Pro root unlock BL magick ZTE 7532n 8040n 9041n brush mask original brush package root method Download
Sophon kg upgrade 3.1: break down barriers between data and liberate enterprise productivity
星环科技重磅推出数据要素流通平台Transwarp Navier,助力企业实现隐私保护下的数据安全流通与协作
分享:中兴 远航 30 pro root 解锁BL magisk ZTE 7532N 8040N 9041N 刷机 刷面具原厂刷机包 root方法下载
The 10th global Cloud Computing Conference | Huayun data won the "special contribution award for the 10th anniversary of 2013-2022"
Star ring technology data security management platform defender heavy release
随机推荐
Sophon kg upgrade 3.1: break down barriers between data and liberate enterprise productivity
Is it safe to open an account, register and dig money? Is there any risk? Is it reliable?
JVM第三话 -- JVM性能调优实战和高频面试题记录
JDBC reads a large amount of data, resulting in memory overflow
Penetrate the whole intranet through socks agent
使用Jmeter虚拟化table失败
Maximum artificial island [how to make all nodes of a connected component record the total number of nodes? + number the connected component]
【在優麒麟上使用Electron開發桌面應】
【在优麒麟上使用Electron开发桌面应】
[paddleclas] common commands
爱因斯坦求和einsum
Sophon AutoCV:助力AI工业化生产,实现视觉智能感知
音视频包的pts,dts,duration的由来.
Is it safe for Apple mobile phone to speculate in stocks? Is it a fraud to get new debts?
Notes on common management commands of openshift
如何获取飞机穿过雷达两端的坐标
How to solve the error "press any to exit" when deploying multiple easycvr on one server?
使用JMeter录制脚本并调试
Huaxia Fund: sharing of practical achievements of digital transformation in the fund industry
@Extension、@SPI注解原理