文章目录

  • Segment Anything
    • 1. 论文
    • 2. 官方文档
    • 3. 测试网站
    • 4. 本地测试
      • 4.1 下载预训练权重
      • 4.2 新建get_masks.py
    • 4.4 测试

Segment Anything

1. 论文

论文链接:https://arxiv.org/pdf/2304.02643.pdf

论文解读后续更新……

2. 官方文档

官方文档:https://ai.facebook.com/blog/segment-anything-foundation-model-image-segmentation/

项目地址:https://github.com/facebookresearch/segment-anything

3. 测试网站

demo地址:https://segment-anything.com/demo

我自己上传了一张图片,结果还是挺好的(我上传的图片比较简单)。

4. 本地测试

4.1 下载预训练权重

https://github.com/facebookresearch/segment-anything#model-checkpoints

4.2 新建get_masks.py

新建get_masks.py内容如下:

from segment_anything import build_sam, SamPredictorimport numpy as npimport cv2image = cv2.imread('/home/scholar/ldw/segment-anything/images/01.jpg')image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)predictor = SamPredictor(build_sam(checkpoint="/data_1/ldw_checkpoints/segment-anything/sam_vit_l_0b3195.pth"))predictor.set_image(image)input_point = np.array([[500, 375]])input_label = np.array([1])masks, _, _ = predictor.predict(point_coords=input_point,point_labels=input_label,multimask_output=True,)print('Done')

由于自己的3090显存有限,无法使用build_sam_vit_hpth,所以选用了build_sam_vit_l.pth

修改segment_anything/build_sam.py

build_sam = build_sam_vit_lsam_model_registry = {"default": build_sam_vit_l,"vit_h": build_sam,"vit_l": build_sam_vit_l,"vit_b": build_sam_vit_b,}

4.4 测试

# originpython scripts/amg.py --checkpoint <path/to/sam/checkpoint> --input <image_or_folder> --output <output_directory># minepython scripts/amg.py --checkpoint '/data_1/ldw_checkpoints/segment-anything/sam_vit_l_0b3195.pth' --input '/home/scholar/ldw/segment-anything/images/01.jpg' --output 'output'