SAM语义分割模型开源,AIGC时代,图像抠图工具都被大模型统一了?(下)

大家好,我是千与千寻,很高兴今天和大家再一次分享我在ChatGPT上的学习经历!

这次是《SAM语义分割模型开源,AIGC时代,图像抠图工具都被大模型统一了?》系列的最终版本了。

在之前的两节中我们介绍了分割一切的 Segment Anything模型,以及分割视频的 Segment-and-Track Anything模型。只能说SAM分割模型进步的太快了!

先不告诉今天带来的项目名字,如果给你一个进行抠图的图像分割算法模型,你会怎么去优化呢?

1.优化模型的应用场景

首先最容易想到的就是由图像转视频,改变应用场景,那么也就是诞生了中篇的Segment-and-Track Anything模型。

从应用场景进行优化是一个优化的点,那么还有什么优化的创新点呢?

2.优化模型本身的结构

当然就是模型本身了!那么就是今天的项目,随着5G技术等的不断普及,我们对运算速度也有不低的要求,因此今天的项目就是对模型进行了压缩与轻量化处理。

alt

一、MobileSAM模型的诞生

相信大家之前都还记得我们使用SAM分割一切的大模型,以下是Demo的部署网站首页。

alt

二、MobileSAM模型的结构

原始的SAM模型主要包含2个部分,image encoder和prompt-guided mask decoder。

其中image encoder用vit,模型参数非常多,模型比较大,vit-h模型有632M;

alt

第二部分则是非常轻量级的,包含mask decoder和prompt encoder,模型参数较少,不超过4M。

alt

三、MobileSAM模型的部署

MobileSAM与SAM的分割模型区别在于mobileSAM的可以部署于CPU;

SAM模型由于模型的体积较大,仅能部署于云端的GPU服务器上。我们将MobileSAM的模型部署于本地的PC端。

1.conda创建新环境名称为“mobileSAM”,Python 3.8版本

(还包含PyTorch 1.7及以上版本和Torchvision 0.8及以上版本)

conda create -n mobileSAM python=3.8

2.激活创建的模型环境

conda activate mobileSAM

3.安装完成后,我们检查你的环境中的Python,PyTorch和Torchvision的版本,你可以使用以下命令:

python --version
python -c "import torch; print(torch.__version__)"
python -c "import torchvision; print(torchvision.__version__)"

4.安装Mobile Segment Anything的依赖:

pip install git+https://github.com/ChaoningZhang/MobileSAM.git

5.本地运行mobileSAM模型

cd app
python app.py

6.安装最新版本的gradio与timm安装包

pip3 install gradio timm

7.修改部分代码,进行服务链接部署

运行项目是部署于Google colab的云端实验室,使用gradio安装包进行快速web UI应用的搭建,创建部署调用的界面。

    def clear():
        return None, None

    def clear_text():
        return None, None, None

    # clear_btn_e.click(clear, outputs=[cond_img_e, segm_img_e])
    clear_btn_p.click(clear, outputs=[cond_img_p, segm_img_p])

demo.queue()
#设置share=True,将部署的demo网页链接设置为公网访问
demo.launch(share=True)

终端输出日志效果:

alt

点击public URL链接访问部署的服务,界面如下图所示:

alt

出现以上页面,表示项目推理的接口服务部署成功!

四、MobileSAM模型的测试

通过以上的Google colab的环境的服务部署,同时该项目在 HuggingFace社区已经发布Demo服务。

1.上传图片,点击待筛选的图像分割

alt

2.点击restart按钮,进行待分割标签的复原

alt

3.HuggingFace社区运行在CPU平台

alt

该项目可以运行在CPU平台,而原始模型SAM由于体积较大,仅仅在支持运行在GPU平台,MobileSAM模型支持运行在CPU等移动端平台。

五、MobileSAM性能对比

以上关于MobileSAM模型的介绍就结束了,回想起来,最开始的SAM原始图像分割一切模型。

到SAM分割并追踪的模型用于视频图像分割,再到现在的MobileSAM部署于CPU端以及移动端的分割一切模型,只能说大模型真的是杀疯了!太快了!

那么移动版本的效果与原始的SAM分割模型对比效果如何?

alt

可以看出来,origin SAM模型与MobileSAM模型的分割效果相类比之下,还算不错。

以下是MobileSAM分割一切轻量化模型部署的链接地址(点击可用):

https://huggingface.co/spaces/dhkim2810/MobileSAM

大家可以点击试一试,分割效果真的不错,一起追赶大模型的发展!

我是千与千寻,一个只讲干货的码农,我们下期见!

本文由 mdnice 多平台发布

猜你喜欢

转载自blog.csdn.net/baidu_39629638/article/details/131887737