展开本页目录
开始前准备什么
- 解压到独立目录,先读README和运行状态;不覆盖原素材。
- Python脚本基础校验需要Pillow;模型环境按本页官方工具单独准备。
- 使用自有或有权使用素材;权重许可与工具代码许可分别核对。
- 确认目标零件和实际坐标系
- 安装官方仓库并对应配置与 checkpoint
- 先检查 正点与负点职责
- 请求多候选并保存评分
- 对照候选与负点附近
- 将选定 mask 应用到原始 RGB
- 保存点位、候选和选择原因
1. 确认目标零件和实际坐标系
原创 flatlay.png 是代码绘制的五个积木零件,目标是中间红色块。points.json 使用原图像素 x/y,不是截图 CSS 坐标;点位可视图只是输入标注,不是 SAM 2 分割结果。
bash
python3 verify.py2. 安装官方仓库并对应配置与 checkpoint
在独立环境按官方 INSTALL 安装。示例选择 SAM 2.1 tiny,checkpoint 与 configs/sam2.1/sam2.1_hiera_t.yaml 必须匹配;不要混旧 SAM1 ONNX。大权重未在本页机器执行。
bash
git clone https://github.com/facebookresearch/sam2.git
cd sam2
git checkout 2b90b9f5ceec907a1c18123530e92e794ad901a4
pip install -e ".[notebooks]"3. 先检查 正点与负点职责
labels=1 的点要求包含目标,labels=0 排除右侧零件。先保留 points.json 副本;修改一个点时其余点和输入不变。多次提交点的集合要以实际调用内容为准。
bash
python3 verify.py4. 请求多候选并保存评分
run_sam_points.py 使用 SAM2ImagePredictor.set_image,传入 point_coords/point_labels 与 multimask_output=True。候选分数不是人工质量分;所有候选都存盘,不能只存最高分图。
bash
python run_sam_points.py --repo /path/to/sam2 --checkpoint /path/to/sam2.1_hiera_tiny.pt --device cuda5. 对照候选与负点附近
官方 Notebook 图是该作者输入的真实演示,不是本积木推理。你执行后在 output/ 查看候选 mask;尤其检查是否包括旁边零件、目标孔洞是否遗漏。
bash
python3 verify.py --results output6. 将选定 mask 应用到原始 RGB
按人工验收选定 candidate-0/1/2,而不是盲选 score 最大值。导出时 RGB 从原图复制,alpha 来自该候选;保持原画布,不对零件形状进行生成式重画。
7. 保存点位、候选和选择原因
交付原图、points.json、checkpoint/源码 revision、三个候选和人工选择原因。一次抠像失败可新增负点再跑到新目录,不能覆盖掉失败证据。
怎样确认已经完成
- 所有点在原图范围内,x/y 未颠倒,标签只含0/1。
- 全部候选分数和 masks 保存,人工选择与机器评分分开。
- 正文提示点图不冒充模型 mask,本机推理状态明确。
常见问题
点哪里抠哪里是不是一句话自动识别?
本页是图像像素正负点提示,没有语言理解模块;自然语言找物体需另一模型链路。
为什么最高分候选仍可能选错?
分数是模型预测,不代替你的目标定义。要对照负点附近、相邻零件和孔洞人工选择。
SAM 2 图像分割教程本机跑过了吗?
本页已验证原创输入和点位,未下载运行 SAM 2 权重;官方 Notebook 结果明确注明来源。




