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

新一代零样本无训练目标检测

🏡作者主页:点击! 

🤖编程探索专栏:点击!

⏰️创作时间:2024年12月2日21点02分


神秘男子影,
  秘而不宣藏。
泣意深不见,
男子自持重,
   子夜独自沉。

论文链接

点击开启你的论文编程之旅icon-default.png?t=O83Ahttps://www.aspiringcode.com/content?id=17320697597148&uid=01ec6d85f5984256b968a6976921794c

检测作为计算机视觉领域的一项重要任务,旨在从图像中准确地识别并定位出感兴趣的目标。近年来,随着深度学习技术的快速发展,目标检测算法取得了显著的进展。本文将带您回顾目标检测技术的发展历程,从早期的二阶段算法,到YOLO系列,再到如今的Grounding Dino。

二阶段目标检测算法

R-CNN(Regions with CNN features)
R-CNN是第一个将深度学习应用于目标检测的算法,于2014年由Girshick等人提出。R-CNN采用选择性搜索算法提取候选区域,然后利用卷积神经网络(CNN)提取特征,最后通过支持向量机(SVM)进行分类。
Fast R-CNN
为了解决R-CNN速度慢、重复计算的问题,Girshick于2015年提出了Fast R-CNN。Fast R-CNN采用ROI(Region of Interest)Pooling层,实现了候选区域的共享特征提取,大大提高了检测速度。
Faster R-CNN
2015年,Ren等人在Fast R-CNN的基础上提出了Faster R-CNN。Faster R-CNN引入了区域建议网络(RPN),实现了候选区域的端到端训练,进一步提高了检测速度和准确性。

YOLO系列

YOLO(You Only Look Once)模型是一种流行的实时目标检测算法,它将目标检测任务视为一个单一的回归问题,通过单个卷积神经网络(CNN)同时预测多个边界框和类别概率,实现了端到端的快速检测,极大地提高了检测速度,同时保持了较高的准确性,使其在视频监控、自动驾驶等实时应用场景中具有广泛的应用价值。

Grounding Dino

Grounding Dino模型是一种创新的视觉目标检测方法,它结合了自然语言处理和计算机视觉的技术,通过使用Transformer架构来实现对图像中目标的定位和描述。

第一段:模型架构 Grounding Dino模型的核心是一个基于Transformer的编码器-解码器结构。编码器用于提取图像的特征,而解码器则负责将自然语言查询与图像特征进行匹配,生成目标的定位信息。这种架构允许模型理解图像内容与文本描述之间的关联,从而无需传统的边界框标注,直接通过文本指令来定位图像中的目标。

第二段:工作原理 在执行目标检测时,Grounding Dino模型接收一个图像和一个相关的文本查询作为输入。模型首先使用编码器提取图像的深层特征,然后解码器将这些特征与文本查询中的单词进行交互,通过注意力机制找出与查询最相关的图像区域。最终,模型输出一个定位热图,指示查询文本所指目标在图像中的位置。

第三段:优势与应用 Grounding Dino模型的优势在于其无需精确的边界框标注,降低了数据准备的成本,并且能够处理细粒度的目标检测任务。此外,由于其基于文本的查询机制,模型在处理复杂场景和具有描述性需求的应用中表现出色。这使得Grounding Dino在图像检索、交互式视觉问答系统等领域具有广泛的应用潜力。

演示效果

TEXT_PROMPT = “chair . person . dog . cat .”

TEXT_PROMPT = “chair . person . dog . cat .”

Grounding DINO

Model Overall (总体架构)

输入:
Input Text: 输入文本,例如“cat . person . mouse .”或“A cat sets on a table.”
Input Image: 输入图像。
Text and Image Backbone Networks (文本和图像主干网络)

Text Backbone: 提取文本特征。
Image Backbone: 提取图像特征。
Feature Enhancer (特征增强器)

接收原始的文本特征和图像特征,并对其进行增强处理。
Cross-Modality Decoder (跨模态解码器)

Language-guide Query Selection: 根据语言信息选择查询。
Cross-Modality Queries: 生成跨模态查询。
Model Outputs (模型输出)

包括对比损失(Contrastive loss)和定位损失(Localization loss)。

Feature Enhancer (特征增强器)

功能模块:
Text-to-image Cross-Attention: 利用文本特征对图像特征进行增强。
Image-to-text Cross-Attention: 利用图像特征对文本特征进行增强。
Self-Attention Mechanism: 对文本和图像特征进行自注意力处理。
Feed Forward Network (FFN): 对增强后的特征进行进一步处理。
流程:
文本特征和图像特征分别经过各自的主干网络得到初步表示。
这些初步表示被送入特征增强器中。
特征增强器首先通过文本到图像的跨注意力机制增强图像特征,然后通过图像到文本的跨注意力机制增强文本特征。
增强后的特征再经过自注意力机制进一步优化。
最后,通过前馈神经网络(FFN)对特征进行最终处理。

