分割一切还不够,还要检测一切、生成一切,SAM二创开始了

简介: 分割一切还不够,还要检测一切、生成一切,SAM二创开始了


论文刚发布两天,「二创」就开始了。

AI 技术的迭代,已经以天为单位。所以,如果你有什么好的想法,最好赶紧做,不然睡一觉可能就被抢先了。



这个被很多人看好的 idea 源于 Meta 两天前发布的「分割一切」AI 模型(Segment Anything Model,简称 SAM)。Meta 表示,「SAM 已经学会了关于物体的一般概念,可以为任何图像或视频中的任何物体生成 mask,甚至包括在训练过程中没有遇到过的物体和图像类型。SAM 足够通用,可以涵盖广泛的用例,并且可以在新的图像『领域』即开即用,无需额外的训练。」



这一模型的发布在计算机视觉领域引发轰动,预示着 CV 也将走向「一个全能基础模型统一某个(某些?全部?)任务」的道路。当然,大家对此早有预感,但没想到这一天来得如此之快。


比基础模型迭代更快的是研究社区「二创」的速度。论文才刚刚发布两天,几位国内工程师就基于此想出了新的点子并将其付诸实践,组建出了一个不仅可以「分割一切」,还能「检测一切」、「生成一切」的视觉工作流模型。




具体来说,他们使用一个 SOTA 的 zero-shot 目标检测器(Grounding DINO)提取物体 box 和类别,然后输入给 SAM 模型出 mask,使得模型可以根据文本输入检测和分割任意物体。另外,他们还将其和 Stable Diffusion 结合做可控的图像编辑。


这个三合一模型项目名叫 Grounded Segment Anything,三种类型的模型既可以分开使用,也可以组合使用。



项目链接:https://github.com/IDEA-Research/Grounded-Segment-Anything


对于 Grounded Segment Anything 未来的用途,项目作者构想了几种可能:


  • 可控的、自动的图像生成,用于构建新的数据集;
  • 提供更强的基础模型与分割预训练;
  • 引入 GPT-4,进一步激发视觉大模型的潜力;
  • 一条自动标记图像(带 box 和 mask)并生成新图像的完整 pipeline;
  • ……


安装


要实现 SAM+Stable Diffusion 需要一些安装步骤。首先该项目要求 Python 3.8 以上版本,pytorch 1.7 以上版本,torchvision 0.8 以上版本,并安装相关依赖项。项目作者还建议安装支持 CUDA 的 PyTorch 和 TorchVision。


然后,按照如下代码安装 Segment Anything:



python -m pip install -e segment_anything

安装 GroundingDINO:



python -m pip install -e GroundingDINO


以下是可选依赖项,这些对于掩码后处理、以 COCO 格式保存掩码、example notebook 以及以 ONNX 格式导出模型是必需的。另外,该项目还需要 jupyter 来运行 example notebook。



pip install opencv-python pycocotools matplotlib onnxruntime onnx ipykernel


运行 GroundingDINO demo


下载 groundingdino 检查点:





cd Grounded-Segment-Anything
wget https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth

运行 demo:












export CUDA_VISIBLE_DEVICES=0python grounding_dino_demo.py \  --config GroundingDINO/groundingdino/config/GroundingDINO_SwinT_OGC.py \  --grounded_checkpoint groundingdino_swint_ogc.pth \  --input_image assets/demo1.jpg \  --output_dir "outputs" \  --box_threshold 0.3 \  --text_threshold 0.25 \  --text_prompt "bear" \  --device "cuda"


模型预测可视化将保存在 output_dir 中,如下所示:



运行 Grounded-Segment-Anything Demo


下载 segment-anything 和 ground- dino 的检查点:






cd Grounded-Segment-Anything
wget https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pthwget https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth


运行 demo:













export CUDA_VISIBLE_DEVICES=0python grounded_sam_demo.py \  --config GroundingDINO/groundingdino/config/GroundingDINO_SwinT_OGC.py \  --grounded_checkpoint groundingdino_swint_ogc.pth \  --sam_checkpoint sam_vit_h_4b8939.pth \  --input_image assets/demo1.jpg \  --output_dir "outputs" \  --box_threshold 0.3 \  --text_threshold 0.25 \  --text_prompt "bear" \  --device "cuda"


