【Python&语义分割】Segment Anything(SAM)模型交互式分割+掩膜保存(三)
我之前分享了Segment Anything(SAM)模型的基本操作,这篇给大家分享下交互式语义分割代码,可以通过鼠标点击目标物生成对应的掩膜,同时我还加入了掩膜保存的代码。
1 Segment Anything介绍
1.1 概况
Meta AI 公司的 Segment Anything 模型是一项革命性的技术,该模型能够根据文本指令或图像识别,实现对任意物体的识别和分割。这一模型的推出,将极大地推动计算机视觉领域的发展,并使得图像分割技术进一步普及化。
论文地址:
项目地址:
1.2 使用方法
具体使用方法上,Segment Anything 提供了简单易用的接口,用户只需要通过提示,即可进行物体识别和分割操作。例如在图片处理中,用户可以通过 Hover & Click 或 Box 等方式来选取物体。值得一提的是,SAM 还支持通过上传自己的图片进行物体分割操作,提取物体用时仅需数秒。
总的来说,Meta AI 的 Segment Anything 模型为我们提供了一种全新的物体识别和分割方式,其强大的泛化能力和广泛的应用前景将极大地推动计算机视觉领域的发展。未来,我们期待看到更多基于 Segment Anything 的创新应用,以及在科学图像分析、照片编辑等领域的广泛应用。
2 交互式分割代码实现
2.1 用于生成显示掩膜的函数(初始化)
里面包含三个封装好的函数,一个是生成掩膜(分割的轮廓)的函数,一个是显示标记点(自己选择需要分割的目标)的函数。
2.2 交互事件&分割掩膜
这里在原始单点生成掩膜的基础上加入了鼠标点击的事件,可以实现点击后自动分割该点的目标,同时右键可以清楚当前窗口所有的掩膜。
2.3 基础函数&模型加载
这里是分割的图片加载、模型加载、参数设置,里面链接了之前的鼠标点击事件,可以整体实现左键点击分割目标,右键删除所有目标。
3 实现效果
这里我选择了多个点,每个点都是通过鼠标左键点击生成的掩膜,单点鼠标右键可以清空整个窗口的所有掩膜。事实上,实现多点、正负点、矩形+负点的交互式操作会大大减少我们的工作量,但我没什么精力所以就没往后继续写了。大家如果有兴趣可以自己去实现,然后分享给我(手动偷笑)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了