文章目录
- 模块详解
-
- CAB(Channel Attention Block)
- SAM(Supervised Attention Module)
- Stage 1
-
- 1. 计算浅特征(Compute Shallow Features)
- 2. 使用编码器处理照片特征(Process features of all 4 patches with Encoder of Stage 1)
- 3. 合并深特征(Concat deep features)
- 4. 通过解码器传递特性(Pass features through Decoder of Stage 1)
- 5. 应用监督注意模块(SAM)(Apply Supervised Attention Module (SAM))
- 6. 得到图像(Output image at Stage 1)
- Stage 2
-
- 1. 计算浅特征(Compute Shallow Features)
- 2. 连接特征(Concatenate SAM features of Stage 1 with shallow features of Stage 2)
- 3. 使用编码器处理照片特征(Process features of all 4 patches with Encoder of Stage 2)
- 4. 合并深特征(Concat deep features)
- 5. 通过解码器传递特性(Pass features through Decoder of Stage 2)
- 6. 应用监督注意模块(SAM)(Apply Supervised Attention Module (SAM))
- Stage3
-
- 1. 计算浅特征(Compute Shallow Features)
- 2. 连接特征(Concatenate SAM features of Stage 2 with shallow features of Stage 3)
- 3. 应用原始分辨率子网(ORSNet)(Apply Original Resolution Subnetwork)
- 4. 得到图像(Output image at Stage 3)
- 最终结果
模块详解
CAB(Channel Attention Block)

分为3步操作 :
- 先对原始输入x进行一次二维卷积操作后,使用激活函数对卷积结果进行处理(此处激活函数选用的是PReLU),然后在对处理后的结果再进行一次二次卷积得到结果a。
- 将a进行池化处理(此处采用均值池化),然后对处理结果依次进行一次二维卷积、一次激活函数处理(此处选用ReLU)、一次二维卷积、一次激活函数处理(此处选用Sigmoid)得到结果b,将结果a和结果b相乘得到结果y。
- 最后返回原始输入x和结果y相加的结果。
SAM(Supervised Attention Module)

分为四步操作:
- 对当前Stage的处理结果进行一次卷积操作得到x1。
- 对当前Stage的处理结果进行一次卷积操作(输出通道数固定为3)后将结果与原始图像部分相加得到img。
- 对img进行一次卷积操作(输入通道数固定为3)后,使用激活函数对卷积结果进行处理(此处选用Sigmoid)得到x2。
- 将x1与x2相乘后得到的结果再与上个Stage的处理结果相加得到x,最后返回x和img。
其中结果x作为samfeats传到下一个Stage进行后续处理,img作为当前Stage的最终处理结果。

Stage 1
Stage1将照片分为四个部分作为输入(x1img_ltop(左上),x1img_rtop(右上),x1img_lbot(左下),x1img_rbot(右下))。
1. 计算浅特征(Compute Shallow Features)
分别计算四个部分的浅特征,具体操作为:
- 对输入图片进行一次卷积操作。
- 将卷积后的结果作为输入,再次进行一次CAB操作。
2. 使用编码器处理照片特征(Process features of all 4 patches with Encoder of Stage 1)
分为三步:
- 对第一步得到的浅特征进行连续的两次CAB操作得到结果enc1。
- 对enc1进行下采样后,再次进行连续的两次CAB操作(比前面CAB通道数增加)得到结果enc2。
- 对enc2进行下采样之后(比前面采样通道数增加),再次进行连续的两次CAB操作(比前面CAB通道数再次增加)得到enc3。
这里照片的四个部分分别经过处理后得到feat1_ltop、feat1_rtop、feat1_lbot、feat1_rbot,每个部分都是一个列表数据[enc1,enc2,enc3]。
3. 合并深特征(Concat deep features)
将编码器处理过后的四部分照片特征拼接为两个部分,具体为:
- feat1_ltop(左上)和feat1_rtop(右上)的部分拼接成原始照片大小的上半部分(feat1_top)。
- feat1_lbot(左下)和feat1_rbot(右下)的部分拼接成原始照片大小的下半部分(feat1_bot)。
4. 通过解码器传递特性(Pass features through Decoder of Stage 1)
将获得的两部分照片经过解码器处理:
分为三步:
- 对上一步得到的深特征进行连续的两次CAB操作得到结果dec3。
- 先对上一步得到的深特征进行一次CAB操作(比前面CAB通道数减少)得到y,再对dec3进行上采样后得到x,将x与y相加后对结果再进行连续的两次CAB操作后(通道数与前面CAB相同)得到dec2。
- 先对上一步得到的深特征进行一次CAB操作(比前面CAB通道数再次减少)得到y,再对dec2进行上采样(比前面采样通道数减少)后得到x,将x与y相加后对结果再进行连续的两次CAB操作后(通道数与前面相同)得到dec1。
这里照片的两个部分分别经过处理后得到res1_top、res1_bot,每个部分都是一个列表数据[dec1,dec2,dec3]。
5. 应用监督注意模块(SAM)(Apply Supervised Attention Module (SAM))
这里将上一步得到的列表数据中的dec1分别与Stage2中原始图片的上下部分照片(x2img_top、x2img_bot)一同进行SAM处理得到x2top_samfeats、x2bot_samfeats, stage1_img_top、stage1_img_bot。
x2top_samfeats、x2bot_samfeats传到Stage2进行下一步操作。
6. 得到图像(Output image at Stage 1)
将上一步得到的stage1_img_top、stage1_img_bot拼接在一起得到Stage1_img作为Stage1的最终图像结果。

