摘要:本文提出了一种基于Transformer的端到端的线段检测模型。采纳多尺度的Encoder/Decoder算法,能够失去比拟精确的线端点坐标。作者间接用预测的线段端点和Ground truth的端点的间隔作为指标函数,能够更好的对线段端点坐标进行回归。

本文分享自华为云社区《论文解读系列十七:基于Transformer的直线段检测》,作者:cver。

1 文章摘要

传统的形态学线段检测首先要对图像进行边缘检测,而后进行后处理失去线段的检测后果。个别的深度学习办法,首先要失去线段端点和线的热力求特色,而后进行交融解决失去线的检测后果。作者提出了一种新的基于Transformer的办法,无需进行边缘检测、也无需端点和线的热力求特色,端到端的间接失去线段的检测后果,也即线段的端点坐标。

线段检测属于指标检测的领域,本文提出的线段检测模型LETR是在DETR(End-to-End Object Detection with Transformers)的根底上的扩大,区别就是Decoder在最初预测和回归的时候,一个是回归的box的中心点、宽、高值,一个是回归的线的端点坐标。

因而,接下来首先介绍一下DETR是如何利用Transformer进行指标检测的。之后重点介绍一下LETR独有的一些内容。

2、如何利用Transformer进行指标检测(DETR)

图1. DETR模型构造

上图是DETR的模型构造。DETR首先利用一个CNN 的backbone提取图像的features,编码之后输出Transformer模型失去N个预测的box,而后利用FFN进行分类和坐标回归,这一部分和传统的指标检测相似,之后把N个预测的box和M个实在的box进行二分匹配(N>M,多出的为空类,即没有物体,坐标值间接设置为0)。利用匹配后果和匹配的loss更新权重参数,失去最终的box的检测后果和类别。这里有几个关键点:

首先是图像特色的序列化和编码。

CNN-backbone输入的特色的维度为CHW,首先用11的conv进行降维,将channel从C压缩到d, 失去dHW的特色图。之后合并H、W两个维度,特色图的维度变为dHW。序列化的特色图失落了原图的地位信息,因而须要再加上position encoding特色,失去最终序列化编码的特色。

而后是Transformer的Decoder

指标检测的Transformer的Decoder是一次解决全副的Decoder输出,也即 object queries,和原始的Transformer从左到右一个一个输入略有不同。

另外一点Decoder的输出是随机初始化的,并且是能够训练更新的。

二分匹配

Transformer的Decoder输入了N个object proposal ,咱们并不知道它和实在的Ground truth的对应关系,因而须要经二分图匹配,采纳的是匈牙利算法,失去一个使的匹配loss最小的匹配。匹配loss如下:

失去最终匹配后,利用这个loss和分类loss更新参数。

3、LETR模型构造

图2. LETR模型构造

Transformer的构造次要包含Encoder、Decoder 和 FFN。每个Encoder蕴含一个self-attention和feed-forward两个子层。Decoder 除了self-attention和feed-forward还蕴含cross-attention。注意力机制:注意力机制和原始的Transformer相似,惟一的不同就是Decoder的cross-attention,上文曾经做了介绍,就不再赘述。

Coarse-to-Fine 策略

从上图中能够看出LETR蕴含了两个Transformer。作者称此为a multi-scale Encoder/Decoder strategy,两个Transformer别离称之为Coarse Encoder/Decoder,Fine Encoder/Decoder。也就是先用CNN backbone深层的小尺度的feature map(ResNet的conv5,feature map的尺寸为原图尺寸的1/32,通道数为2048) 训练一个Transformer,即Coarse Encoder/Decoder,失去粗粒度的线段的特色(训练的时候固定Fine Encoder/Decoder,只更新Coarse Encoder/Decoder的参数)。而后把Coarse Decoder的输入作为Fine Decoder的输出,再训练一个Transformer,即Fine Encoder/Decoder。Fine Encoder的输出是CNN backbone浅层的feature map(ResNet的conv4,feature map的尺寸为原图尺寸的1/16,通道数为1024),比深层的feature map具备更大的维度,能够更好的利用图像的高分辨率信息。

注:CNN的backbone深层和浅层的feature map特色都须要先通过1*1的卷积把通道数都降到256维,再作为Transformer的输出

二分匹配

和DETR一样, 利用fine Decoder的N个输入进行分类和回归,失去N个线段的预测后果。然而咱们并不知道N个预测后果和M个实在的线段的对应关系,并且N还要大于M。这个时候咱们就要进行二分匹配。所谓的二分匹配就是找到一个对应关系,使得匹配loss最小,因而咱们须要给出匹配的loss,和下面DERT的表达式一样,只不过这一项略有不同,一个是GIou一个是线段的端点间隔。

4、模型测试后果

模型在Wireframe和YorkUrban数据集上达到了state-of–the-arts。

图3. 线段检测办法成果比照

图4、线段检测办法在两种数据集上的性能指标比照(Table 1);线段检测办法的PR曲线(Figure 6)

[点击关注,第一工夫理解华为云陈腐技术~](https://bbs.huaweicloud.com/b...