简体中文 | English
基于C#语言,ONNX格式Segment Anything推理程序。
虽然官方提供了预训练模型,和推理代码,但预训练模型只有pytorch格式的,且推理代码只提供了基于Pytorch框架的Python代码。
本项目包含两部分:
1.将官方发布的预训练模型,拆分成编码器和解码器,并分别保存为ONNX格式。
2.使用C#语言加载模型,进行推理,并用WPF进行交互和显示。
1.下载源码到本地
2.Visual Studio打开.sln项目解决方案
3.安装Nuget包
3.1在Visual Studio中,鼠标右键单击项目并选择“管理NuGet程序包”。
3.2在“NuGet包管理器”窗口中,选择“浏览”选项卡。
3.3搜索Microsoft.ML.OnnxRuntime,选择1.15.1版本,点击安装
3.4搜索OpenCvSharp4,选择4.8.0版本,点击安装
3.5搜索OpenCvSharp4.runtime.win,选择4.8.0版本,点击安装
3.6SAMViewer目标平台设置x64
4.将decoder-quant.onnx,encoder-quant.onnx,textual.onnx,visual.onnx放到exe路径下
5.运行程序
效果演示:
点Promot:展开Point栏,点击AddPoint后,鼠标点击左侧图像选择点。Add Mask表示正向点,Remove Mask表示负向点。
Box Promot: 展开Box栏,点击AddBox后,鼠标点击左侧图像选择起始点,易懂鼠标改变Box大小。
AutoSeg:自动分割,展everythin栏,设置阈值,根据points_per_side值在图像上均匀选择候选点,每个点都作为promot,然后根据阈值对结果后处理。
Text Promot:展开text栏,先自动分割,然后借助CLIP计算自动分割的crop图像和text的相似度。
模型文件在Release中,或者关注下面微信公众号,后台回复【SAM】获取模型下载链接