实时语义分割--ICNet for Real-Time Semantic Segmentation on High-Resolution Images

来源:互联网 发布:广寒仙子皎月淘宝价格 编辑:程序博客网 时间:2024/05/16 19:23

github代码:https://github.com/hszhao/ICNet

语义分割算法精度和速度对比:

这里写图片描述
由图可以看出,ResNet38,PSPNet,DUC精度虽然较高,但是无法速度相对较慢,无法达到实时,ENet速度较快,但精度较低,而本文算法既可以达到实时,精度也相对较高.

Speed Analysis

PSPNet50的处理不同大小的输入图像所需时间:

这里写图片描述

图中,stage5的卷积核个数为stage4的两倍,由图可知,当输入图像尺寸增加时,卷积核越多,时间增长程度越大,运行时间与输入图像大小成正比.

加速方案

文章分别分析了三种可行的加速方案的可行性.

方案(1):输入下采样

这里写图片描述

如图3所示,下采样尺度为0.25,时间较少,但是得到的f分类结果太粗略,很多小的,重要的细节没有分类出来;尺度为0.5时,相对能分类出更多的物体,但是远处的人和交通等仍然没有分类出来;而且需要时间太多,无法达到实时.因此考虑方案(2).

方案(2):特征下采样

除了直接对输入图像下采样,另一种直接的方法是对feature map下采样.文献19的FCN网络对feature map下采样32次,DeepLab(文献2) 8次.为了验证特征下采样效果,测试下采样率分别为1:8,1:16,1:32次的效果,如表1.

这里写图片描述

然而,采样率为1:32时,时间仍需要131ms,仍然无法实时.

方案(3):模型压缩(Model Compression)

采用文献13的模型压缩方案,对于每个滤波器,首先计算滤波核权重weights的L1的和;然后,对L1和进行降序排序,仅保留前k个更有意义的值.试验对比如表2所示.

这里写图片描述

虽然仅仅保留了一部分核权值,如Rates为0.25时,运行时间仍然需要72ms,时间仍然太长,而且精度下降很多.

ICNet

以上分析证明,要设计实际的实时分割网络是非常困难的,采用下采样输入图像虽然可以减小运行时间,但预测结果会丢失很多细节信息,直接输入图像,又需要很多运行时间.因此本文提出图像级联网络(Image Cascade Network,ICNet),ICNet网络结构如下:

这里写图片描述

网络输入从上到下,分别为三个尺度的下采样图像,scale值分别为1/4,1/2,1,分别定义为Low Resolution,Median Resolution,High Resolution(低分辨率,中分辨率,高分辨率)图像.

Low Resolution

分支1,如图4中,第一行,低分辨率图像输入到一个FCN-based PSPNet 结构,网络输出为原始输入的1/32大小的feature maps.

Median Resolution

分支2,如图4中,第二行,低分辨率图像输入到3个卷积层,downsampling rate 8,网络输出为原始输入的1/16大小的feature maps.1/16的feature maps和1/32的feature maps通过CFF(cascade feature fusion)单元聚合,得到输出为1/16的feature map.

High Resolution

分支3,如图4中,第二行,低分辨率图像输入到3个卷积层(卷积核为3×3,stride=2),downsampling rate 8,网络输出为原始输入的1/8大小的feature maps.1/8的feature maps和1/16的feature maps通过CFF(cascade feature fusion)单元聚合,得到输出为1/8的feature map.

在训练的时候,在每个分支中,引入不同分辨率的真实label图像,即辅助学习策略,并在测试的时候去掉这些模块.

CFF(cascade feature fusion)

CFF模块结构如下:

这里写图片描述

图中,F1,F2分别为输入feature maps,且F2大小为F1的两倍.LABEL为ground truth label.首先对F1 upsampling到与F2同样大小,再对其进行dilated convolution,卷积核为3×3,dilations=1,并将输出值与F2 sum,relu,得到输出特征F2.为了增强学习过程,引入辅助学习,辅助loss权重为0.4.

训练

整体损失函数为:

这里写图片描述

阅读全文
0 0
原创粉丝点击