可学习的FrameField优化建筑物提取CVPR2021

fig1

Frame field

帧场是一个4向量构成的元组,它为平面的每个点分配四个向量。在帧场中,前两个向量被约束为与另外两个相反的向量,即,每个点被分配一组向量 ( u , − u , v , − v ) (u,−u,v,−v) (u,u,v,v)。对于图像中的每一点,我们考虑将帧定义为代表两个方向的两个复数 u , v ∈ C u,v\in C u,vC。我们需要两个方向(而不仅仅是一个方向),因为建筑与有机形状(organic shapes)不同,建筑物是具有锐角的规则结构,在这些锐角上捕捉方向需要两个方位(沿着建筑边缘,至少有一个场方向与多边形切线方向对齐。在多边形拐角处,场与两个切线方向对齐,远离多边形边界的区域,框不具有任何对齐约束,但鼓励平滑且不塌陷的场)。为了对方向变化不可知的方式对方向进行编码,我们将frame field表示为以下多项式系数: f ( z ) = ( z 2 − u 2 ) ( z 2 − v 2 ) = z 4 + c 2 z 2 + c 0 f(z)=(z^{2}-u^{2})(z^{2}-v^{2})=z^{4}+c_{2}z^{2}+c_{0} f(z)=(z2u2)(z2v2)=z4+c2z2+c0我们用 f ( z ; c 0 , c 1 ) f(z;c_{0},c_{1}) f(z;c0,c1)表示上述式子,给定 ( c 0 , c 1 ) (c_{0},c_{1}) (c0,c1),我们可以获得定义frame的方向: c 0 = u 2 v 2 , c 1 = − ( u 2 + v 2 ) c_{0}=u^{2}v^{2},c_{1}=-(u^{2}+v^{2}) c0=u2v2,c1=(u2+v2) u 2 = − 1 2 ( c 1 + c 1 2 − 4 c 0 ) , v 2 = − 1 2 ( c 1 − c 1 2 − 4 c 0 ) u^{2}=-\frac{1}{2}(c_{1}+\sqrt{c_{1}^{2}-4c_{0}}),v^{2}=-\frac{1}{2}(c_{1}-\sqrt{c_{1}^{2}-4c_{0}}) u2=21(c1+c124c0 ),v2=21(c1c124c0 )我们使用神经网络来学习每个像素的场,即每个像素上的 ( u , v ) (u,v) (u,v)

Frame field learning

backbone网络将 3 × H × W 3\times H\times W 3×H×W的图像 I I I作为输入,输出像素分类特征图和frame field。像素分类特征图包含两个通道, y ^ i n t \widehat{y}_{int} y int对应于建筑物的内部(interiors), y ^ e d g e \widehat{y}_{edge} y edge对应建筑物的边缘(boundaries)。frame field包含4个通道,分别对应两个复数 c ^ 0 , c ^ 1 ∈ C \widehat{c}_{0},\widehat{c}_{1}\in C c 0,c 1C

Segmentation loss
我们的方法可以使用任何深度分割模型作为主干;在我们的实验中,我们使用了U-Net和DeepLabV3架构。通过主干输出 F F F维特征图 y ^ b a c k b o n e ∈ R F × H × W \widehat{y}_{backbone}\in R^{F×H×W} y backboneRF×H×W。对于分割任务,我们在主干上附加了一个全卷积块(以 y ^ b a c k b o n e \widehat{y}_{backbone} y backbone为输入),由3×3卷积层、批量归一化层、ELU非线性、另一个3×3的卷积和sigmoid非线性组成。分割头输出分割图 y ^ s e g ∈ R 2 × H × W \widehat{y}_{seg}\in R^{2\times H\times W} y segR2×H×W,第一个通道包含对象内部分割图 y ^ i n t \widehat{y}_{int} y int,第二个通道包含对象边缘分割图 y ^ e d g e \widehat{y}_{edge} y edge。训练是有监督的,每个输入图像都被标记了 y i n t y_{int} yint y e d g e y_{edge} yedge,分别对应于栅格化(也是计算机图形学中的光栅化)多边形的内部和边缘。然后,我们将交叉熵loss和 dice loss 的线性组合应用于建筑物内部输出的损失 L i n t L_{int} Lint以及应用于轮廓(边缘)输出的损失 L e d g e L_{edge} Ledge

