作者介绍
Grounded-SAM项目其中的一位研究者是清华大学计算机系的三年级博士生刘世隆。他近日在GitHub上介绍了自己和团队一起做出的最新项目,并称目前还在完善中。现在,刘世隆是粤港澳大湾区数字经济研究院(IDEA研究院),计算机视觉与机器人研究中心的实习生,由张磊教授指导,主要研究方向为目标检测,多模态学习。在此之前,他于2020年获得了清华大学工业工程系的学士学位,并于2019年在旷视实习过一段时间。
个人主页:http://www.lsl.zone/顺便提一句,刘世隆也是今年3月份发布的目标检测模型Grounding DINO的一作。此外,他的4篇论文中了CVPR 2023,2篇论文被ICLR 2023接收,1篇论文被AAAI 2023接收。
论文地址:https://arxiv.org/pdf/2303.05499.pdf而刘世隆提到的那位大佬——任天和,目前在IDEA研究院担任计算机视觉算法工程师,也由张磊教授指导,主要研究方向为目标检测和多模态。 此外,项目的合作者还有,中国科学院大学博士三年级学生黎昆昌,主要研究方向为视频理解和多模态学习;IDEA研究院计算机视觉与机器人研究中心实习生曹赫,主要研究方向为生成模型;以及阿里云高级算法工程师陈佳禹。
任天和、刘世隆
安装运行
项目需要安装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
安装diffusers:
pip install --upgrade diffusers[torch]
安装掩码后处理、以COCO格式保存掩码、example notebook和以ONNX格式导出模型所需的可选依赖。同时,项目还需要jupyter来运行example notebook。
pip install opencv-python pycocotools matplotlib onnxruntime onnx ipykernel
Grounding DINO演示
下载groundingdino检查点:
cd Grounded-Segment-Anythingwget 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+BLIP演示
自动生成伪标签很简单:1. 使用BLIP(或其他标注模型)来生成一个标注。2. 从标注中提取标签,并使用ChatGPT来处理潜在的复杂句子。3. 使用Grounded-Segment-Anything来生成框和掩码。
export CUDA_VISIBLE_DEVICES=0python automatic_label_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/demo3.jpg \ --output_dir "outputs" \ --openai_key your_openai_key \ --box_threshold 0.25 \ --text_threshold 0.2 \ --iou_threshold 0.5 \ --device "cuda"
伪标签和模型预测可视化将保存在output_dir中,如下所示:
Grounded-Segment-Anything+Inpainting演示
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
作者在此提供了可视化网页,可以更方便的尝试各种例子。
网友评论
对于这个项目logo,还有个深层的含义:一只坐在地上的马赛克风格的熊。坐在地面上是因为ground有地面的含义,然后分割后的图片可以认为是一种马赛克风格,而且马塞克谐音mask,之所以用熊作为logo主体,是因为作者主要示例的图片是熊。看到Grounded-SAM后,网友表示,知道要来,但没想到来的这么快。
项目作者任天和称,「我们用的Zero-Shot检测器是目前来说最好的。」未来,还会有web demo上线。最后,作者表示,这个项目未来还可以基于生成模型做更多的拓展应用,例如多领域精细化编辑、高质量可信的数据工厂的构建等等。欢迎各个领域的人多多参与。
参考资料:https://github.com/IDEA-Research/Grounded-Segment-Anythinghttps://www.reddit.com/r/MachineLearning/comments/12gnnfs/r_groundedsegmentanything_automatically_detect/https://zhuanlan.zhihu.com/p/620271321