SAM-Road

Posted by in 未分类

本文主要介绍 SAM-Road,论文链接:Segment Anything Model for Road Network Graph Extraction

这篇论文利用 SAM 实现了从 RGB卫星图片中提取 道路图(Road Graph)。

整体框架

模型主要包含三个部分,分别是 Image \space EncoderGeometry \space DecoderTopology \space Decoder
– 图片编码器:
作者使用的是预训练的 ViT-B,输入为 (H_{img}, W_{img}, 3) ,输出特征图为 (\frac{H_{img}}{16},\frac{W_{img}}{16}, D_{feature})
ViT-B 将图片打成 16 x 16 的 patch,随后将每个 patch 转化为 特征向量,所以 Feature Map 的形状为 (\frac{H_{img}}{16},\frac{W_{img}}{16}, D_{feature})

为了使得图片编码器适应卫星图像,作者没有冻结编码器参数,而是以很小的学习率进行微调。
  • 几何解码器:
    几何解码器的作用是根据特征图预测 概率图,输出形状为 (H_{img},W_{img}, 2) 。也就是输出两张 (H_{img}, W_{img}) 的图片,其中一张图片预测的是 道路,每个像素的值代表的是 该像素属于道路的概率;另一张图片预测的是 交叉路口,每个像素的值代表的是 该像素属于 交叉路口的概率。

    值得留意的是,作者将道路图的预测转换成了一个密集预测的问题,这使得预测任务转换为了一个分割任务。

    由于预测的结果是密集的,为了方便后续的几何(图)处理,作者采取了非极大值抑制的方法,pseudo-code 如下:

    1: V ← ∅ 
    2: t ← threshold value 
    3: dv ← radius for non-maximum suppression 
    4: for each pixel in the image do 
    5:     if pixel value > t then 
    6:         Add pixel coordinates (x, y) to V 
    7:     end if
    8: end for 
    9: Sort V by pixel values in descending order 
    10: for each (x, y) in V do 
    11:     for each (x ′ , y ′ ) after (x, y) do 
    12:         d ← distance between (x ′ , y ′ ) and (x, y) 
    13:         if d < dv then 
    14:             Remove (x ′ , y ′ ) from V 
    15:         end if 
    16:     end for 
    17: end for
    

    首先,将概率大于阈值 t 的点筛选出来,存入点集 V 中,随后将 V 中的点按概率值的顺序由大到小排序,紧接着,遍历 V 中的点(即为 now\space node),如果后续存在 点 与 now\space node 的距离小于预先设置的半径(半径越大,最后获得的点集 V 越稀疏),从 V 中移除这样的点。

    总的来说,作者通过这种非极大值抑制的方法限制了点集 V 的密度(任意两点之间的距离不会小于预先设置的半径)。
    结构: 作者仅仅只是用了四层转置卷积作为几何编码器的结构,将 (\frac{H_{img}}{16},\frac{W_{img}}{16}, D_{feature}) 转换为 (H_{img}, W_{img}, 2)

  • 拓扑解码器:
    作者获得 V 后,下一步是对 V 中的每一个点(source),预测 source 到 N 个 最近的半径 R 内的点(Target)之间是否存在边。
    拓扑解码器的输入是 (f_s,f_k,d_k), 其中,f_sf_k 分别是 source 和第 k 个 target 的特征向量(由SAM 的特征图通过 双线性插值 得来),d_k 是两个点之间的 offset,作者将其 concatenate 一下,并且由于一共有 N 个 target 点,得到 (N,2D_{feature}+2) 。先将其投影到 (N, D_{feature}) ,随后通过一个自注意力层实现 message-passing,再通过一个线性层输出 N 个 logits,通过 Sigmoid 后,得到 source 与 target 之间存在边的概率。

模型效果

不论是在速度上,还是准确度上,SAM-Road 都取得了不错的效果。

反思

作者设计的方法速度非常快(高并行度设计,小参数模型),而且 充分考虑到了信息的传递(比如说,拓扑解码器是通过 特征(内容信息),offset(空间信息)来进行预测的,为了更好的效果,作者通过自注意力实现 message-passing ,使得不同 target 的内容信息与空间信息可以相互沟通,这是更符合直觉的,这些信息直觉上对预测是有利的)。