GroundingDINO(一种开集目标检测算法)服务化,根据文本生成检测框

这篇具有很好参考价值的文章主要介绍了GroundingDINO(一种开集目标检测算法)服务化,根据文本生成检测框。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

最近发现一个叫GroundingDINO的开集目标检测算法,所谓开集目标检测就是能检测的目标类别不局限于训练的类别,这个算法可以通过输入文本的prompt然后输出对应的目标框。可以用来做预标注或者其他应用,比如我们要训练某个细分场景的算法时,我们找不到足够的已经标注的数据,就可以先用这个算法预打标, 与SAM结合,还能做根据text去分割出物体。
GroundingDINO:https://github.com/IDEA-Research/GroundingDINO
GroundingDINO(一种开集目标检测算法)服务化,根据文本生成检测框

将GroundingDINO服务化

为什么要服务化

原始的项目是一个python脚本,不适合单人使用,而不是和团队一起使用。服务化之后,其他人可以通过http请求的方式来访问,而不需要每个人都搭建环境,也便于批量处理数据。

如何服务化

最简单的是通过flask api把python脚本包装一层,这种方式实现简单,但扩展性不够,比如如果想要动态组batch,就需要自己写这部分逻辑。更好的方式是使用成熟的模型推理服务,TorchServe就是其中的一种,比较适合pytorch模型(其实其他格式比如onnx也可以),使用TorchServe,我们只用写好模型的预处理、推理和后处理逻辑,其他的比如实例扩展、动态batch、资源监控这些都不需要我们自己实现。我们有其他模型,也可以用同样的方式服务起来,而不需要为每个模型都写一个服务。因此本文选择TorchServe来作为模型的推理服务。

过程

克隆文末的项目后按顺序执行下面步骤:

1.下载模型

新建一个weights目录,并把下面的模型放入:

wget -q https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth

新建一个bert-base-uncased 目录,下载bert模型:
https://huggingface.co/bert-base-uncased/tree/main

config.json
pytorch_model.bin
tokenizer_config.json
tokenizer.json
vocab.txt

2.制作torchserve镜像

Dockerfile:

FROM pytorch/pytorch:2.0.1-cuda11.7-cudnn8-devel
ARG DEBIAN_FRONTEND=noninteractive

#for Chinese User, uncomment this line
# COPY sources.list /etc/apt/sources.list

RUN apt update && \
     apt install openjdk-17-jdk -y

RUN apt install git -y

#install python packages
COPY requirements.txt /root/
RUN pip install -r /root/requirements.txt --no-cache -i https://repo.huaweicloud.com/repository/pypi/simple/
docker build -t torchserve:groundingdino .

3.转换模型

docker run --rm -it -v $(pwd):/data -w /data torchserve:groundingdino bash -c "torch-model-archiver --model-name groundingdino --version 1.0 --serialized-file weights/groundingdino_swint_ogc.pth --handler grounding_dino_handler.py --extra-files GroundingDINO_SwinT_OGC.py,bert-base-uncased/*"

执行完毕后,将得到一个groundingdino.mar文件。

4.开启服务

根据需要修改服务的配置

docker run -d --name groundingdino -v $(pwd)/model_store:/model_store -p 8080:8080 -p 8081:8081 -p 8082:8082 torchserve:groundingdino bash -c "torchserve --start --foreground --model-store /model_store --models groundingdino=groundingdino.mar"

5.调用服务

import requests
import base64
import time
# URL for the web service
url = "http://ip:8080/predictions/groundingdino"
headers = {"Content-Type": "application/json"}

# Input data
with open("test.jpg", "rb") as f:
    image = f.read()

data = {
        "image": base64.b64encode(image).decode("utf-8"), # base64 encoded image or BytesIO
        "caption": "steel pipe", # text prompt, split by "." for multiple phrases
        "box_threshold": 0.25, # threshold for object detection
        "caption_threshold": 0.25 # threshold for text similarity
        }

# Make the request and display the response

resp = requests.post(url=url, headers=headers, json=data)
outputs = resp.json()
'''
the outputs will be like:
    {
        "boxes": [[0.0, 0.0, 1.0, 1.0]], # list of bounding boxes in xyxy format
        "scores": [0.9999998807907104], # list of object detection scores
        "phrases": ["steel pipe"] # list of text phrases
    }

'''

完整项目:GroundingDINO-Service文章来源地址https://www.toymoban.com/news/detail-460079.html