Frame field loss
除了分割输出,我们的网络还输出frame field。我们通过由3×3卷积层、批量归一化层、ELU非线性、另一个3×3的卷积和tanh非线性组成的全卷积块将另一个解码头附加到主干。frame field block输入为backbone输出的特征和分割分支输出的concat: [ y ^ b a c k b o n e , y ^ s e g ] ∈ R ( F + 2 ) × H × W [\widehat{y}_{backbone},\widehat{y}_{seg}]\in R^{(F+2)\times H\times W} [y backbone,y seg]R(F+2)×H×W,输出为 c ^ 0 , c ^ 2 ∈ C 4 × H × W \widehat{c}_{0},\widehat{c}_{2}\in C^{4\times H\times W} c 0,c 2C4×H×W。相应的GT是每个像素上的角度 θ τ ∈ [ 0 , π ) \theta_{\tau}\in[0,\pi) θτ[0,π)(多边形轮廓的无符号切线向量)。我们使用3种损失训练frame field: L a l i g n = 1 H W ∑ x ∈ I y e d g e ( x ) ∣ f ( e i θ τ ; c ^ 0 ( x ) , c ^ 1 ( x ) ) ∣ 2 L_{align}=\frac{1}{HW}\sum_{x\in I}y_{edge}(x)|f(e^{i\theta_{\tau}};\widehat{c}_{0}(x),\widehat{c}_{1}(x))|^{2} Lalign=HW1xIyedge(x)f(eiθτ;c 0(x),c 1(x))2 L a l i g n 90 = 1 H W ∑ x ∈ I y e d g e ( x ) ∣ f ( e i θ τ 90 ; c ^ 0 ( x ) , c ^ 1 ( x ) ) ∣ 2 L_{align90}=\frac{1}{HW}\sum_{x\in I}y_{edge}(x)|f(e^{i\theta_{\tau90}};\widehat{c}_{0}(x),\widehat{c}_{1}(x))|^{2} Lalign90=HW1xIyedge(x)f(eiθτ90;c 0(x),c 1(x))2 L s m o o t h = 1 H W ∑ x ∈ I ( ∣ ∣ ∇ c ^ 0 ( x ) ∣ ∣ 2 + ∣ ∣ ∇ c ^ 1 ( x ) ∣ ∣ 2 ) L_{smooth}=\frac{1}{HW}\sum_{x\in I}(||\nabla\widehat{c}_{0}(x)||^{2}+||\nabla\widehat{c}_{1}(x)||^{2}) Lsmooth=HW1xI(∣∣∇c 0(x)2+∣∣∇c 1(x)2)其中, θ τ \theta_{\tau} θτ τ \tau τ τ = ∣ ∣ τ ∣ ∣ 2 e i θ τ \tau=||\tau||_{2}e^{i\theta_{\tau}} τ=∣∣τ2eiθτ)的方向, τ 90 = τ − π 2 \tau90=\tau-\frac{\pi}{2} τ90=τ2π。每种损失衡量的是frame field的不同性质:

  • L a l i g n L_{align} Lalign 强制frame field与切线方向对齐。当多项式 f ( ⋅ ; c ^ 0 , c ^ 1 ) f(\cdot;\widehat{c}_{0},\widehat{c}_{1}) f(;c 0,c 1) e i θ t a u e^{i\theta_{tau}} eiθtau附近有根时,该项很小,这意味着其中一个frame的方向(可能是 ( u , − v ) (u,-v) (u,v),属于 ( ± u , ± v ) (\pm u,\pm v) (±u,±v))与切线方向 τ \tau τ对齐。
  • L a l i g n 90 L_{align90} Lalign90鼓励frame与切线方向 τ \tau τ的法线方向对齐,可以防止frame塌陷成一条线。
  • L s m o o t h L_{smooth} Lsmooth是测量作为图像中位置 x x x的函数 c ^ 0 ( x ) \widehat{c}_{0}(x) c 0(x) c ^ 1 ( x ) \widehat{c}_{1}(x) c 1(x)平滑度的Dirichlet能量。平滑变化的函数 c ^ 0 ( x ) \widehat{c}_{0}(x) c 0(x) c ^ 1 ( x ) \widehat{c}_{1}(x) c 1(x)可以生成平滑的frame field。

