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

python 深度学习 项目调试 图像分割 segment-anything

起因, 目的:

  1. 项目来源: https://github.com/facebookresearch/segment-anything
  2. 项目目的: 图像分割。 提前图片中的某个目标。
  3. facebook 出品, 居然有 47.3k star!

思考一些问题

  1. 我可以用这个项目来做什么?
  2. 给一个图片, 进行分割, 如何提取出自己想要的内容?
  3. 别人用这个项目来做什么?

调试过程:

  1. 下载压缩包。 pip install -e .
  2. pip install opencv-python pycocotools matplotlib onnxruntime onnx
  3. 下载模型。 总共有3个模型。 我选最小的 358 MB
运行示例
  1. 查看 notebooks 里面的3个文件,示例写的很好。
  2. 换成自己的图片,更有趣一些!
  3. 如果图片太大,先进行缩小。 不然内存和显存都不够,很卡!

原始图片:
在这里插入图片描述
简单分割一下:
在这里插入图片描述

画图函数,我修改了示例中的画图函数

这里, take = 10 , 只选取10个即可。
其实,简单的图片, 3个 masks 就够了。

def show_anns(anns, take=10):# 检查传入的注释列表是否为空if len(anns) == 0:return# 对注释列表进行排序,按照每个注释的区域大小降序排列sorted_anns = sorted(anns, key=(lambda x: x['area']), reverse=True)[:take]# 获取当前的轴对象,用于绘图ax = plt.gca()# 关闭自动缩放,以确保绘制的图像不会因为数据的变化而改变大小ax.set_autoscale_on(False)# 创建一个全白的图像,其尺寸与第一个注释的分割区域相同# 这里假设所有注释的分割区域尺寸是一致的img = np.ones((sorted_anns[0]['segmentation'].shape[0], sorted_anns[0]['segmentation'].shape[1], 4))# 将图像的 alpha 通道(透明度)设置为 0,表示完全透明img[:,:,3] = 0# 遍历排序后的注释列表for ann in sorted_anns:# 获取当前注释的分割区域m = ann['segmentation']# 为每个注释生成一个随机颜色的遮罩,透明度设置为 0.35color_mask = np.concatenate([np.random.random(3), [0.35]])# 将遮罩应用到图像上,覆盖对应的分割区域img[m] = color_mask# 在轴对象上显示图像ax.imshow(img)

结论 + todo

图像相关的项目,需要显存。

masks = mask_generator.generate(image) # 运行这一步, gpu 用了 5.6G / 8.7G


老哥留步,支持一下。

请求支持

http://www.lryc.cn/news/465950.html

相关文章:

  • 【GO实战课】第六讲:电子商务网站(6):支付和订单处理
  • 专题十三_记忆化搜索_算法专题详细总结
  • 已发布金融国家标准目录(截止2024年3月)
  • 【论文#快速算法】Fast Intermode Decision in H.264/AVC Video Coding
  • Git核心概念图例与最常用内容操作(reset、diff、restore、stash、reflog、cherry-pick)
  • 【人工智能在医疗企业个人中的应用】
  • IPv4头部和IPv6头部
  • 从零开始手把手带你训练LLM保姆级教程,草履虫都能学会!零基础看完这篇就足够了~
  • strcat函数追加字符串
  • 每月洞察:App Store 和 Google Play 的主要更新
  • 【python openai function2json小工具】
  • super()和super().__init__()的解释
  • 【C++】—— 多态(下)
  • idea 2023 配置 web service
  • MYSQL数据库SQL+DQL
  • Java中的异常Throwable
  • Day4顺序表c++代码实现
  • 将图片转换成base64格式
  • 征服ES(ElasticSearch)的慢查询实战
  • 如何才能从普通程序员转行AI大模型?
  • 【番外】软件设计师中级笔记关于数据库技术更新笔记问题
  • 【代码】约瑟夫问题——故事背景
  • 什么是事件冒泡和事件捕获
  • 高端优质建站公司具备哪些优势?2024高端建站公司哪家好
  • word删除空白页 | 亲测有效
  • YashanDB学习-服务启停
  • 在未排序的整数数组找到最小的缺失正整数
  • TCP连接管理机制:三次握手四次挥手
  • 1022. 宠物小精灵之收服
  • 人工智能生成内容(AI-Generated Content)