Stage 2
Stage2将照片分为两个部分作为输入(x2img_top(上)、x2img_bot(下))。
1. 计算浅特征(Compute Shallow Features)
分别计算两个部分的浅特征,具体操作为:。
- 对输入图片进行一次卷积操作。
- 将卷积后的结果作为输入,再次进行一次CAB操作。
2. 连接特征(Concatenate SAM features of Stage 1 with shallow features of Stage 2)
- 将上一步得到的浅特征和Stage1传来的x2top_samfeats,、x2bot_samfeats分别拼接在一起。
- 将拼接结果进行一次卷积操作。
这里得到x2top_cat、x2bot_cat
3. 使用编码器处理照片特征(Process features of all 4 patches with Encoder of Stage 2)
这里将上一步得到的x2top_cat、x2bot_cat,Stage1中合并的深特征(feat1_top、feat1_bot),Stage1中经过解码器处理的特征(res1_top、res1_bot)一同使用编码器处理。
- 将上一步得到的特征x2top_cat\x2bot_cat进行连续的两次CAB操作得到结果enc1,然后这里会触发跨阶段特征融合模块(Cross Stage Feature Fusion (CSFF))

具体操作为将feat1_top[0]\feat1_bot[0]和res1_top[0]\res1_bot[0]分别进行一次卷积操作,再将卷积结果和前面得到的enc1相加得到最终的enc1。
- 对enc1进行下采样后,再次进行连续的两次CAB操作(比前面CAB通道数增加)得到结果enc2,这里再次触发跨阶段特征融合模块(Cross Stage Feature Fusion (CSFF)),将上个阶段的feat1_top[1]和res1_top[1]分别进行一次卷积操作(比前面卷积通道数增加),再将卷积结果和前面得到的enc2相加得到最终的enc2。
- 对enc2进行下采样(比前面采样通道数增加)后,再次进行连续的两次CAB操作(比前面CAB通道数增加)得到结果enc3,这里再次触发跨阶段特征融合模块(Cross Stage Feature Fusion (CSFF)),将上个阶段的feat1_top[2]和res1_top[2]分别进行一次卷积操作(比前面卷积通道数增加),再将卷积结果和前面得到的enc3相加得到最终的enc3。
最终得到feats2_top、feats2_bot,都是列表数据[enc1,enc2,enc3]。
4. 合并深特征(Concat deep features)
将上一步编码器处理过后的两部分照片特征(feats2_top、feats2_bot)拼接为一个完整照片特征(feat2)。
5. 通过解码器传递特性(Pass features through Decoder of Stage 2)
将获得的完整照片特征经过解码器处理:
分为三步:
- 对上一步得到的深特征进行连续的两次CAB操作得到结果dec3。
- 先对上一步得到的深特征进行一次CAB操作(比前面CAB通道数减少)得到y,再对dec3进行上采样后得到x,将x与y相加后对结果再进行连续的两次CAB操作后(通道数与前面CAB相同)得到dec2。
- 先对上一步得到的深特征进行一次CAB操作(比前面CAB通道数再次减少)得到y,再对dec2进行上采样(比前面采样通道数减少)后得到x,将x与y相加后对结果再进行连续的两次CAB操作后(通道数与前面相同)得到dec1。
完整照片特征经过处理后得到res2,是一个列表数据[dec1,dec2,dec3]。
6. 应用监督注意模块(SAM)(Apply Supervised Attention Module (SAM))
这里将上一步得到的列表数据中的dec1分别与Stage3的原始输入图片(x3img)一同进行SAM处理得到 x3_samfeats, stage2_img。
x3_samfeats传到Stage3进行下一步操作。stage2_img作为Stage2的最终图像结果。

Stage3
这里将完整照片x3_img作为输入。
1. 计算浅特征(Compute Shallow Features)
- 对输入图片进行一次卷积操作。
- 将卷积后的结果作为输入,再次进行一次CAB操作。
2. 连接特征(Concatenate SAM features of Stage 2 with shallow features of Stage 3)
- 将上一步得到的浅特征和Stage2传来的 x3_samfeats拼接在一起。
- 将拼接结果进行一次卷积操作。
这里得到x3_cat。
3. 应用原始分辨率子网(ORSNet)(Apply Original Resolution Subnetwork)
将上一步得到特征(x3_cat)、Stage2中合并的深特征(feat2),Stage2中经过解码器处理的特征(res2)一同使用ORSNet处理。
- 将x3_cat经过连续的8次CAB操作,然后进行一次卷积操作,将卷积结果和原始x3_cat相加得到x1。接下来这里又会涉及Cross Stage Feature Fusion (CSFF)

具体操作为将feat2[0]和res2[0]分别进行一次卷积操作,再将卷积结果和前面得到的x1相加得到最终的x1。
- 继续对x1经过连续的8次CAB操作,然后进行一次卷积操作,将卷积结果和原始x1相加得到x2。这里先分别对feat2[1]和res2[1]进行一次上采样,然后将采样结果分别进行一次卷积操作后与x2相加得到最终的x2。
- 继续对x2经过连续的8次CAB操作,然后进行一次卷积操作,将卷积结果和原始x2相加得到x3。这里先分别对feat2[2]和res2[2]连续进行两次上采样(通道数逐渐减少),然后将采样结果分别进行一次卷积操作后与x3相加得到最终的x3。
x3就是ORSNet 最终返回的处理结果。
4. 得到图像(Output image at Stage 3)
将上一步得到的x3进行一次卷积操作后,与该阶段的原始输入照片x3_img相加得到stage3_img作为Stage3的最终图像结果。
最终结果
最终该网络返回一个列表数据[stage3_img, stage2_img, stage1_img]