前言
要开组会了,随便讲个凑数吧。
参考论文 https://arxiv.org/html/2303.17189?
什么是layout数据?
像下图这样,Layout是每个图片的布局,其中包含一些物体的相应边界框和类别
layout信息如何整合表示并作为条件加入到网络中去的?
a. layout信息包含内容
布局 l = { o 1 , o 2 , ⋯ , o n } l = \{o_1, o_2, \cdots, o_n\} l={o1,o2,⋯,on} 是一组 n n n 对象。
每个对象 o i o_i oi 被表示为 o i = { b i , c i } o_i = \{b_i, c_i\} oi={bi,ci},
其中 b i = ( x 0 i , y 0 i , x 1 i , y 1 i ) ∈ [ 0 , 1 ] 4 b_i=(x_0^i, y_0^i, x_1^i, y_1^i) \in [0, 1]^4 bi=(x0i,y0i,x1i,y1i)∈[0,1]4 表示边界框(bbox),
并且 c i ∈ [ 0 , C + 1 ] c_i \in [0, \mathcal{C}+ 1] ci∈[0,C+1] 是其类别id。
b.将layout填充为一个固定长度的序列
将 l l l 填充到固定长度的 k k k 中,方法是将 o l o_l ol 在前面,一些填充 o p o_p op 在最后,
其中 o l o_l ol 表示存在这个对象, o p o_p op 表示不存在这个对象。
比如 b l = ( 0 , 0 , 1 , 1 ) b_l=(0,0,1,1) bl=(0,0,1,1)、 c l = 0 c_l = 0 cl=0 表示覆盖整个图像的对象,
而 b p = ( 0 , 0 , 0 , 0 ) b_p=(0,0,0,0) bp=(0,0,0,0)、 c p = C + 1 c_p = \mathcal{C} + 1 cp=C+1 表示没有形状或不出现在图像中的空对象。
最终填充完成后就是一个由 k k k 个对象组成的填充的 l = { o 1 , o 2 , ⋯ , o k } l = \{o_1, o_2, \cdots, o_k\} l={o1,o2,⋯,ok}。
c.将序列转变为矩阵
通过投影矩阵 W b ∈ R 4 × d z W_b \in \mathbb{R}^{4 \times d_z} Wb∈R4×dz 和 W c ∈ R 1 × d z W_c \in \mathbb{R}^{1 \times d_z} Wc∈R1×dz ,
用公式
B L = b W B C L = c W C L = B L + C L B_{L} = b W_{B} \\ C_{L} = c W_{C} \\ L = B_{L} + C_{L} \\ BL=bWBCL=cWCL=BL+CL
将布局 l l l 变换为布局嵌入 L = { O 1 , O 2 , ⋯ , O k } ∈ R k × d z L = \{O_1, O_2, \cdots, O_k\} \in \mathbb{R}^{k \times d_z} L={O1,O2,⋯,Ok}∈Rk×dz。
d.使用transfomer嵌入到unet网络中。
L ′ = L F M ( L ) L'=LFM(L) L′=LFM(L),其中输出 L ′ = { O 1 ′ , O 2 ′ , ⋯ , O k ′ } ∈ R k × d z L' = \{O'_1, O'_2, \cdots, O'_k\} \in \mathbb{R}^{k \times d_z} L′={O1′,O2′,⋯,Ok′}∈Rk×dz
LFM是基于多层自注意力机制的模块。
最终这4个步骤从下图可以看出来。