图像语义分割作为实现各类复杂视觉任务的基础之一,在现实中有很多应用。例如,无人驾驶技术中往往需要先实现对街景的语义识别。
HRNet网络架构是近年来表现不错的图像语义分割框架。HRNet不同于常规的Encoder-Decoder框架,而是尽可能自始至终保留高分辨率信息。HRNet 语义分割框架图中包含4类分辨率特征图信息。
HRNet 语义分割框架图
这4类分辨率特征图关系参考HRNet 语义分割branches图,每行特征图序列对应一个Branch。Branch 1所在行特征图分辨率为H*W,通道数为C ;Branch 2 所在行特征图分辨率为(H*W)/2,通道数为2C ;Branch 3 所在行特征图分辨率为(H*W)/4,通道数为4C ;Branch 4所在行特征图分辨率为 (H*W)/8,通道数为 8C 。
HRNet 语义分割branches图
HRNet框架中在列方向又将特征图分为4个stages。第2、3、4 stage,每个stage由一个或多个Modules组成。每个Module中包括多个Residual Unit,每个Residual Unit为Basic Block或Bottleneck Block类型。注: HRNet语义分割stages图中显示的主要为stages,并未体现Modules。
HRNet 语义分割 stages 图
Residual Unit 之 Basic Block 与 Bottleneck Block
HRNet框架中stage 1 主要由1个Layer构成,该Layer由4个Bottleneck Blocks串联组成。stage 2主要由1个Module构成,stage3由4个Modules构成,stage4由3个Modules构成。
至于Module结构,主要表现为多个Branches的Fuse。以stage4中的Module为例。该Module包括4个Branches部分,在Module结束时对各Branch进行Fuse计算。参考HRNet语义分割stage4 Module图。
HRNet 语义分割 stage4 Module
该Module中每个branch部分包括4个Residual Unit。每个Residual Unit为Basic Block 类型。在Module结束时通过一个Fuse Layer实现各特征图的Fuse。
HRNet 语义分割 stage 4 Module 中Residual Unit
HRNet 语义分割 stage 4 Module 中Fuse Layer
具体Fuse方法参考Fuse Layer中各Branch特征图Fuse方法图。可以看到有3类计算方法,每类计算方法的实现称为Exchange Unit。
Fuse Layer中各Branch特征图Fuse方法图
在HRNet官方代码实现层面,实现方法与上述原理说明略有不同。主要体现在各Stages之间的Fuse阶段。
代码语言:javascript复制新产学研项目研发
代码语言:javascript复制如果项目需研发,欢迎咨询!