segment-anything-video

kadirnarApache-2.0活跃维护

把 Meta 的 Segment Anything 打包成开箱即用的视频目标分割工具,配合 YOLOv5~v8 做检测后分割,省去自己搭环境的麻烦。

MetaSeg: Packaged version of the Segment Anything repository

v0.7.9发布于 2023-11-07 11:38 UTC980star66fork同步于 2026-11-10 17:54 UTC

怎么上手

由 README 提炼,执行前请确认
pip install metaseg
硬件要求按 README 说明

README 未给出具体显存数值,仅提示显存不足时调小 points_per_side 和 points_per_batch;支持通过 FalAI 云端 GPU 运行。

下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

把 Meta 的 Segment Anything 打包成 pip 包,支持图片和视频自动或手动分割

把 Meta 的 Segment Anything 打包成开箱即用的视频目标分割工具,配合 YOLOv5~v8 做检测后分割,省去自己搭环境的麻烦。

核心能力

  • 用 pip 安装即可调用 SAM 做图像与视频分割
  • 支持 vit_b/vit_l/vit_h 三种模型规格
  • 自动掩码模式可调 points_per_side 与 points_per_batch
  • 手动模式支持点选与框选,可多框多点多掩码输出
  • 可结合 SAHI 切片检测或 FalAI 云端 GPU 推理

容易踩的坑

需自行准备 SAM 权重,代码里通过 model_type 指定 vit_l/vit_h/vit_b;显存不足时要手动降低 points_per_side 和 points_per_batch;用 SAHI 或 FalAI 需额外安装 sahi、fal_serverless 并登录授权。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.7.9
  1. v0.7.9Segment-Anything v0.7.9最新正式版2023-11-07 · 2023-11-07 11:38 UTC

    What's Changed

    New Contributors

    Full Changelog: https://github.com/kadirnar/segment-anything-video/compare/v0.7.8...v0.7.9

  2. v0.7.8Segment-Anything v0.7.82023-06-29 · 2023-06-29 14:40 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/kadirnar/segment-anything-video/compare/v0.7.7...v0.7.8

  3. v0.7.6Segment-Anything v0.7.62023-06-27 · 2023-06-27 15:07 UTC
    查看更新说明

    What's Changed

    Full Changelog: https://github.com/kadirnar/segment-anything-video/compare/v0.7.0...v0.7.6

  4. v0.7.0Segment-Anything v0.7.02023-04-23 · 2023-04-23 14:54 UTC
    查看更新说明
  5. v0.6.0Segment-Anything v0.6.02023-04-12 · 2023-04-12 12:08 UTC
    查看更新说明

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    This repo is a packaged version of the segment-anything model.

    Installation

    pip install metaseg
    

    Usage

    from metaseg import SegAutoMaskPredictor, SegManualMaskPredictor
    
    # If gpu memory is not enough, reduce the points_per_side and points_per_batch.
    
    # For image
    results = SegAutoMaskPredictor().image_predict(
        source="image.jpg",
        model_type="vit_l", # vit_l, vit_h, vit_b
        points_per_side=16,
        points_per_batch=64,
        min_area=0,
        output_path="output.jpg",
        show=True,
        save=False,
    )
    
    # For video
    results = SegAutoMaskPredictor().video_predict(
        source="video.mp4",
        model_type="vit_l", # vit_l, vit_h, vit_b
        points_per_side=16,
        points_per_batch=64,
        min_area=1000,
        output_path="output.mp4",
    )
    
    # For manuel box and point selection
    
    # For image
    results = SegManualMaskPredictor().image_predict(
        source="image.jpg",
        model_type="vit_l", # vit_l, vit_h, vit_b
        input_point=[[100, 100], [200, 200]],
        input_label=[0, 1],
        input_box=[100, 100, 200, 200], # or [[100, 100, 200, 200], [100, 100, 200, 200]]
        multimask_output=False,
        random_color=False,
        show=True,
        save=False,
    )
    
    # For video
    
    results = SegManualMaskPredictor().video_predict(
        source="video.mp4",
        model_type="vit_l", # vit_l, vit_h, vit_b
        input_point=[0, 0, 100, 100],
        input_label=[0, 1],
        input_box=None,
        multimask_output=False,
        random_color=False,
        output_path="output.mp4",
    )
    

    SAHI + Segment Anything

    pip install sahi metaseg
    
    from metaseg.sahi_predict import SahiAutoSegmentation, sahi_sliced_predict
    
    image_path = "image.jpg"
    boxes = sahi_sliced_predict(
        image_path=image_path,
        detection_model_type="yolov5",  # yolov8, detectron2, mmdetection, torchvision
        detection_model_path="yolov5l6.pt",
        conf_th=0.25,
        image_size=1280,
        slice_height=256,
        slice_width=256,
        overlap_height_ratio=0.2,
        overlap_width_ratio=0.2,
    )
    
    SahiAutoSegmentation().image_predict(
        source=image_path,
        model_type="vit_b",
        input_box=boxes,
        multimask_output=False,
        random_color=False,
        show=True,
        save=False,
    )
    

    FalAI(Cloud GPU) + Segment Anything

    pip install metaseg fal_serverless
    fal-serverless auth login
    
    # For Auto Mask
    from metaseg import falai_automask_image
    
    image = falai_automask_image(
        image_path="image.jpg",
        model_type="vit_b",
        points_per_side=16,
        points_per_batch=32,
        min_area=0,
    )
    image.show() # Show image
    image.save("output.jpg") # Save image
    
    # For Manual Mask
    from metaseg import falai_manuelmask_image
    
    image = falai_manualmask_image(
        image_path="image.jpg",
        model_type="vit_b",
        input_point=[[100, 100], [200, 200]],
        input_label=[0, 1],
        input_box=[100, 100, 200, 200], # or [[100, 100, 200, 200], [100, 100, 200, 200]],
        multimask_output=False,
        random_color=False,
    )
    image.show() # Show image
    image.save("output.jpg") # Save image
    

    Extra Features

    • Support for Yolov5/8, Detectron2, Mmdetection, Torchvision models
    • Support for video and web application(Huggingface Spaces)
    • Support for manual single multi box and point selection
    • Support for pip installation
    • Support for SAHI library
    • Support for FalAI