A Decoder Layer (解码器层)

功能模块:
Cross-Modality Attention: 更新跨模态查询。
Self-Attention Mechanism: 对文本和图像特征进行自注意力处理。
Feed Forward Network (FFN): 对处理后的特征进行进一步处理。
流程:
跨模态查询通过跨模态注意力机制进行更新。
更新后的查询与文本和图像特征一起进入解码器层。
解码器层首先对文本和图像特征进行自注意力处理。
然后,通过前馈神经网络(FFN)对特征进行进一步处理。

Grounding DINO使用代码

预测多个类别

from groundingdino.util.inference import load_model, load_image, predict, annotate
import cv2model = load_model("groundingdino/config/GroundingDINO_SwinT_OGC.py", "groundingdino/weights/groundingdino_swint_ogc.pth")
IMAGE_PATH = ".asset/cat_dog.jpeg"
TEXT_PROMPT = "chair . person . dog . cat ."
BOX_TRESHOLD = 0.35
TEXT_TRESHOLD = 0.25image_source, image = load_image(IMAGE_PATH)boxes, logits, phrases = predict(model=model,image=image,caption=TEXT_PROMPT,box_threshold=BOX_TRESHOLD,text_threshold=TEXT_TRESHOLD,device="cuda"
)
annotated_frame = annotate(image_source=image_source, boxes=boxes, logits=logits, phrases=phrases)
cv2.imwrite("annotated_image.jpg", annotated_frame)

模型训练

将model.eval()改成model.train()

修改代码67,68行

微调训练框架

from groundingdino.util.inference import load_model, load_image, predict, annotate
import cv2
model = load_model("groundingdino/config/GroundingDINO_SwinT_OGC.py", "groundingdino/weights/groundingdino_swint_ogc.pth")
"""
for epoch in range(epoches):# 加载符合模型数据集标准的数据:每一次输入是一个列表,每一项是一个字典for data in train_dataloader: IMAGE_PATH=data['image_path']image_source, image = load_image(IMAGE_PATH)boxes, logits, phrases = predict(model=model,image=image,caption=TEXT_PROMPT,box_threshold=BOX_TRESHOLD,text_threshold=TEXT_TRESHOLD,device="cuda")loss=loss_function(output,data['real_predict'])optimiezer.zero_gard()loss.backward()optimiezer.step()
"""

模型部署

Grounding DINO权重下载

https://hf-mirror.com/ShilongLiu/GroundingDINO/tree/main

放入附件内容中:

BERT权重下载

https://hf-mirror.com/google-bert/bert-base-uncased/tree/main

随便放入那个文件夹都行,例如"D:/bert-base-uncased"
修改config文件:

安装依赖配置

设置环境变量

然后进入附件中:

pip install .

最后,运行代码

python demo.py

 

成功的路上没有捷径,只有不断的努力与坚持。如果你和我一样,坚信努力会带来回报,请关注我,点个赞,一起迎接更加美好的明天!你的支持是我继续前行的动力!"

"每一次创作都是一次学习的过程,文章中若有不足之处,还请大家多多包容。你的关注和点赞是对我最大的支持,也欢迎大家提出宝贵的意见和建议,让我不断进步。"

神秘泣男子

相关文章:

新一代零样本无训练目标检测

🏡作者主页:点击! 🤖编程探索专栏:点击! ⏰️创作时间:2024年12月2日21点02分 神秘男子影, 秘而不宣藏。 泣意深不见, 男子自持重, 子夜独自沉。 论文链接 点击开启你的论文编程之旅h…...

es 3期 第13节-多条件组合查询实战运用

#### 1.Elasticsearch是数据库,不是普通的Java应用程序,传统数据库需要的硬件资源同样需要,提升性能最有效的就是升级硬件。 #### 2.Elasticsearch是文档型数据库,不是关系型数据库,不具备严格的ACID事务特性&#xff…...

全局token验证

全局token验证 简介 ​通俗地说,JWT的本质就是一个字符串,它是将用户信息保存到一个Json字符串中,然后进行编码后得到一个JWT token,并且这个JWT token带有签名信息,接收后可以校验是否被篡改,所以可以用…...

实时美颜技术详解:美颜SDK与直播APP开发实践

通过集成美颜SDK(软件开发工具包),开发者能够轻松为直播APP提供实时美颜效果,改善用户的直播体验。本篇文章,小编将深入探讨实时美颜技术,重点分析美颜SDK的核心技术及其在直播APP中的应用实践。 一、实时…...

