少训练样本的分割
将prototype的提取和无参数的度量学习分开了
优点:
啥意思,那一块不需要参数啊,度量学习?如何实现的呢?
亮点
Few-shot learning:
Few-shot segmentation:
Prototypical networks for few-shot learning的延申
用同一个backbone来提取support和query的深度特征,然后使用masked average pooling从support的特征将不同的前景物体和背景嵌入不同的prototypes中,每个prototype表示对应的类别,这样query图像的每个的像素通过参考离它的嵌入表达最近的特定类的prototype来标记,得到query的预测mask后;训练的时候,得到mask后,再将刚才提取的query feature和mask作为新的“support set”,将之前的support set作为新的“query set”,再用“support set”对“query set”做一波预测,然后再算一个loss
prototype紧凑且鲁棒的对每个语义类别进行表达;mask标记那块就是无参度量学习,通过和嵌入空间的逐像素匹配来执行分割
算 法 总 览 , 公 式 编 号 和 顺 序 相 同 算法总览,公式编号和顺序相同 算法总览,公式编号和顺序相同
执行一个prototype对齐正则化,用query和他的mask建立新的support,然后用这个来预测原始的support set的分割,实验证明能鼓励query的prototype对齐他们的support的prototype,只有训练的时候这么做
反向再推一次,看看是否真的相似
图像说明:
support的嵌入特征是圆形,query图像是三角形,对每个类学习prototype(蓝色和黄色的),query通过在嵌入空间中将他的特征和最近的prototype进行匹配,来进行分割,虚线就是匹配,右图进行了prototype对齐正则化,就是通过从support到query的反向对齐。
方法的选择:
使用support的mask注释分开学习前景和后景的prototypes,对于什么时候融合mask有两种策略,一种是早融合,一种是晚融合:
作者选择晚输入,能保证两个特征提取器的输入一致性(query是没有mask的)
操作:
给定support set S i = { ( I c , k , M c , k ) } S_i = { (I_{c,k},M_{c,k})} Si={(Ic,k,Mc,k)},用 F c , k F_{c,k} Fc,k表示图片的输出特征图, c c c表示类别的index, k = 1 , . . . , K k=1,...,K k=1,...,K是support图片的index, c c c类别的prototype用下式计算:
p c = 1 K ∑ k ∑ x , y F c , k ( x , y ) L [ M c , k ( x , y ) = c ] ∑ x , y L [ M c , k ( x , y ) = c ] p_c = frac{1}{K}sum_kfrac{sum_{x,y}F^{(x,y)}_{c,k}L[M^{(x,y)}_{c,k}=c]}{sum_{x,y}L[M^{(x,y)}_{c,k}=c]} pc=K1k∑∑x,yL[Mc,k(x,y)=c]∑x,yFc,k(x,y)<
本文发布于:2024-02-01 12:55:45,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/170676334736744.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |