/ Модель

Характеристики

Лицензия
CC BY-NC 4.0
Базовая модель
sam3
Библиотека
pytorch
Опубликована
8 сен 2026

sam3-concept-bank

Сегментация изображенийИзображение → mask

Адаптер для SAM3, улучшающий сегментацию частей 3D-объектов по названиям на серых рендерных изображениях.

0скачиваний за 30 дней0лайковвеса обновлены8 сен 2026

Бенчмарки

Как модель справилась с задачами пользователей ailist и что о ней публикуют открытые лидерборды

Публичные оценки

Из открытых лидербордов. Сравнивайте результаты одного теста при одинаковых условиях — отсутствие оценки не значит, что модель хуже.

В подключённых источниках результатов для этой модели пока нет.

Что умеет модель

Описание составлено по карточке модели и метаданным Hugging Face

SAM3 Concept Bank v3 — это небольшой обученный адаптер текстовых эмбеддингов для замороженной модели SAM3 от Meta. Он добавляет общий вектор смещения и отдельные смещения для 280 названий частей 3D-объектов, чтобы улучшить сегментацию этих частей на серых рендерных изображениях без текстур. Веса SAM3 не изменяются. Банк поставляется в формате PyTorch и требует базовую модель facebook/sam3; её репозиторий закрыт и для доступа нужно получить разрешение.

Адаптер предназначен для сегментации частей 3D-активов по текстовым подсказкам, например head, armrest и axle. В тесте на отложенных объектах он повысил mIoU при пороге 0,5 с 0,288 до 0,368 и снизил долю пикселей нераспознанных частей с 65% до 38%; автор рекомендует порог 0,4. Обучение проводилось на серых изображениях 512×512 с двух ракурсов. Лицензия — CC BY-NC 4.0.

Результаты не подтверждены для текстурированных изображений и других ракурсов. Словарь охватывает около 82% экземпляров частей обучающей выборки; редкие и отсутствующие в нём названия не имеют собственного смещения. Разметка обучалась как объединение пикселей для каждого названия, поэтому одинаково названные экземпляры не разделяются.

Сценарии применения

  • Сегментация подголовников на серых рендерах мебели
  • Поиск осей и других деталей на рендерах 3D-активов
  • Разметка частей 3D-объектов по текстовым названиям
  • Повышение полноты сегментации частей в наборе из 280 названий

Ограничения

Проверена на серых рендерах 512×512 только с двух ракурсов; перенос на текстурированные изображения и иные ракурсы не подтверждён. Редкие и отсутствующие в словаре названия не имеют индивидуальных векторов, а одинаково названные экземпляры сегментируются общей маской.

Карточка модели

README от автора на Hugging Face, как он его опубликовал

Открыть на Hugging Face

SAM3 Concept Bank v3 (3D part names)

一个 287 KB 的文本嵌入偏移库,让冻结的 SAM3 更擅长在无纹理的灰模渲染图上按部件名分割 3D 资产(head / armrest / axle / …)。

SAM3 权重完全没有改动。学到的东西只有两个张量:

形状作用
E_0[256]共享偏移,适配"灰模渲染 + 部件名"这个域
E[280, 256]280 个高频部件名各自的偏移

推理时 pooler_output += E_0 + E[name](对每个文本 token 广播),然后跑冻结的检测器。方法基于 M2C(arXiv 2606.26711),改成"共享 + 逐名字"的两级库。

文件

文件内容
bank.pt部署用。{E_0, E, names, template, base, meta},meta 里存了全部训练参数
bank_epoch1/2/3.pt逐 epoch 快照(收益几乎都在 epoch 1)
split.json1800 训练 / 200 留出物体,复现同一划分
log.jsonl每 50 step 的 loss,每 epoch 的完整留出集指标
text_cache.pt2.8 MB,全部名字的 256 维文本向量(已加偏移)。给下游 SegviGen 的图例 token 用,单独用概念库时不需要

结果

留出集 200 个物体 / 1068 个提示词。epoch 0 = 裸 SAM3 基线,v3 = 本库:

分数阈值mIoU灰像素(未绑定部件像素,越低越好)难负例误检(越低越好)
0.40.309 → 0.3970.607 → 0.3210.229 → 0.254
0.50.288 → 0.3680.654 → 0.3810.186 → 0.188
0.60.259 → 0.3330.685 → 0.5010.142 → 0.121

主收益是召回:阈值 0.5 上没被任何名字绑定的部件像素从 65% 降到 38%,而误检率基本不动(0.186 → 0.188),阈值 0.6 上还更低。这说明提升不是靠整体放宽阈值换来的。

建议部署阈值 0.4。阈值 0.3 上难负例误检会从 0.289 涨到 0.324,不要用。

mIoU 绝对值不高(0.37)是正常的:它是"名字级并集"的 2D IoU,GT 用 PartVerse 的部件划分,很多名字本身有歧义(body 到哪算完)。只作相对比较。

用法

import torch

d = torch.load("bank.pt", map_location="cpu")
E_0, E, names = d["E_0"], d["E"], d["names"]
idx = {n: i for i, n in enumerate(names)}

def offset(name):                       # 词表外的名字只吃 E_0
    o = E_0.clone()
    if name in idx:
        o = o + E[idx[name]]
    return o

# 在冻结的 SAM3 上:
#   text_out = model.get_text_features(input_ids=..., attention_mask=...)
#   text_out.pooler_output = text_out.pooler_output + offset(name).view(1, 1, -1)
#   out = model(vision_embeds=..., text_embeds=text_out, attention_mask=...)

完整实现见 finetune/sam3_bank.py 的 ConceptBank 与 run_prompts。

训练

数据:bqewutq5565/segvigen-pv-2view。

python finetune/concept_bank.py --dataset_root /data/pv --out /data/concept_bank_v4 \
  --template name --epochs 3 --neg_mode mixed --negatives 3 --neg_weight 0.5 \
  --lr_e0 5e-4 --holdout_file /data/pv_holdout_v3.txt --azimuths 0,135 \
  --min_count 8 --max_prompts 12 --eval_thresholds 0.4,0.5,0.6

3 epoch × 3600 step,单卡 70 min、峰值 15.3 GB 显存。损失 = 正例 BCE+Dice + 0.5 × 负例 BCE + 0.5 × presence BCE。

facebook/sam3 是 gated 仓库,需要先 huggingface-cli login 并申请访问。

局限

  • 只在 az0 / az135 两个方位的 512×512 灰模渲染图上训练,别的视角/带纹理的图没验证过。
  • 词表 280 个名字覆盖训练集约 82% 的部件实例;长尾和词表外的名字只吃 E_0,没有专属向量。
  • 名字是 LLM 生成后人工审阅的,仍有噪声;names_meta.json 的 uncertain 部件在训练时被排除。
  • 只监督"名字 → 像素并集",同名多实例不会被分开。

相关

代码与完整报告:GzaIcebreak/sam3seggen —— finetune/DATA_concept_bank.md(数据格式与云端训练)、finetune/REPORT_overview.md(含下游 3D 分割对比)。

Как запустить

На своей GPU в ailist. Цена — по текущим предложениям провайдеров

GPU в ailist

Универсальный рантайм · pytorch · image-segmentation

Нельзя запустить

В репозитории нет config.json: не понять архитектуру модели.

Ревизия весов
6e1299e

0 моделей