电子应用设计方案-41:智能微波炉系统方案设计

智能微波炉系统方案设计 一、引言 随着科技的不断进步,人们对于厨房电器的智能化需求日益增长。智能微波炉作为现代厨房中的重要设备,应具备更便捷、高效、个性化的功能,以满足用户多样化的烹饪需求。 二、系统概述 1. 系统目标 - 提供精确…...

P5736 【深基7.例2】质数筛

题目描述 输入 𝑛个不大于 105 的正整数。要求全部储存在数组中,去除掉不是质数的数字,依次输出剩余的质数。 输入格式 第一行输入一个正整数 𝑛,表示整数个数。 第二行输入 𝑛 个正整数 𝑎…...

数据结构初阶1 时间复杂度和空间复杂度

本章重点 算法效率时间复杂度空间复杂度常见时间复杂度以及复杂度OJ练习 1.算法效率 1.1 如何衡量一个算法的好坏 如何衡量一个算法的好坏呢&#xff1f;比如对于以下斐波那契数列&#xff1a; long long Fib(int N) { if(N < 3) return 1;return Fib(N-1) Fib(N-2); }斐…...

E130 PHP+MYSQL+动漫门户网站的设计与实现 视频网站系统 在线点播视频 源码 配置 文档 全套资料

动漫门户网站 1.摘要2. 开发背景和意义3.项目功能4.界面展示5.源码获取 1.摘要 21世纪是信息的时代&#xff0c;随着信息技术与网络技术的发展&#xff0c;其已经渗透到人们日常生活的方方面面&#xff0c;与人们是日常生活已经建立密不可分的联系。本网站利用Internet网络, M…...

OSCP - Proving Grounds - Fanatastic

主要知识点 CVE-2021-43798漏洞利用 具体步骤 执行nmap 扫描&#xff0c;22/3000/9090端口开放&#xff0c;应该是ssh,grafana 和Prometheus Nmap scan report for 192.168.52.181 Host is up (0.00081s latency). Not shown: 65532 closed tcp ports (reset) PORT STA…...

ArcMap 分享统计点要素、路网、降雨量等功能操作

ArcMap 分享统计点要素、路网等功能等功能操作今天进行 一、按格网统计点要素 1、创建公里网格统计单元 点击确定后展示 打开连接 点击后 展示 2、处理属性 1&#xff09;查看属性表 每个小格都统计出了点的数量 2&#xff09;查看属性 符号系统 点击应用后展示结果&#x…...

概率论——假设检验

解题步骤&#xff1a; 1、提出假设H0和H1 2、定类型&#xff0c;摆公式 3、计算统计量和拒绝域 4、定论、总结 Z检验 条件&#xff1a; 对μ进行检验&#xff0c;并且总体方差已知道 例题&#xff1a; 1、假设H0为可以认为是570N&#xff0c;H1为不可以认为是570N 2、Z…...

爬虫项目练手

python抓取优美图库小姐姐图片 整体功能概述 这段 Python 代码定义了一个名为 ImageDownloader 的类&#xff0c;其主要目的是从指定网站&#xff08;https://www.umei.cc&#xff09;上按照不同的图片分类&#xff0c;爬取图片并保存到本地相应的文件夹中。不过需要注意&…...

C程序设计:解决Fibonacci.数列问题

‘ 斐波那契数列&#xff08;Fibonacci sequence&#xff09;&#xff0c;又称黄金分割数列&#xff0c;因数学家莱昂纳多斐波那契&#xff08;Leonardo Fibonacci&#xff09;以兔子繁殖为例子而引入&#xff0c;故又称“兔子数列”&#xff0c;其数值为&#xff1a;1、1、2、…...

35页PDF | 元数据与数据血缘落地实施(限免下载)

一、前言 这份报告详细介绍了元数据与数据血缘的概念、重要性以及在企业数据中台中的应用。报告阐述了数据中台的核心价值在于整合和管理体系内的数据&#xff0c;以提升数据资产化能力并支持业务决策。报告还涵盖了元数据的分类&#xff08;技术元数据和业务元数据&#xff0…...

Lua元表和元方法的使用

元表是一个普通的 Lua 表&#xff0c;包含一组元方法&#xff0c;这些元方法与 Lua 中的事件相关联。事件发生在 Lua 执行某些操作时&#xff0c;例如加法、字符串连接、比较等。元方法是普通的 Lua 函数&#xff0c;在特定事件发生时被调用。 元表包含了以下元方法&#xff1…...

基于Pyhton的人脸识别(Python 3.12+face_recognition库)

