ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Segment Anything (SAM) 实战:从点提示到全图自动掩码,装完到跑通的路

Segment Anything (SAM) 实战:从点提示到全图自动掩码,装完到跑通的路 Segment Anything (SAM) 实战从点提示到全图自动掩码装完到跑通的路【免费下载链接】segment-anythingThe repository provides code for running inference with the SegmentAnything Model (SAM), links for downloading the trained model checkpoints, and example notebooks that show how to use the model.项目地址: https://gitcode.com/GitHub_Trending/se/segment-anythingSegment AnythingSAM是 Meta AI 推出的提示驱动图像分割模型给一个点、一个框甚至不给提示它都直接返回对象掩码。模型在 1100 万张图像、11 亿个掩码上训练零样本泛化扎实。本文走一遍安装、最小示例和常见坑。效果先声夺人 上面两种是它最典型的用法框加一个点模型直接圈出轮子并给出质量分不点任何东西时它自动把整条街的每个区域都切出来。掩码自带 predicted_iou 和 stability_score 两个分数直接拿来过滤即可。它是怎么做到的先理解机制后面调参才不迷路。可以把 SAM 想成先把整张图通读一遍、记好一张压缩笔记之后你每给一个提示就查一次笔记——这就是代码里先调一次set_image、再反复调predict的原因图像嵌入image embedding图像编码器产出的压缩特征只算一遍之后的提示只是轻量查询第二次点击比第一次快得多。三个组件各司其职图像编码器ViT 主干把长边 1024 的图像压成 256 维的特征笔记只算一次提示编码器把点、框、低分辨率掩码等提示统一编码成向量掩码解码器拿笔记 提示生成多个候选掩码并预测每个掩码的质量分装好跑起来环境准备git clone https://gitcode.com/GitHub_Trending/se/segment-anything cd segment-anything pip install -e .要求 Python ≥ 3.8、PyTorch ≥ 1.7、torchvision ≥ 0.8官方强烈建议装 CUDA 版。掩码后处理、COCO 格式保存、示例 notebook 和 ONNX 导出还需要可选依赖pip install opencv-python pycocotools matplotlib onnxruntime onnx。最小可运行示例import cv2 from segment_anything import SamPredictor, sam_model_registry sam sam_model_registryvit_b # 加载权重 predictor SamPredictor(sam) predictor.set_image(cv2.imread(notebooks/images/dog.jpg), image_formatBGR) # 算图像嵌入 masks, scores, _ predictor.predict(point_coords[[400, 250]], point_labels[1]) # 点提示跑完masks是 3 张原图尺寸的候选掩码scores是每个掩码的质量分取分最高那张就行。交互式版本见 notebooks/predictor_example.ipynb。Web 端可视化入口demo/目录内置了一个纯前端 React 演示先用scripts/export_onnx_model.py把轻量的掩码解码器导出成 ONNX图像嵌入则在 GPU 端预计算存成.npy之后yarn yarn start起服务浏览器里移动光标就能看到掩码实时更新靠 Web Worker 加 SIMD 做多线程加速。进阶玩法用框提示切更稳轮廓明确的物体单点容易切出半截给框更稳masks, scores, _ predictor.predict(box[120, 80, 560, 420]) # 像素坐标 [x1, y1, x2, y2]框提示的输出通常比单点更贴合物体边界且不必再纠结三个候选里挑哪个。全图自动掩码生成不想逐个点提示时AMG 会在图上布一个点网格自动扫一遍一次跑出几十个候选掩码from segment_anything import SamAutomaticMaskGenerator, sam_model_registry sam sam_model_registryvit_b masks SamAutomaticMaskGenerator(sam).generate(image) # 自动布点、NMS 去重返回的每个掩码都带 bbox、面积和稳定性分数高分辨率场景可加crop_n_layers1多尺度裁切提升召回。下图就是仓库自带的示例图 notebooks/images/dog.jpg拿它跑一遍能直观看到掩码密度命令行批量处理文件夹要批量标注时不用自己写循环仓库自带 CLIpython scripts/amg.py --checkpoint sam_vit_b_01ec64.pth --model-type vit_b \ --input notebooks/images --output masks_out每张图输出一组 PNG 加一份 metadata.csv加--convert-to-rle则合并成单个 COCO RLE json。入口在 scripts/amg.py。版本怎么选、性能怎么权衡三个版本的区别主要在图像编码器规模上掩码解码器完全一样版本编码器配置定位vit_h默认embed 1280 / 32 层 / 16 头质量最好最重精度优先时选它vit_lembed 1024 / 24 层 / 16 头中间档很少单独用vit_bembed 768 / 12 层 / 12 头最轻最快快速验证和批量标注首选大多数场景先用vit_b就够了效果和速度都在线等确认要落地的任务对边界精度敏感再换vit_h。踩坑指南权重不在仓库里pip install之后并没有模型可用 → 三个 checkpoint 需要按 README 里的链接单独下载并把路径传给checkpoint参数。cv2 读图出来掩码颜色不对OpenCV 读出来是 BGR而set_image默认按 RGB 处理 → 传image_formatBGR或者读图后转成 RGB。单点提示为什么返回 3 个掩码multimask_outputTrue是针对模糊单点场景设计的会给不同大小的候选 → 直接按scores取最高分那张提示本身已经足够明确时设multimask_outputFalse。报 ModuleNotFoundError: cv2 或 pycocotools这些是可选依赖核心推理不需要 → 装完pip install opencv-python pycocotools matplotlib onnxruntime onnx即可AMG 的min_mask_region_area小区域清理依赖 opencvcoco_rle输出依赖 pycocotools。大图跑 AMG 显存/内存吃紧points_per_batch默认 64 就是控制并发点数换显存的调小即可output_modebinary_mask在高分辨率下会占大量内存可换成coco_rle。装好仓库、拿一个vit_bcheckpoint用notebooks/images/dog.jpg点一下坐标就能看到第一张掩码两分钟能跑通。想接着看完整交互流程从 notebooks/predictor_example.ipynb 和 demo/ 两个入口继续即可。 【免费下载链接】segment-anythingThe repository provides code for running inference with the SegmentAnything Model (SAM), links for downloading the trained model checkpoints, and example notebooks that show how to use the model.项目地址: https://gitcode.com/GitHub_Trending/se/segment-anything创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表