OmniCount:具有语义几何先验的多标签目标计数.
本文介绍了一种可以使用开放词汇表同时计数多个目标类别的模型OmniCount,OmniCount无需训练,直接通过预训练模型生成精确的目标掩码和利用点提示来区分用户指定的多个目标类别,并通过SAM模型进行有效计数。为了评估OmniCount,作者进一步创建了OmniCount-191基准,这是第一个具有多标签目标计数的数据集,标签包括点、边界框和VQA注释。
1. OmniCount模型
OmniCount利用预训练模型提供的的语义和几何线索将图像划分为语义连贯的掩码,利用深度线索识别被遮挡的物体,在语义掩码边缘应用基于k近邻的几何校正促进类别的排他性和深度一致性。该策略不仅可以细化分割以防止重叠,还可以有效地使用现有的分割模型如Segment Anything Model (SAM)以生成单个目标的掩码,以便在所需的类别中进行计数。
语义估计模块使用Side Adapter Network (SAN)作为语义分割模型$\mathcal{E}_{sem}$,该模型接收图像$I$和一组类标签\(P = \{p_1,...,p_m\}\)作为输入,对每个类别输出二元语义掩码\(S_P = \{S_1,...,S_m\}\)作为语义先验,同时输出中间低分辨率特征激活$F_P$。
深度图忽略了纹理信息,利用结构信息分割离相机近或远的物体,并且不包含类别信息,因此可以作为初步分割掩码的结构/几何先验,帮助恢复未发现的目标或改进目标语义。用现成的深度图渲染模型Marigold作为几何先验\(\mathcal{E}_{depth}\),为图像$I$生成深度图\(D = \mathcal{E}_{depth}(I)\)。
为了利用深度先验$D$来细化语义先验$S_P$,减少重复计数问题,围绕单个语义掩码的每个像素进行kNN搜索,以确保满足两个条件:
- 像素必须完全属于其指定的目标类别,防止与其他类别的掩码重叠;
- 像素深度与其目标类别的平均深度之间的绝对差值必须低于指定公差$τ$,以确保深度一致性(对于具有弯曲边缘的目标)。
满足上述条件的像素被集成到相应的目标类中,从而得到一个精炼的语义先验$S_P^\prime$,通过考虑深度信息来提高语义掩码的精度。这种深度感知的改进掩码最大限度地降低了过度分割的风险,恢复了被遮挡场景中未发现的物体。
Vanilla SAM使用一个点网格生成器在图像上均匀地放置点,这将导致在目标的前景和背景中都会放置点,从而产生不相关的计数过多或重复计数问题。为了减轻SAM中的计数过多问题,改进了SAM解码器选择参考点的过程。
通过识别语义估计模块中间低分辨率特征激活$F_P$内的局部最大值来选择一组参考点$(\rho_1,…,\rho_s)$。由于$F_P$的分辨率较低,直接上采样到图像分辨率会由于量化误差导致不对准,使得这些点不适合生成掩模。为了解决这个问题,对低分辨率参考点应用高斯细化,最大限度地减少上采样期间的量化误差。校正后的参考点记为$(\rho_1^\prime,…,\rho_s^\prime)$。为了避免背景分割,丢弃不在精炼的语义先验$S_P^\prime$有效值内的参考点。
通过将输入图像$I$与改进的语义掩码$S_P^\prime$相乘来获得指定类别目标的图像$I_m$,通过校正后的参考点$(\rho_1^\prime,…,\rho_s^\prime)$输入SAM模型获得目标掩码$M_m$,并计算SAM分割的单个目标掩码集合数量作为计数结果。
2. OmniCount-191数据集
OmniCount-191是一个包含30,230张图像的新数据集,涵盖191个不同类别,包括厨房用具、办公用品、车辆和动物。该数据集的每个图像具有从1到160的目标实例计数,平均计数为10。
OmniCount-191平均尺寸为700 × 580像素,总计302,300个目标。为了保证多样性,数据集被分成训练集和测试集,在目标类别上没有重叠:118个训练类和73个测试类。结果是26,978张用于训练的图像和3,252张用于测试的图像。
3. 实验分析
实验结果表明,OmniCount始终优于大多数基于训练的模型,并且所有基于四个关键指标的文本/框/点提示模式的无训练模型都证明了其在目标计数任务中的鲁棒性和效率。