使用Python进行人脸编码和比较 简介 在这个教程中&#xff0c;我们将学习如何使用Python和face_recognition库来加载图像、提取人脸编码&#xff0c;并比较两个人脸是否相似。face_recognition库是一个强大的工具&#xff0c;它基于dlib的深度学习模型&#xff0c;可以轻松实…...

Spring Boot+Netty

因工作中需要给第三方屏幕厂家下发广告&#xff0c;音频&#xff0c;图片等内容&#xff0c;对方提供TCP接口于是我使用Netty长链接进行数据传输 1.添加依赖 <!-- netty依赖--><dependency><groupId>io.netty</groupId><artifactId>netty-all&…...

LCR 023. 相交链表

一.题目&#xff1a; LCR 023. 相交链表 - 力扣&#xff08;LeetCode&#xff09; 二.我的原始解法-无&#xff1a; 三.其他人的正确及好的解法&#xff0c;力扣解法参考&#xff1a; 哈希表法及双指针法&#xff1a;LCR 023. 相交链表 - 力扣&#xff08;LeetCode&#xff0…...

Linux命令行下载工具

1. curl 1.1. 介绍 curl是一个功能强大的命令行工具&#xff0c;用于在各种网络协议下传输数据。它支持多种协议&#xff0c;包括但不限于 HTTP、HTTPS、FTP、FTPS、SCP、SFTP、SMTP、POP3、IMAP 等&#xff0c;这使得它在网络数据交互场景中有广泛的应用。curl可以模拟浏览器…...

期末复习-Hadoop名词解释+简答题纯享版

目录 一、名称解释&#xff08;8选5&#xff09; 1.什么是大数据 2.大数据的5V特征 3.什么是SSH 4.HDFS&#xff08;p32&#xff09; 5.名称节点 6.数据节点 7.元数据 8.倒排索引 9.单点故障 10.高可用 11.数据仓库 二、简答题 1.简述Hadoop的优点及其含义 2.简述…...

国防科技大学计算机基础课程笔记02信息编码

1.机内码和国标码 国标码就是我们非常熟悉的这个GB2312,但是因为都是16进制&#xff0c;因此这个了16进制的数据既可以翻译成为这个机器码&#xff0c;也可以翻译成为这个国标码&#xff0c;所以这个时候很容易会出现这个歧义的情况&#xff1b; 因此&#xff0c;我们的这个国…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

RocketMQ延迟消息机制

两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数&#xff0c;对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后&#xf…...

python/java环境配置

环境变量放一起 python&#xff1a; 1.首先下载Python Python下载地址&#xff1a;Download Python | Python.org downloads ---windows -- 64 2.安装Python 下面两个&#xff0c;然后自定义&#xff0c;全选 可以把前4个选上 3.环境配置 1&#xff09;搜高级系统设置 2…...

ssc377d修改flash分区大小

1、flash的分区默认分配16M、 / # df -h Filesystem Size Used Available Use% Mounted on /dev/root 1.9M 1.9M 0 100% / /dev/mtdblock4 3.0M...

java 实现excel文件转pdf | 无水印 | 无限制

文章目录 目录 文章目录 前言 1.项目远程仓库配置 2.pom文件引入相关依赖 3.代码破解 二、Excel转PDF 1.代码实现 2.Aspose.License.xml 授权文件 总结 前言 java处理excel转pdf一直没找到什么好用的免费jar包工具,自己手写的难度,恐怕高级程序员花费一年的事件,也…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

dify打造数据可视化图表

一、概述 在日常工作和学习中&#xff0c;我们经常需要和数据打交道。无论是分析报告、项目展示&#xff0c;还是简单的数据洞察&#xff0c;一个清晰直观的图表&#xff0c;往往能胜过千言万语。 一款能让数据可视化变得超级简单的 MCP Server&#xff0c;由蚂蚁集团 AntV 团队…...

OPENCV形态学基础之二腐蚀

一.腐蚀的原理 (图1) 数学表达式&#xff1a;dst(x,y) erode(src(x,y)) min(x,y)src(xx,yy) 腐蚀也是图像形态学的基本功能之一&#xff0c;腐蚀跟膨胀属于反向操作&#xff0c;膨胀是把图像图像变大&#xff0c;而腐蚀就是把图像变小。腐蚀后的图像变小变暗淡。 腐蚀…...

无人机侦测与反制技术的进展与应用

国家电网无人机侦测与反制技术的进展与应用 引言 随着无人机&#xff08;无人驾驶飞行器&#xff0c;UAV&#xff09;技术的快速发展&#xff0c;其在商业、娱乐和军事领域的广泛应用带来了新的安全挑战。特别是对于关键基础设施如电力系统&#xff0c;无人机的“黑飞”&…...