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及以上版本)
2.激活创建的模型环境
3.安装完成后,我们检查你的环境中的Python,PyTorch和Torchvision的版本,你可以使用以下命令:
4.安装Mobile Segment Anything的依赖:
5.本地运行mobileSAM模型
6.安装最新版本的gradio与timm安装包
7.修改部分代码,进行服务链接部署
运行项目是部署于Google colab的云端实验室,使用gradio安装包进行快速web UI应用的搭建,创建部署调用的界面。
终端输出日志效果:

点击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
大家可以点击试一试,分割效果真的不错,一起追赶大模型的发展!
我是千与千寻,一个只讲干货的码农,我们下期见!