Output coupling loss
我们增加耦合损失,确保网络输出之间的一致性: L i n t a l i g n = 1 H W ∑ x ∈ I f ( ∇ y ^ i n t ( x ) ; c ^ 0 ( x ) , c ^ 1 ( x ) ) 2 L_{intalign}=\frac{1}{HW}\sum_{x\in I}f(\nabla\widehat{y}_{int}(x);\widehat{c}_{0}(x),\widehat{c}_{1}(x))^{2} Lintalign=HW1xIf(y int(x);c 0(x),c 1(x))2 L e d g e a l i g n = 1 H W ∑ x ∈ I f ( ∇ y ^ e d g e ( x ) ; c ^ 0 ( x ) , c ^ 1 ( x ) ) 2 L_{edgealign}=\frac{1}{HW}\sum_{x\in I}f(\nabla\widehat{y}_{edge}(x);\widehat{c}_{0}(x),\widehat{c}_{1}(x))^{2} Ledgealign=HW1xIf(y edge(x);c 0(x),c 1(x))2 L i n t e d g e = 1 H W ∑ x ∈ I m a x ( 1 − y ^ i n t ( x ) , ∣ ∣ ∇ y ^ i n t ( x ) ∣ ∣ 2 ) ⋅ ∣ ∣ ∣ ∇ y ^ i n t ( x ) ∣ ∣ 2 − y ^ e d g e ( x ) ∣ L_{intedge}=\frac{1}{HW}\sum_{x\in I}max(1-\widehat{y}_{int}(x),||\nabla\widehat{y}_{int}(x)||_{2})\cdot|||\nabla\widehat{y}_{int}(x)||_{2}-\widehat{y}_{edge}(x)| Lintedge=HW1xImax(1y int(x),∣∣∇y int(x)2)∣∣∣∇y int(x)2y edge(x)其中:

  • L i n t a l i g n L_{intalign} Lintalign将预测的建筑物内部 y ^ i n t \widehat{y}_{int} y int的空间梯度与frame field对齐;
  • L e d g e a l i g n L_{edgealign} Ledgealign将预测边缘 y ^ e d g e \widehat{y}_{edge} y edge的空间梯度与frame field对齐;
  • L i n t e d g e L_{intedge} Lintedge m a x ( 1 − y ^ i n t ( x ) , ∣ ∣ ∇ y ^ i n t ( x ) ∣ ∣ 2 ) max(1-\widehat{y}_{int}(x),||\nabla\widehat{y}_{int}(x)||_{2}) max(1y int(x),∣∣∇y int(x)2)作为系数,当两项都为0时,损失为0,当 x x x在建筑物外部(此时 ( 1 − y ^ i n t ( x ) ) (1-\widehat{y}_{int}(x)) (1y int(x))较大)或者边缘(此时 ∣ ∣ ∇ y ^ i n t ( x ) ∣ ∣ 2 ||\nabla\widehat{y}_{int}(x)||_{2} ∣∣∇y int(x)2较大),都会有损失,最后的优化目标就是房屋内部梯度平整为0,其他地方梯度要等于边界的概率map(边界为1,其他为0)。这样按建筑物内外和边界来考虑,因此能够检测到建筑物的共用边。

Final loss
由于损失( L i n t L_{int} Lint L e d g e L_{edge} Ledge L a l i g n L_{align} Lalign L a l i g n 90 L_{align90} Lalign90 L s m o o t h L_{smooth} Lsmooth L i n t − a l i g n L_{int-align} Lintalign L e d g e s − a l i g n L_{edges-align} Ledgesalign L i n t − e d g e L_{int-edge} Lintedge)具有不同的单位(数值范围),我们通过使用随机初始化网络在训练数据集的随机子集上平均其值来计算每个损失的归一化系数。换言之,在线性组合之前,通过该系数对各项loss进行归一化。

