Meta不久前开源发布了一款图像处理模型,即分割一切模型:Segment Anything Model,简称 SAM,号称要从任意一张图片中分割万物,源码地址为:
https://github.com/facebookresearch/segment-anything
打开后看到目录结构大概这样:
一般一个开源项目中都会有项目介绍和示例代码。本示例中的文件 README.md 即为项目概况介绍,主要说明了使用 SAM 模型需要的 python 环境安装方法,和 SAM 的使用方法。notebooks 文件夹内是几个 jupyter notebook 格式的 python 示例代码。
运行示例代码步骤如下:
1、按照 README.md 文件所述,逐步安装所有依赖库。记得 python 要安装3.8,3.9, 3.10 其中的一个,目前不建议安装 3.11,因为会和最新的 pytorch 不兼容。
2、安装 jupyter。
3、下载模型文件到本地:点击 README.md 文件中的模型下载链接,即可下载指定的模型:
模型总共有三个,其中 vit-h 最大,有越 2G ,fit-l 为 1.2G, vit-b 最小为 366M。我测试了 最小的 vit-b。
4、运行 jupyter notebook ,打开示例文件 automatic_mask_generator_example.ipynb,修改以下两行:
即模型文件路径和 设备类型( 使用 cpu 还是 gpu, 如果是gpu则设置为 cuda, 是 cpu 的话设为 cpu 即可 )。
5、将 automatic_mask_generator_example.ipynb 文件内的所有代码运行一遍,会自动从网上下载一个图片进行原图显示和 mask 处理,最后会得出 图片处理的 mask 结果:
总结:
1、SAM 模型确实很强大,唯一缺点可能是运行比较消耗资源,如果是普通 cpu,运行起来会非常慢。我的 cpu 是 Intel® Core™ i7-7500U CPU @ 2.70GHz 2.90 GHz,内存是 8G,笔记本为华为 MateBook X,用的是最小的模型,mask 处理用了足足有至少半分钟,或者更久。等了一会儿发现还没结果,就只好先去洗澡。洗完澡发现结果出来了。。土豪们可以用 GPU 尝试,相信一定快很多。
2、实际操练难点可能在于环境的搭建,晚点介绍环境安装。如果安装过程中发现某些步骤不成功,可以尝试跳过该步骤继续下一步,最后仍然尝试运行脚本,可能也可以。
祝大家进步!
版权归原作者 Liz_Zhang_ 所有, 如有侵权,请联系我们删除。