SAM 语义分割模型开源(下)

大家好,我是千与千寻,这次是“SAM语义分割模型开源,分割一切的抠图大模型工具!"系列的最终版本了,完结撒花!


其实千寻的这个专栏,《AI算法毕设智囊袋》,希望给大家的毕业设计提一提思路,因为现如今本科生的毕设也需要算法相关的项目了!大家要习惯大部分本科生,甚至硕士生科研搞算法,工作搞开发的奇怪景象了!哈哈哈!


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


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


1.优化模型的应用场景


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


从应用场景进行优化是一个优化的点,那么还有什么优化的创新点呢?一般来说,做研究工程创新,分为两种,应用场景创新、模型参数突破。

2.优化模型本身的结构


当然就是模型本身了!就是模型参数的突破,实打实改良模型的性能!正式引入今天的项目,随着5G技术等的不断普及,我们对运算速度也有不低的要求,因此今天的项目就是对模型进行了压缩与轻量化处理。


一、MobileSAM模型的诞生


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



二、MobileSAM模型的结构


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


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



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



三、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)


终端输出日志效果:



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



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


四、MobileSAM模型的测试


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


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


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


3.HuggingFace社区运行在CPU平台



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


五、MobileSAM性能对比


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


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


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

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


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

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


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


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

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
千与编程
下载 APP