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

开集目标检测-标签提示目标检测大模型(吊打YOLO系列-自动化检测标注)

背景

大多数现有的对象检测模型都经过训练来识别一组有限的预先确定的类别。将新类添加到可识别对象列表中需要收集和标记新数据,并从头开始重新训练模型,这是一个耗时且昂贵的过程。该大模型的目标是开发一个强大的系统来检测由人类语言输入指定的任意对象,而无需重新训练模型,也称为零样本检测。该模型只需提供文本提示即可识别和检测任何物体。
在这里插入图片描述

  • 关键可以生成标签,这样也不用标注了
  • 同时能实现任何类别的识别
  • 目标检测功能
  • 学习可用

在这里插入图片描述

模型架构

Grounding DINO架构的核心在于它能够有效地弥合语言和视觉之间的差距。这是通过采用双流架构来实现的——使用 Swin Transformer 等文本主干提取多尺度图像特征,并通过 NLP 模型 BERT 等文本主干提取文本特征。
在这里插入图片描述

模型架构

这两个流的输出被馈送到特征增强器中,用于将两组特征转换成单个统一的表示空间。特征增强器包括多个特征增强器层。可变形自注意力用于增强图像特征,常规自注意力用于文本特征增强器。
在这里插入图片描述

#特征增强层
Groundi旨在从输入文本指定的图像中检测对象。为了有效地利用输入文本进行对象检测,使用语言引导的查询选择来从图像和文本输入中选择最相关的特征。这些查询指导解码器识别图像中对象的位置,并根据文本描述为它们分配适当的标签。
在这里插入图片描述

跨模态解码器
然后使用跨模态解码器来集成文本和图像模态特征。跨模态解码器通过一系列关注层和前馈网络处理融合特征和解码器查询来进行操作。这些层允许解码器有效地捕获视觉和文本信息之间的关系,使其能够细化对象检测并分配适当的标签。在此步骤之后,模型继续进行对象检测的最后步骤,包括边界框预测、特定于类的置信度过滤和标签分配。、

代码运行

执行
在下一节中,我们将演示开放集对象检测。在这里,我们将使用预先训练的 Grounding 模型通过摄像头检测“带盖玻璃”(如文本提示)。

安装接地 DINO 🦕

首先,包含 PyTorch 实现和 Grounding 预训练模型的github 存储库被克隆到您的本地目录。在克隆 github 存储库的同一目录中创建一个名为 main.py 的文件。该文件将包含通过摄像头输入执行 Grounding 模型的主脚本。首先通过添加以下命令导入相关库和 Grounding 模块。代码的最后两行导入所需的推理模块。

 import modules
import os
import cv2
import numpy as np
from PIL import Image
import groundingdino.datasets.transforms as T
from groundingdino.util.inference import load_model, load_image, predict, annotate

安装环境

pip install -r requirements.txt

下载bert-base-uncased

https://huggingface.co/models

找到后,下载后放到本地,否则代码会出现异常

运行

python demo/inference_on_a_image.py -c 配置文件 Ground/config/Grounding_OGC.py -p 权重:.pth
-i 输入 input -o输出路径 -t "标签:car" --cpu-only

结果

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
怎么样,结果还不错把

关键可以生成标签,这样也不用标注了

已经把批量生成.json .xml文件脚本完成!

相关文章:

  • 【虹科分享】利用ProfiShark 构建便携式网络取证工具包
  • AtCoder Beginner Contest 334 G
  • 用Python处理PDF:拆分与合并PDF文档
  • 大厂整理的23年前端工程师面试手册,高频面试题终结篇,github上标星16k!
  • 排序笔记总结
  • 2024深入评测CleanMyMac X4.14.6破解版新的功能
  • 微服务架构<2>
  • storyBook play学习
  • uni-app page新建以及page外观配置
  • Spring高手之路-@Autowired和@Resource注解异同点
  • 【JVM】虚拟机的组成+字节码文件组成+类的生命周期
  • 安装DataEase(Linux线上安装)修改端口
  • 永久访问minio中的文件(视频、图片)
  • Ubuntu安装TensorRT
  • 智能优化算法应用:基于骑手优化算法3D无线传感器网络(WSN)覆盖优化 - 附代码
  • echarts的各种常用效果展示
  • exports和module.exports
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • JavaScript异步流程控制的前世今生
  • js 实现textarea输入字数提示
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • React-生命周期杂记
  • Spring技术内幕笔记(2):Spring MVC 与 Web
  • text-decoration与color属性
  • Vue ES6 Jade Scss Webpack Gulp
  • Xmanager 远程桌面 CentOS 7
  • 对象管理器(defineProperty)学习笔记
  • 仿天猫超市收藏抛物线动画工具库
  • 后端_MYSQL
  • 手机端车牌号码键盘的vue组件
  • 异步
  • 赢得Docker挑战最佳实践
  • 再谈express与koa的对比
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • Mac 上flink的安装与启动
  • RDS-Mysql 物理备份恢复到本地数据库上
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • #调用传感器数据_Flink使用函数之监控传感器温度上升提醒
  • $.ajax()参数及用法
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • (30)数组元素和与数字和的绝对差
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (附源码)计算机毕业设计ssm电影分享网站
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (一)appium-desktop定位元素原理
  • *Django中的Ajax 纯js的书写样式1
  • ./indexer: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object fil
  • .NET BackgroundWorker
  • .NET CLR基本术语
  • .NET DevOps 接入指南 | 1. GitLab 安装
  • .net FrameWork简介,数组,枚举
  • .Net FrameWork总结
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .netcore 如何获取系统中所有session_如何把百度推广中获取的线索(基木鱼,电话,百度商桥等)同步到企业微信或者企业CRM等企业营销系统中...