google出品的自动搜索语义分割网络结构的算法。搜索时间极短,3个P100 GPU days(这是导致我开始看NAS的直接原因),得到的网络表现也不错,在Cityscapes, PASCAL VOC 2012,ADE20K datasets上都取得了不错的表现。
网络搜索分为2个层级
-
cell level(类似于之前的算法[93,47,62,49],结构见fig1右部)
- cell为一个包含B个block的有向不循环图
- cell可定义为一个五元组(I1,I2,O1,O2,C),
- I1,I2为输入,输入为前层输出,前两层的输出,或是当前层的前面block的输出
- O1,O2为两个分支的操作
- 3 × 3 depthwise-separable conv
- 5 × 5 depthwise-separable conv
- 3×3 atrous conv with rate2
- 5×5 atrous conv with rate2
- 3 × 3 average pooling
- 3 × 3 max pooling
- skipconnection
- noconnection(zero)
- C为B个blocks输出的concat方式,这里采用的是逐像素相加
-
outer network level
- 设计原则:
- 相邻层的分辨率要么相差两倍,要么相同;
- 最大下采样倍数为32
- 搜索算法(算法见fig1,可搜索的网络结构见fig2,目前不支持UNet无法处理大于2的skip连接):
- 第一层下采样2倍
- 第二层下采样4倍
- 等三层到L层,下采样倍数最小为4,最大为32
- 设计原则: