SAM 2 是 Meta 的Segment Anything Model (SAM) 的后续产品,是一款专为图像和视频中的综合对象分割而设计的尖端工具。它采用统一、可提示的模型架构,支持实时处理和零镜头泛化,在处理复杂的视觉数据方面表现出色。
统一模型架构
SAM 2 在单一模型中结合了图像和视频分割功能。这种统一简化了部署,并能在不同媒体类型中实现一致的性能。它利用灵活的基于提示的界面,使用户能够通过各种提示类型(如点、边界框或掩码)指定感兴趣的对象。
实时性能
该模型可实现实时推理速度,每秒处理约 44 帧图像。这使得SAM 2 适用于需要即时反馈的应用,如视频编辑和增强现实。
零点概括
SAM 2 可以分割它从未遇到过的物体,展示了强大的零点泛化能力。这在多种多样或不断变化的视觉领域尤其有用,因为在这些领域中,预定义的类别可能无法涵盖所有可能的物体。
互动式改进
用户可以通过提供额外的提示来迭代完善分割结果,从而实现对输出的精确控制。这种交互性对于微调视频注释或医学成像等应用中的结果至关重要。
模型下载:https://huggingface.co/vietanhdev/segment-anything-2-onnx-models/tree/main(提供了base、large、small、tiny四个版本)。
image encoder model
Inputs
Image, name: x
, shape: 1, 3, 1024, 1024
in the format B, C, H, W
, where:
B
– batch size (批量大小)C
– number of channels(一般是RGB,有的模型是BGR)H
– image height (图像的高)W
– image width(图像的宽)
Image Normalization:(pixel-mean)/std
Outputs
输出3项,high_res_feats_0,high_res_feats_1,image_embed
这个是图像的一些特征,不需要解析,后面会作为输入进入mask decoder去推理。
mask decoder model
Inputs
high_res_feats_0,high_res_feats_1,image_embed是image encoder的输出。
point_coords:坐标值
point_labels:1代表目标,0代表背景。
mask_input:初始化为256*256,值为1的一个初始mask(如果没有mask输入的情况)
has_mask_input: 表示是否应用mask,1是应用,0是不应用。
Outputs
iou_predictions:一个评分
masks:与评分对应的mask,每个mask大小是256*256.
要恢复到原始图像,需要对mask双线性插值进行尺寸变换。
,时长00:10
1)首先是图像的encoder,计算图像的特征,产生image Enbedding。
2)将image Enbedding和提示(点、框、蒙版)的特征一起作为输入
进行Mask decoder推理。
3)输出3个不同得分的mask。
LabVIEW环境作者使用OpenVINO开源工具进行推理。
OpenVINO™工具包是一个开源工具包,它以更低的延迟和更高的吞吐量加速人工智能推理,同时保持准确性,减少模型占用空间,并优化硬件使用。它简化了人工智能的开发和深度学习在计算机视觉、大型语言模型(LLM)和生成式人工智能等领域的集成
LabVIEW推理一般步骤:
打开模型—>推理数据—>销毁模型,3步轻松完成模型推理。LabVIEW推理模型相当简单,一看就会
SAM2图像分割推理流程
推理演示demo,实时性确实挺好的
,时长01:07
视频分割推理流程
视频推理需要考虑时间序列,在推理当前帧时要考虑前面帧推理的结果,建立的一个merory bank 来存储之前帧的特征。推理当前帧时从merory bank去取出数据,然后和当前帧的image encoder做几个卷积,合并起来组成一个新的特征输入mask decoder,基本这么个流程,详细了解去扒论文。
声明:文中观点不代表本站立场。本文传送门:https://eyangzhen.com/423024.html