一:前言
Chatgpt一问世,大语言模型的概念紧跟其后。SAM模型一发布,关于视觉大模型的概念也火了起来。计算机视觉的技术路线大致可以分为:目标分割->目标检测->目标识别->目标跟踪。
今天讲的主要是在目标分割这方面的工作。
二:概述
2.1解决的问题
首先,不管是HQ-SAM还是SAM,它们首先要解决的是图像分割的问题,然后才是HQ-SAM提出的解决分割复杂场景的物体。
2.2SAM模型具有的特点
2.2.1具有强大的zero-shot(零样本能力)
什么是零样本能力呢,就是机器在对大量的物体进行训练后,对于完全没见过的样本能够辨别这个是什么物体,这个是非常nb的一个能力。而不用像以前的算法那样,分割一个物体要事先对这个物体进行训练,然后进行分割。
2.2.2灵活的提示
SAM支持4种的提示分割。分别是point、box、text、mask。point就是鼠标光标放上去就能自动分割;box就是画一个框,然后进行自动分割;大家有熟悉CLIP的就会知道这个text是个什么东西了,就是根据你输入的文本,对图像中的物体就进行自动分割;最后是mask,mask就是一推点,所形成的。下面这个网址是SAM提供一个Demo,可以体验上面说的这些功能。
2.3SAM的数据集数量
SAM数据集的数量非常的大,它包括1100W张的图片,和11亿个高质量的mask(掩码)。从这些数据集可以看出,训练这样一个模型需要耗费的人力和算力资源可想而知,是非常的庞大。但是,同样,也因为SAM的开源,后续出现的HQ-SAM,不仅给我们提供了一种思路,也给我们提供了一种不用庞大的数据集和算力资源的方法。
2.4HQ-SAM在实现对SAM一些改进的方法。
2.4.1保持了SAM的提示功能和预训练模型
2.4.2在SAM的框架上添加了HQ-Output Token,用来预测高质量的掩码
2.4.3吸收了之前和最终的Vit,来提高掩码的质量
2.4.4HQ-SAM添加了44000个掩码,进行训练,在8卡GPU上训练只要四个小时。
三:介绍HQ-SAM
3.1不同对象的准确分割是广泛场景的应用基础
SAM的自动分割和零样本能力的泛化性是支撑批量分割的基础。它能够减少用户在使用时在分割方面耗费的成本和时间。
3.2SAM目前存在的两个问题
3.2.1粗糙的掩码边界,忽略了目标结构的分割
3.2.2预测不准确,在具有挑战性的场景容易出现错误
四:SAM模型的介绍
4.1SAM支持多种输入
从左边那幅图我们可以看到,输入由左向右,有point(点),box(框)、mask、text(文本),还有image(图片)。右边那幅图 prompt encoder 把这些提示转为vector(向量)。
其中图片部分(image encoder)是用了VIT来提取图片的特征和进行特征融合。
4.2SAM流程框架图
需要讲的是output tokens 是目标特征提取,比如上图中的剪刀的特征。这边还涉及一个交并比IOU的概念,
交并比(loU)函数做的是计算两个边界框交集和并集之比,用来评价目标检测算法。橙色的部分是交集,绿色的部分代表并集。一般约定,0.5是阈值(threshold),用来判断预测的边界框是否正确。loU越高,边界框越精确。
4.3损失函数
4.4 计算得分,输出结果。
4.4.1模型会输出3个mask,基本符合大部分情况
4.4.2使用IOU的方式,排序mask,在反向传播的时候,参与计算的只有loss最小的吗mask
相关参数。