当前位置: 首页 > news >正文

【模型】EfficientvitSAM

显示mask在原图
https://github.com/mit-han-lab/efficientvit.git

# segment anything
from efficientvit.sam_model_zoo import create_efficientvit_sam_model
from efficientvit.models.efficientvit.sam import EfficientViTSamAutomaticMaskGenerator
import cv2
import matplotlib.pyplot as plt
import numpy as np
import os
def write_masks_to_folder(masks, path: str) -> None:header = "id,area,bbox_x0,bbox_y0,bbox_w,bbox_h,point_input_x,point_input_y,predicted_iou,stability_score,crop_box_x0,crop_box_y0,crop_box_w,crop_box_h"  # noqametadata = [header]for i, mask_data in enumerate(masks):mask = mask_data["segmentation"]filename = f"{i}.png"cv2.imwrite(os.path.join(path, filename), mask * 255)mask_metadata = [str(i),str(mask_data["area"]),*[str(x) for x in mask_data["bbox"]],*[str(x) for x in mask_data["point_coords"][0]],str(mask_data["predicted_iou"]),str(mask_data["stability_score"]),*[str(x) for x in mask_data["crop_box"]],]row = ",".join(mask_metadata)metadata.append(row)metadata_path = os.path.join(path, "metadata.csv")with open(metadata_path, "w") as f:f.write("\n".join(metadata))return
def show_anns(anns):if len(anns) == 0:returnsorted_anns = sorted(anns, key=(lambda x: x['area']), reverse=True)img = np.ones((sorted_anns[0]['segmentation'].shape[0], sorted_anns[0]['segmentation'].shape[1], 4))img[:,:,3] = 0for ann in sorted_anns:m = ann['segmentation']color_mask = np.concatenate([np.random.random(3), [0.85]])img[m] = color_maskplt.imshow(img)
path = "./1.jpg"
image = cv2.imread(path)
image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
plt.figure(figsize=(20,20))
plt.imshow(image)
plt.axis('off')
efficientvit_sam = create_efficientvit_sam_model(name="efficientvit-sam-xl1", pretrained=True)
efficientvit_sam = efficientvit_sam.cpu().eval()
efficientvit_mask_generator = EfficientViTSamAutomaticMaskGenerator(efficientvit_sam)
masks = efficientvit_mask_generator.generate(image)write_masks_to_folder(masks, "./output")# 在背景图的基础上直接覆盖分割图
show_anns(masks)
plt.show()

http://www.mrgr.cn/news/70068.html

相关文章:

  • 2.操作系统常见面试问题3
  • CAN总线位同步的使用以及总线仲裁规则详解
  • FPGA实现PCIE3.0视频采集转SDI输出,基于XDMA+GS2971架构,提供工程源码和技术支持
  • 《TCP/IP网络编程》学习笔记 | Chapter 9:套接字的多种可选项
  • Unity3D ASTC贴图压缩格式详解
  • linux基础-完结(详讲补充)
  • PGMP-串串01概述
  • multi_agents
  • 10个文献翻译工具推荐,实现专业翻译的好帮手。
  • 多处理器一致协议(MSI)协议详细介绍
  • #渗透测试#SRC漏洞挖掘#深入挖掘CSRF漏洞01
  • Linux学习笔记之软件包管理RPM与YUM
  • 渗透测试-网络基础(1)
  • 时序预测 | 改进图卷积+informer时间序列预测,pytorch架构
  • 《Docker镜像与容器技术基础操作及应用研究》
  • shodan5(泷羽sec)
  • core-js 解决浏览器兼容性问题的工具之一
  • css3D变换用法
  • langgraph_plan_and_execute
  • 青龙面板脚本--阿里云盘任务脚本
  • 【网络安全】Java线程安全及非线程安全
  • 最简单解决NET程序员在centos系统安装c#网站
  • 网络安全之SQL初步注入
  • 第三十九章 基于VueCli自定义创建项目
  • 结构体是否包含特定类型的成员变量
  • 基于协同过滤算法的社交网络平台(协同过滤算法)