模型预测可视化将保存在 output_dir 中,如下所示:



运行 Grounded-Segment-Anything + Inpainting Demo














CUDA_VISIBLE_DEVICES=0python grounded_sam_inpainting_demo.py \  --config GroundingDINO/groundingdino/config/GroundingDINO_SwinT_OGC.py \  --grounded_checkpoint groundingdino_swint_ogc.pth \  --sam_checkpoint sam_vit_h_4b8939.pth \  --input_image assets/inpaint_demo.jpg \  --output_dir "outputs" \  --box_threshold 0.3 \  --text_threshold 0.25 \  --det_prompt "bench" \  --inpaint_prompt "A sofa, high quality, detailed" \  --device "cuda"


运行 Grounded-Segment-Anything + Inpainting Gradio APP



python gradio_app.py


参考链接:

https://zhuanlan.zhihu.com/p/620271321

https://www.zhihu.com/question/593914819/answer/2972925421

相关文章
|
传感器 并行计算 算法
多传感器感知原理解读 | BEVFusion解读(一)
多传感器感知原理解读 | BEVFusion解读(一)
1144 0
|
数据采集 机器学习/深度学习 数据可视化
【办公自动化】使用Python批量处理Excel文件并转为csv文件
【办公自动化】使用Python批量处理Excel文件并转为csv文件
560 0
|
4月前
|
存储 固态存储 IDE
移动硬盘盒,机械硬盘和固态硬盘通用吗?
移动硬盘盒能否同时支持机械硬盘(HDD)和固态硬盘(SSD)?本文详解硬盘盒的兼容性问题,涵盖接口类型(如SATA、NVMe)、尺寸规格(2.5英寸、3.5英寸、M.2)及使用体验差异,助你正确选择适配的硬盘盒,确保兼容与性能兼顾。
|
6月前
|
缓存 iOS开发
《HarmonyOSNext教育应用性能飞跃:ArkTS长列表优化5大实战指南》
本文针对HarmonyOS长列表性能优化,提供ArkTS开发的5大实战指南。通过懒加载、缓存列表项、动态预加载、组件复用及布局优化,解决卡顿、高内存等问题。实测10000条数据下,启动快4.5秒,内存省480MB,丢帧率归零。适合教育科普行业学习,助你打造丝滑体验!
258 7
|
11月前
|
缓存 前端开发 Android开发
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
515 12
【04】flutter补打包流程的签名过程-APP安卓调试配置-结构化项目目录-完善注册相关页面-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程
|
Kubernetes 容器 Perl
在k8S中,镜像的下载策略有哪些?
在k8S中,镜像的下载策略有哪些?
|
机器学习/深度学习 计算机视觉
YOLOv10实战:红外小目标实战 | 多头检测器提升小目标检测精度
本文改进: 在进行目标检测时,小目标会出现漏检或检测效果不佳等问题。YOLOv10有3个检测头,能够多尺度对目标进行检测,但对微小目标检测可能存在检测能力不佳的现象,因此添加一个微小物体的检测头,能够大量涨点,map提升明显; 多头检测器提升小目标检测精度,1)mAP50从0.666提升至0.677
2051 3
|
Java C++ 开发者
muduo网络库
【6月更文挑战第15天】
377 7
|
关系型数据库 MySQL 数据安全/隐私保护
mysql8.0版本skip-grant-tables出现的新问题
mysql8.0版本skip-grant-tables出现的新问题MySQL 初始化 mysqld --initialize 的时候会有密码,就这个样子, 可是毕竟总有人跟我一样,不熟悉安装过程,没有注意这一密码这一项,导致你现在不知道密码的尴尬处境,或者说你是正常用了某一天脑子短路忘了密码, 那...
2942 0
|
JSON 测试技术 Serverless
Zilliz Cloud 全新升级:超高性价比,迎来里程碑式发展!
让更多的开发者可以在不考虑预算限制的情况下畅用云原生向量数据库。
582 0