# Matting-Anything
Matting-Anything 一种交互式自然图像抠图模型。
## 论文
`Matting Anything`
- https://arxiv.org/abs/2306.05399
## 模型结构
Matting Anything Model (MAM) 一个通用框架,能够使用单个模型解决各种类型的图像抠图场景。
Matting-Anything
## 算法原理
MAM 基于 Segment Anything Model (SAM) 的基础上,利用 SAM 输出带有mask的特征图,进一步迭代细化得到最终的 alpha matte。因为冻结了 SAM 部分的参数,整个框架只有 MAM 模块的270万个参数。Matting Anything 整个框架集成了框、点或文本提示等交互方式,而且还启用了SD模型用来生成虚拟背景图片,增加了抠图的可玩性和互动性。
## 环境配置
```
mv matting-anything_pytorch matting-anything # 去框架名后缀
# docker的-v 路径、docker_name和imageID根据实际情况修改
# pip安装时如果出现下载慢可以尝试别的镜像源
```
### Docker(方法一)
```
docker pull image.sourcefind.cn:5000/dcu/admin/base/jupyterlab-pytorch:2.1.0-ubuntu20.04-dtk24.04.1-py3.10-scnet # 本镜像imageID为:38b7960be788
docker run -it -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro --shm-size=16G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --network=host --name docker_name imageID bash
cd /your_code_path/matting-anything
pip install -r requirements.txt
# Install segment-anything
python -m pip install -e segment-anything
# Install GroundingDINO
python -m pip install -e GroundingDINO
# Install diffusers
pip install --upgrade diffusers[torch]
```
### Dockerfile(方法二)
```
cd /your_code_path/matting-anything/docker
docker build --no-cache -t codestral:latest .
docker run -it -v /path/your_code_data/:/path/your_code_data/ -v /opt/hyhal/:/opt/hyhal/:ro --shm-size=16G --privileged=true --device=/dev/kfd --device=/dev/dri/ --group-add video --network=host --name docker_name imageID bash
cd /your_code_path/matting-anything
pip install -r requirements.txt
# Install segment-anything
python -m pip install -e segment-anything
# Install GroundingDINO
python -m pip install -e GroundingDINO
# Install diffusers
pip install --upgrade diffusers[torch]
```
### Anaconda(方法三)
关于本项目DCU显卡所需的特殊深度学习库可从[光合](https://developer.hpccube.com/tool/)开发者社区下载安装。
```
DTK驱动: dtk24.04.1
python: python3.10
pytorch: 2.1.0
```
`Tips:以上DTK驱动、python、pytorch等DCU相关工具版本需要严格一一对应`
其它非深度学习库参照requirements.txt安装:
```
pip install -r requirements.txt
# Install segment-anything
python -m pip install -e segment-anything
# Install GroundingDINO
python -m pip install -e GroundingDINO
# Install diffusers
pip install --upgrade diffusers[torch]
```
## 数据集
## 训练
## 推理
下载 [sam_vit_h_4b8939.pth](https://github.com/facebookresearch/segment-anything?tab=readme-ov-file#model-checkpoints)
下载 [GroundingDINO-T](https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth)
下载 [MAM](https://drive.google.com/drive/folders/1Bor2jRE0U-U6PIYaCm6SZY7qu_c1GYfq?usp=sharing)
或者从[SCNet](http://113.200.138.88:18080/aimodels/findsource-dependency/sam_vit_h_4b8939)高速下载
sam_vit_h_4b8939.pth 放在 ./segment-anything/checkpoints 下;\
GroundingDINO-T、MAM 放在 ./checkpoints 下。
可视化webui推理:
```
export HF_ENDPOINT=https://hf-mirror.com
python gradio_app.py --listen
```
webui界面
1、上传图片;\
2、选择目标或者区域,可通过标点、画框或者文本输入;\
3、选择替换的背景,可选自有真实图片或者通过文本提示生成的图片。\
4、运行。\
ps:请勿频繁操作;参数自行调整。
## result
输入
抠图结果
替换背景
### 精度
无。
## 应用场景
### 算法类别
`AIGC`
### 热点应用行业
`零售,制造,电商,医疗,教育`
## 源码仓库及问题反馈
- https://developer.sourcefind.cn/codes/modelzoo/matting-anything_pytorch
## 参考资料
- https://github.com/SHI-Labs/Matting-Anything