一、SAM模型的概念
SAM模型即segment anything model,SAM模型是一项革命性的技术,该模型能够根据文本指令或图像识别,实现对任意物体的识别和分割。这一模型的推出,将极大地推动计算机视觉领域的发展,并使得图像分割技术进一步普及化。
具体使用方法上,Segment Anything 提供了简单易用的接口,用户只需要通过提示,即可进行物体识别和分割操作。例如在图片处理中,用户可以通过 Hover & Click 或 Box 等方式来选取物体。值得一提的是,SAM 还支持通过上传自己的图片进行物体分割操作,提取物体用时仅需数秒。
总的来说,Meta AI 的 Segment Anything 模型为我们提供了一种全新的物体识别和分割方式,其强大的泛化能力和广泛的应用前景将极大地推动计算机视觉领域的发展。
二、SAM模型的部署
1
我们首先访问到sam模型的git hub地址,通过git clone将SAM模型下载到本地。
我们将SAM模型下载到本地后通过解压后可以进行pip install。
之后我们要想使用SAM模型还需要下载SAM模型的权重文件。
这里有vit_h、vit_b、vit_l三种权重模型,这里可以根据自己的需要下载相应的权重模型。
我们是下载的vit_h权重模型。
我们接下来就是通过代码对SAM模型进行使用。
首先,导入所需的库和模块:
接着定义三个函数
这里的show_mask就是我们用mask的prompt进行分割,show_points就是我们用points进行分割,show_box就是通过box进行分割,这是SAM的三种prompt的方式。
接着我们需要从指定路径读取图像,将图像大小调整为原来的一半。将颜色格式从BGR转换为RGB。并且使用Matplotlib显示图像。
接着我们通过加载预训练模型,并且提供坐标点就可以使用SAM对物体进行切割。