🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中一起航行,共同成长,探索技术的无限可能。
🚀 探索专栏:学步_技术的首页 —— 持续学习,不断进步,让学习成为我们共同的习惯,让总结成为我们前进的动力。
🔍 技术导航:
- 人工智能:深入探讨人工智能领域核心技术。
- 自动驾驶:分享自动驾驶领域核心技术和实战经验。
- 环境配置:分享Linux环境下相关技术领域环境配置所遇到的问题解决经验。
- 图像生成:分享图像生成领域核心技术和实战经验。
- 虚拟现实技术:分享虚拟现实技术领域核心技术和实战经验。
🌈 非常期待在这个数字世界里与您相遇,一起学习、探讨、成长。不要忘了订阅本专栏,让我们的技术之旅不再孤单!
💖💖💖 ✨✨ 欢迎关注和订阅,一起开启技术探索之旅! ✨✨
文章目录
1. 背景介绍
Lan X, Lyu J, Jiang H, et al. Foodsam: Any food segmentation[J]. IEEE Transactions on Multimedia, 2023.
在本文中,我们探讨了 Segment Anything Model (SAM) 在食品图像分割任务中的零样本能力。为了解决 SAM 生成的掩码中缺乏类别特定信息的问题,我们提出了一个新框架,称为 FoodSAM。该创新方法将粗语义掩码与 SAM 生成的掩码相结合,以提升语义分割的质量。此外,我们注意到食品中的食材可以被视为独立的个体,这启发我们在食品图像上执行实例分割。
进一步地,FoodSAM 通过集成一个目标检测器,将其零样本能力扩展到全景分割,从而有效捕获非食品对象的信息。受最近可提示分割(promptable segmentation)成功的启发,我们还将 FoodSAM 扩展为支持各种提示变体的可提示分割。结果,FoodSAM 成为一个多层次粒度分割的全方位解决方案。
值得注意的是,这一开创性框架成为首个在食品图像上实现实例分割、全景分割和可提示分割的工作。大量实验表明了 FoodSAM 的可行性和出色的性能,验证了 SAM 在食品图像分割领域作为重要和有影响力工具的潜力。
自然语言处理领域【1】【2】【3】因大规模语言模型的出现【4】【5】【6】而发生了革命性变化,这些模型基于海量网页数据训练,展现了令人印象深刻的零样本泛化能力,能够超越其原始训练领域,在多个任务和数据分布上表现出色。在计算机视觉领域,Meta AI 最近发布的 Segment Anything Project (SAM) 提出了一种开创性的可提示分割任务,用于训练一个强大的视觉基础模型。这项雄心勃勃的工作标志着向全面认知识别所有物体迈出了重要一步,同时探索了交互式分割的挑战,并有效地考虑了真实世界的约束。
SAM 在各种分割基准测试中表现卓越,其零样本迁移能力在23个不同分割数据集上得到了验证【7】。本文聚焦于 SAM 在食品图像分割领域的零样本能力,这是一项食品计算领域中的关键任务【8】【9】【10】。然而,SAM 单独生成的掩码效果并不令人满意,主要是由于其生成的掩码缺乏类别特定信息。此外,与一般物体图像的语义分割相比,食品图像分割更具挑战性,因为食品外观的多样性大且食材类别分布不平衡【11】。因此,利用 SAM 准确区分食品的类别和属性是一项艰巨的任务。
为了解决上述问题,我们提出了一个名为 FoodSAM 的新型零样本分割框架,它通过将原始语义掩码与 SAM 生成的类别无关的掩码结合起来,提升分割效果。尽管 SAM 在食品图像分割中展现了显著的能力,但其缺乏类别特定信息。相较之下,传统分割方法保留了类别信息,但在分割质量上有所妥协。为提升语义分割质量,我们倡导将原始分割输出与 SAM 生成的掩码融合,并通过识别掩码的主要元素确定其类别,这是一种新颖且有效的增强语义分割的方式。
由于食品中的食材通常被随机切割并放置,它们可以被视为独立的个体。这启发我们在食品图像上实现实例分割。SAM 生成的掩码与独立实例天然相关,为我们在食品图像上执行实例分割奠定了基础。
食品图像中常包含非食品物体,如叉子、勺子、玻璃杯和餐桌等。这些物体虽非食材,但对食品的属性表征至关重要。FoodSAM 引入目标检测方法【12】【13】【14】,检测背景中的非食品物体,并通过结合 SAM 生成的背景掩码,将物体类别标签作为语义标签。结合实例分割方法,该框架能够成功实现食品图像的全景分割。
受 SAM 项目的启发,我们将研究扩展到“食品图像分割提示任务”。我们设计了一种简单而有效的目标检测方法,使 FoodSAM 支持可提示分割,支持多种提示形式,如点、框和掩码提示。通过点定位、框覆盖或掩码重叠来选择感兴趣的物体。结合 SAM 的可提示分割和原始语义掩码,我们在食品和非食品物体上实现了多个粒度级别的可提示分割。
主要贡献:
-
全方位分割能力:我们提出了一个全新的零样本框架 FoodSAM,能够在不同粒度级别上完成食品分割任务。这项工作首次探索了 SAM 在食品图像分割领域的应用,成功扩展了其零样本能力。
-
多种分割任务的突破:这是首个在食品图像上实现 实例分割、全景分割 和 可提示分割 的工作。
-
实验结果:通过在 FoodSeg103 和 UECFoodPix Complete 数据集上的全面评估,FoodSAM 在两个数据集上均优于当前最先进的方法。此外,FoodSAM 的性能在所有食品分割任务中都超越了其他 SAM 变体。
2. 方法
2.1 初步回顾
Segment Anything Model (SAM)【7】是第一个将基础模型应用于图像分割任务领域的模型。如图2所示,该模型包含三个关键组件:图像编码器、提示编码器和轻量化的掩码解码器模块。
-
图像编码器:
- 使用计算密集型的视觉 Transformer 架构,包含数百万个参数,有效提取输入图像的显著视觉特征。
- 提供三种特定尺度的预训练配置:
- ViT-B(91M 参数)
- ViT-L(308M 参数)
- ViT-H(636M 参数)【56】【57】。
-
提示编码器:
- 支持四种文本或空间提示输入:
- 点(points)
- 框(boxes)
- 自由格式文本(freeform text)
- 现有掩码(existing masks)
- 提示的表示方法:
- 点和框使用位置编码【58】。
- 文本由预训练的 CLIP 模型中的文本编码器编码【20】。
- 掩码输入通过卷积嵌入。
- 提示嵌入和图像特征逐元素相加。
- 支持四种文本或空间提示输入:
-
掩码解码器模块:
- 使用基于 Transformer 的架构:
- 对提示应用自注意力。
- 对提示和图像编码器输出应用交叉注意力。
- 动态掩码预测头输出像素级掩码概率和预测的 IoU(Intersection over Union)指标。
- 使用转置卷积对解码器特征进行上采样。
- 能够为每个提示输入生成多个掩码,默认情况下每个提示生成三个掩码。
- 图像特征仅需提取一次,可在相同图像的不同提示间重复使用,从而支持实时交互式应用(如移动增强现实)。
- 使用基于 Transformer 的架构:
SAM 在超过 1100 万张图像和 10 亿掩码的大规模数据集上训练,展现了强大的零样本迁移能力。正如其名称所示,SAM 可以分割几乎任何概念,包括训练期间从未见过的新物体。
最近,有几项相关工作提出了解决 SAM 局限性的改进方法:
-
RAM【59】:
- 一种基于 SAM 的创新图像标记基础模型。
- 通过在大量图像-文本对上训练,能够高效识别常见类别,无需手动标注即可获得大量图像标签。
-
SEEM【60】:
- 一种交互式分割模型,可同时在全像素和全语义范围内执行图像分割。
- 支持多种交互提示类型(包括点击、框、多边形、涂鸦、文本和引用区域)。
- 在开放词汇分割和交互式分割任务中表现出色,并展现了对多样化用户需求的强大泛化能力。
-
SSA【61】:
- 一种新型开放框架,将 SAM 应用于语义分割任务。
- 允许用户将现有语义分割器无缝集成到 SAM 中,而无需重新训练或微调 SAM 的参数。
- 提升了语义分割任务中的泛化能力和掩码边界的细化效果。
2.2 总览
我们探索了将 SAM 这一强大的掩码生成器应用于食品图像分割。尽管 SAM 能够高质量地分割食品图像,其生成的掩码缺乏类别语义信息,而标准语义分割方法虽然提供了类别标签,但分割质量较差。
FoodSAM 框架
- 提出了 FoodSAM,融合了 SAM 和传统语义分割的优点。
- 语义增强:通过基于掩码与类别匹配的方式,为 SAM 的高质量掩码赋予语义标签。
- 实例分割:将食品食材视为独立个体,进行实例分割。
- 全景分割:通过引入目标检测器,检测背景中的非食品物体(如餐桌、盘子、勺子等),实现食品图像的高质量全景分割。
- 可提示分割:结合 SAM 的提示学习方法,引入点、框和掩码提示,支持多粒度的交互式提示分割。
2.3 FoodSAM 框架
FoodSAM 由以下三大模型组成:
- SAM (Ma):
- 提供高质量的类别无关掩码。
- 语义分割模块 (Ms):
- 提供类别标签的分割结果。
- 目标检测器 (Md):
- 检测背景中的非食品物体,并为其分配语义标签。
框架的核心创新包括:
- 掩码-类别匹配:
- 为 SAM 掩码分配语义标签。
- 融合策略:
- 将重叠掩码按面积排序,从大到小融合。
- 提示优先选择:
- 通过点、框和掩码提示实现交互式分割。
语义增强
- 假设输入食品图像
I
∈
R
H
×
W
I \in R^{H \times W}
I∈RH×W:
- 语义分割模块生成语义掩码 m s = M s ( I ) m_s = M_s(I) ms=Ms(I)。
- SAM 生成二值掩码 m a ∈ R K × H × W m_a \in R^{K \times H \times W} ma∈RK×H×W。
- 掩码类别匹配:
- 对于 m a m_a ma 的第 i i i 个掩码 m a i m^i_a mai,通过投票选择类别标签 s i s_i si,并根据阈值 τ \tau τ 过滤不稳定的掩码。
实例分割
- 将小型掩码合并到相邻的同类掩码中。
- 过滤掉与背景类别对应的掩码。
全景分割
- 引入目标检测器
M
d
M_d
Md:
- 检测非食品物体的边界框 B d B_d Bd 和类别标签 C d C_d Cd。
- 结合 SAM 掩码,通过 IoU 匹配为非食品物体分配类别标签。
可提示分割
- 支持点提示、框提示和掩码提示,通过 SAM 和目标检测器的提示优先选择机制,实现多粒度交互分割。
最终,FoodSAM 实现了语义、实例、全景和可提示分割,为食品图像分割设立了新的标准。
3. 实验
3.1 实验设置
数据集
-
UECFoodPix Complete [15]
- 由电气通信大学在2020年发布。
- 包含102种菜肴,共有9000张训练图像和1000张测试图像。
- 为每个食品项提供语义标签,共有103个类别标签。
- 分割掩码通过 GrabCut 半自动生成(基于用户初始化的种子)【63】,然后由人工根据预定义规则进一步精炼【64】。
-
FoodSeg103 [11]
- 最近设计的食品图像分割数据集,共包含7118张图像,涉及730种菜肴。
- 提供更细粒度的注释,捕获每道菜肴中单独成分的特性。
- 训练集包含4983张图像,提供29530个成分掩码;测试集包含2135张图像,提供12567个成分掩码。
- 掩码均通过人工注释获得。与 UECFoodPix Complete 相比,FoodSeg103 提供更具挑战性的基准,并具有更细粒度的成分注释。
3.2 实现细节
- 硬件:实验基于 NVIDIA GeForce RTX 3090 GPU 运行。
- FoodSAM 组件:
- SAM 的图像编码器使用 ViT-H【56】,超参数与原论文一致。
- 目标检测器使用 UniDet【14】。
- 语义分割模块:
- 在 FoodSeg103 上基于 SETR【37】,使用 ViT-16/B 作为编码器,MLA 作为解码器,使用 GitHub 提供的检查点。
- 在 UECFoodPix Complete 上基于 Deeplabv3+【65】,使用与论文中相同的超参数重新训练检查点。
3.3 评估指标
-
mIoU (平均交并比):衡量推理结果与真实值之间的重叠和联合。
mIoU = 1 N ∑ i = 1 N TP i TP i + FP i + FN i \text{mIoU} = \frac{1}{N} \sum_{i=1}^N \frac{\text{TP}_i}{\text{TP}_i + \text{FP}_i + \text{FN}_i} mIoU=N1i=1∑NTPi+FPi+FNiTPi
其中:- TP i \text{TP}_i TPi:正确分类为类别 i i i 的像素数。
- FP i \text{FP}_i FPi:错误分类为类别 i i i 的像素数。
- FN i \text{FN}_i FNi:真实值为类别 i i i,但未正确分类的像素数。
-
mAcc (平均精度):所有类别的平均精度。
mAcc = 1 N ∑ i = 1 N TP i TP i + FN i \text{mAcc} = \frac{1}{N} \sum_{i=1}^N \frac{\text{TP}_i}{\text{TP}_i + \text{FN}_i} mAcc=N1i=1∑NTPi+FNiTPi -
aAcc (总体精度):所有像素的准确分类比例。
aAcc = ∑ i = 1 N TP i ∑ i = 1 N ( TP i + FN i ) \text{aAcc} = \frac{\sum_{i=1}^N \text{TP}_i}{\sum_{i=1}^N (\text{TP}_i + \text{FN}_i)} aAcc=∑i=1N(TPi+FNi)∑i=1NTPi
3.4 与最新方法的比较
语义分割评估
- FoodSeg103 上性能:
- FoodSAM 达到 46.42 mIoU, 58.27 mAcc, 84.10 aAcc。
- UECFoodPix Complete 上性能:
- FoodSAM 达到 66.14 mIoU, 78.01 mAcc, 88.47 aAcc。
- 与其他零样本方法对比:
- FoodSAM 的 mIoU 均高于30,超越监督方法最高 45.1 mIoU。
- 定性分析:
- FoodSAM 利用 SAM 的强大分割能力补偿原始分割器的缺陷,在细粒度成分上表现更优。
实例分割评估
- 无相关基准,定性分析表明:
- FoodSAM 能有效识别食材实例身份,并实现高质量实例分割。
- 与 RAM【59】相比,FoodSAM 能更细粒度地分割草莓等复杂食材。
全景分割评估
- 在无相关数据集的情况下,与 RAM 和 SEEM 进行定性对比:
- FoodSAM 在非食品物体(如碗、盘子)上的分割表现优异。
- 能有效区分细粒度差异,如装有食材的碗和装牛奶的玻璃杯。
可提示分割评估
- FoodSAM 支持点提示、框提示和掩码提示。
- 定性分析表明:
- FoodSAM 能识别食品成分类别,并在背景中分割非食品物体。
3.5 FoodSAM 的改进
融合实验
- 随着合并掩码数量的增加,性能显著提高。
- 在 FoodSeg103 和 UECFoodPix Complete 上使用 80 个掩码时,性能达到最佳。
消融实验
- 在 FoodSeg103 上验证不同组件的功能:
- 过滤含混类别标签(FCC)或未过滤。
- 使用或未使用 SAM 生成的掩码(WSM)。
- 将面积从大到小排序融合表现最佳。
阈值影响
- 在 FoodSeg103 上,较高的阈值对改进效果有限。
- 在 UECFoodPix Complete 上,混淆标签数量较多时,改进更显著。
4. 结论
本文研究了 SAM 在食品图像分割中的零样本能力,针对其类别信息不足的问题,提出了 FoodSAM 框架。FoodSAM 通过结合原始语义掩码与 SAM 的类别无关掩码,显著提升了语义分割质量。此外,FoodSAM 利用 SAM 的实例掩码,实现了食品图像的实例分割,并结合目标检测器完成了全景分割。
FoodSAM 还支持多种提示形式,实现交互式提示分割。综合评估表明,FoodSAM 在多个数据集上超越现有方法,验证了 SAM 在食品图像分割领域的潜力。
🌟 在这篇博文的旅程中,感谢您的陪伴与阅读。如果内容对您有所启发或帮助,请不要吝啬您的点赞 👍🏻,这是对我最大的鼓励和支持。
📚 本人虽致力于提供准确且深入的技术分享,但学识有限,难免会有疏漏之处。如有不足或错误,恳请各位业界同仁在评论区留下宝贵意见,您的批评指正是我不断进步的动力!😄😄😄
💖💖💖 如果您发现这篇博文对您的研究或工作有所裨益,请不吝点赞、收藏,或分享给更多需要的朋友,让知识的力量传播得更远。
🔥🔥🔥 “Stay Hungry, Stay Foolish” —— 求知的道路永无止境,让我们保持渴望与初心,面对挑战,勇往直前。无论前路多么漫长,只要我们坚持不懈,终将抵达目的地。🌙🌙🌙
👋🏻 在此,我也邀请您加入我的技术交流社区,共同探讨、学习和成长。让我们携手并进,共创辉煌!