【Segment Anything in High Quality】
本篇文章是个人看文献的一些总结和个人的想法,都是个人看过文章之后的理解,不保证一定是对的,如果我的理解有错,欢迎纠正。
(2023.10.23)
SAM不足之处与HQ SAM
尽管SAM具备强大的零样本能力和灵活的提示功能,但在处理结构复杂的物体时,其掩码预测质量仍不理想。HQ SAM旨在保留SAM原本功能的同时增强模型的分割能力。HQ SAM保留了SAM的预训练模型权重,同时只引入了最小的额外参数和计算。
直接对SAM解码器进行微调或引入新的解码器模块会严重降低模型的泛化能力和分割能力。文章设计了一个可学习的高质量输出token(High-Quality Output Token),将其注入到SAM的掩码解码器中,来预测高质量的掩码。并且文章引入了可学习参数,构建了一个由44K个细粒度掩码组成的数据集。
HQ-SAM主要对SAM的两处改进
(1)HQ-Output Token是一个在mask decoder中引入的可学习的token,负责生成更高质量的分割掩码;这个token通过三层的MLP(多层感知器)进行处理。
(2)全局-局部特征融合(Global-local Feature Fusion):融合ViT早期和晚期的特征;融合全局语义信息和局部边界细节,从而提高掩码的精度。
训练的时候冻结SAM原有的部分,只更新HQ SAM中新增加的HQ-Output(以及其中相关的MLP层)和Global-local Feature Fusion两个部分当中的参数。新增加的参数数量几乎可以忽略不记,这样也就大大减少了计算资源。
训练和推理部分
由于SAM模型的训练集SA-1B数据集只包含自动生成的掩码标签,缺少对复杂结构对象的准确人工标注。因此文章重新构建了一个数据集HQSeg-44K用于训练HQ SAM,数据集中包含DIS(训练集)、ThinObject-5K(训练集)、FSS-1000、ECSSD、MSRA10K、DUT-OMRON,这些数据集中的掩码标注质量都较高。
为了适应灵活的分割提示,训练的时候采用的是混合类型的提示,提示形式有边界框、随机采样点和粗略的掩码输入。其中粗略的掩码是通过在GT掩码的边界区域添加随机高斯噪声生成的。
实验部分
为了标准化衡量HQ SAM的掩膜质量,文章采用了AP、mIoU、mBIoU和边界AP作为评价指标。
文章最后用HQ SAM做了大量的实验,最终HQ SAM在不同的数据集和不同的任务当中都取得了好的结果。
有一个问题想要请教一下作者大大:是否认为HQ-SAM的准确程度很大一部分取决于prompt的准确性呢?是否用自动的prompt会更好,有什么修改的见解吗?谢谢作者!!!
是的 其实SAM分割的准确性很大程度上是取决于提示的,一般来说越明确的提示分割出来的结果就越好,这也是为什么框提示的分割结果一般会比点提示好的原因(因为框提示对用户想要分割的物体有更明确的指示,点提示有时候会对要分割的物体有歧义)。但并不是说自动的prompt会对分割精度有明显的提升,不过自动的prompt可以很高效的去验证模型的推理能力(不需要根据不同图像手动一张一张给提示了)。