Commit 0fac296f authored by yuhai's avatar yuhai
Browse files

Update README.md

parent baf38459
......@@ -2,7 +2,22 @@
## 模型介绍
SAM是23年4月发布的先进图像分割模型。SAM分为图像编码器和快速提示编码器/掩码解码器,可以重用相同的image embedding图像嵌入(并摊销其成本)与不同的提示。给定image embedding图像嵌入,提示编码器和掩码解码器可以在web浏览器中预测掩码。为了使SAM实现模糊感知,设计它来预测单个提示的多个掩码,从而使SAM能够自然地处理模糊性。
SAM是23年4月发布的先进图像分割模型。SAM分为图像编码器和快速提示编码器/掩码解码器,可以重用相同的image embedding图像嵌入(并摊销其成本)与不同的提示。给定image embedding图像嵌入,提示编码器和掩码解码器可以在web浏览器中预测掩码。为了使SAM实现模糊感知,设计它来预测单个提示的多个掩码,从而使SAM能够自然地处理模糊性。通过SAM模型,创建了一个包含1B个掩模和11M张图像的分段任意模型(SAM)和相应的数据集(SA-1B),以促进对计算机视觉基础模型的研究。
数据集标注问题,分为3个阶段。
1.SAM辅助人工标注
最开始的SAM使用coco数据集训练,当有了一定的标注数据集之后,会用新的标注数据重新训练,数据集多起来以后,会增加模型的复杂程度,比如把ViT-B换成ViT-H。
SAM模型会做出分割来辅助人工标注。由于模型不断精确,标注时间也在降低.
2.SAM半自动标注
这一阶段在于增加模型的多样性,标注次突出的物体。首先让模型标注一部分,然后人工标注没有被模型标注的部分。大部分都被模型标出来了,剩下的是更难分割的物体。
3.全自动标注
经过第一阶段,训练集多了,模型准确率有所提升,也有了mask的多样性。
第2阶段解决了提示信息有歧义情况下的预测。
现在,给模型提示32x32的grid,每个点都要对有效目标预测一系列的mask.
然后用IOU阈值选择confident masks. 最后用NMS滤掉多余的mask.
## 模型结构
......@@ -25,8 +40,8 @@ SAM是23年4月发布的先进图像分割模型。SAM分为图像编码器和
完整数据集可在[这里](https://ai.facebook.com/datasets/segment-anything-downloads/)进行下载
## Segment Anything推理
注:官网没有提供训练脚本,因此这里展示如何进行推理
## Segment Anything掩码生成
注:官网提供了生成掩码的预训练权重和生成掩码的脚本(没有提供训练脚本)
### 环境配置
[光源](https://www.sourcefind.cn/#/service-list)拉取镜像
......@@ -38,7 +53,7 @@ docker pull image.sourcefind.cn:5000/dcu/admin/base/pytorch:1.10.0-centos7.6-dtk
pip install opencv-python pycocotools matplotlib onnxruntime onnx
```
### 推理指令
### 掩码生成指令
```
python scripts/amg.py --checkpoint <path/to/checkpoint> --model-type <model_type> --input <image_or_folder> --output <path/to/output>
......@@ -54,8 +69,9 @@ python scripts/amg.py --checkpoint <path/to/checkpoint> --model-type <model_type
<path/to/output> 代表分割结果保存路径
### 推理结果
推理的部分结果在同级目录outputs中可以查看
### 掩码生成结果
掩码生成的部分结果在同级目录outputs中可以查看
官方提供demo可在[这里](https://segment-anything.com/demo)试用
## 参考
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment