FeyNoBg 发布:开源自动背景去除模型,在四项基准上达到 SOTA

来源:Hacker News 热门(buzzing.cc 中文翻译) 2026年7月28日 12:57 AIHOT 评分:71 精选
摘要:Feyn Labs 推出 FeyNoBg,一个用于自动背景去除的 SOTA 模型。它在八个基准测试中的四项上取得最佳 S-measure 分数,其余四项与领先者差距在 2% 以内。该模型基于 BiRefNet 架构,参数量从 222M 扩展至 263M,同时开源了训练库 NoBg,模型和代码分别可在 Hugging Face 和 GitHub 获取。
# FeyNoBg 发布:开源自动背景去除模型,在四项基准上达到 SOTA - 来源:Hacker News 热门(buzzing.cc 中文翻译) - 作者:snyy - 发布时间:2026-07-28 12:57 - AIHOT 分数:71 - AIHOT 标记:精选 - AIHOT 链接:https://aihot.virxact.com/items/cms47q4jj00mxroep0x4at5sf - 原文链接:https://usefeyn.com/blog/feynobg ## 精选理由 FeyNoBg 在多个背景去除基准上达到或接近最佳,还开源了训练库,做图像处理的产品可以直接集成,是个实在的工具发布。 ## AI 摘要 Feyn Labs 推出 FeyNoBg,一个用于自动背景去除的 SOTA 模型。它在八个基准测试中的四项上取得最佳 S-measure 分数,其余四项与领先者差距在 2% 以内。该模型基于 BiRefNet 架构,参数量从 222M 扩展至 263M,同时开源了训练库 NoBg,模型和代码分别可在 Hugging Face 和 GitHub 获取。 ## 正文 研究 · 实地笔记 FeyNoBg:用于背景去除的 SOTA 模型 作者 Hafedh Hichri, Shreyash Nigam 所属机构 Feyn Labs 发布时间 2026 年 7 月 21 日 阅读时间 8 分钟 原始背景已去除 我们推出了 FeyNoBg,这是一款用于自动背景去除的最先进模型。在八个基准测试中,它在四项上取得了已发表的最佳 S-measure 分数,并在其余四项上距离领先者不到 2%。 基准测试 UHRSD-TE FeyNoBg 0.981 BiRefNet 0.957 Description 测试超高分辨率图像(包括 4K 和 8K 场景)中的显著目标蒙版。 我们还发布了 NoBg,这是我们用于训练模型的库。使用 NoBg 可以运行 FeyNoBg,或训练你自己的背景去除模型。 两者均为开源。在 Hugging Face 上下载 FeyNoBg,或在 GitHub 上使用 NoBg 进行构建。 去除需要组合 在计算机中,图像以像素网格的形式存储。背景去除算法的目标是为每个像素预测一个不透明度值,使得背景像素变为透明,前景像素保持不透明,而边界像素变为半透明。 生成这个不透明度图需要两种技能。首先,模型必须将前景与背景分离。当主体位于纯色背景前时,这可以通过比较颜色轻松完成。然而,在低对比度、拥挤或具有伪装效果的图像中,模型必须利用形状、纹理和上下文来识别哪些像素构成了主体。 其次,模型必须追踪前景的边界。在简单图像中,颜色或纹理的急剧变化提供了强烈的边缘信号。但真实的边界要困难得多。头发、毛发、细线和运动模糊会使前景和背景元素混合在一起。模型必须测量一个边缘像素有多少属于主体,并据此设置其不透明度。这被称为图像抠图。 通常,这些技能是通过不同类型的数据集来训练的。这会产生一个失败点。糟糕的训练混合可能导致模型失衡,一项技能的提升以牺牲另一项技能为代价。输出结果要么遗漏了主体的部分区域,要么边缘不干净。 真实图像是复杂的,需要在前景识别和边界精度方面具备高超技巧。这是我们在训练 FeyNoBg 时的关键洞察。 创造学习空间 我们选择 BiRefNet 作为 FeyNoBg 的基础,因为其架构已经符合我们的目标。BiRefNet 赋予模型两个部分互补的职责:其定位模块负责寻找前景,而重建模块则追踪主体的边界。 模型首先将输入图像送入一个分四个阶段运行的特征提取器。早期阶段捕捉局部细节,后期阶段则将收集到的细节组合成更广泛的图像表征,称为特征图。定位模块利用这些特征图寻找主体,而重建模块则利用它们恢复主体的边界。 特征提取器的第三阶段承担着最艰巨的任务。它既能观察到足够多的图像信息以推理整个主体,同时又能保留表征主体形状所需的空间细节。定位和边界重建都高度依赖于该阶段生成的特征图。 鉴于该阶段拥有丰富的图像表征,我们预期在此处增加深度有助于模型更好地保留信息,从而提升性能。因此,我们将第三阶段从 18 个块扩展至 24 个块。这使得模型规模从 2.22 亿参数适度增长至 2.63 亿参数。 原始模型 BiRefNet 2.22 亿参数 深度=[2, 2, 18, 2] 扩展后模型 FeyNoBg 2.63 亿参数 深度=[2, 2, 24, 2] 在扩展过程中,我们保留了所有兼容的预训练权重。只有新增的六个块从零开始训练。这使得 FeyNoBg 在不忘却基础模型已有知识的前提下,获得了学习新技能的额外能力。 有了更多的学习空间,是时候教老模型一些新技巧了。 多样化数据的优势 我们的首次训练使用了 MaskFactory,这是一个为精确前景分割而创建的合成图像与掩码对数据集。本次训练仅使用了这一个数据集。 如果我们的直觉正确,生成的模型会在某些基准测试上有所提升,而在其他基准测试上则会出现退步。这正是我们在受控评估中观察到的情况:模型在 CAMO 基准测试上有所改进,但在 DIS5K 上出现了退步。 接下来,我们专注于构建一个更多样化的数据集。我们从 10 个数据集中收集了 26,100 张图像,涵盖拥挤场景、伪装、高分辨率主体、肖像和动漫,然后进行了 7,000 步的训练。我们的目标是让模型在训练过程中尽可能多地接触各种场景。 训练混合了来自十个来源的 26,100 个样本 数据集 S3OD What it added 旨在帮助模型超越熟悉图像集合进行泛化的合成场景。 在最终运行之前,我们修改了最初的混合方案。我们从 S3OD 中增加了 4,000 张图像,将动漫图像减少到 500 张,并移除了 ThinObject-5K、HIM-2K 和 COIFT。这样我们只保留了那些能提供最有用、最一致训练样本的来源。 合并这些数据集带来了两个问题。首先,它们的大小差异很大。如果不加限制,最大的来源会主导训练过程,导致我们之前看到的同样特化问题。因此,我们将每个来源的上限设为 4,000 张图像,然后将它们混合在一起。 其次,这些数据集使用了不同的标注方式。分割数据集提供前景掩码,而抠图数据集则提供 Alpha 通道遮罩。我们将两者都转换为二值前景掩码,这样每张图像都共享相同的训练目标。 因此,抠图数据集贡献的是轮廓精确的主体,而非软透明度监督。 这为我们提供了一个经过精心设计、图像多样化的统一训练集。现在,我们的模型可以学习在更广泛的场景中识别并勾勒出前景。 结果 为了评估性能,我们记录了 S-measure 指标。该指标评分范围为 0 到 1,通过比较预测的前景与正确的掩码来评估。它既奖励完整的主体,也奖励忠实的形状。分数越高越好。 我们将 FeyNoBg 的 S-Measure 与八个基准测试(涵盖伪装、低对比度场景、精细结构、高分辨率图像和视频)上已发表的最佳结果进行了比较。FeyNoBg 在其中四个基准测试上领先,并在其余四个基准测试上与领先者的差距在 2% 以内。 UHRSD-TE HRSOD-TE DIS5K DAVIS-S DUTS-TE COD10K-TE DUT-OMRON CAMO-TE 值得注意的是,更广泛的训练混合数据将我们的 DIS5K 回归任务变成了基准测试领先的结果。 NoBg 库 图像抠图模型通常以独立的代码仓库形式发布。要比较不同模型或对某个模型进行微调,需要在开始任何实验之前编写多个适配器。这种设置很快就会变得过于混乱和令人沮丧,难以开展高质量的工作。 为了解决这个问题,我们创建了 NoBg。这是一个 Python 库,它提供了一致的接口来运行和训练背景移除模型。我们自己也使用它来训练 FeyNoBg。 为了鼓励该领域的更多发展,我们以开源形式发布了 NoBg。你可以用它来运行 FeyNoBg,或者训练你自己的模型。 高性能且便捷 一致的接口不应以牺牲性能为代价。我们比较了 NoBg 的 BiRefNet 与原始实现在批大小分别为 1、2 和 4 时的表现。NoBg 在每种批大小下都实现了更高的吞吐量、更低的延迟和更低的 GPU 峰值内存占用。 运行 FeyNoBg NoBg 在推理前会对图像进行大小调整和归一化处理。然后,它会将模型输出转换为原始尺寸的 alpha 遮罩,并将抠图结果保存为透明 PNG 格式。 import torch from loadimg import load_img from nobg import AutoModel, AutoProcessor model = AutoModel.from_pretrained("feyninc/FeyNobg").eval() processor = AutoProcessor.from_pretrained("feyninc/FeyNobg") image = load_img("input.jpg").convert("RGB") inputs = processor(image, return_tensors="pt") with torch.inference_mode(): outputs = model(pixel_values=inputs["pixel_values"]) alpha = processor.post_process_alpha_matting( outputs, target_sizes=[(image.height, image.width)], )[0] processor.cutout(image, alpha).save("output.png") 训练你自己的模型 NoBg 提供了在你自己提供的图像和遮罩对上训练 BiRefNet 所需的模型、处理器和损失函数。它还可以与 Hugging Face Trainer 配合使用,后者负责处理训练循环、检查点保存和评估。给定一个包含图像和遮罩列的数据集,训练过程如下所示: from nobg import AutoModel, AutoProcessor from transformers import Trainer, TrainingArguments model = AutoModel.from_pretrained("feyninc/FeyNobg") processor = AutoProcessor.from_pretrained("feyninc/FeyNobg") def collate(examples): batch = processor( images=[example["image"] for example in examples], segmentation_maps=[ example["mask"].convert("L") for example in examples ], return_tensors="pt", ) return { "pixel_values": batch["pixel_values"], "labels": batch["labels"], } trainer = Trainer( model=model, args=TrainingArguments( output_dir="outputs", learning_rate=2e-5, ), train_dataset=dataset, data_collator=collate, ) trainer.train() 从 Hugging Face 下载 FeyNoBg,并使用 NoBg 运行该模型。在我们的 Hugging Face Space 中在线试用。 使用 pip install nobg 安装 NoBg。你也可以在 GitHub 上找到它。 FeyNoBg 和 NoBg 由 Feyn 构建。你可以在 X、GitHub 或 LinkedIn 上找到我们。 致谢 FeyNoBg 基于 BiRefNet 以及彭政、高德宏、范登平、刘丽、Jorma Laaksonen、欧阳万里和 Nicu Sebe 的工作。我们也感谢在此过程中发布模型、代码和数据集的团队。 参考文献 [1] Zheng 等人。"Bilateral Reference for High-Resolution Dichotomous Image Segmentation." CAAI 人工智能研究 3 (2024). arXiv:2401.03407 . [2] Sargsyan 和 Navasardyan。"FlowDIS: Language-Guided Dichotomous Image Segmentation with Flow Matching." CVPR 2026年。 arXiv:2605.05077 。 [3] Kupyn、Kataoka 和 Rupprecht 合著论文《S3OD:基于合成数据实现可泛化的显著目标检测》。 arXiv:2510.21605 (2025年)。 引用此注释。 @note{feynobg2026, title = {FeyNoBg: Better Background Removal Without Forgetting}, author = {Hichri, Hafedh and Nigam, Shreyash and Feyn Research}, year = {2026}, venue = {Feyn Field Notes} }