到了这里,关于GroundingDINO(一种开集目标检测算法)服务化,根据文本生成检测框的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【AIGC】15、Grounding DINO | 将 DINO 扩展到开集目标检测

    论文:Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection 代码:https://github.com/IDEA-Research/GroundingDINO 出处:清华、IDEA 时间:2023.03.20 贡献: 本文提出了一种 open-set 的目标检测器,Grounding DINO,将 Transformer based 检测器 DINO 和 grounded pre-training 结合起来,能够输出

    2024年02月09日
    浏览(37)
  • 【多模态】18、ViLD | 通过对视觉和语言知识蒸馏来实现开集目标检测(ICLR2022)

    论文:Open-vocabulary Object Detection via Vision and Language Knowledge Distillation 代码:https://github.com/tensorflow/tpu/tree/master/models/official/detection/projects/vild 效果: 在 zero-shot 测试下,coco 达到了 36.6 AP,PASCAL VOC 达到了 72.2AP,Object365 达到了 11.8AP 本文提出了 Vision and Language knowledge Distillation(

    2024年02月14日
    浏览(33)
  • CutLER:一种用于无监督目标检测和实例分割的方法

    本文分享自华为云社区《CutLER:一种用于无监督目标检测和实例分割的方法》,作者:Hint。 目标检测是计算机视觉中的一种重要任务,使AI系统感知、推理、理解目标。训练定位模型需要特别的标注,比如目标的框、掩膜、定位点等。本文的工作研究了无监督的目标检测和实

    2024年02月12日
    浏览(30)
  • Drone-YOLO:一种有效的无人机图像目标检测

    点击蓝字 关注我们 关注并星标 从此不迷路 计算机视觉研究院 公众号ID | 计算机视觉研究院 学习群 | 扫码在主页获取加入方式 计算机视觉研究院专栏 Column of Computer Vision Institute 无人机图像中的目标检测是各个研究领域的重要基础。然而,无人机图像带来了独特的挑战,

    2024年02月07日
    浏览(31)
  • Drone-Yolo:一种高效的无人机图像目标检测神经网络方法

    https://www.mdpi.com/2504-446X/7/8/526 在各种研究领域中,对无人机的图像进行目标检测是一项有意义的任务。然而,无人机的图像带来了独特的挑战,包括图像尺寸大、检测对象尺寸小、对象密集分布、对象重叠以及光线不足影响目标检测的准确性。本文提出了Drone-YOLO,这是一系列

    2024年02月04日
    浏览(32)
  • 《一种改进的YOLOv5用于无人机捕获场景中的目标检测》论文笔记

           无人机图像处理中的目标检测逐渐成为近年来的研究热点。一般目标检测算法在应用于无人机场景时往往会显著下降。这是因为无人机图像是从高空拍摄的,分辨率高,小物体比例很大。为了在满足轻量化特性的同时提高无人机目标检测的精度,我们对YOLOv5s模型进行

    2024年02月02日
    浏览(33)
  • 超越所有Anchor-free方法!PP-YOLOE-R:一种高效的目标检测网络

    点击下方 卡片 ,关注“ 自动驾驶之心 ”公众号 ADAS巨卷干货,即可获取 点击进入→ 自动驾驶之心【目标检测】技术交流群 后台回复 【PPYOLO】 获取论文、代码等更多资料! 超越所有Anchor-free方法!PP-YOLOE-R:一种高效的目标检测网络 PP-YOLOE-R是基于PP-YOLOE的高效anchor-free旋转

    2024年02月08日
    浏览(34)
  • 一种峰值检测算法——AMPD算法(C语言实现)

    本文算法的原始论文出处:Algorithms | Free Full-Text | An Efficient Algorithm for Automatic Peak Detection in Noisy Periodic and Quasi-Periodic Signals | HTML (mdpi.com) 有位老哥在知乎写了Python代码:python代码 在数字信号处理中,经常涉及到波峰查找算法,如振动信号分析,样条插值法求包络等。对于周

    2024年02月03日
    浏览(25)
  • YOLOv7改进之WDLoss 独家首发更新|高效涨点2%改进用于小目标检测的归一化高斯 Wasserstein Distance Loss,提升小目标检测的一种新的包围框相似度度量

    💡该教程为改进进阶指南,属于 《芒果书》 📚系列,包含大量的原创首发改进方式, 所有文章都是全网首发原创改进内容🚀 内容出品: CSDN博客独家更新 @CSDN芒果汁没有芒果 💡 🚀🚀🚀内含·改进源代码· ,按步骤操作运行改进后的代码即可 重点 :🔥🔥🔥有多个同学

    2024年02月05日
    浏览(38)
  • 英文论文(sci)解读复现【NO.21】一种基于空间坐标的轻量级目标检测器无人机航空图像的自注意

    此前出了目标检测算法改进专栏,但是对于应用于什么场景,需要什么改进方法对应与自己的应用场景有效果,并且多少改进点能发什么水平的文章,为解决大家的困惑,此系列文章旨在给大家解读发表高水平学术期刊中的 SCI论文 ,并对相应的SCI期刊进行介绍,帮助大家解

    2024年02月19日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包