Frame field的学习框架如下图所示:
fig2

  • 给定一个输入图像,模型输出边缘mask、内部mask和帧场。loss将掩码和场与GT对齐,并增强帧场的平滑度,同时确保输出之间的一致性。

生成frame field的网络如下图:
fig3

  • 生成frame field的网络架构的详细信息。

Frame field的多边形化

从frame field多边形化的方法来自Active Contour Model(ACM)。优化过程如下图所示(下图以一个局部小区域为例进行演示):
fig4

  • 给定建筑物内部分类图和帧场作为输入,使用活动骨架模型(ASM,Active Skeleton Model)优化轮廓以与帧场对齐,并使用帧场检测角点(corner),简化非角点(non-corner)。

ACM由给定的轮廓进行初始化,并且需要最小化能量函数 E c o n t o u r ∗ E_{contour}^{*} Econtour,该函数用于将轮廓点移向最佳位置。通常,该能量函数由一个用于将轮廓拟合到图像的项和限制拉伸或曲率量的附加项组成。通过梯度下降进行优化。总的来说,ACM非常适合在GPU上并行执行,并且可以使用深度学习框架中包含的自动求导模块来执行优化。我们对ACM进行了调整,以便在骨架图(skeleton graph)而不是轮廓(contour)上执行优化,从而给出了活动骨架模型(ASM)。


我们将skeleton graph定义为:对 y ^ e d g e \widehat{y}_{edge} y edge进行简化得到连通像素的graph表示


实验

数据集

实验需要GT为多边形的建筑物注释,而不是栅格化的注释。数据集包括:

  • CrowdAI:341438幅尺寸为300×300像素的航空图像,带有相关的ground truth多边形注释。
  • Inria Aerial Image Labeling dataset :360幅尺寸为5000×5000像素的航空图像。代表了10个城市,使其比CrowdAI数据集更加多样化。然而,GT是光栅化的二元掩模的形式。我们通过使用多边形化方法将原始GT二元掩码转换为多边形注释来创建Inria Polygonized dataset。

实验结果

fig5

  • CrowdAI测试图像上的建筑物提取结果。建筑从左到右变得更加复杂。
  • 上:U-Net变体+ASIP(后处理方法);
  • 中:PolyMapper;
  • 下:我们的方法,即UResNet101+frame field多边形化。
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以太网帧(Ethernet Frame)是用于在以太网(Ethernet)中传输数据的基本单位。它是一种数据包的格式,包含了发送者和接收者的地址信息、数据内容以及错误检测等必要信息。 以太网帧的结构一般包含以下几个部分: 1. 帧起始定界符(Preamble):由7个字节的连续1和一个字节的0组成,用于同步接收设备的时钟。 2. 目标MAC地址(Destination MAC Address)和源MAC地址(Source MAC Address):目标MAC地址指的是帧的接收者的物理地址,源MAC地址指的是帧的发送者的物理地址。 3. 类型字段(Type Field):指定了数据的类型,例如IP、ARP等。 4. 数据(Data):携带了以太网帧中的实际信息,如传输的文件、图像、视频等。 5. 校验和(CRC):用于检测帧在传输过程中是否发生了错误。接收方会通过校验和对数据进行检验,以确认数据的完整性。 6. 帧尾(Frame Delimiter):由1个字节的连续1组成,用于标识帧的结束。 通过将数据分割成以太网帧,以太网可以实现高速、可靠的数据传输。以太网帧可以通过集线器、交换机等设备在网络中进行转发,以及经过不同网段和路由器进行跨网络的传输。 以太网帧是现代网络通信的基础,它通过定义标准的帧结构和通信协议,使得不同厂商的网络设备可以互相兼容和交流。同时,以太网帧的使用也使得数据传输更加全面、高效,广泛应用于局域网(LAN)和广域网(WAN)等各种网络环境中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值